:root{--bg:#0b1220;--panel:#131c2e;--panel2:#1b263b;--line:#2a3650;--text:#e6ebf5;--muted:#8a97b0;--blue:#3b82f6;--red:#ef4444;--flag:#f59e0b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;touch-action:manipulation;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}body{overscroll-behavior:none}.page{max-width:560px;min-height:100%;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 24px);margin:0 auto}h1{margin:6px 0 10px;font-size:22px}h2{color:var(--muted);margin:18px 0 8px;font-size:15px;font-weight:600}p{margin:8px 0}button{font:inherit;color:inherit;background:var(--panel2);border:1px solid var(--line);cursor:pointer;border-radius:10px;min-height:44px;padding:10px 14px}button:disabled{opacity:.4}button.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}button.danger{color:#fca5a5}button.full{width:100%;margin-top:10px;display:block}button.link{min-height:0;color:var(--blue);background:0 0;border:none;padding:6px 0}button.back{margin-top:4px}button.icon{min-width:44px;padding:8px}button.selected.blue{background:color-mix(in srgb, var(--blue) 35%, var(--panel2));border-color:var(--blue)}button.selected.red{background:color-mix(in srgb, var(--red) 35%, var(--panel2));border-color:var(--red)}input,select{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:8px;width:100%;min-height:42px;padding:8px 10px;font-size:16px}.card{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;margin:10px 0;padding:12px;display:block}.row{align-items:center;gap:8px;margin:6px 0;display:flex}.row.space{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grow{flex:1}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}:is(span,b,h1,h2,p).blue{color:var(--blue)}:is(span,b,h1,h2,p).red{color:var(--red)}.end-rally.blue,.end-rally.red{color:#fff}.error{color:#fca5a5}.hint{background:var(--panel);border:1px dashed var(--line);border-radius:10px;padding:10px;font-size:13px}.chip{background:var(--panel2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.live-chip{background:color-mix(in srgb, var(--blue) 40%, var(--panel2))}.chip-btn{border-radius:999px;min-height:34px;padding:4px 10px;font-size:14px}.field{color:var(--muted);margin:6px 0;font-size:13px;display:block}.field input{color:var(--text);margin-top:4px}.field.narrow{flex:1;min-width:80px}.check{align-items:center;gap:8px;font-size:14px;display:flex}.check input{width:auto;min-height:0}.roster .row input{flex:1}.set-row{padding:6px 0}.set-score{font-variant-numeric:tabular-nums;font-weight:600}.lineup h2{margin-top:0}.lineup.blue{border-color:color-mix(in srgb, var(--blue) 50%, var(--line))}.lineup.red{border-color:color-mix(in srgb, var(--red) 50%, var(--line))}.zone-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin:6px 0;display:grid}.zone-cell{color:var(--muted);font-size:12px}.zone-cell select{color:var(--text);margin-top:2px;padding:6px}.net-line{text-align:center;letter-spacing:.2em;color:var(--muted);border-top:2px solid var(--muted);padding-top:2px;font-size:11px}.bench{margin-top:10px}.bench-row{margin:2px 0}.live{height:100dvh;padding:env(safe-area-inset-top) 8px 0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;display:flex;overflow:hidden}.scorebar{flex:none;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:4px 0;display:grid}.score-team{text-align:center}.score-name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.score-team.red .score-name{color:var(--red)}.score-team.blue .score-name{color:var(--blue)}.serve-dot{background:currentColor;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.score-row{justify-content:center;align-items:center;gap:4px;display:flex}.score-num{font-variant-numeric:tabular-nums;min-width:44px;font-size:30px;font-weight:700}.score-adj{border-radius:50%;min-width:36px;min-height:36px;padding:0;font-size:18px}.score-mid{flex-direction:column;align-items:center;gap:2px;display:flex}.serve-pill{white-space:nowrap;border-radius:999px;min-height:30px;padding:2px 8px;font-size:12px}.row.tight{gap:4px;margin:0}.flip-btn{border-radius:999px;min-width:36px;min-height:30px;padding:2px 8px;font-size:15px}.serve-pill.blue{border-color:var(--blue);color:var(--blue)}.serve-pill.red{border-color:var(--red);color:var(--red)}.court-wrap{touch-action:none;flex:1;min-height:0;position:relative}.court{touch-action:none;width:100%;height:100%;display:block}.r-out{fill:#172033;stroke:#24324d;stroke-width:2px}.r-court.red{fill:color-mix(in srgb, var(--red) 16%, #172033);stroke:var(--red);stroke-width:3px}.r-court.blue{fill:color-mix(in srgb, var(--blue) 16%, #172033);stroke:var(--blue);stroke-width:3px}.r-block.red{fill:color-mix(in srgb, var(--red) 30%, #172033)}.r-block.blue{fill:color-mix(in srgb, var(--blue) 30%, #172033)}.r-net{fill:#cbd5e1;opacity:.85}.r-ceil{fill:#334155;stroke:#64748b;stroke-dasharray:6 4}.region-label{fill:var(--muted);text-anchor:middle;pointer-events:none;letter-spacing:2px;font-size:22px}.net-label{fill:#0b1220;font-weight:700}.ceil-label{letter-spacing:0;font-size:16px}.court-text{fill:var(--muted);text-anchor:middle;pointer-events:none;font-size:22px}.court-text.last-action{fill:var(--text);font-weight:600}.zone-label{pointer-events:none;text-anchor:middle}.zone-num{opacity:.35;font-size:40px;font-weight:700}.zone-alias{opacity:.7;font-size:24px}.zone-label.red{fill:#fecaca}.zone-label.blue{fill:#bfdbfe}.ball-path{fill:none;stroke:#fde68a;stroke-width:4px;stroke-dasharray:10 8;pointer-events:none}.dot{stroke:#fff;stroke-width:3px;pointer-events:none}.dot.red{fill:var(--red)}.dot.blue{fill:var(--blue)}.dot.none{fill:#94a3b8}.dot.older{opacity:.55;stroke-width:2px}.dot.ignored{fill:none;stroke-dasharray:4 3}.bottom-bar{padding:6px 0 max(env(safe-area-inset-bottom), 10px);flex:none;gap:8px;display:flex}.undo{width:84px}.end-rally{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:60px;font-size:18px;font-weight:700;display:flex}.end-rally small{opacity:.9;font-size:12px;font-weight:400}.end-rally.blue{background:color-mix(in srgb, var(--blue) 45%, var(--panel2));border-color:var(--blue)}.end-rally.red{background:color-mix(in srgb, var(--red) 45%, var(--panel2));border-color:var(--red)}.menu-overlay{z-index:20;touch-action:none;background:#050a1459;position:fixed;inset:0}.radial .wedge{stroke:var(--bg);stroke-width:3px}.radial.blue .wedge{fill:color-mix(in srgb, var(--blue) 75%, #0b1220)}.radial.red .wedge{fill:color-mix(in srgb, var(--red) 75%, #0b1220)}.radial.neutral .wedge{fill:#475569}.wedge-label{fill:#fff;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:15px;font-weight:700}.wedge-sub{fill:#fff;opacity:.85;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:11px}.menu-center{fill:#e2e8f0;stroke:var(--bg);stroke-width:3px}.menu-center.inert{fill:#334155}.center-label{fill:#0b1220;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:13px;font-weight:700}.menu-title{fill:#fff;text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:4px;font-size:15px;font-weight:600}.touch-mark{fill:#fde68a}.sheet-backdrop{z-index:40;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);width:100%;max-width:560px;padding:16px 16px calc(env(safe-area-inset-bottom) + 16px);border-top-left-radius:18px;border-top-right-radius:18px;max-height:90dvh;margin:0 auto;overflow:auto}.sheet-title{color:var(--text);text-align:center;margin:0 0 8px;font-size:18px}.big-choice{gap:10px}.point-btn{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:84px;font-size:20px;font-weight:700;display:flex}.point-btn small{opacity:.85;font-size:12px;font-weight:400}.point-btn.blue{border-color:var(--blue)}.point-btn.red{border-color:var(--red)}.point-btn.blue.suggested,.point-btn.blue.full{background:var(--blue);color:#fff}.point-btn.red.suggested,.point-btn.red.full{background:var(--red);color:#fff}.point-btn.full{min-height:60px}.flag{width:100%;margin:8px 0}.flag.on{border-color:var(--flag);color:var(--flag)}.rotation-row{margin:12px 0}.rot-team{font-weight:600}.rot-team.red{color:var(--red)}.rot-team.blue{color:var(--blue)}.zone-readout{margin:4px 0;font-size:13px}.zr-row{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.zr-cell{background:var(--panel2);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;margin:2px 0;padding:4px 6px;overflow:hidden}.flip-row{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 6px 6px 12px}.export-btn{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.export-btn small{color:var(--muted)}.saved-list{color:#86efac;word-break:break-all;margin:8px 0}.gesture-overlay{z-index:20;pointer-events:none;position:fixed;inset:0}.radial .wedge.hl{stroke:#fff;stroke-width:3px}.radial.blue .wedge.hl{fill:#60a5fa}.radial.red .wedge.hl{fill:#f87171}.radial.neutral .wedge.hl{fill:#94a3b8}.menu-center.hl{fill:#fde68a}.menu-drawing.faded{opacity:.4}.stroke{fill:none;stroke:#fde68a;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.lab-r0,.lab-r1{fill:none;stroke:var(--muted);stroke-dasharray:4 4}.lab-p1{fill:#fde68a}.lab{height:100dvh;padding:env(safe-area-inset-top) 8px 0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;display:flex;overflow:hidden}.lab-top{flex:none}.lab-result{text-align:center;min-height:26px;font-size:18px;font-weight:700}.lab-court{flex:1;min-height:260px}.lab-bottom{max-height:34dvh;padding:4px 4px calc(env(safe-area-inset-bottom) + 8px);-webkit-user-select:text;user-select:text;flex:none;overflow:auto}.slider{margin:4px 0;font-size:13px;display:block}.slider input{min-height:28px;padding:0}.lab-history{margin:8px 0}textarea{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;width:100%;margin-top:4px;font:12px ui-monospace,monospace}
