:root{--color-bg:#fff;--color-fg:#111418;--color-muted:#5b636d;--color-accent:#0b6e4f;--color-ok:#0b6e4f;--color-warn:#b45309;--color-danger:#b42318;--color-warn-strong:#7c2d00;--color-on-accent:#fff;--color-surface:#f4f6f8;--color-border:#d0d5dd;--color-pitch:#2f7d32;--color-pitch-line:#ffffffd9;--touch-min:56px;--space:16px;color:var(--color-fg);background:var(--color-bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--color-bg:#0f1215;--color-fg:#f2f4f6;--color-muted:#a3acb6;--color-accent:#34d399;--color-ok:#34d399;--color-warn:#fbbf24;--color-danger:#f97066;--color-warn-strong:#fcd34d;--color-on-accent:#0f1215;--color-surface:#1a1f24;--color-border:#39414a;--color-pitch:#1f5a23}}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);min-height:100vh;margin:0}.shell{max-width:40rem;padding:var(--space);padding-top:max(var(--space), env(safe-area-inset-top));margin:0 auto}h1{color:var(--color-accent);margin:0 0 8px}.status{color:var(--color-muted)}.status[data-state=online]{color:var(--color-ok)}.status[data-state=offline]{color:var(--color-warn)}.muted{color:var(--color-muted)}.stack{gap:var(--space);flex-direction:column;display:flex}.field{flex-direction:column;gap:6px;font-weight:600;display:flex}input{min-height:var(--touch-min);font:inherit;color:var(--color-fg);background:var(--color-bg);border:2px solid var(--color-muted);border-radius:10px;padding:0 14px;font-size:1.1rem}input:focus-visible,.button:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.button{min-height:var(--touch-min);font:inherit;color:var(--color-on-accent);background:var(--color-accent);cursor:pointer;border:0;border-radius:10px;padding:0 20px;font-size:1.1rem;font-weight:700}.button:disabled{opacity:.5;cursor:not-allowed}.button.secondary{color:var(--color-accent);border:2px solid var(--color-accent);background:0 0}.error{color:var(--color-danger);font-weight:600}.turnstile{min-height:65px}a.button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.header{margin-bottom:var(--space)}.header h1{margin:4px 0 0}.back{min-height:44px;color:var(--color-accent);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}section{margin-bottom:calc(var(--space) * 1.5)}h2{margin:0;font-size:1.2rem}.card>:first-child{margin-top:0}.card>:last-child{margin-bottom:0}.card{padding:var(--space);border:2px solid var(--color-border);margin-bottom:var(--space);border-radius:12px}.actions{flex-wrap:wrap;gap:12px;display:flex}.actions>*{flex:auto}.footer{margin-top:calc(var(--space) * 2);padding-top:var(--space);border-top:2px solid var(--color-border)}.danger-zone{margin-top:calc(var(--space) * 2)}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{width:100%;min-height:var(--touch-min);font:inherit;color:var(--color-fg);text-align:left;background:var(--color-surface);border:2px solid var(--color-border);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:8px 14px;text-decoration:none;display:flex}.row-main{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.jersey{font-variant-numeric:tabular-nums;text-align:right;min-width:2.5ch;font-weight:800}.tag{border:2px solid;border-radius:999px;padding:2px 8px;font-size:.85rem;font-weight:700}details summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.field-row{gap:12px;display:flex}.grow{flex:1;min-width:0}.field input,.field select{width:100%}.jersey-field input{text-align:center;width:5.5ch}fieldset.field{border:0;margin:0;padding:0}legend{margin-bottom:6px;padding:0}select{min-height:var(--touch-min);font:inherit;color:var(--color-fg);background:var(--color-bg);border:2px solid var(--color-muted);border-radius:10px;padding:0 12px;font-size:1.05rem}.check{min-height:var(--touch-min);align-items:center;gap:12px;font-weight:600;display:flex}.check input{width:28px;height:28px;min-height:0;accent-color:var(--color-accent)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{min-width:var(--touch-min);min-height:48px;font:inherit;color:var(--color-fg);border:2px solid var(--color-muted);cursor:pointer;background:0 0;border-radius:999px;padding:0 14px;font-weight:700}.chip[aria-pressed=true]{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent)}.button.small{min-height:44px;padding:0 14px;font-size:1rem}.button.danger-outline{color:var(--color-danger);border:2px solid var(--color-danger);background:0 0}.pitch{aspect-ratio:2/3;background:var(--color-pitch);border:3px solid var(--color-pitch-line);touch-action:none;border-radius:8px;width:100%;max-width:420px;margin:0 auto;position:relative;overflow:hidden}.pitch-half{border-top:2px solid var(--color-pitch-line);position:absolute;top:50%;left:0;right:0}.pitch-box{border:2px solid var(--color-pitch-line);border-bottom:0;height:14%;position:absolute;bottom:0;left:25%;right:25%}.token{width:var(--touch-min);height:var(--touch-min);font:inherit;color:#111418;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#fff;border:3px solid #111418;border-radius:50%;font-size:.85rem;font-weight:800;position:absolute;transform:translate(-50%,-50%)}.token.gk{background:#fde047}.token.selected{outline-offset:2px;outline:4px solid #fde047}.header-bar{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.sync{color:var(--color-muted);border:2px solid var(--color-border);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:700}.sync-synced{color:var(--color-ok)}.sync-offline,.sync-signedOut{color:var(--color-warn);border-color:currentColor}.pitch-slot{position:absolute;transform:translate(-50%,-50%)}.pitch-slot .token{position:static;transform:none}.token.empty{color:#fff;background:#ffffff26;border-style:dashed;border-color:#fff}.player-chip.placed{background:var(--color-surface);border-style:dashed}.pitch-large{aspect-ratio:3/4;max-width:520px}.tile{width:86px;min-height:64px;font:inherit;color:#111418;cursor:pointer;background:#fff;border:3px solid #111418;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:4px 6px;font-size:.8rem;line-height:1.15;display:flex}.tile.gk{background:#fde047}.tile.empty{color:#fff;background:#ffffff26;border-style:dashed;border-color:#fff}.tile.selected{outline-offset:2px;outline:4px solid #f97316}.tile.queued{border-style:dashed;border-color:#f97316}.tile-pos{opacity:.75;font-size:.7rem;font-weight:800}.tile-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.tile-time,.tile-stint{font-variant-numeric:tabular-nums;white-space:nowrap}.tile-stint,.tile .muted{color:#3b424a}.live{padding-bottom:120px}.clock-bar{padding:var(--space);margin-bottom:var(--space);border:3px solid var(--color-border);text-align:center;border-radius:14px}.clock-bar.running{border-color:var(--color-accent)}.clock-bar.paused{border-color:var(--color-warn)}.clock-labels{justify-content:center;gap:10px;font-weight:700;display:flex}.paused-tag{color:var(--color-warn)}.clock{font-variant-numeric:tabular-nums;font-size:clamp(3.5rem,18vw,5.5rem);font-weight:800;line-height:1}.clock-sub{font-variant-numeric:tabular-nums;justify-content:center;gap:16px;margin:6px 0 12px;display:flex}.due{margin-bottom:var(--space);border:3px solid var(--color-border);border-radius:14px;padding:12px}.due.alert{border-color:var(--color-warn);background:color-mix(in srgb, var(--color-warn) 12%, transparent)}.due-alert{color:var(--color-warn-strong);margin:0 0 8px;font-weight:800}.due-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.due-cols h2{margin-bottom:6px;font-size:1rem}.due-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.due-item{width:100%;min-height:var(--touch-min);font:inherit;color:var(--color-fg);text-align:left;background:var(--color-surface);border:2px solid var(--color-border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;padding:6px 10px;font-size:.9rem;display:flex}.due-item.selected,.bench-row.selected{outline-offset:1px;outline:4px solid #f97316}.due-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.due-time,.bench-stats{font-variant-numeric:tabular-nums}.field-hint{color:var(--color-accent);margin:0 0 8px;font-weight:600}.bench-row{border-left-width:8px}.bench-stats{flex-direction:column;align-items:flex-end;font-size:.9rem;display:flex}.bench-row.owed{border-left-color:var(--color-warn)}.bench-row.owed-high{border-left-color:var(--color-danger)}.bench-row.owed-high .deficit,.bench-row.owed .deficit{color:var(--color-danger);font-weight:800}.bench-row.over{border-left-color:var(--color-ok)}.bench-row.queued{border-style:dashed}.sub-tray{border-color:#f97316}.sub-pair select{width:auto;min-height:44px}.banner{margin-bottom:var(--space);border:2px solid var(--color-border);border-radius:12px;padding:12px 14px}.banner p{margin:0 0 8px}.banner.warn{color:var(--color-warn);border-color:currentColor;font-weight:600}.toast{color:#fff;z-index:20;background:#b42318;border-radius:10px;margin:0;padding:12px 16px;font-weight:700;position:fixed;bottom:96px;left:16px;right:16px}.bottom-bar{padding:10px 16px max(10px, env(safe-area-inset-bottom));background:var(--color-bg);border-top:2px solid var(--color-border);z-index:10;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-bar .button{white-space:nowrap;flex:1 1 0;min-width:0}.bottom-bar .button:not(.undo){flex-shrink:0;min-width:96px}.button.undo{background:var(--color-fg);color:var(--color-bg);flex-direction:column;flex:2 1 0;justify-content:center;align-items:center;line-height:1.1;display:flex;overflow:hidden}.button.undo small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem;font-weight:600;overflow:hidden}.table-wrap{overflow-x:auto}table.playtime{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}table.playtime th,table.playtime td{text-align:left;border-bottom:1px solid var(--color-border);padding:8px 6px}table.playtime tr.owed td{color:var(--color-danger);font-weight:700}.scoreboard{margin-bottom:var(--space);border:3px solid var(--color-border);border-radius:14px;padding:12px}.score{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-bottom:10px;display:grid}.score-team{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.score-team:last-child{text-align:right}.score-num{font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:800}.report-header h1{margin-bottom:0}.report-score{font-variant-numeric:tabular-nums;margin:4px 0 12px;font-size:2rem;font-weight:800}.report-meta{grid-template-columns:max-content 1fr;gap:4px 16px;margin:0 0 12px;display:grid}.report-meta dt{font-weight:700}.report-meta dd{margin:0}textarea{font:inherit;color:var(--color-fg);background:var(--color-bg);border:2px solid var(--color-muted);border-radius:10px;padding:10px 14px}.report-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.95rem}.report-table th,.report-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:6px 8px}.report-table tr.below td{color:var(--color-danger);font-weight:700}.small-print{font-size:.85rem}.timeline .tl-sub td{font-weight:600}.timeline .tl-goal td,.timeline .tl-opponentGoal td{font-weight:800}.timeline .tl-pause td,.timeline .tl-resume td,.timeline .tl-periodStart td,.timeline .tl-periodEnd td,.timeline .tl-gameEnd td{color:var(--color-muted);font-style:italic}.timeline .tl-swap td,.timeline .tl-unavailable td,.timeline .tl-available td,.timeline .tl-lineup td{color:var(--color-warn)}.lineup{columns:2;padding-left:1.2em}.print-only{display:none}@page{size:letter;margin:.5in}@media print{:root,:root *{color:#000!important;box-shadow:none!important;background:#fff!important}.no-print,.bottom-bar,.header-bar,button,.button,textarea{display:none!important}.print-only{display:block}.shell{max-width:none;padding:0}.report-section{break-inside:avoid;page-break-inside:avoid}.report-table{font-size:10pt}.report-table th,.report-table td{padding:3px 6px;border-bottom:1px solid #999!important}.timeline tr{break-inside:avoid}.timeline thead{display:table-header-group}.table-wrap{overflow:visible}.report-table tr.below td{font-weight:800}.timeline .tl-goal td{text-decoration:underline}}.report-link{width:100%;margin-bottom:var(--space)}.report-hint{margin:-6px 0 var(--space);text-align:right}.report-hint a{color:var(--color-accent);font-weight:600}:root[data-contrast=high]{--color-bg:#fff;--color-fg:#000;--color-muted:#1f2328;--color-accent:#004d36;--color-ok:#004d36;--color-warn:#7a2e00;--color-danger:#9b0000;--color-on-accent:#fff;--color-surface:#fff;--color-border:#000;--color-pitch:#1d5a24;--color-pitch-line:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-weight:500}:root[data-contrast=high] .row,:root[data-contrast=high] .due-item,:root[data-contrast=high] .card,:root[data-contrast=high] .clock-bar,:root[data-contrast=high] .due,:root[data-contrast=high] .scoreboard,:root[data-contrast=high] .button.secondary,:root[data-contrast=high] input,:root[data-contrast=high] select,:root[data-contrast=high] .chip{border-width:3px;border-color:#000}:root[data-contrast=high] .muted,:root[data-contrast=high] .tile .muted,:root[data-contrast=high] .tile-stint{color:#000}:root[data-contrast=high] .tile{border-width:4px;font-size:.85rem}:root[data-contrast=high] .due.alert{background:#ffe8a3;border-color:#000}:root[data-contrast=high] .due-alert{color:#000}:root[data-contrast=high] .bench-row.owed,:root[data-contrast=high] .bench-row.owed-high{border-left-color:#9b0000}.button.danger{color:#fff;background:var(--color-danger)}.danger-card{border-color:var(--color-danger)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.live .button.small,.live .chip,.live .back,.live .sub-pair select{min-height:var(--touch-min)}a{color:var(--color-accent)}.report-hint a{min-height:var(--touch-min);align-items:center;padding:0 4px;display:inline-flex}
