:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172c23;background:#f5f3eb;font-size:16px;font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{min-height:46px;padding:10px 15px;border:1px solid #a7b3a9;border-radius:10px;background:#fff;color:#172c23;font-weight:650;cursor:pointer}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){background:#e6ede4}button.primary{background:#245f3a;color:white;border-color:#245f3a}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #be651c;outline-offset:3px}.mast{background:#172c23;color:#fff;padding:18px max(18px,calc((100% - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.mast a{text-decoration:none;font-weight:750}.mast span{font-size:.75rem;letter-spacing:.16em;color:#c6e5ae}main{max-width:1140px;margin:auto;padding:28px 20px 60px}.intro,.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:18px}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.14em;margin:0 0 9px;color:#44674a}h1{font-size:clamp(1.8rem,5vw,3rem);letter-spacing:-.045em;margin:0}h2{font-size:1.35rem;letter-spacing:-.025em;margin:4px 0 14px}h3{margin:0 0 12px}.muted,footer{color:#4c6054;font-size:.9rem;line-height:1.5}.statusrow{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.85rem;margin:20px 0}.card{padding:24px;border:1px solid #d5dacd;background:#fffefa;border-radius:18px;margin:18px 0}.grid{display:grid;gap:18px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:flex;flex-direction:column;gap:7px;font-size:.9rem;font-weight:600}input,select,textarea{min-width:0;width:100%;border:1px solid #a7b3a9;border-radius:8px;background:white;color:#172c23;padding:12px;min-height:46px}textarea{resize:vertical}.check{flex-direction:row;align-items:center;margin:14px 0;font-weight:500}.check input{width:23px;min-height:23px;height:23px;flex:0 0 auto}details{margin:20px 0}summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:700}.rulesnote,.notice{border-left:4px solid #a36723;padding:13px 16px;background:#fff0d9;color:#55360f;font-size:.9rem;line-height:1.5}.notice{margin:14px 0}.danger{border-color:#ae352c;color:#85251e;background:#fff0eb}.setupteam{background:#f3f5ee;border:1px solid #d5dacd;border-radius:12px;padding:18px}.setupteam label{margin:10px 0}.clockpanel{position:sticky;top:0;z-index:5;background:#172c23;color:white;border-radius:18px;padding:18px 24px;box-shadow:0 6px 20px #172c2322}.clocktop{display:flex;align-items:center;justify-content:space-between;gap:10px}.clockpanel button{background:#2b4536;color:white;border-color:#65836b}.clockpanel button.primary{background:#c8efa8;color:#122515}.clock{font-size:clamp(3.5rem,12vw,5.5rem);font-weight:800;letter-spacing:-.045em;text-align:center;line-height:1.15;font-variant-numeric:tabular-nums}.phase{text-align:center;font-size:.9rem;font-weight:700;min-height:1.2em;margin:10px 0 0;color:#d4edc1}.clockhint{font-size:.8rem;text-align:center;color:#dae4d4;min-height:1.2em;margin:8px 0}.clockactions,.smallactions,.actions{display:flex;gap:10px;flex-wrap:wrap}.clockactions{justify-content:center;min-height:46px}.clockactions button{min-width:150px}.smallactions{justify-content:center;margin-top:10px}.smallactions button{font-size:.8rem;min-height:44px;padding:8px 12px}.sectionhead{margin:28px 0 6px}.sectionhead span{font-size:.8rem}.teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.team{border:1px solid #c9d1c1;background:#fffefa;border-radius:18px;padding:20px;min-width:0}.teamheader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.teamheader h2{margin:0}.teamtag{font-size:.72rem;font-weight:800;letter-spacing:.12em}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px;min-height:40px}.chip{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;background:#e7efdf;border:1px solid #bac9ae;border-radius:9px;font-size:1.1rem;font-weight:750}.chip.bench{background:#f4f1e9;border-color:#d5d0c1}.groupLabel{font-size:.75rem;letter-spacing:.08em;font-weight:750;margin:12px 0 4px}.teamactions{display:flex;flex-wrap:wrap;gap:8px}.teamactions button{font-size:.8rem;padding:8px 10px}.tablewrap{overflow:auto;margin-top:14px}table{border-collapse:collapse;width:100%;font-size:.78rem;white-space:nowrap}caption{text-align:left;padding:10px 0;font-weight:600}th,td{text-align:left;padding:9px 6px;border-bottom:1px solid #e0e4da}th{color:#52624d;font-size:.72rem}.playernote{font-size:.78rem;color:#805011;margin:8px 0}.staged{background:#e9efdf;padding:10px;font-size:.85rem;border-radius:8px}.event{padding:12px 0;border-bottom:1px solid #e0e4da;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem}.event span{flex:1;min-width:140px}.event button{font-size:.75rem;padding:8px;min-height:44px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font: .8rem/1.6 system-ui;max-height:330px;overflow:auto}footer{margin-top:24px}dialog{border:1px solid #a7b3a9;border-radius:18px;padding:25px;width:min(560px,calc(100% - 28px));max-height:90dvh;overflow:auto;color:#172c23;background:#fffefa}dialog::backdrop{background:#0c1d18aa}dialog label{margin:14px 0}#dialogError{color:#9b2d24}dialog .actions{margin-top:20px}#pocketDialog{text-align:center}#pocketClock{font-size:4rem;font-variant-numeric:tabular-nums}.pickgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.pickgrid .check{border:1px solid #ccd5c7;border-radius:9px;padding:8px;margin:0}.historyrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #dfe5d8}.historyrow span{overflow-wrap:anywhere}@media(max-width:700px){main{padding:20px 12px 40px}.three{grid-template-columns:repeat(2,minmax(0,1fr))}.teams{grid-template-columns:1fr}.clockpanel{padding:12px;border-radius:12px}.clocktop{font-size:.8rem}.clocktop button{font-size:.75rem;padding:8px}.clock{font-size:3.8rem}.clockpanel .clockhint{margin:5px 0}.smallactions{gap:6px;margin-top:6px}.smallactions button{padding:6px 8px}.sectionhead span{display:none}.card,.team{padding:18px}.intro{align-items:start}.intro>button{font-size:.8rem;white-space:nowrap}.two{grid-template-columns:1fr}.clockactions button{min-width:130px}.mast{padding:15px}.statusrow{align-items:start}#alerts{font-size:.7rem}}@media(prefers-reduced-motion:no-preference){button{transition:background .12s}}@media print{.mast,.clockpanel,button,#setup,.statusrow,#noteForm,#history,footer{display:none!important}.teams{display:block}.team{break-inside:avoid;margin:14px 0}pre{max-height:none}.card{border:0}main{padding:0}}
:is(h1,h2,h3,.clocktop strong){overflow-wrap:anywhere;min-width:0}
/* Touch-first referee setup; the same jersey cards carry through to Game Day. */
.jersey-picker,.color-picker{min-width:0;border:0;padding:0;margin:18px 0 8px}.jersey-picker legend,.color-picker legend{font-size:.9rem;font-weight:750;margin-bottom:9px}.jersey-picker[aria-invalid=true]{outline:2px solid #ae352c;outline-offset:5px;border-radius:6px}.jersey-picker:focus{outline:3px solid #be651c;outline-offset:5px}
.jersey-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px}.jersey-options button{min-height:50px;padding:8px;font-size:1.2rem;border:2px solid #a7b3a9;font-variant-numeric:tabular-nums}.jersey-options button[aria-pressed=true]{background:var(--team-color);color:var(--team-ink);border-color:var(--team-color);box-shadow:inset 0 0 0 2px var(--team-ink)}.jersey-options button:disabled{opacity:.32}.jersey-options .muted{grid-column:1/-1}
.setupteam{border-top:6px solid var(--team-color)}.setupteam details{margin:18px 0 0}.setupteam .fieldhint{margin:6px 0 10px}.color-options{display:flex;flex-wrap:wrap;gap:8px}.color-options button{width:44px;min-height:44px;border:2px solid #78857a;background:var(--swatch)}.color-options button:hover:not(:disabled){background:var(--swatch)}.color-options button[aria-pressed=true]{outline:3px solid #172c23;outline-offset:2px;box-shadow:inset 0 0 0 3px white}.custom-color{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.custom-color input{width:86px;height:48px;padding:4px}.custom-color .fieldhint{display:none}
/* Keep only the live clock and immediate actions sticky. */
.clockpanel{padding:8px 12px;border-radius:12px}.clocktop{gap:8px;font-size:.8rem}.clocktop button{min-height:44px;padding:6px 10px;font-size:.75rem;flex-shrink:0}.clocktop strong{line-height:1.4}.team-dot{display:inline-block;width:12px;height:12px;margin:0 4px 0 0;border-radius:50%;background:var(--team-color);border:1px solid #ffffff99;vertical-align:middle}.versus{font-weight:400;color:#b8cab6;margin:0 4px}.clockmain{display:flex;align-items:center;gap:12px;padding:4px 0}.clockreadout{flex:0 0 auto;min-width:100px}.clock{font-size:2.7rem;line-height:1;letter-spacing:-.03em}.clock[data-phase=finished]{font-size:1.15rem}.phase{font-size:.72rem;text-align:left;margin:4px 0 0;color:#dae4d4;max-width:115px;line-height:1.2}.clockactions{flex:1;gap:6px;min-height:44px}.clockactions button{min-width:0;min-height:44px;flex:1 1 0;padding:8px;font-size:.78rem;line-height:1.2}.match-tools{display:flex;align-items:start;gap:12px;flex-wrap:wrap;margin:10px 0}.match-tools>button{font-size:.8rem}.match-tools details{margin:0;flex:1;min-width:160px;font-size:.8rem}.match-tools summary{padding:12px 0}.match-tools p{line-height:1.4}.match-tools .smallactions{justify-content:start}.track-legend{font-size:.8rem}
/* Game Day paper player cards: touch a field/bench pair; keep times on the card. */
.team{background:#0d100b;color:#f4f2ea;border:2px solid var(--team-color);padding:16px}.teamheader{background:var(--team-color);color:var(--team-ink);border-radius:10px;padding:12px;gap:8px;margin-bottom:10px}.teamheader h2{font-size:1.15rem}.teamheader>strong{font-size:.8rem;white-space:nowrap}.teamtag{margin:0 0 4px}.subhint{display:flex;align-items:center;gap:8px;min-height:46px}.tap-hint{font-size:.78rem;line-height:1.4;margin:2px 0;color:#c8d2c4;flex:1}.subhint button{font-size:.75rem;padding:6px;min-height:44px}.team .groupLabel{color:#d1dbc9;margin:15px 0 8px}.ref-player-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.team .jchip{width:100%;min-width:0;min-height:66px;display:flex;align-items:center;padding:9px;background:#eee9d7;color:#14180f;border:0;border-radius:10px;text-align:left;touch-action:manipulation}.team .jchip:hover:not(:disabled){background:#f8f3e3}.team .jchip.bench{background:#c6c3b4}.team .jchip.sel{background:#ec9a42;color:#14180f;box-shadow:inset 0 0 0 3px #14180f,0 0 0 3px #f5c270}.team .jchip:disabled{opacity:.8}.jbody{display:flex;flex-direction:column;gap:5px;min-width:0;width:100%}.jname{display:flex;align-items:center;justify-content:space-between;gap:4px;flex-wrap:wrap}.jname strong{font-size:1.1rem}.jname small{font-size:.65rem}.jlive{font-size:.7rem;font-weight:750;font-variant-numeric:tabular-nums}.jmeta{font-size:.67rem;font-weight:500;line-height:1.3;font-variant-numeric:tabular-nums}.emptybench{font-size:.8rem;color:#c8d2c4}.team details{margin:12px 0 0}.team summary{font-size:.8rem;min-height:44px}.team .teamactions button{min-height:46px}.team .muted{color:#c8d2c4}.team .playernote{color:#f5d69b}.team th{color:#c8d2c4}.team td,.team th{border-color:#4b5845}.team .staged{color:#172c23}
.jchip .track{display:flex;gap:3px;height:12px;position:relative}.jchip .seg{position:relative;flex:1 1 0;height:12px;border-radius:3px;overflow:hidden;background:#14180f14}.jchip .seg.past{background:#14180f4d}.jchip .seg i{position:absolute;top:0;bottom:0}.jchip .seg .el{left:0;background:#14180f42}.jchip .seg .fut{right:0;background:repeating-linear-gradient(135deg,#14180f52 0 3px,#14180f1a 3px 6px)}.jchip .seg .iv{background:#14180f}
@media(max-width:360px){.ref-player-list{grid-template-columns:1fr}.clockreadout{min-width:88px}.clock{font-size:2.3rem}.clockmain{gap:8px}.clockactions button{font-size:.73rem;padding:6px}.teamheader h2{font-size:1rem}}
@media print{.team{background:white;color:black}.team details>*{display:block}.subhint,.team-tools,.match-tools{display:none}.team .jchip{color:black;opacity:1}.team .muted,.team .playernote,.team th{color:black}}
.fieldhint,.fielderror{display:block;font-size:.8rem;font-weight:400;line-height:1.45;overflow-wrap:anywhere}.fieldhint{color:#4c6054}.fielderror{color:#9b2d24;font-weight:600}.check+.fieldhint{margin:-5px 0 12px}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border:2px solid #ae352c;background:#fff6f2}input,select,textarea{scroll-margin-block:24px}#dialogError{line-height:1.5}#setupErrors:focus,#noteErrors:focus,#dialogError:focus{outline:3px solid #be651c;outline-offset:3px}
/* Flat full-width sections, with color marking teams instead of nested cards. */
main{max-width:none;padding-inline:clamp(12px,2vw,32px)}h1{font-size:clamp(1.25rem,3vw,1.7rem)}.intro{align-items:center}.intro .actions{align-items:center;justify-content:flex-end}.card{border:0;border-top:1px solid #ccd3c6;border-radius:0;background:transparent;padding:22px 0;margin:22px 0}.setupteam{border:0;border-left:4px solid var(--team-color);border-radius:0;background:transparent;padding:0 16px}.team{border-radius:4px}.teamheader{border-radius:0}.count-badge,.status-badge{display:inline-flex;align-items:center;min-height:24px;border-radius:20px;padding:3px 9px;background:#dce9d5;color:#183f27;font-size:.75rem;font-weight:750;white-space:nowrap;vertical-align:middle}.count-warning{background:#ffe1db;color:#9e231c}.status-badge{text-decoration:none}.status-badge[data-state=pending]{background:#fff0ce;color:#795110}#backupPanel{scroll-margin-top:160px}.reason-choices,.pair-roles{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.reason-choices button,.pair-roles button{font-size:.8rem}.pair-roles [aria-pressed=true]{background:#172c23;color:white}.jersey-options [data-assignment=out]{background:#ffe1db;color:#85251e;border-color:#ae352c}.jersey-options [data-assignment=in]{background:#dce9d5;color:#183f27;border-color:#245f3a}.export-preview{font-size:.8rem;overflow-wrap:anywhere}.export-preview pre{max-height:160px}.intro .status-badge{min-height:32px}
@media(min-width:1100px){.match-setup>.grid.two{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.setupteam{padding:0 12px}.intro{gap:8px}.intro .actions{gap:6px}.status-badge{font-size:.65rem}.card{padding:18px 0}.jersey-picker legend{line-height:1.8}}
.jersey-options button[data-assignment=out]{background:#ffe1db;color:#85251e;border-color:#ae352c}.jersey-options button[data-assignment=in]{background:#dce9d5;color:#183f27;border-color:#245f3a}
/* Setup ⇄ match navigation bar shown on the setup form while a match is active. */
.setupnav{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#172c23;color:#fff;border-radius:12px;padding:10px 14px;margin:0 0 16px;box-shadow:0 6px 20px #172c2322;font-size:.9rem;line-height:1.35}.setupnav small{color:#dae4d4;font-size:.75rem}.setupnav b{font-variant-numeric:tabular-nums}.setupnav button{flex-shrink:0;background:#c8efa8;color:#122515;border-color:#c8efa8}.setupnav button:hover:not(:disabled){background:#b5e08f}
