:root{--bg: #0e1116;--bg-panel: #161b22;--bg-raised: #1c2430;--bg-input: #0b0e13;--line: #2a3441;--line-soft: #202833;--text: #e6edf3;--text-dim: #9aa7b4;--text-faint: #6b7886;--accent: #4c9aff;--accent-dim: #2f5f9e;--ok: #3fb950;--warn: #d29922;--bad: #f85149;--cause-client: #f0883e;--cause-gateway-offline: #a371f7;--cause-gateway: #d29922;--cause-split: #f85149;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:var(--text);background:var(--bg-raised);border:1px solid var(--line);border-radius:6px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent-dim);background:#222c3a}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent-dim);border-color:var(--accent)}button.primary:hover:not(:disabled){background:#3a72bd}button.ghost{background:transparent;border-color:transparent;color:var(--text-dim);padding:4px 8px}button.ghost:hover:not(:disabled){color:var(--text);background:var(--bg-raised)}input,select{font:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:5px;padding:5px 8px;width:100%}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}input[type=range]{padding:0;background:transparent;border:none;accent-color:var(--accent)}input.invalid{border-color:var(--bad)}a{color:var(--accent)}.app{display:grid;grid-template-rows:auto 1fr;height:100%}.topbar{display:flex;align-items:center;flex-wrap:nowrap;min-width:0;gap:10px 16px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg-panel)}.topbar h1{font-size:15px;margin:0;letter-spacing:.02em;white-space:nowrap;flex-shrink:0}.topbar button,.topbar select,.topbar label{white-space:nowrap;flex-shrink:0}.topbar .spacer{flex:1;min-width:0}.topbar .msg{min-width:0;flex-shrink:100;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .pill{white-space:nowrap;flex-shrink:0}@media(max-width:1280px){.topbar{flex-wrap:wrap}}.scenario-name{color:var(--text-dim);font-size:13px;border-left:1px solid var(--line);padding-left:16px;min-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body{display:grid;grid-template-columns:320px 1fr;min-height:0}.sidebar{border-right:1px solid var(--line);background:var(--bg-panel);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.main{min-width:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.main>*{flex-shrink:0}@media(max-width:900px){.body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line);max-height:45vh}}.panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:8px;padding:12px}.panel>h2{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-weight:600}.sidebar .panel{background:var(--bg-raised)}.row{display:flex;align-items:center;gap:8px}.field{display:grid;gap:4px;margin-bottom:8px}.field label{font-size:12px;color:var(--text-dim)}.hint{font-size:12px;color:var(--text-faint)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:600;color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;border-bottom:1px solid var(--line)}td{padding:5px 8px;border-bottom:1px solid var(--line-soft)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}tr.selected td{background:#1b2838}.scroll-x{overflow-x:auto}.pill{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid}.pill.ok{color:var(--ok);border-color:#234d2c;background:#132b18}.pill.bad{color:var(--bad);border-color:#5c2326;background:#2d1416}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:12px}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--text-dim);padding:7px 12px}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.errors{border:1px solid #5c2326;background:#1e1214;border-radius:8px;padding:10px 12px}.errors h3{margin:0 0 6px;font-size:13px;color:var(--bad)}.errors code{font-family:var(--mono);font-size:12px;color:var(--cause-client)}.errors li{margin-bottom:4px}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--text-dim)}.legend span{display:inline-flex;align-items:center;gap:5px}.swatch{width:11px;height:11px;border-radius:2px;display:inline-block}.empty{color:var(--text-faint);font-size:13px;padding:8px 0}.busy{color:var(--accent);font-size:12px}button.help{border-color:var(--accent-dim);color:var(--accent);font-weight:600}button.help:hover:not(:disabled){background:var(--bg-raised);border-color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:#05080cb8}.modal{display:flex;flex-direction:column;max-height:100%;max-width:860px;width:100%;background:var(--bg-panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 48px #0000008c}.modal:focus{outline:none}.guide-head,.guide-foot{display:flex;align-items:center;gap:12px;padding:14px 20px;flex-shrink:0}.guide-head{border-bottom:1px solid var(--line)}.guide-head h2{margin:0;flex:1;font-size:17px}.guide-foot{border-top:1px solid var(--line)}.guide-body{overflow-y:auto;padding:4px 20px 16px;font-size:14px;line-height:1.55}.guide-body section{padding:14px 0;border-bottom:1px solid var(--line-soft)}.guide-body section:last-child{border-bottom:none}.guide-body h3{margin:0 0 8px;font-size:14px;color:var(--accent)}.guide-body p{margin:8px 0;color:var(--text-dim)}.guide-body b{color:var(--text);font-weight:600}.guide-body ol,.guide-body ul{margin:8px 0;padding-left:22px;color:var(--text-dim)}.guide-body li{margin:5px 0}.guide-body dl{margin:8px 0}.guide-body dt{color:var(--text);font-weight:600;margin-top:10px}.guide-body dd{margin:3px 0 0;color:var(--text-dim)}.guide-body code{font-family:var(--mono);font-size:12.5px;background:var(--bg-input);border:1px solid var(--line-soft);border-radius:3px;padding:1px 4px}.guide-body .note{border-left:2px solid var(--accent-dim);padding-left:10px;color:var(--text-faint)}.guide-body ul.swatches{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 14px}.guide-body ul.swatches li{display:flex;align-items:center;gap:7px;margin:0}.scrub{margin-top:8px}.scrub input[type=range]{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:block;width:100%;margin:0;height:14px;background:transparent;cursor:pointer}.scrub input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--line)}.scrub input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}.scrub input[type=range]::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--text);border:none}.scrub input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--text);border:none}.scrub input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stale{margin:0 0 12px;padding:8px 10px;border-left:3px solid var(--warn);background:#d2992214;color:var(--text-dim);font-size:13px}.lanes{display:flex;align-items:flex-start}.lanes-labels{position:relative;flex:0 0 54px}.lanes-plot{flex:1 1 auto;min-width:0}button.lane-name{position:absolute;left:0;width:46px;padding:0;display:flex;align-items:center;background:none;border:none;color:var(--text-dim);font-size:12px;cursor:pointer}button.lane-name.selected{color:var(--text);font-weight:600}button.lane-name:hover{color:var(--text)}
