:root{--bg: #eceff3;--surface: #ffffff;--surface-elevated: #f8fafc;--border: #d8dee6;--text: #0f172a;--muted: #5c6b7a;--accent: #1d6b4c;--accent-hover: #155a40;--accent-soft: #e6f4ef;--success-bg: #e8f5ef;--success-text: #0d5c36;--success-border: #9fd4b8;--fail-bg: #fdeef0;--fail-text: #9b1c2e;--fail-border: #f0b8c0;--running-bg: #e8f0fb;--running-text: #1e4a8c;--running-border: #a8c4e8;--log-bg: #141a22;--log-fg: #d8dee9;--log-neutral-border: #4a5568;--log-retry: #c4b5fd;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{padding:1.5rem 1.25rem 2.5rem;max-width:60rem;margin:0 auto}.page-header h1{font-size:1.35rem;font-weight:650;letter-spacing:-.02em;margin:0 0 .35rem;font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,monospace}.page-header p{margin:0;font-size:.875rem;color:var(--muted)}.page-header code{font-size:.82em;background:var(--border);padding:.12em .4em;border-radius:4px}section.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem;margin-bottom:.85rem;box-shadow:0 1px #0f172a0a}section.panel h2{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .65rem}label{display:block;font-size:.78rem;font-weight:600;color:var(--text);margin-bottom:.3rem}input[type=text],textarea{width:100%;padding:.5rem .6rem;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.9rem;margin-bottom:.75rem;background:var(--surface-elevated)}input[type=text]:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent;background:#fff}textarea{min-height:5rem;resize:vertical;line-height:1.45}.form-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.25rem}button.primary{font:inherit;font-weight:600;font-size:.875rem;padding:.5rem 1.1rem;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.primary:disabled{opacity:.45;cursor:not-allowed}button.secondary{font:inherit;font-weight:600;font-size:.875rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer}button.secondary:hover:not(:disabled){background:var(--surface-elevated)}button.secondary:disabled{opacity:.45;cursor:not-allowed}button.ghost{font:inherit;font-size:.8125rem;padding:.45rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer}.preview-thumb{max-width:100%;max-height:180px;border-radius:8px;border:1px solid var(--border);margin-bottom:.5rem}.status-panel.is-running .indeterminate-bar{display:block}.status-stack{display:flex;flex-direction:column;gap:.65rem}.status-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;gap:.45rem;font-size:.8125rem;font-weight:600;padding:.32rem .7rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);position:relative;overflow:hidden}.status-badge.running{background:var(--running-bg);border-color:var(--running-border);color:var(--running-text)}.status-badge.running:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.45) 45%,transparent 90%);animation:shimmer 2s ease-in-out infinite;pointer-events:none}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.status-badge.success{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}.status-badge.failed{background:var(--fail-bg);border-color:var(--fail-border);color:var(--fail-text)}.status-dot-wrap{position:relative;width:.5rem;height:.5rem;flex-shrink:0}.status-dot{width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.status-spinner{display:none;position:absolute;inset:-2px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .75s linear infinite;opacity:.75}.status-badge.running .status-spinner{display:block}.status-badge.running .status-dot{opacity:.35}@keyframes spin{to{transform:rotate(360deg)}}.attempt-line{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.8125rem;font-family:ui-monospace,Menlo,monospace}.attempt-label{font-weight:600;color:var(--muted)}.run-dots span{width:.28rem;height:.28rem;border-radius:50%;background:var(--running-text);display:inline-block;margin-right:.25rem;animation:dotPulse 1.2s ease-in-out infinite}.run-dots span:nth-child(2){animation-delay:.2s}.run-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,to{opacity:.25}50%{opacity:1}}.indeterminate-bar{display:none;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.indeterminate-bar-fill{height:100%;width:35%;background:var(--running-text);animation:indet 1.2s ease-in-out infinite}@keyframes indet{0%{transform:translate(-100%)}to{transform:translate(320%)}}.log-container{background:var(--log-bg);color:var(--log-fg);border-radius:8px;padding:.7rem .85rem;max-height:20rem;overflow:auto;font-family:ui-monospace,Menlo,monospace;font-size:.75rem;line-height:1.45}.log-line{border-left:2px solid var(--log-neutral-border);padding:.2rem 0 .2rem .45rem;margin:0 0 .35rem;word-break:break-word}.log-line.level-error{border-left-color:#f87171;color:#fecaca}.log-line.log-retry{border-left-color:var(--log-retry)}.log-line-main{display:flex;gap:.35rem;flex-wrap:wrap;align-items:baseline}.log-title{font-weight:600}.log-sub{font-size:.92em;color:#8b9bb0;margin-top:.15rem}.log-meta summary{cursor:pointer;margin-top:.25rem}.log-meta pre{margin:.35rem 0 0;padding:.4rem .5rem;background:#00000040;border-radius:4px;overflow:auto;max-height:8rem;white-space:pre-wrap}.test-grid{display:grid;gap:.75rem}@media(min-width:520px){.test-grid{grid-template-columns:1fr 1fr}}.test-card{border:1px solid var(--border);border-radius:8px;padding:1rem;background:var(--surface-elevated)}.test-card h3{margin:0 0 .5rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.test-card .outcome{font-size:1.25rem;font-weight:700;margin-bottom:.35rem}.test-card .outcome.pass{color:var(--success-text)}.test-card .outcome.fail{color:var(--fail-text)}.test-card .outcome.unknown{color:var(--muted);font-size:1.05rem}.exit-code{font-family:ui-monospace,Menlo,monospace;font-size:.78rem;font-weight:600;color:var(--muted)}.exit-code.exit-ok{color:var(--success-text)}.exit-code.exit-bad{color:var(--fail-text)}.path-box{flex:1;min-width:12rem;font-family:ui-monospace,Menlo,monospace;font-size:.78rem;padding:.65rem .75rem;background:var(--accent-soft);border:2px solid var(--accent);border-radius:8px;word-break:break-all}.path-box a{color:var(--accent-hover)}.output-path-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:stretch;margin-bottom:.35rem}.copy-toast{font-size:.78rem;color:var(--success-text);font-weight:600;opacity:0;transition:opacity .2s}.copy-toast.visible{opacity:1}.file-groups{display:flex;flex-direction:column;gap:1rem}.file-group h3{margin:0 0 .4rem;font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--muted)}.file-group ul{margin:0;padding:0;list-style:none}.file-group li{display:flex;justify-content:space-between;gap:.75rem;padding:.25rem 0;border-bottom:1px solid var(--border);font-size:.8125rem}.file-group .path{font-family:ui-monospace,Menlo,monospace;font-size:.78rem;word-break:break-all}.file-group .size{flex-shrink:0;font-weight:600;color:var(--muted);font-size:.75rem}.result-meta{font-size:.8125rem;color:var(--muted);margin:0 0 .65rem}.result-error{font-size:.8125rem;color:var(--fail-text);padding:.6rem .7rem;background:var(--fail-bg);border-radius:8px;border:1px solid var(--fail-border);margin:0 0 .65rem;white-space:pre-wrap;word-break:break-word}.task-list{list-style:none;margin:0;padding:0}.task-item{display:flex;gap:.65rem;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid var(--border)}.task-item label{flex:1;margin:0;cursor:pointer;font-weight:400}.task-item .task-title{font-weight:600;display:block;margin-bottom:.2rem}.task-item .task-desc{font-size:.85rem;color:var(--muted);white-space:pre-wrap}.plan-hint{font-size:.78rem;color:var(--muted);margin:.25rem 0 0}.hidden{display:none!important}details.raw-output summary{cursor:pointer;color:var(--muted)}details.raw-output pre{font-size:.72rem;overflow:auto;max-height:14rem;white-space:pre-wrap;background:var(--surface-elevated);border:1px solid var(--border);padding:.65rem;border-radius:8px}
