:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1115;--panel:#181b22;--panel2:#21252e;--panel3:#2a2f3a;--line:#313744;--text:#f3f5f9;--muted:#a3acbb;--faint:#6f7888;--us:#e0457b;--them:#2f8fe0;--good:#34c77b;--good-bg:#123524;--warn:#f2b53a;--warn-bg:#3a2c0c;--orange:#ff8a3d;--danger:#ff5a5a;--danger-bg:#3d1515;--info:#7cb2ff;--info-bg:#15263f;--radius:14px;--tap:72px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);margin:0}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%}input,textarea,select{-webkit-user-select:text;user-select:text}#root{min-height:100%}button{font-family:inherit}h1{margin:0 0 12px;font-size:28px}h2{margin:24px 0 12px;font-size:22px}h3{margin:16px 0 8px;font-size:18px}p{line-height:1.5}a{color:var(--info)}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:14px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grow,.spacer{flex:1}.num{font-variant-numeric:tabular-nums}.btn{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel2);min-width:56px;min-height:56px;color:var(--text);cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:19px;font-weight:650;transition:transform 60ms,background .12s;display:inline-flex}.btn:active{background:var(--panel3);transform:scale(.97)}.btn.big{min-height:var(--tap);font-size:22px}.btn.huge{letter-spacing:.02em;min-height:96px;font-size:28px;font-weight:800}.btn.primary{background:var(--good);border-color:var(--good);color:#06220f}.btn.danger{background:var(--danger);border-color:var(--danger);color:#2a0606}.btn.warn{background:var(--warn);border-color:var(--warn);color:#2b1d00}.btn.info{background:var(--info);border-color:var(--info);color:#061b38}.btn.ghost{background:0 0}.btn.us{background:var(--us);border-color:var(--us);color:#fff;text-shadow:0 1px 2px #0008}.btn.them{background:var(--them);border-color:var(--them);color:#fff;text-shadow:0 1px 2px #0008}.btn.on{outline:4px solid var(--text);outline-offset:-4px}.btn.dim{opacity:.45}.btn.small{min-height:44px;padding:0 14px;font-size:16px}.btn.flash{animation:.9s infinite flash}@keyframes flash{50%{filter:brightness(1.35)}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.pill{background:var(--panel3);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:14px;font-weight:600;display:inline-flex}.pill.good{background:var(--good-bg);color:var(--good)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.danger{background:var(--danger-bg);color:var(--danger)}.pill.info{background:var(--info-bg);color:var(--info)}input[type=text],input[type=number],input[type=date],input:not([type]),select,textarea{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:10px;width:100%;min-height:52px;padding:12px 14px;font-family:inherit;font-size:18px}textarea{min-height:120px}label.field{color:var(--muted);gap:6px;font-size:15px;font-weight:600;display:grid}.page{max-width:1100px;padding:max(16px, env(safe-area-inset-top)) 16px 80px;margin:0 auto}.topnav{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.brand{letter-spacing:-.01em;font-size:22px;font-weight:850}.brand b{color:var(--us)}.list{gap:10px;display:grid}.list-item{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;min-height:64px;padding:12px 14px;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.swatch{border:2px solid #fff3;border-radius:8px;flex:none;width:28px;height:28px}table.stats{border-collapse:collapse;width:100%;font-size:17px}table.stats th,table.stats td{border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;padding:10px 8px}table.stats th:first-child,table.stats td:first-child{text-align:left}table.stats th{color:var(--muted);background:var(--bg);font-size:14px;font-weight:650;position:sticky;top:0}.table-wrap{overflow-x:auto}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.n{color:var(--faint);margin-left:4px;font-size:13px}.bar{background:var(--panel3);border-radius:5px;height:10px;overflow:hidden}.bar>i{background:var(--info);height:100%;display:block}.live{height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.topbar{background:var(--panel);border-bottom:1px solid var(--line);grid-template-columns:96px 1fr auto 1fr 150px 72px;align-items:stretch;gap:8px;padding:8px;display:grid}.undo{flex-direction:column;gap:2px;min-height:80px;font-size:16px}.undo .ic{font-size:30px;line-height:1}.score{border-radius:var(--radius);color:#fff;cursor:pointer;border:none;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:0 16px;display:flex}.score.us{background:linear-gradient(90deg, var(--us), color-mix(in srgb, var(--us) 55%, var(--panel)))}.score.them{background:linear-gradient(270deg, var(--them), color-mix(in srgb, var(--them) 55%, var(--panel)));flex-direction:row-reverse}.score .team{text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px #0008;font-size:18px;font-weight:700;overflow:hidden}.score .pts{font-variant-numeric:tabular-nums;text-shadow:0 2px 4px #0006;font-size:48px;font-weight:850}.clocks{text-align:center;cursor:pointer;background:var(--panel2);border-radius:var(--radius);border:1px solid var(--line);min-width:190px;color:var(--text);align-content:center;padding:4px 12px;display:grid}.clocks .jam{font-variant-numeric:tabular-nums;font-size:44px;font-weight:850;line-height:1}.clocks .jam.over{color:var(--danger)}.clocks .label{color:var(--muted);font-size:14px;font-weight:650}.res{background:var(--panel2);border-radius:var(--radius);border:1px solid var(--line);color:var(--text);cursor:pointer;align-content:center;gap:2px;padding:6px 10px;font-size:14px;display:grid}.res b{font-size:16px}.body{grid-template-columns:1fr 290px;min-height:0;display:grid}.main{flex-direction:column;gap:10px;min-height:0;padding:10px;display:flex;overflow-y:auto}.rail{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;gap:8px;padding:10px;display:flex;overflow-y:auto}.alert{background:var(--panel2);border-radius:12px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:16px;font-weight:600;line-height:1.3;display:flex}.alert.danger{background:var(--danger-bg);color:#ffb3b3;border-left:5px solid var(--danger)}.alert.warn{background:var(--warn-bg);color:#ffd98a;border-left:5px solid var(--warn)}.alert.info{background:var(--info-bg);color:#bcd6ff;border-left:5px solid var(--info)}.alert.good{background:var(--good-bg);color:#9ff0c4;border-left:5px solid var(--good)}.alert .ic{text-align:center;flex:none;width:20px}.banner{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;font-size:19px;font-weight:700;display:flex}.banner.info{background:var(--info-bg);color:#cfe2ff}.banner.warn{background:var(--warn-bg);color:#ffe2a8}.banner.danger{background:var(--danger-bg);color:#ffc4c4}.slots{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.slot{border-radius:var(--radius);border:2px dashed var(--line);background:var(--panel);min-height:104px;color:var(--text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px;display:flex;position:relative}.slot .role{color:var(--muted);letter-spacing:.06em;font-size:14px;font-weight:750}.slot .sn{font-variant-numeric:tabular-nums;font-size:40px;font-weight:850;line-height:1}.slot .nm{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;overflow:hidden}.slot .why{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.slot.filled{background:var(--panel2);border-style:solid}.slot.suggested{border-style:dashed;border-color:var(--info);background:color-mix(in srgb, var(--info) 8%, var(--panel))}.slot.active{border-color:var(--text);box-shadow:0 0 0 3px var(--text) inset;border-style:solid}.slot.forced:after{content:"IN BOX";background:var(--warn);color:#2b1d00;border-radius:5px;padding:2px 5px;font-size:10px;font-weight:800;position:absolute;top:6px;right:6px}.slot.J .role{color:var(--us)}.tiles{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;display:grid}.tile{border-radius:var(--radius);background:var(--panel2);border:1px solid var(--line);min-height:96px;color:var(--text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 4px;display:flex;position:relative}.tile .sn{font-variant-numeric:tabular-nums;font-size:34px;font-weight:850;line-height:1}.tile .nm{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.tile .roles{color:var(--faint);font-size:11px;font-weight:750;position:absolute;top:5px;left:7px}.tile .rest{color:var(--faint);font-size:11px;font-weight:750;position:absolute;top:5px;right:7px}.tile.inlineup{background:color-mix(in srgb, var(--us) 30%, var(--panel2));border-color:var(--us)}.tile.out{opacity:.35;pointer-events:none}.tile.boxed{border-color:var(--warn)}.pips{gap:3px;height:10px;display:flex}.pips i{background:var(--faint);border-radius:50%;width:9px;height:9px}.pips.l4 i{background:var(--warn)}.pips.l5 i{background:var(--orange)}.pips.l6 i,.pips.l7 i{background:var(--danger)}.penct{color:var(--muted);font-size:12px;font-weight:800}.penct.l4{color:var(--warn)}.penct.l5{color:var(--orange)}.penct.l6,.penct.l7{color:var(--danger)}.chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--panel2);min-width:72px;min-height:60px;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:12px;padding:0 14px;font-size:24px;font-weight:800}.chip.sel{background:var(--them);border-color:var(--them);color:#fff}.chip.small{min-width:56px;min-height:48px;font-size:19px}.sectionlabel{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:14px;font-weight:750}.ontrack{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.ontrack .tile{min-height:132px}.ontrack .tile .sn{font-size:48px}.ontrack .tile .role{color:var(--muted);font-size:15px;font-weight:800}.ontrack .tile.J{border:2px solid var(--us)}.passrow{background:var(--panel);border-radius:var(--radius);border-left:8px solid var(--us);grid-template-columns:120px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.passrow.them{border-left-color:var(--them)}.passrow .who{font-size:18px;font-weight:800;display:grid}.passrow .who small{color:var(--muted);font-size:13px;font-weight:600}.passbtns{flex-wrap:wrap;gap:8px;display:flex}.passbtn{border:1px solid var(--line);background:var(--panel2);width:76px;height:76px;color:var(--text);cursor:pointer;border-radius:14px;font-size:34px;font-weight:850}.passbtn:active{background:var(--panel3);transform:scale(.96)}.passbtn.hot{background:color-mix(in srgb, var(--us) 35%, var(--panel2))}.passrow.them .passbtn.hot{background:color-mix(in srgb, var(--them) 35%, var(--panel2))}.passhist{flex-wrap:wrap;align-items:center;gap:4px;min-height:24px;display:flex}.passhist span{background:var(--panel3);border-radius:6px;padding:2px 7px;font-size:15px;font-weight:750}.passtotal{text-align:right;font-variant-numeric:tabular-nums;cursor:pointer;min-width:64px;font-size:40px;font-weight:850}.actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.bottom{align-items:stretch;gap:10px;margin-top:auto;padding-top:4px;display:flex}.bottom .btn.huge{flex:1.4}.scrim{z-index:50;background:#000a;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);width:min(980px,100%);max-height:92dvh;padding:18px 18px calc(18px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:22px 22px 0 0;overflow-y:auto}.sheet h2{margin:0 0 12px}.codes{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;display:grid}.code{border:1px solid var(--line);background:var(--panel2);min-height:84px;color:var(--text);cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;display:flex}.code b{font-size:34px;line-height:1}.code span{color:var(--muted);margin-top:4px;font-size:13px}.code.sel{background:var(--info);color:#061b38}.code.sel span{color:#061b38}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--text);color:var(--bg);z-index:60;border-radius:14px;align-items:center;gap:14px;max-width:92vw;padding:14px 18px;font-size:18px;font-weight:700;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #000a}.toast .btn{background:var(--bg);min-height:44px;color:var(--text)}.syncdot{background:var(--faint);border-radius:50%;width:12px;height:12px;display:inline-block}.syncdot.on{background:var(--good)}.syncdot.wait{background:var(--warn)}.syncdot.off{background:var(--danger)}.install{background:var(--info-bg);color:#cfe2ff;border-radius:var(--radius);margin-bottom:14px;padding:12px 16px;font-size:16px;line-height:1.4}@media (width<=1000px){.body{grid-template-columns:1fr}.rail{border-left:none;border-top:1px solid var(--line);max-height:180px}.topbar{grid-template-columns:80px 1fr auto 1fr 64px}.topbar .res{display:none}.score .pts{font-size:38px}.clocks{min-width:150px}.clocks .jam{font-size:36px}}@media (width<=700px){.slots,.ontrack{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.slot .sn,.ontrack .tile .sn{font-size:28px}.passrow{grid-template-columns:1fr auto;gap:6px;padding:6px 8px}.passrow .passbtns{flex-wrap:nowrap;order:3;grid-column:1/-1}.passbtn{flex:1;width:auto;height:60px;font-size:28px}.passtotal{font-size:30px}.ontrack .tile{min-height:96px}.ontrack .tile .role,.slot .role{letter-spacing:0;font-size:10px}.ontrack .tile .nm,.slot .nm,.slot .why{display:none}.body{grid-template-rows:1fr auto;min-height:0}.rail{max-height:110px}.actions{grid-template-columns:repeat(2,1fr)}.btn.huge{min-height:76px;font-size:22px}.tiles{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.tile .sn{font-size:26px}.bottom .btn.big{padding:0 10px;font-size:16px}.score .team{display:none}.topbar{grid-template-columns:64px 1fr auto 1fr 56px;gap:5px}.clocks{min-width:110px}}@media print{body{color:#000;background:#fff}.noprint{display:none!important}.card,table.stats th{color:#000;background:#fff;border-color:#ccc}}
