:root{--bg:#0f1216;--panel:#161b22;--line:#2a323d;--text:#d5dbe3;--dim:#7d8794;--accent:#4b9fff;--ok:#35c08a;--bad:#e5646b;--warn:#e0a44a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:13px/1.5 ui-sans-serif,system-ui,sans-serif}.app{grid-template-columns:340px 1fr;min-height:100vh;display:grid}.fatal{color:var(--bad);padding:2rem}.knobs{border-right:1px solid var(--line);background:var(--panel);max-height:100vh;padding:16px;overflow-y:auto}.knobs h1{margin:0;font-size:15px}.sub{color:var(--dim);margin:2px 0 14px;font-size:11px}fieldset{border:1px solid var(--line);border-radius:6px;margin:0 0 12px;padding:10px}legend{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;padding:0 4px;font-size:11px}label.row{grid-template-columns:1fr 148px;align-items:center;gap:8px;margin:5px 0;font-size:12px;display:grid}label.check{align-items:center;gap:6px;margin:4px 0;font-size:12px;display:flex}label.check.indent{padding-left:16px}input,select{color:var(--text);border:1px solid var(--line);font:inherit;background:#0d1117;border-radius:4px;width:100%;padding:4px 6px;font-size:12px}input[type=checkbox]{width:auto;accent-color:var(--accent)}.group-label{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 4px;font-size:10px}.hint{color:var(--dim);margin:6px 0;font-size:11px}.hint.inline{margin:0 0 0 4px}.err{color:var(--bad);word-break:break-word;font-size:11px}.run{background:var(--accent);color:#05070a;width:100%;font:inherit;cursor:pointer;border:0;border-radius:5px;padding:9px;font-weight:600}.run:disabled{opacity:.55;cursor:default}main{padding:16px 20px;overflow-x:auto}.empty{color:var(--dim)}.empty.big{text-align:center;margin-top:20vh;font-size:15px}.summary{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:10px;display:flex}.mono,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dim{color:var(--dim)}.badge{background:var(--line);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.badge.s-FULL_PLAN{background:var(--ok);color:#05130d}.badge.s-DEGRADED_PLAN,.badge.s-PARTIAL_PLAN,.badge.warn{background:var(--warn);color:#1a1204}.badge.s-REJECTED,.badge.s-REVIEW_REQUIRED{background:var(--bad);color:#1a0507}.chips{flex-wrap:wrap;gap:5px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--line);color:var(--dim);border-radius:10px;padding:2px 7px;font-size:11px}.chip.ok{border-color:var(--ok);color:var(--ok)}.chip.bad{border-color:var(--bad);color:var(--bad)}.chip.warn{border-color:var(--warn);color:var(--warn)}.dag-wrap{border:1px solid var(--line);background:#0d1117;border-radius:6px;padding:6px;overflow-x:auto}.dag{display:block}.dag-wave{fill:var(--dim);text-anchor:middle;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.edge{fill:none;stroke:#3b4654;stroke-width:1.4px;color:#3b4654}.edge-cond{stroke-dasharray:4 3}.node{cursor:pointer}.node rect{fill:#171d26;stroke:var(--line);stroke-width:1.4px}.node-internal rect{stroke:var(--ok)}.node-external rect{stroke:var(--accent)}.node-cond rect{stroke-dasharray:5 3}.node-sel rect{fill:#1e2734;stroke-width:2.4px}.node:hover rect{fill:#1c242f}.node-id{fill:var(--text);font-size:12px;font-weight:600}.node-meta{fill:var(--dim);font-size:10.5px}.node-badge{fill:var(--warn);text-anchor:end;text-transform:uppercase;letter-spacing:.05em;font-size:9.5px}.details{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.details h2{margin:0 0 8px;font-size:14px}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));align-items:start;gap:18px;display:grid}table.kv{border-collapse:collapse;width:100%;font-size:11.5px}table.kv td{vertical-align:top;padding:2px 8px 2px 0}table.kv td:first-child{color:var(--dim);white-space:nowrap}table.kv .num{text-align:right;font-family:ui-monospace,monospace}table.kv .pos{color:var(--ok)}table.kv .neg{color:var(--bad)}pre{border:1px solid var(--line);background:#0d1117;border-radius:5px;max-height:320px;margin:0;padding:8px;font-size:11px;overflow:auto}.tabs{gap:6px;margin-bottom:12px;display:flex}.tabs button{color:var(--dim);border:1px solid var(--line);font:inherit;cursor:pointer;background:#0d1117;border-radius:5px;flex:1;padding:6px;font-size:12px}.tabs button.on{color:var(--text);border-color:var(--accent);background:#16202c}button.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:10px}ul.history{margin:0;padding:0;list-style:none}ul.history li{border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex}ul.history li.on{background:#16202c}.hist-open{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:7px;padding:5px 2px;font-size:11px;display:flex}.hist-open:hover{color:var(--accent)}.hist-mode{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.dot{background:var(--line);border-radius:50%;flex:none;width:7px;height:7px}.dot.s-FULL_PLAN{background:var(--ok)}.dot.s-DEGRADED_PLAN,.dot.s-PARTIAL_PLAN{background:var(--warn)}.dot.s-REJECTED,.dot.s-REVIEW_REQUIRED{background:var(--bad)}.page-title{margin:0;font-size:15px}.filter{max-width:260px}.run.small{width:auto;padding:5px 12px;font-size:12px}table.fixtures{border-collapse:collapse;width:100%;font-size:12px}table.fixtures th{text-align:left;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:6px 8px 6px 0;font-size:10px;font-weight:500}table.fixtures td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 8px 7px 0}table.fixtures tr.row-ok td:first-child{box-shadow:inset 3px 0 0 var(--ok);padding-left:8px}table.fixtures tr.row-bad td:first-child{box-shadow:inset 3px 0 0 var(--bad);padding-left:8px}.fx-case{font-weight:600}.fx-tags{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.chip.tiny{padding:1px 5px;font-size:9.5px}.fx-actions{white-space:nowrap}.fx-actions button{color:var(--text);border:1px solid var(--line);font:inherit;cursor:pointer;background:#0d1117;border-radius:4px;margin-left:4px;padding:3px 9px;font-size:11px}.fx-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.fx-actions button:disabled{opacity:.5;cursor:default}.small{font-size:11px}
