:root{--bg:#fff;--bg-2:#f2f3f5;--bg-3:#e4e6ea;--fg:#0b0b0c;--fg-2:#3d4046;--fg-3:#6b6f78;--line:#c9ccd3;--green:#128a3a;--green-bg:#d9f3e1;--red:#c8102e;--red-bg:#fbe0e4;--amber:#b86e00;--amber-bg:#fff0d1;--blue:#0b5fd7;--blue-bg:#dce9ff;--field:#2e9e4f;--field-line:#ffffffd9;--tap:56px;--radius:14px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:"SF Mono", Menlo, Consolas, "Roboto Mono", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#0f1114;--bg-2:#1a1d22;--bg-3:#262a31;--fg:#f4f5f7;--fg-2:#c6c9d0;--fg-3:#8d919a;--line:#3a3e47;--green:#35c463;--green-bg:#133d21;--red:#ff5a6e;--red-bg:#46151d;--amber:#ffb547;--amber-bg:#3f2b07;--blue:#5c9cff;--blue-bg:#14294d;--field:#237a3d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font);color:var(--fg);background:var(--bg);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%;font-size:18px;font-weight:600}#root{flex-direction:column;min-height:100%;display:flex}input,textarea,select,button{font:inherit;color:inherit}input,textarea{-webkit-user-select:text;user-select:text}h1,h2,h3{margin:0;font-weight:800}h1{font-size:26px}h2{font-size:20px}h3{color:var(--fg-2);font-size:17px}p{margin:0}a{color:var(--blue)}.app{flex-direction:column;min-height:100dvh;display:flex}.screen{padding:calc(12px + env(safe-area-inset-top)) 12px calc(84px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:12px;display:flex}.screen.no-nav{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.topbar{align-items:center;gap:10px;min-height:48px;display:flex}.topbar h1,.topbar .spacer{flex:1}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.col{flex-direction:column;gap:8px;display:flex}.grow{flex:1}.center{text-align:center}.muted{color:var(--fg-3);font-weight:600}.small{font-size:14px}.tiny{font-size:12px}.bold{font-weight:800}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.card{background:var(--bg-2);border-radius:var(--radius);padding:12px}.divider{background:var(--line);height:1px;margin:4px 0}.nav{background:var(--bg);border-top:2px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:20;display:flex;position:fixed;bottom:0;left:0;right:0}.nav button{min-height:64px;color:var(--fg-3);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:15px;font-weight:800;display:flex}.nav button .ico{font-size:22px}.nav button.active{color:var(--fg);box-shadow:inset 0 4px 0 var(--team-accent,var(--fg))}.nav button.live{color:var(--green)}.btn{min-height:var(--tap);border-radius:var(--radius);border:2px solid var(--line);background:var(--bg-2);color:var(--fg);cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:18px;font-weight:800;display:inline-flex;position:relative;overflow:hidden}.btn:active{filter:brightness(.92)}.btn:disabled{opacity:.45}.btn.primary{background:var(--team,var(--fg));color:var(--team-fg,var(--bg));border-color:var(--team-accent,var(--fg))}.btn.team2{background:var(--team2,var(--green));color:var(--team2-fg,#fff);border-color:var(--team2-accent,var(--green))}.btn.green{background:var(--green);color:#fff;border-color:var(--green)}.btn.red{background:var(--red);color:#fff;border-color:var(--red)}.btn.amber{background:var(--amber);color:#fff;border-color:var(--amber)}.btn.blue{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.ghost{background:0 0}.btn.outline-red{color:var(--red);border-color:var(--red);background:0 0}.btn.big{min-height:72px;font-size:22px}.btn.huge{min-height:88px;font-size:26px}.btn.block{width:100%}.btn.sm{border-radius:10px;min-height:44px;padding:0 12px;font-size:15px}.btn.icon{width:var(--tap);padding:0;font-size:24px}.btn .hold-fill{pointer-events:none;background:#00000040;width:0;position:absolute;top:0;bottom:0;left:0}.btn.holding .hold-fill{transition:width linear}.btn .hold-hint{opacity:.85;font-size:12px;font-weight:700}.btn-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.btn-grid.three{grid-template-columns:1fr 1fr 1fr}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--fg-2);text-transform:uppercase;letter-spacing:.04em;font-size:14px;font-weight:800}.input{min-height:var(--tap);border:2px solid var(--line);background:var(--bg);border-radius:12px;width:100%;padding:0 14px;font-size:18px;font-weight:700}textarea.input{resize:vertical;min-height:120px;padding:12px 14px}.input:focus{border-color:var(--blue);outline:none}.stepper{align-items:center;gap:6px;display:flex}.stepper .val{text-align:center;font-variant-numeric:tabular-nums;min-width:56px;font-size:22px;font-weight:800}.toggle{min-height:var(--tap);justify-content:space-between;align-items:center;gap:10px;display:flex}.switch{background:var(--bg-3);border:2px solid var(--line);border-radius:18px;flex-shrink:0;width:64px;height:36px;position:relative}.switch:after{content:"";background:var(--bg);border-radius:50%;width:26px;height:26px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch.on{background:var(--green);border-color:var(--green)}.switch.on:after{left:31px}.seg{border:2px solid var(--line);border-radius:12px;display:flex;overflow:hidden}.seg button{min-height:48px;color:var(--fg-3);background:0 0;border:0;flex:1;font-size:16px;font-weight:800}.seg button.on{background:var(--team,var(--fg));color:var(--team-fg,var(--bg))}.chip{border:2px solid var(--line);background:var(--bg);border-radius:20px;justify-content:center;align-items:center;min-height:40px;padding:0 12px;font-size:15px;font-weight:800;display:inline-flex}.chip.on{background:var(--team,var(--fg));color:var(--team-fg,var(--bg));border-color:var(--team-accent,var(--fg))}.chip.green{background:var(--green-bg);color:var(--green);border-color:var(--green)}.chip.red{background:var(--red-bg);color:var(--red);border-color:var(--red)}.chip.amber{background:var(--amber-bg);color:var(--amber);border-color:var(--amber)}.chip.blue{background:var(--blue-bg);color:var(--blue);border-color:var(--blue)}.chip.grey{background:var(--bg-3);color:var(--fg-2);border-color:var(--bg-3)}.chips{flex-wrap:wrap;gap:8px;display:flex}.list{flex-direction:column;gap:8px;display:flex}.item{border-radius:var(--radius);background:var(--bg-2);text-align:left;border:2px solid #0000;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 12px;display:flex}.item:active{filter:brightness(.95)}.item .num{background:var(--fg);width:44px;height:44px;color:var(--bg);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:900;display:flex}.item .num.blank{background:var(--bg-3);color:var(--fg-3)}.item .name{font-size:18px;font-weight:800}.item .sub{color:var(--fg-3);font-size:13px;font-weight:700}.item.dim{opacity:.5}.gbar{background:var(--bg-3);border-radius:5px;width:100%;height:10px;display:flex;overflow:hidden}.gbar span{height:100%;display:block}.g-GK{background:#7b3fe4}.g-D{background:#0b5fd7}.g-M{background:#128a3a}.g-F{background:#e0541b}.legend{color:var(--fg-3);gap:10px;font-size:12px;display:flex}.legend i{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.tiles{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tiles.two{grid-template-columns:repeat(2,1fr)}.tiles.four{grid-template-columns:repeat(4,1fr)}.tile{border:3px solid var(--line);background:var(--bg);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:72px;padding:6px;display:flex;position:relative}.tile .tname{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:17px;font-weight:800;line-height:1.1;overflow:hidden}.tile .tnum{color:var(--fg-3);font-size:12px;font-weight:800}.tile .tmeta{color:var(--fg-2);font-size:13px;font-weight:700}.tile.on{background:var(--green-bg);border-color:var(--green)}.tile.off{opacity:.45;background:var(--bg-3)}.tile.sel{border-color:var(--team2-accent,var(--blue));background:var(--blue-bg);box-shadow:0 0 0 3px var(--team2-accent,var(--blue-bg))}.tile.red{border-color:var(--red);background:var(--red-bg)}.tile.next{border-color:var(--green)}.tile .dot{border-radius:50%;width:12px;height:12px;position:absolute;top:6px;right:6px}.dot.green{background:var(--green)}.dot.grey{background:var(--line)}.dot.red{background:var(--red)}.field-wrap{width:100%}.field-svg{touch-action:manipulation;border-radius:12px;width:100%;height:auto;display:block}.slot-g{cursor:pointer}.slot-bg{fill:#fff;stroke:#0b0b0c;stroke-width:1.2px}.slot-g.empty .slot-bg{fill:#ffffff59;stroke-dasharray:3 2}.slot-g.sel .slot-bg{fill:#ffe98a;stroke:#b86e00;stroke-width:2.5px}.slot-g.hint .slot-bg{stroke:#0b5fd7;stroke-width:2.5px}.slot-pos{fill:#0b5fd7;text-anchor:middle;font-size:6.5px;font-weight:900}.slot-g.gk .slot-pos{fill:#7b3fe4}.slot-name{fill:#0b0b0c;text-anchor:middle;font-size:7.2px;font-weight:800}.slot-min{fill:#3d4046;text-anchor:middle;font-size:6px;font-weight:800}.slot-g.hot .slot-min{fill:#c8102e}.clock-area{border-radius:var(--radius);background:var(--bg-2);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.clock-area.paused{background:var(--amber-bg)}.clock-area.break{background:var(--blue-bg)}.clock-area.over{background:var(--red-bg)}.clock-big{font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-align:center;font-size:64px;font-weight:900;line-height:1}.clock-mid{text-align:center;font-size:20px;font-weight:800}.clock-row{justify-content:space-between;align-items:baseline;font-weight:800;display:flex}.clock-row .lbl{color:var(--fg-3);text-transform:uppercase;letter-spacing:.04em;font-size:15px}.clock-row .val{font-variant-numeric:tabular-nums;font-size:20px}.banner{border-radius:var(--radius);background:var(--green-bg);border:3px solid var(--green);flex-direction:column;gap:8px;padding:12px;display:flex}.banner.warn{background:var(--amber-bg);border-color:var(--amber)}.banner.error{background:var(--red-bg);border-color:var(--red)}.banner .line{align-items:center;gap:8px;min-height:44px;display:flex}.banner .line .txt{flex:1;font-weight:800}.sheet-back{z-index:50;background:#00000073;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-height:88vh;padding:14px 14px calc(14px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.sheet h2{font-size:22px}.sheet .handle{background:var(--line);border-radius:3px;width:44px;height:5px;margin:0 auto}.table{border-collapse:collapse;width:100%;font-size:15px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 6px}.table th{text-transform:uppercase;color:var(--fg-3);letter-spacing:.04em;font-size:12px}.table td.r,.table th.r{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}pre.summary{font-family:var(--mono);white-space:pre;background:var(--bg-2);-webkit-user-select:text;user-select:text;border-radius:12px;padding:12px;font-size:13px;font-weight:600;overflow-x:auto}.plan-grid{gap:3px;font-size:13px;font-weight:800;display:grid}.plan-grid .ph{background:var(--bg-3);text-align:center;border-radius:6px;padding:6px 4px}.plan-grid .pn{white-space:nowrap;text-overflow:ellipsis;padding:6px;overflow:hidden}.plan-grid .pc{text-align:center;background:var(--bg-2);border-radius:6px;justify-content:center;align-items:center;min-height:34px;padding:6px 2px;display:flex}.plan-grid .pc.bench{color:var(--fg-3);border:1px dashed var(--line);background:0 0}.plan-grid .pc.gk{color:#4c1fa3;background:#e9ddff}.plan-grid .pc.sel{outline:3px solid var(--blue)}.toast{left:12px;right:12px;top:calc(8px + env(safe-area-inset-top));background:var(--fg);color:var(--bg);z-index:60;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;font-weight:800;display:flex;position:fixed;box-shadow:0 6px 20px #00000040}.toast button{background:var(--bg);color:var(--fg);border:0;border-radius:8px;min-height:40px;padding:0 12px;font-weight:800}.steps{gap:6px;display:flex}.steps span{background:var(--bg-3);border-radius:3px;flex:1;height:6px}.steps span.done{background:var(--green)}.steps span.cur{background:var(--team-accent,var(--fg))}.score{justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.score .sv{text-align:center;min-width:28px;font-size:22px;font-weight:900}.score button{border:2px solid var(--line);background:var(--bg);border-radius:8px;width:40px;height:40px;font-size:18px;font-weight:900}@media (width>=700px){.screen{width:100%;max-width:640px;margin:0 auto}.nav{max-width:640px;margin:0 auto}}.team-banner{border-radius:var(--radius);background:var(--team,var(--bg-2));color:var(--team-fg,var(--fg));border-bottom:5px solid var(--team2,transparent);align-items:center;gap:12px;padding:12px;display:flex}.team-banner h1{color:inherit;flex:1}.team-banner .season{opacity:.85;font-size:14px;font-weight:700}.team-logo{object-fit:contain;background:#fff;border-radius:12px;flex-shrink:0;width:52px;height:52px}.team-logo.sm{border-radius:8px;width:34px;height:34px}.team-logo.lg{border-radius:18px;width:96px;height:96px}.swatches{grid-template-columns:repeat(8,1fr);gap:8px;display:grid}.swatch{aspect-ratio:1;border:2px solid var(--line);border-radius:10px;width:100%;min-width:0;min-height:36px;padding:0}.swatch.on{outline:4px solid var(--fg);outline-offset:2px}.color-input{border:2px solid var(--line);background:var(--bg);border-radius:10px;width:56px;height:44px;padding:2px}.clock-tap{width:100%;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block}.clearance{border:3px solid var(--red);background:var(--red-bg);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.alert-flash{z-index:100;pointer-events:none;background:var(--amber);animation:.9s ease-out forwards alert-flash;position:fixed;inset:0}@keyframes alert-flash{0%{opacity:.55}30%{opacity:0}45%{opacity:.45}to{opacity:0}}.dot.rest0{background:#e8590c}.dot.rest1{background:#f2c200}.dot.rest2{background:var(--green)}.tile .next-tag{letter-spacing:.04em;color:var(--green);font-weight:900}.tile.next{border-width:3px}.rest-legend{color:var(--fg-2);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;font-weight:700;display:flex}.rest-legend i{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:3px;display:inline-block}.slot-total{fill:#6b6f76;font-weight:700}.note-row{text-align:left;border:1px solid var(--line);background:var(--bg-2);width:100%;color:var(--fg);font:inherit;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.note-row .note-text{font-size:16px;font-weight:650}.mic-fab{right:14px;bottom:calc(16px + env(safe-area-inset-bottom));border:3px solid var(--team-accent,var(--fg));background:var(--team,var(--fg));width:68px;height:68px;color:var(--team-fg,var(--bg));z-index:40;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:50%;font-size:30px;position:fixed;box-shadow:0 6px 18px #0000004d}.mic-fab.on{background:var(--red);border-color:var(--red);color:#fff;transform:scale(1.12)}.voice-pop{left:12px;right:12px;top:calc(8px + env(safe-area-inset-top));z-index:45;background:var(--bg);border:3px solid var(--red);border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;display:flex;position:fixed;box-shadow:0 8px 24px #0000004d}.voice-pop.cancel{border-color:var(--line);opacity:.85}.voice-pop .heard{min-height:24px;font-size:18px;font-weight:700}.screen.live-pad{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.plan-grid .ph.now,.plan-grid .pc.now{box-shadow:inset 0 0 0 2px var(--team2-accent,var(--blue))}.plan-grid .pc.past{opacity:.55}.plan-grid .pc.out{color:var(--fg-3);background:0 0}.duty-grid{align-items:stretch;gap:4px;display:grid}.duty-grid .dh{text-align:center;color:var(--fg-3);padding:4px 0;font-size:12px;font-weight:800}.duty-grid .dn{text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:14px;font-weight:800;display:flex;overflow:hidden}.duty-grid .dc{border:2px solid var(--line);background:var(--bg-2);min-height:48px;color:var(--fg);border-radius:10px;padding:0 2px;font-size:13px;font-weight:800}.duty-grid .dc.goal{color:#4c1fa3;background:#e9ddff;border-color:#b59cf0}.duty-grid .dc.sit{color:var(--fg-3);background:0 0;border-style:dashed}.duty-grid .dc.F,.duty-grid .dc.M,.duty-grid .dc.D{border-color:var(--team2-accent,var(--blue))}.duty-grid .dc:disabled{opacity:1}.plan-grid .pc.tap{cursor:pointer}.plan-grid .pc.picked{outline:3px solid var(--team2-accent,var(--blue));outline-offset:-1px}.plan-grid .pc.edited{position:relative}.plan-grid .pc.edited:after{content:"";background:var(--amber);border-radius:50%;width:6px;height:6px;position:absolute;top:3px;right:3px}.recap{flex-direction:column;gap:2px;display:flex}.recap-row{border-radius:8px;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.recap-row:nth-child(odd){background:var(--bg-3)}.recap-row.low{background:var(--amber-bg);box-shadow:inset 3px 0 0 var(--amber)}.screen.sun{--bg:#fff;--bg-2:#fff;--bg-3:#ececec;--fg:#000;--fg-2:#000;--fg-3:#1a1a1a;--line:#000;--green:#006b25;--green-bg:#c9f2d6;--red:#b0001e;--red-bg:#ffd6dc;--amber:#8a4f00;--amber-bg:#ffe2a8;--blue:#0044b3;--blue-bg:#d2e3ff;--field:#1f8a3b;color:#000;background:#fff}.sun .clock-area{border:3px solid #000}.sun .clock-big{font-size:84px}.sun .clock-row .lbl{color:#000;font-size:17px}.sun .clock-row .val{font-size:26px}.sun .btn{border:3px solid #000;font-size:20px}.sun .banner{border-width:4px}.sun .banner .line .txt{font-size:20px}.sun .tiles.four{grid-template-columns:repeat(3,1fr)}.sun .tile{border:3px solid #000}.sun .tile .tname{font-size:21px}.sun .tile .tmeta,.sun .tile .tnum{color:#000;font-size:15px}.sun .tile .dot{border:2px solid #000;width:16px;height:16px}.sun .slot-bg{stroke-width:1.8px}.sun .slot-name{font-size:8.4px;font-weight:900}.sun .slot-pos{font-size:6.8px}.sun .slot-min,.sun .slot-total{fill:#000;font-size:6.4px}.sun .rest-legend,.sun .muted{color:#000}.sun h3{color:#000;font-size:19px}
