:root{color-scheme:dark;--bg: #10151b;--panel: #1a212b;--panel-2: #222b37;--line: #2f3a47;--text: #e8edf2;--muted: #a3afbd;--accent: #6fd6c4;--accent-ink: #06211c;--good: #6fd6a0;--bad: #ff8f80;--warn: #e9b872;--danger: #c9483a;--radius: 14px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.55 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.15;letter-spacing:-.02em;margin:0 0 .6rem}h2{font-size:1.3rem;margin:0 0 .7rem;letter-spacing:-.01em}h3{font-size:1.05rem;margin:1.1rem 0 .4rem}.card h3:first-child{margin-top:0}p{margin:0 0 .8rem}a{color:var(--accent)}code,.mono{font-family:ui-monospace,Cascadia Code,Menlo,Consolas,monospace}code{background:var(--panel-2);padding:.1em .35em;border-radius:5px;font-size:.92em;overflow-wrap:anywhere}hr{border:0;border-top:1px solid var(--line);margin:1.2rem 0}small,.small{font-size:.86rem}.muted{color:var(--muted)}.good{color:var(--good)}.bad{color:var(--bad)}.center{text-align:center}em{font-style:normal;color:var(--muted)}.topbar{display:flex;align-items:center;gap:1.2rem;padding:.8rem clamp(1rem,4vw,2.2rem);border-bottom:1px solid var(--line);position:sticky;top:0;background:#10151bf2;z-index:20;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:650;color:var(--text);text-decoration:none;letter-spacing:-.01em}.brand.big{font-size:1.1rem;margin-bottom:1.6rem}.brand-dot{width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #6fd6c433}.topbar nav{display:flex;align-items:center;gap:.3rem;flex:1;flex-wrap:wrap}.topbar nav a{color:var(--muted);text-decoration:none;padding:.35rem .7rem;border-radius:8px}.topbar nav a:hover{color:var(--text)}.topbar nav a.active{color:var(--text);background:var(--panel)}.who{margin-left:auto;display:inline-flex;gap:.8rem;align-items:center}.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.25rem .6rem;font-size:1.1rem;min-height:40px;min-width:44px;cursor:pointer}.banner{background:#3a2f18;color:#f2dcb4;padding:.5rem clamp(1rem,4vw,2.2rem);font-size:.92rem}.page{max-width:1120px;margin:0 auto;padding:clamp(1.2rem,3vw,2.2rem) clamp(1rem,4vw,2.2rem) 4rem;display:flex;flex-direction:column;gap:1.1rem}.page.narrow{max-width:760px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1rem,2.5vw,1.5rem);min-width:0}.empty{color:var(--muted);padding:2rem 1rem;text-align:center}.row{display:flex;align-items:center;gap:.7rem}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end;flex-wrap:wrap;margin-top:1rem}.stack{display:flex;flex-direction:column;gap:.8rem;margin:1rem 0}.stack-lg{display:flex;flex-direction:column;gap:1.6rem;margin-top:1rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1.05rem;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;font-weight:550;cursor:pointer;text-decoration:none}.btn:hover:not(:disabled){border-color:#4b5a6b;background:#2a3543}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn.primary:hover:not(:disabled){background:#86e0d0}.btn.danger{background:#3a1d1a;border-color:#6d2d27;color:#ffc9c2}.btn.danger:hover:not(:disabled){background:#4a221e;border-color:#8a3a32}.btn.big{font-size:1.1rem;min-height:52px;padding:.6rem 1.6rem}.btn.wide{width:100%}.link{background:none;border:none;color:var(--accent);font:inherit;cursor:pointer;padding:.3rem 0;text-decoration:underline;text-underline-offset:3px;min-height:32px}.link:disabled{opacity:.5;cursor:not-allowed}.link.bad{color:var(--bad)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem;color:var(--muted);margin-bottom:.8rem;min-width:0}label.inline{flex-direction:row;align-items:center;gap:.5rem;margin:0}input:not([type=checkbox]),select{font:inherit;color:var(--text);background:#10151b;border:1px solid var(--line);border-radius:9px;padding:.55rem .7rem;min-height:44px;width:100%}input.wide{width:100%}label.check{flex-direction:row;align-items:flex-start;gap:.6rem;color:var(--text);font-size:1rem;margin:0}label.check input{width:20px;height:20px;margin-top:.2rem;accent-color:var(--accent);flex:none}.toggle{flex-direction:row;align-items:flex-start;gap:.7rem;margin:0;cursor:pointer;color:var(--text);font-size:1rem}.toggle.disabled{opacity:.55;cursor:not-allowed}.toggle input{position:absolute;opacity:0;width:44px;height:26px;margin:0;cursor:inherit}.switch{flex:none;width:44px;height:26px;background:#3a4655;border-radius:13px;position:relative;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .15s}.toggle input:checked+.switch{background:var(--accent)}.toggle input:checked+.switch:after{transform:translate(18px)}.toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}.toggle-text{display:flex;flex-direction:column;min-width:0}.toggle-text strong{font-weight:500}.toggle-text small{color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.18rem .65rem;border-radius:999px;font-size:.84rem;background:var(--panel-2);border:1px solid var(--line);white-space:nowrap}.pill.live{background:#123a2f;border-color:#1d5a48;color:#a7ecd8}.pill.sim{background:#3a2f18;border-color:#5e4c26;color:#f2dcb4;white-space:normal}.pill.off{color:var(--muted)}.pill.bad-pill{background:#3a1d1a;border-color:#6d2d27;color:#ffc9c2;white-space:normal}.pill.source{font-size:1rem;font-weight:600;background:transparent;border:none;padding:0}.pill.sev-critical{background:#3a1d1a;border-color:#6d2d27;color:#ffc9c2}.pill.sev-high{background:#3a2a18;border-color:#66492a;color:#f5cf9f}.pill.camera{background:#3a1d1a;border-color:#6d2d27;color:#ffc9c2}.pill.camera i{width:9px;height:9px;border-radius:50%;background:#ff6b5e;animation:blink 1.4s infinite}.pill.dec-approved,.pill.dec-fallback_approved,.pill.dec-practice_passed{background:#123a2f;border-color:#1d5a48;color:#a7ecd8}.pill.dec-denied{background:#3a1d1a;border-color:#6d2d27;color:#ffc9c2}@keyframes blink{50%{opacity:.35}}.note{background:var(--panel-2);border-left:3px solid var(--accent);padding:.65rem .85rem;border-radius:6px;margin:.7rem 0}.note.warn{border-left-color:var(--warn)}.note.good-note{border-left-color:var(--good)}.error{color:var(--bad);margin:0 0 .7rem}.hint{color:var(--warn);margin:.4rem 0 0}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,4rem);align-items:center;max-width:1020px;margin:0 auto;padding:clamp(1.2rem,4vw,3rem)}.login-intro p{font-size:1.08rem}.login-card input{font-size:1rem}.hero{padding:clamp(.5rem,3vw,1.4rem) 0;max-width:820px}.hero h1{font-size:clamp(2rem,5.5vw,3.2rem)}.lead{font-size:1.15rem;color:#c9d3de}.how{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.how figure{margin:0;display:flex;flex-direction:column;gap:.6rem}.how img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:12px;display:block}.how figcaption{display:flex;flex-direction:column;gap:.15rem}.login-art{width:100%;height:auto;aspect-ratio:16 / 7;object-fit:cover;border-radius:var(--radius);margin-bottom:1.2rem;display:block}.command-form{display:flex;gap:.7rem;flex-wrap:wrap}.command-form input{flex:1 1 320px;width:auto}.chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}.chip{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:.35rem .6rem;font-size:.84rem;cursor:pointer;min-height:36px;overflow-wrap:anywhere;text-align:left}.chip:hover{color:var(--text);border-color:#4b5a6b}ul.plain{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.3rem}.steps{list-style:none;padding:0;margin:0;display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.92rem;counter-reset:s}.steps li{counter-increment:s}.steps li:before{content:counter(s) ". "}.steps li.current{color:var(--text);font-weight:600}.steps li.done{color:var(--good)}.prose h3{margin-top:1rem}.prose p{color:#cbd5df}.calibration{min-height:3rem;display:flex;align-items:center;font-size:1.15rem;margin:.4rem 0 1rem}.command{background:#0b0f14;border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;margin:.8rem 0 .5rem;font-size:clamp(1rem,2.6vw,1.35rem);white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;color:#fff}.reason{margin:0}.gate-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1.1rem;align-items:stretch}.pacer-card{display:flex;flex-direction:column;justify-content:center}.pacer{position:relative;width:min(100%,320px);aspect-ratio:1;margin:0 auto;display:grid;place-items:center}.pacer-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid #6fd6c433}.pacer-circle{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 50% 42%,#7fe0cf,#2c8f7f 72%);opacity:.85;transform:scale(.5);will-change:transform}.pacer-text{position:relative;text-align:center;color:#fff;text-shadow:0 1px 8px #000a;padding:0 1rem}.pacer-word{font-size:clamp(1.4rem,4vw,1.9rem);font-weight:650;min-height:1.3em}.pacer-sub{font-size:.95rem;min-height:1.4em}.wave{margin:0}.wave canvas{width:100%;height:240px;display:block}.wave figcaption,.legend-row{display:flex;gap:1.2rem;flex-wrap:wrap;color:var(--muted);font-size:.88rem;margin-top:.4rem}.key{display:inline-flex;align-items:center;gap:.45rem}.key i{display:inline-block;width:22px}.legend-row .key i{width:10px}.presence{display:flex;align-items:center;gap:.55rem;margin-top:.7rem;color:var(--muted)}.pulse-dot{width:12px;height:12px;border-radius:50%;background:#3a4655}.pulse-dot.on{background:var(--accent);animation:blink 1.1s infinite}.controls{display:flex;flex-direction:column;gap:.8rem}.scenario{margin:0;max-width:560px}.verdict.pass{border-color:#1d5a48}.verdict.fail{border-color:#6d2d27}.scores{display:flex;flex-direction:column;gap:.7rem;margin:.8rem 0 1rem}.score-head{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;font-size:.95rem}.score-head small{color:var(--muted)}.bar{position:relative;height:8px;background:#10151b;border-radius:4px;margin-top:.3rem}.bar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px}.bar-fill.good{background:var(--good)}.bar-fill.bad{background:var(--bad)}.bar-fill.neutral{background:#6b7a8c}.bar-mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.94rem}th{text-align:left;color:var(--muted);font-weight:500;padding:.45rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:.5rem .6rem;border-bottom:1px solid #252e3a;vertical-align:middle}.detail{font-size:.8rem;background:#0b0f14;padding:.7rem;border-radius:8px;overflow-x:auto;margin:0}.rule-list{display:flex;flex-direction:column;gap:.7rem}.rule .pattern{display:block;margin:.6rem 0 .3rem;background:#10151b;padding:.5rem .6rem;font-size:.8rem;border-radius:7px;overflow-x:auto;white-space:nowrap}.test-box{background:var(--panel-2);padding:.8rem;border-radius:10px;margin-bottom:.9rem}.test-box label{margin-bottom:.4rem}.test-box div{min-height:1.5em;font-size:.94rem}.threshold-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1rem;margin-top:.6rem}.session-list{margin-top:1rem}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.tile{background:var(--panel-2);border-radius:10px;padding:.8rem .9rem;display:flex;flex-direction:column;gap:.15rem;min-width:0}.tile span{color:var(--muted);font-size:.88rem}.tile strong{font-size:1.7rem;letter-spacing:-.02em}.tile small{color:var(--muted)}.chart{min-width:0}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.segmented button{background:transparent;color:var(--muted);border:none;padding:.5rem .9rem;min-height:44px;font:inherit;cursor:pointer}.segmented button.on{background:var(--panel-2);color:var(--text)}.ranges{display:flex;flex-direction:column;gap:.5rem}.range-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) 4.5rem;gap:.7rem;align-items:center;font-size:.9rem}.range-track{position:relative;height:12px;background:#10151b;border-radius:4px}.range-bar{position:absolute;top:0;bottom:0;border-radius:4px}.range-median{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff}.range-value{text-align:right;color:var(--muted)}.toasts{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:60;width:min(92vw,520px)}.toast{background:#123a2f;color:#d7f7ec;border:1px solid #1d5a48;padding:.65rem .9rem;border-radius:10px;box-shadow:0 6px 24px #0008}.toast.error{background:#3a1d1a;color:#ffd9d4;border-color:#6d2d27}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;display:grid;place-items:center;padding:1rem;z-index:50}.modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;max-width:480px;width:100%}@media (max-width: 860px){.how{grid-template-columns:repeat(2,minmax(0,1fr))}.gate-grid,.grid-2,.grid-3,.login{grid-template-columns:minmax(0,1fr)}.login{min-height:0;align-items:start}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.topbar nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch}.topbar nav.open{display:flex}.who{margin-left:0;justify-content:space-between;padding:.35rem .7rem}.range-row{grid-template-columns:minmax(0,1fr) 4rem}.range-label{grid-column:1 / -1}.threshold-grid{grid-template-columns:minmax(0,1fr)}body{font-size:16px}}@media (prefers-reduced-motion: reduce){.pill.camera i,.pulse-dot.on{animation:none}}
