@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Dwzd0TKx.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal--EtKVqC7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BKTgBNmI.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-DDbeQdWO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-DkTWoOHj.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-DXKoNrs9.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-BriLmxM2.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-CVvOgo6s.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #edf0f3;--surface: #ffffff;--sunken: #f5f7f9;--ink: #14213d;--ink-2: #4a5a72;--ink-3: #7b8799;--line: #d3dae3;--accent: #0e7c86;--accent-strong: #0a5f67;--accent-ink: #ffffff;--danger: #b3261e;--green: #2e9e4f;--yellow: #e0b400;--orange: #e87d1e;--red: #c62828;--chrome: #14213d;--stage-top: #f7f9fb;--stage-bottom: #dfe6ed;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 0 rgba(20, 33, 61, .04), 0 6px 20px -12px rgba(20, 33, 61, .25);color-scheme:light}:root[data-theme=dark]{--paper: #0f1623;--surface: #172033;--sunken: #121a2a;--ink: #e8edf5;--ink-2: #aab6c8;--ink-3: #7d8aa0;--line: #2a3650;--accent: #35b5c0;--accent-strong: #5fd0da;--accent-ink: #06222a;--danger: #ff8a80;--chrome: #0a101c;--stage-top: #1b2640;--stage-bottom: #0f1727;--shadow: none;color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0f1623;--surface: #172033;--sunken: #121a2a;--ink: #e8edf5;--ink-2: #aab6c8;--ink-3: #7d8aa0;--line: #2a3650;--accent: #35b5c0;--accent-strong: #5fd0da;--accent-ink: #06222a;--danger: #ff8a80;--stage-top: #1b2640;--stage-bottom: #0f1727;--shadow: none;--chrome: #0a101c;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.5 Atkinson Hyperlegible,system-ui,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.2;font-weight:700;letter-spacing:-.01em}h1{font-size:26px}h2{font-size:18px}h3{font-size:15px}p{margin:0}a{color:var(--accent-strong)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}.muted{color:var(--ink-2)}.small{font-size:13px}.nowrap{white-space:nowrap}.right{text-align:right}.mt{margin-top:14px}.mt-s{margin-top:8px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{display:grid;gap:12px}label.field{display:grid;gap:4px;font-size:13px;color:var(--ink-2)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;min-height:38px;width:100%}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--accent)}input[type=range]{padding:0;min-height:24px;border:0;background:transparent;accent-color:var(--accent)}textarea{min-height:80px;resize:vertical;font-family:ui-monospace,Consolas,monospace;font-size:13px}button{font:inherit;font-weight:700;cursor:pointer;border-radius:var(--radius-sm);min-height:38px;padding:7px 14px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}button:hover:not(:disabled){border-color:var(--ink-3)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}button.quiet{border-color:transparent;background:transparent;color:var(--ink-2)}button.small{min-height:30px;padding:3px 10px;font-size:13px}.shell{display:grid;grid-template-columns:218px 1fr;min-height:100%}.rail{background:var(--chrome);color:#dfe6f1;padding:18px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;font-weight:700;font-size:16px;color:#fff}.brand svg{flex:none}.rail a.nav{display:block;padding:9px 12px;border-radius:var(--radius-sm);color:#c5d0e0;text-decoration:none;font-weight:700;border-left:3px solid transparent}.rail a.nav:hover{background:#ffffff12;color:#fff}.rail a.nav[aria-current=page]{background:#ffffff1a;color:#fff;border-left-color:#5fd0da}.rail .who{margin-top:auto;padding:12px 8px 0;border-top:1px solid rgba(255,255,255,.14);font-size:13px;color:#aab6c8;display:grid;gap:6px}.rail .who b{color:#fff;font-size:14px}.rail .who button{background:transparent;color:#dfe6f1;border-color:#ffffff40;min-height:32px;font-size:13px}.content{padding:22px 26px 40px;min-width:0;max-width:1500px;width:100%}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.sheet>header{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.sheet>.body{padding:14px 16px}.empty{padding:28px 16px;color:var(--ink-2);text-align:center}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;font-weight:700;color:var(--ink-2);font-size:13px;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--sunken)}td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right}tr.link{cursor:pointer}tr.link:hover td{background:var(--sunken)}.scroll-x{overflow-x:auto}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--sunken);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}.pill i{width:8px;height:8px;border-radius:50%;background:var(--ink-3);display:inline-block}.pill.ok i{background:var(--green)}.pill.ok{color:var(--ink)}.pill.warn i{background:var(--orange)}.pill.warn{color:var(--ink)}.pill.bad i{background:var(--red)}.pill.bad{color:var(--ink)}.lvl{display:inline-block;padding:1px 9px;border-radius:4px;font-weight:700;font-size:13px;color:#fff}.lvl.green{background:var(--green)}.lvl.yellow{background:var(--yellow);color:#1b1b1b}.lvl.orange{background:var(--orange)}.lvl.red{background:var(--red)}.notice{padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--sunken);font-size:14px}.notice.warn{border-color:color-mix(in srgb,var(--orange) 55%,var(--line));background:color-mix(in srgb,var(--orange) 10%,var(--surface))}.notice.bad{border-color:color-mix(in srgb,var(--red) 55%,var(--line));background:color-mix(in srgb,var(--red) 9%,var(--surface))}.notice.ok{border-color:color-mix(in srgb,var(--green) 55%,var(--line));background:color-mix(in srgb,var(--green) 9%,var(--surface))}.live{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;align-items:start}.stage-wrap{position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:linear-gradient(180deg,var(--stage-top),var(--stage-bottom));box-shadow:var(--shadow)}.sticky{position:sticky;top:16px}.stage{height:min(66vh,640px);min-height:380px}.stage canvas{cursor:grab;touch-action:none}.stage-fail{padding:40px;text-align:center;color:var(--ink-2)}.stage-overlay{position:absolute;pointer-events:none}.stage-overlay>*{pointer-events:auto}.stage-overlay.tl{top:14px;left:14px;display:flex;gap:6px;flex-wrap:wrap;max-width:75%}.stage-overlay.tr{top:12px;right:12px}.stage-overlay.bl{left:16px;bottom:14px}.score{display:flex;align-items:center;gap:14px}.score .n{width:74px;height:74px;border-radius:16px;display:grid;place-items:center;font-size:44px;font-weight:700;color:#fff;background:var(--ink-3);transition:background .3s}.score .n.green{background:var(--green)}.score .n.yellow{background:var(--yellow);color:#1b1b1b}.score .n.orange{background:var(--orange)}.score .n.red{background:var(--red)}.score .t b{font-size:18px;display:block}.stage-msg{position:absolute;inset:auto 0 76px 0;text-align:center;pointer-events:none}.stage-msg span{display:inline-block;background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--line);border-radius:999px;padding:6px 16px;font-weight:700}.angles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 28px;padding:12px 16px 14px}.angle{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:baseline;padding:4px 0}.angle .bar{grid-column:1 / -1;height:5px;background:var(--sunken);border-radius:3px;position:relative;overflow:hidden;border:1px solid var(--line)}.angle .bar b{position:absolute;top:0;bottom:0;background:var(--accent)}.angle .bar b.hi{background:var(--orange)}.angle .v{font-weight:700}.side{display:grid;gap:14px}.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:14px}.kv dt{color:var(--ink-2)}.kv dd{margin:0;font-weight:700;text-align:right}.timer{font-size:34px;font-weight:700;letter-spacing:.01em}.alert-item{border:1px solid var(--line);border-left:5px solid var(--orange);border-radius:var(--radius-sm);padding:8px 12px;display:grid;gap:4px;background:var(--surface)}.alert-item.red{border-left-color:var(--red)}.alert-item.done{border-left-color:var(--line);opacity:.8}.levelbar{display:flex;height:22px;border-radius:5px;overflow:hidden;border:1px solid var(--line)}.levelbar span{display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;min-width:0;overflow:hidden}.levelbar .green{background:var(--green)}.levelbar .yellow{background:var(--yellow);color:#1b1b1b}.levelbar .orange{background:var(--orange)}.levelbar .red{background:var(--red)}.auth{min-height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.auth .hero{background:var(--chrome);color:#dfe6f1;padding:48px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.auth .hero h1{color:#fff;font-size:34px;max-width:14ch}.auth .hero p{max-width:38ch;color:#b9c5d8}.auth .form{display:grid;place-items:center;padding:32px}.auth form{width:min(380px,100%);display:grid;gap:14px}.qr{display:grid;place-items:center;padding:10px;background:#fff;border-radius:8px;border:1px solid var(--line);width:fit-content;margin:0 auto}.secret{font-family:ui-monospace,Consolas,monospace;letter-spacing:.08em;word-break:break-all;font-size:13px;background:var(--sunken);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a101e80;display:grid;place-items:center;padding:16px;z-index:50}.modal{background:var(--surface);border-radius:var(--radius);width:min(560px,100%);max-height:92vh;overflow:auto;border:1px solid var(--line)}.modal>header{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal>.body{padding:16px 18px}.modal>footer{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.toasts{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:60;width:min(380px,calc(100vw - 32px))}.toast{background:var(--chrome);color:#fff;border-radius:var(--radius-sm);padding:10px 14px;border-left:5px solid #5fd0da;box-shadow:0 10px 30px -10px #00000080}.toast.error{border-left-color:#ff6b61}.toast.alert{border-left-color:var(--orange)}.toast.alert.red{border-left-color:var(--red)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:start}@media (max-width: 1100px){.live{grid-template-columns:1fr}}@media (max-width: 800px){.shell{grid-template-columns:1fr}.rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.rail .who{margin:0 0 0 auto;border:0;padding:0;display:flex;align-items:center}.brand{padding:4px 8px}.content{padding:16px}.auth{grid-template-columns:1fr}.auth .hero{padding:24px}.auth .hero h1{font-size:24px}.two{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.health{list-style:none;margin:0;padding:0;display:grid;gap:2px}.health li{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;font-size:14px}.health li i{width:10px;height:10px;border-radius:50%;background:var(--ink-3)}.health li.ok i{background:var(--green)}.health li.warn i{background:var(--orange)}.health li.bad{background:color-mix(in srgb,var(--red) 10%,transparent)}.health li.bad i{background:var(--red)}.health .st{color:var(--ink-2);font-size:13px}.health li.bad .st{color:var(--ink);font-weight:700}.pwd{position:relative;display:block}.pwd input{width:100%;padding-right:44px}.pwd .eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;padding:0;display:grid;place-items:center;background:transparent;border:0;color:var(--ink-2);border-radius:6px;cursor:pointer}.pwd .eye:hover{background:var(--sunken);color:var(--ink)}
