:root{--bg: #0b0b0f;--surface: #16161c;--surface-2: #1e1e26;--fg: #e7e7ea;--muted: #8a8a94;--border: #2a2a33;--border-control: #68687a;--accent: #7c6cff;--accent-hover: #9385ff;--accent-fg: #0b0b0f;--danger: #ff6b6b;--ok: #4ade80;--warn: #f5c451;--focus: #ffffff;--focus-width: 2px;--radius: 10px;--gap: 16px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--maxw: 860px}*{box-sizing:border-box}html,body{margin:0}body{font:15px/1.55 var(--font);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}code{font-family:var(--mono);font-size:.92em}h1,h2{margin:0 0 .5rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.centered{min-height:100vh;display:grid;place-items:center;padding:24px}.wordmark{font-size:26px;letter-spacing:-.02em;margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.auth-card{width:100%;max-width:360px;text-align:center}.auth-card form{display:grid;gap:12px;margin-top:12px}.input{width:100%;padding:10px 12px;font:inherit;color:var(--fg);background:var(--surface-2);border:1px solid var(--border-control);border-radius:8px}:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:2px;border-radius:2px}.btn{padding:9px 14px;font:inherit;font-weight:500;color:var(--fg);background:var(--surface-2);border:1px solid var(--border-control);border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:default}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent}.btn-ghost-danger{background:transparent;color:var(--danger);border-color:transparent}.btn-ghost-danger:hover{border-color:var(--danger)}.shell{min-height:100vh;display:flex;flex-direction:column}.nav{display:flex;align-items:center;gap:var(--gap);padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.nav .wordmark{font-size:18px;margin:0}.tabs{display:flex;gap:4px}.tab{padding:6px 12px;font:inherit;color:var(--muted);background:transparent;border:0;border-radius:8px;cursor:pointer}.tab.active{color:var(--fg);background:var(--surface-2)}.nav-right{margin-left:auto;display:flex;align-items:center;gap:12px}.content{width:100%;max-width:var(--maxw);margin:0 auto;padding:28px 20px}.empty{border:1px dashed var(--border);border-radius:var(--radius);padding:32px;text-align:center;color:var(--muted);margin-top:12px}.empty code{color:var(--fg)}.error-state{border:1px solid var(--danger);border-radius:var(--radius);padding:24px 32px;text-align:center;color:var(--fg);margin-top:12px}.error-state p{margin:0 0 12px}.error-state p:only-child{margin-bottom:0}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.row-actions{display:flex;gap:8px;align-items:center}.token-reveal{margin:16px 0;background:var(--surface-2)}.token-value{overflow-wrap:anywhere;color:var(--accent)}.token-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}.token-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.runs-scroll{overflow-x:auto;margin-top:12px}.runs-list{list-style:none;margin:0;padding:0;min-width:460px}.runs-head,.runs-row{display:grid;grid-template-columns:minmax(120px,1.7fr) repeat(5,minmax(52px,.8fr));gap:12px;align-items:center;padding:11px 14px}.runs-head{font-size:13px;color:var(--muted);border-bottom:1px solid var(--border)}.runs-row{color:var(--fg);border:1px solid var(--border);border-radius:8px;margin-top:8px}.runs-row:hover{border-color:var(--muted);background:var(--surface)}.run-when{display:flex;align-items:center;gap:8px}.onboarding{list-style:none;margin:var(--gap) 0 0;padding:0;display:grid;gap:var(--gap)}.step{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.step h3{margin:0 0 4px;font-size:1rem}.step p{margin:0}.step-mark{flex:none;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:600;font-size:13px;color:var(--muted);border:1px solid var(--border-control)}.step.current{border-color:var(--accent)}.step.current .step-mark{color:var(--accent-fg);background:var(--accent);border-color:var(--accent)}.step.done .step-mark{color:var(--bg);background:var(--ok);border-color:var(--ok)}.step.later{opacity:.75}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--gap);top:-100px;z-index:10;padding:10px 14px;color:var(--accent-fg);background:var(--accent);border-radius:8px;text-decoration:none}.skip-link:focus-visible{top:var(--gap)}.dot{width:8px;height:8px;border-radius:50%;flex:none}.run-state{flex:none;font-weight:600}.dot.ok{background:var(--ok)}.dot.bad{background:var(--danger)}.num-ok{color:var(--ok)}.num-bad{color:var(--danger)}.runs-more{margin-top:14px;text-align:center}a.wordmark{color:var(--fg)}.nav .back{margin-left:auto}.run-meta{margin:0 0 16px;overflow-wrap:anywhere}.run-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;font-weight:500;margin-bottom:20px}.num-warn{color:var(--warn)}.eval{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px;background:var(--surface)}.eval-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.badge{font:600 11px var(--mono);padding:2px 7px;border-radius:6px}.badge.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent)}.badge.bad{color:var(--danger);background:color-mix(in srgb,var(--danger) 15%,transparent)}.row-card{margin-top:12px;padding:12px;border-radius:8px;background:var(--bg);border-left:3px solid var(--border)}.row-card.failed{border-left-color:var(--danger)}.row-card.errored{border-left-color:var(--warn)}.row-status{font:600 12px var(--mono);margin-bottom:8px}.row-card.failed .row-status{color:var(--danger)}.row-card.errored .row-status{color:var(--warn)}.kv{margin:8px 0}.kv>.small{display:block;margin-bottom:3px}.code-block{margin:0;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;font:12px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto}.code-block.err{color:var(--danger)}.assertions{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:13px}.reason{overflow-wrap:anywhere}.passed-count{margin-top:10px}.aggregates{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--gap);margin-bottom:24px}.agg{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.agg-value{font-size:22px;font-weight:600}.chart-block{margin-top:20px}.chart-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-weight:600}.chart{display:block;width:100%;height:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.chart-foot{display:flex;justify-content:space-between;margin-top:4px}.case-group{margin-top:20px}.case-group-head{font-size:14px;font-weight:600;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.case-group-head.unfiled{color:var(--muted);font-weight:500}.cases-list{list-style:none;margin:0;padding:0}.case-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 14px;margin-top:8px;color:var(--fg);border:1px solid var(--border);border-radius:8px}.case-row:hover{border-color:var(--muted);background:var(--surface)}.case-title{flex:1 1 200px;font-weight:500}.badge.type-manual,.badge.type-automated,.badge.type-eval{color:var(--muted);background:var(--surface-2)}.badge.status-draft{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.badge.status-active{color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent)}.badge.status-archived{color:var(--muted);border:1px solid var(--border)}.case-body h3{font-size:14px;margin:20px 0 8px}.steps{margin:0;padding-left:20px}.steps li{margin-bottom:12px}.field{display:flex;flex-direction:column;gap:6px;margin-top:14px;flex:1 1 200px}.field-label{font-size:13px;color:var(--muted)}.field-inline{flex-direction:row;align-items:center;gap:8px}.field-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.textarea{font:inherit;resize:vertical;min-height:64px}.assertion-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-top:12px;background:var(--surface)}.form-problems{margin-top:16px;padding:10px 14px;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:14px}.form-problems ul,ul.form-problems{padding-left:18px;margin:0}.form-actions{display:flex;gap:10px;margin-top:22px}.textarea.mono{font-family:var(--mono);font-size:13px}.suite-create{margin:16px 0 8px}.suite-tree{list-style:none;margin:0;padding:0}.suite-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;margin-top:8px;border:1px solid var(--border);border-radius:8px}.suite-name{font-weight:500;flex:1 1 160px}.suite-name-input{flex:1 1 160px}.suite-move{width:auto;max-width:220px;font-size:13px;padding:4px 8px}.case-line{display:flex;align-items:center;gap:10px}.case-line .case-row{flex:1 1 auto}.case-move{width:auto;max-width:200px;font-size:13px;padding:4px 8px;margin-top:8px}.verdicts{margin:6px 0 4px 18px;padding-left:10px;border-left:2px solid var(--border)}.verdicts-head{margin-bottom:3px}.verdicts ul{list-style:none;margin:0;padding:0}.verdict{font-size:13px;line-height:1.5}.verdict.ok{color:var(--muted)}.verdict.bad{color:var(--danger)}.review-card{border:1px solid var(--border);border-radius:8px;padding:14px;margin-top:12px;background:var(--surface)}.review-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.review-head .case-title{flex:1 1 200px;font-weight:500;color:var(--fg)}.review-card .form-actions{margin-top:12px}.run-grade{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 4px}.grade{font:700 20px/1 var(--mono);padding:6px 12px;border-radius:8px;background:var(--surface-2)}.grade-S,.grade-A{color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent)}.grade-B,.grade-C{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.grade-D,.grade-F{color:var(--danger);background:color-mix(in srgb,var(--danger) 15%,transparent)}.failure-groups{margin:18px 0}.failure-group{border:1px solid var(--border);border-radius:8px;margin-top:8px}.failure-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:0;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.failure-head:hover{background:var(--surface)}.failure-reason{flex:1 1 200px;font-family:var(--mono);font-size:13px}.failure-rows{padding:0 12px 10px 34px}.stability-stable{color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent)}.stability-flaky{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.stability-critical{color:var(--danger);background:color-mix(in srgb,var(--danger) 15%,transparent)}.proposal-detail summary{cursor:pointer;padding:6px 0}.proposal-detail ol{margin:4px 0 8px;padding-left:20px}.proposal-detail p{margin:4px 0}
