:root{color:#172a33;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f2f4f1;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #e88b24}h1,h2,h3,p{margin-top:0}button,input,select{min-height:48px}input,select,textarea{width:100%;color:inherit;background:#fff;border:1px solid #bac8c6;border-radius:9px;padding:12px}label{gap:7px;font-size:.9rem;font-weight:600;display:grid}button{color:inherit;background:#fff;border:1px solid #cbd4d0;border-radius:10px;padding:12px 18px;font-weight:600}button[aria-pressed=true]{color:#fff;background:#174e43;border-color:#174e43}button:hover:not(:disabled){border-color:#174e43}small{font-weight:400}p{line-height:1.5}.pwa-status{color:#244c40;background:#e6eee8;padding:5px 16px;font-size:12px}.pwa-status button{padding:4px 8px;font-size:12px}main{max-width:1200px;margin:auto;padding:30px}header,.scorebar{justify-content:space-between;align-items:center;gap:20px;display:flex}header{margin-bottom:32px}h1{letter-spacing:-1.5px;margin:4px 0;font-size:36px}h1 span{color:#d67b21}.eyebrow{letter-spacing:1.5px;text-transform:uppercase;color:#52685e;font-size:11px;font-weight:750}.status{background:#e2ece5;border-radius:30px;padding:10px 15px;font-size:13px}.panel{background:#fff;border:1px solid #dbe2db;border-radius:18px;margin-bottom:24px;padding:28px}.setup{max-width:760px;margin:40px auto}.setup h2{font-size:30px}.row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.row>label{flex:1;min-width:140px}.row>h2{flex:1;margin-bottom:0}.setup form{gap:18px;display:grid}.primary{color:#fff;background:#174e43;border-color:#174e43;min-width:180px}.scorebar{padding:25px 0}.scorebar h2{margin:8px 0;font-size:27px}.scorebar small{margin-top:8px;font-size:16px;display:block}.score{text-align:center;font-size:52px;font-weight:800}.score small{letter-spacing:1.5px;font-size:10px;font-weight:700}nav{gap:8px;margin:15px 0 22px;display:flex}nav button{flex:1}.players{flex-wrap:wrap;gap:10px;margin:24px 0;display:flex}.players button{gap:5px;min-width:100px;display:grid}.players b{font-size:24px}.actions{grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0;display:grid}.court-area{max-width:480px;margin:24px auto}.court-area p{color:#52685e;font-size:13px}.court{touch-action:none;cursor:crosshair;background:#f5e2bb;border-radius:12px;width:100%;display:block}.court path,.court rect,.court circle{fill:none;stroke:#9e7847;stroke-width:3px}.court .marker{fill:#174e43;stroke:#fff;stroke-width:4px}.court-direction{pointer-events:none;opacity:.45;color:#174e43}.court-direction text{fill:currentColor;text-anchor:middle;font-size:21.3333px;font-weight:700}.court-direction .basket-label{letter-spacing:2px;font-size:10.3333px}.court .court-direction path{stroke:currentColor;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}details{margin:15px 0}summary{cursor:pointer;padding:8px}form>label{margin-bottom:20px}.hint{color:#60736b;font-size:13px}.event{border-top:1px solid #e1e7e1;justify-content:space-between;align-items:center;gap:15px;padding:20px 0;display:flex}.event h3{margin:6px 0;font-size:17px}.event p,.event .row{margin-bottom:0}.event p{white-space:pre-wrap}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:right;white-space:nowrap;border-bottom:1px solid #e1e7e1;padding:15px 10px}th:first-child{text-align:left}tbody tr:last-child{background:#eef3ed;font-weight:700}footer{color:#60736b;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;font-size:13px;display:flex}footer p{margin:0}.error{color:#913d1a;background:#fff0e8;border:1px solid #ecb293;border-radius:10px;margin-bottom:20px;padding:18px}@media (width<=700px){main{padding:16px}header{align-items:flex-start}.status{max-width:145px}.panel{padding:18px}.actions{grid-template-columns:repeat(2,1fr)}.event,footer{flex-direction:column;align-items:stretch}.event .row{gap:8px}h1{font-size:30px}.scorebar h2{font-size:23px}.players button{flex:1;min-width:85px}}.game-layout{min-width:0}.timeline-sidebar{display:none}fieldset{border:1px solid #cbd4d0;border-radius:10px;padding:16px}.warning{color:#785218;background:#fff5d9;border-radius:8px;padding:12px}@media (width>=701px){.recording-layout{grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr);align-items:start;gap:20px;display:grid}.recording-layout .actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.backup-controls{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.restore-review{border-color:#d4a348}@media (width<=700px){nav{flex-wrap:wrap}nav button{flex:40%}}.management-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.inline-form{flex-wrap:wrap;align-items:end;gap:12px;margin-top:20px;display:flex}.inline-form label{flex:1;min-width:150px}.roster-row{grid-template-columns:85px minmax(120px,1fr) auto;align-items:end;gap:12px;margin-bottom:12px;display:grid}.roster-chips{flex-wrap:wrap;gap:10px;display:flex}.roster-chips span{background:#eef3ed;border-radius:20px;padding:10px 15px}.game-form{background:#f7f9f6;border-radius:12px;margin:20px 0;padding:20px}.game-form fieldset{margin-bottom:20px}.game-list .event .row{justify-content:flex-end}.back-link{margin-bottom:18px}@media (width<=700px){.management-grid{grid-template-columns:1fr;gap:0}.roster-row{grid-template-columns:70px 1fr}.roster-row button{grid-column:1/-1}}.assist-credit{color:#174e43;font-weight:650}.reports{margin-top:20px}.report-toolbar{flex-wrap:wrap;align-items:end;gap:20px;margin-bottom:20px;display:flex}.report-toolbar label{min-width:220px}.report-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.report-cards div{background:#eef3ed;border-radius:10px;gap:6px;padding:18px;display:grid}.report-cards strong{font-size:28px}.report-cards span{color:#52685e;font-size:12px}.shot-chart{max-width:500px;margin:30px auto}.shot-chart .row{justify-content:space-between}.shot-chart h3{margin-bottom:0}.shot-legend{gap:25px;display:flex}.make-key{color:#187344;font-weight:700}.miss-key{color:#b02c32;font-weight:700}.court.read-only{cursor:default;touch-action:auto}.court .shot-made circle{fill:#188049;stroke:#fff;stroke-width:2px}.court .shot-missed path{stroke:#bd2832;stroke-width:4px;stroke-linecap:round}.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}@media (width<=700px){.report-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.event-icon{vertical-align:middle;flex:0 0 24px;width:24px;height:24px}.actions button{text-align:left;justify-content:flex-start;align-items:center;gap:10px;display:flex}.event h3{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.event h3 .event-icon{flex-basis:21px;width:21px;height:21px}.bench-toggle{background:0 0;border-style:dashed;margin:0 0 18px}.bench-players{border-top:1px dashed #cbd4d0;padding-top:12px}.timeline-sort{margin-bottom:14px;font-size:13px}@media (width<=400px){.actions button{gap:8px;padding:10px;font-size:14px}.actions .event-icon{flex-basis:20px;width:20px;height:20px}}.players[aria-label=On-court\ players]{grid-template-columns:repeat(auto-fit,minmax(48px,1fr));display:grid}.players[aria-label=On-court\ players] button{overflow-wrap:anywhere;min-width:0;padding:12px 4px;font-size:13px}.player-sort{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;display:flex}.player-sort>span{color:#52685e;margin-right:4px;font-size:13px}.player-sort button{padding:9px 15px}.game-tracker{padding-top:10px}.game-header{gap:12px;min-height:44px;margin-bottom:8px}.game-header h1{letter-spacing:-1px;margin:0;font-size:26px}.game-header>button{background:0 0;border:0;min-height:44px;padding:8px 0;font-size:13px}.game-tracker nav{flex-wrap:nowrap;gap:6px;margin:0 0 8px}.game-tracker nav button{flex:1 1 0;min-width:0;min-height:44px;padding:8px 5px;font-size:13px}.game-context{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:14px;display:flex}.game-teams{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.context-score{flex-shrink:0;font-size:24px}.context-score small{color:#52685e;font-size:12px}.game-footer{align-items:flex-start}.game-backup-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto;display:flex}.save-status{color:#52685e;font-size:12px}@media (width<=700px){.game-header{align-items:center}.game-tracker .game-footer{align-items:stretch}.game-backup-actions{justify-content:flex-end;max-width:100%}.game-footer p{font-size:12px}}.recording-controls.panel,.record-court.panel{padding:12px}.entry-heading{justify-content:space-between;margin-bottom:8px}.entry-heading h2,.record-court h2{margin:0;font-size:18px}.entry-heading label{margin:0}.entry-heading select{min-height:36px;padding:5px 10px}.recording-controls .players{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:8px 0 4px;display:grid}.recording-controls .players button{overflow-wrap:anywhere;gap:3px;min-width:0;padding:8px 3px}.recording-controls .player-name{font-size:14.3333px}.recording-controls .players small{font-size:10px}.recording-controls .bench-toggle{background:0 0;border:0;min-height:32px;margin:0;padding:4px 0;font-size:12px;text-decoration:underline}.recording-controls .bench-players{margin-bottom:8px;padding-top:4px}.recording-layout .actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.recording-layout .actions button{gap:5px;min-width:0;min-height:44px;padding:8px 5px;font-size:13px}.recording-layout .actions .event-icon{flex-basis:20px;width:20px;height:20px}.shot-options{gap:6px;margin:8px 0;display:flex}.shot-options button{flex:1;min-width:0;min-height:44px;padding:8px 4px;font-size:13px}.recording-controls>select{width:100%;margin-bottom:8px}.record-court{text-align:center}.record-court .hint{margin:6px 0;font-size:12px}.record-court .court-area{margin:8px auto}.record-court .court{height:auto}.record-court details{text-align:left;margin-top:6px;font-size:12px}.clear-location{min-height:32px;padding:4px 8px;font-size:12px}@media (width>=701px){.recording-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.half-court-frame{max-width:calc(106.383dvh - 276.596px);margin:auto}.full-court-frame{max-width:calc(53.1915dvh - 138.298px);margin:auto}}@media (width<=400px){.recording-layout .actions button{gap:3px;padding:8px 3px;font-size:12px}.recording-layout .actions .event-icon{flex-basis:17px;width:17px;height:17px}}.entry-heading label{flex:0 0 88px}.entry-heading>label{min-width:0;max-width:88px}@media (width>=701px) and (width<=900px){.recording-layout .actions button{gap:3px;padding:8px 3px;font-size:12px}.recording-layout .actions .event-icon{flex-basis:17px;width:17px;height:17px}}.recording-layout .actions span{overflow-wrap:anywhere;min-width:0}.substitution-pair{gap:8px;margin-bottom:10px}.substitution-pair>label{min-width:100px}.substitution-pair>button,.add-substitution{padding:7px 10px;font-size:12px}.add-substitution{margin-bottom:12px}.game-player-selection fieldset{border:1px solid #dbe2db;border-radius:12px;margin:16px 0;padding:12px}.game-player-selection legend{padding:0 6px;font-weight:700}.game-player-selection .players{margin:12px 0}.game-player-selection .players small{font-size:11px}.absent-player{opacity:.65;text-decoration:line-through}.account-screen{max-width:560px;padding-top:40px}.account-screen form,.account-create{gap:18px;display:grid}.account-screen .panel>button{margin:12px 8px 0 0}.account-footer{color:#52685e;border-top:1px solid #dbe2db;flex-wrap:wrap;align-items:center;gap:16px;max-width:1200px;margin:20px auto;padding:16px 30px;font-size:12px;display:flex}.account-footer button{background:0 0;border:0;min-height:36px;padding:4px;font-size:12px}.account-footer a{color:#52685e}.account-message{margin:12px 30px;font-size:13px}.administration{max-width:960px}.account-row{border-bottom:1px solid #dbe2db;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.account-row p{margin:4px 0}.account-row button{font-size:12px}.issued-password{border:2px solid #b5802e}.issued-password input{font-family:monospace}.opponent-score-entry{border-bottom:1px solid #dbe2db;margin-bottom:24px;padding-bottom:24px}.quarter-score-inputs{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0;display:grid}.quarter-score-inputs input{width:100%;min-width:0}.game-score-strip{background:#edf3ef;border-radius:12px;margin:0 0 20px;padding:16px}.game-score-teams{justify-content:space-between;align-items:center;gap:16px;display:flex}.game-score-teams>div{text-align:center;flex:1;gap:6px;min-width:0;display:grid}.game-score-teams strong{font-size:28px}.game-score-teams span{overflow-wrap:anywhere}.score-versus{color:#52685e;font-size:12px}.game-score-strip .hint{margin:10px 0 0}.edit-opponent-score{background:0 0;border:0;padding:8px 0;font-size:12px;text-decoration:underline}@media (width<=500px){.quarter-score-inputs{grid-template-columns:repeat(3,minmax(0,1fr))}}.sync-controls{max-width:1200px;margin:0 auto;padding:.5rem 30px;font-size:.85rem}.sync-controls>button{min-height:36px;padding:.35rem .6rem}.sync-controls summary{cursor:pointer;padding:.4rem 0}.sync-controls pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:18rem;font-size:.75rem;overflow:auto}.sync-comparison{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;display:grid}.timeline-bulk{background:#f1f6f2;border:1px solid #c7d4cb;border-radius:12px;margin:.75rem 0;padding:.75rem}.timeline-bulk .row{align-items:end}.timeline-selection{cursor:pointer;flex-direction:row;align-items:center;gap:.5rem;min-height:44px;display:flex}.timeline-selection input{width:22px;height:22px;padding:0}.event-selected{outline-offset:-2px;outline:2px solid #357253}.event.event-selectable{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1rem;display:grid}.event-selectable .timeline-selection{margin:0}.event-selectable>div{min-width:0}.timeline-toolbar{justify-content:space-between;align-items:center}.timeline-sorts{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;margin-left:auto;display:flex}.timeline-sorts button{padding:.5rem .7rem;font-size:.85rem}.row.save-action-row{grid-template-columns:minmax(140px,.9fr) minmax(0,1.1fr);align-items:center;gap:12px;margin-top:36px;display:grid}.save-action-button{min-height:96px;font-size:1.05rem}.save-action-row .save-status{color:#244d3e;overflow-wrap:anywhere;font-size:14px;font-weight:600;line-height:1.5}.save-action-row>button:not(.save-action-button){grid-column:1/-1}.save-confirmation{z-index:1000;pointer-events:none;place-items:center;animation:.5s ease-in-out both saved-check;display:grid;position:fixed;inset:0}.save-confirmation svg{filter:drop-shadow(0 3px 10px #0004);width:100px;height:100px}.save-confirmation circle{fill:#245d47;stroke:#fff;stroke-width:2px}.save-confirmation path{fill:none;stroke:#fff;stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}@keyframes saved-check{0%{opacity:0;transform:scale(.85)}25%,65%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.save-confirmation{animation:none}}.recording-controls select.quarter-reminder-select{color:#493300;background:#fff1ad;border:2px solid #9b6a00;box-shadow:0 0 0 2px #fff6cf}.quarter-control{flex:none;align-items:center;gap:8px;display:flex}.quarter-control select{width:auto}.quarter-reminder-text{text-align:right;visibility:hidden;white-space:nowrap;color:#785100;flex:0 0 82px;width:82px;font-size:12px;font-weight:700}.quarter-reminder-text.is-visible{visibility:visible}.settings-toggle{flex-direction:row;align-items:center;gap:.75rem;min-height:44px;margin:1rem 0;display:flex}.settings-toggle input{width:22px;height:22px;padding:0}
