.stats-shell{max-width:1400px}h1{margin:10px 0}.filters,.game-fields{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600}input,select,textarea{font:inherit;border:1px solid #9ba995;border-radius:6px;background:#fff;color:#142c29;padding:10px;min-height:44px}textarea{width:100%;min-height:70px}button{min-height:44px;cursor:pointer}button:disabled{opacity:.6;cursor:wait}a{color:#244b42}.login-panel{max-width:460px;margin:40px auto}.login-panel form{display:grid;gap:20px}.table-scroll{overflow:auto;max-width:100%;margin:20px 0}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:12px 10px;border-bottom:1px solid #d8dfcf;text-align:left;white-space:nowrap}th{background:#edf2e2}td input[type=number]{width:76px;padding:8px}td input[type=checkbox]{width:22px;min-height:22px}.player-name{min-width:160px}.game-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid #d8dfcf}.game-card p{margin:4px 0}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0}#message{min-height:24px;font-weight:600;color:#88401e}.stats-panel h2{font-size:24px}.fine{font-size:13px;line-height:1.6}.stats-panel form>label{margin:16px 0}.number{text-align:right}small{font-size:12px}.summary{font-size:18px;font-weight:650}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #b18631;outline-offset:2px}
/* Game roster and touch-friendly live scorebook. */
.player-cards,.player-cards tbody{display:block}.player-cards thead{display:none}.player-cards tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px;margin:16px 0;border:1px solid #cbd6c4;border-radius:12px;background:white}.player-cards tr[hidden]{display:none}.player-cards td{display:block;border:0;padding:0;white-space:normal;min-width:0}.player-cards .player-name{grid-column:1/-1;font-size:20px;font-weight:700}.player-cards td:nth-child(2){grid-column:1/-1}.player-cards td:last-child{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px}.player-cards td:last-child input{min-width:0;flex:1}.stat-control>span{display:block;font-size:13px;margin-bottom:6px}.stepper{display:flex;align-items:center;gap:4px}.stepper button{min-width:48px;min-height:52px;font-size:28px;background:#e7efd9;border:1px solid #9ba995;border-radius:8px;touch-action:manipulation}.stepper input[type=number]{min-width:0;width:64px;flex:1;text-align:center;font-size:20px;appearance:textfield;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.selecting-roster .player-cards tbody{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.selecting-roster .player-cards tr{margin:0;grid-template-columns:1fr auto}.selecting-roster .player-name{grid-column:1}.selecting-roster .player-cards td:nth-child(2){grid-column:2}.selecting-roster .player-cards td:nth-child(n+3){display:none}.player-cards input[type=checkbox]{width:32px;height:32px;cursor:pointer}.tracking .player-cards td:nth-child(2){display:none}.tracking .game-fields,.tracking form>label{display:none}.live-scorebook>.actions{position:sticky;bottom:0;background:#fffef6;padding:12px;border-top:1px solid #cbd6c4;z-index:2}.live-scorebook .table-scroll{overflow:visible}.selecting-roster #game-summary{display:none}@media(max-width:600px){.player-cards tr{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:14px 10px}.stepper button{min-width:42px;min-height:52px}.stepper input[type=number]{width:36px;padding:4px}.stats-panel{padding:12px}.live-scorebook .actions button{flex:1}.game-fields label{width:100%}}
/* Compact scorebook: one player open at a time, with persistent local ordering. */
.tracking .player-cards tr{margin:6px 0;padding:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.tracking .player-cards .player-name{display:flex;align-items:center;gap:6px}.player-toggle{display:flex;flex:1;min-width:0;flex-direction:column;align-items:flex-start;text-align:left;background:transparent;border:0;padding:4px;font-size:16px;font-weight:650}.player-toggle>span{overflow-wrap:anywhere}.player-mini{font-size:11px;font-weight:400;color:#566852}.player-moves{display:flex;gap:3px}.player-moves button{min-height:44px;min-width:36px;padding:4px;font-size:20px;border:1px solid #cbd6c4;border-radius:6px;background:#f0f4e9;touch-action:manipulation}.tracking .player-cards tr.collapsed td:not(.player-name){display:none}.tracking .stepper{gap:2px}.tracking .stepper button{min-width:30px;min-height:44px;font-size:22px;padding:2px}.tracking .stepper input[type=number]{width:28px;font-size:17px;padding:2px}.tracking .stat-control>span{font-size:11px;margin-bottom:3px}.tracking .player-cards td:last-child input{width:100%;font-size:14px}.selecting-roster .player-moves,.selecting-roster .player-mini{display:none}.selecting-roster .player-toggle{pointer-events:none}.compact-hint{font-size:13px}.player-toggle[aria-expanded=true]{color:#286447}.player-toggle[aria-expanded=true]>span:before{content:'▾ '}.player-toggle[aria-expanded=false]>span:before{content:'▸ '}
/* Live court-side scoring: five players, one opponent, shared stat buttons. */
body.live-game .stats-shell{max-width:760px;padding-top:8px}body.live-game .stats-shell>.eyebrow,body.live-game .stats-shell>h1,body.live-game #welcome,body.live-game .stats-shell>.filters,body.live-game .stats-shell>.button-row,body.live-game .stats-shell>.fine{display:none}body.live-game #content{margin-top:0;padding:12px}body.live-game #message:empty{display:none}.live-header,.live-section-heading,.live-tools{display:flex;justify-content:space-between;align-items:center;gap:8px}.live-header>div{flex:1;min-width:0;font-size:12px}.live-header small{display:block;color:#55705d;font-size:11px;overflow-wrap:anywhere}.live-header button{padding:5px 8px;font-size:12px}.live-score{display:flex;justify-content:center;align-items:center;gap:28px;margin:8px 0}.live-score>div{flex:1;text-align:center;min-width:0}.live-score span{display:block;font-size:13px;overflow-wrap:anywhere}.live-score strong{display:block;font-size:36px;line-height:1.1;font-variant-numeric:tabular-nums}.live-score .score-divider{font-size:20px;color:#718273}.live-tabs{display:flex;gap:5px;margin:12px 0}.live-tabs button{flex:1;padding:7px;font-size:13px;border:1px solid #bccbb6;border-radius:7px;background:#f0f4e9}.live-tabs button[aria-pressed=true]{background:#244b42;color:white}.live-section-heading{font-size:13px;margin:8px 0}.live-section-heading h2{margin:8px 0;font-size:21px}.live-section-heading button{padding:5px 10px;font-size:12px}.on-court{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.on-court button{min-height:60px;padding:8px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f1f5e9;border:2px solid #c4d3b9;border-radius:9px;min-width:0;touch-action:manipulation}.on-court strong{font-size:14px;overflow-wrap:anywhere}.on-court small{font-size:11px}.on-court .opponent-target{background:#fcf0df;border-color:#d9ba8e}.on-court button[aria-pressed=true]{background:#244b42;color:#fff;border-color:#244b42;box-shadow:0 0 0 2px #a5c581}.on-court .opponent-target[aria-pressed=true]{background:#874515;border-color:#874515}.selected-target{font-size:13px;min-height:20px;margin:9px 0}.stat-step{display:block;font-size:13px;margin-bottom:7px}.event-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.event-buttons button{min-height:49px;border-radius:8px;border:1px solid #b7c5ae;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;touch-action:manipulation}.event-buttons strong{font-size:15px}.event-buttons small{font-size:13px}.event-made{background:#e2efdc;color:#164d37}.event-missed{background:#fff1e7;color:#86431d}.event-other{background:#edf1eb;color:#244b42}.event-buttons .event-other:last-child{grid-column:1/-1}.live-tools{margin-top:10px;flex-wrap:wrap;font-size:12px}.live-tools button{font-size:12px;padding:5px 10px}.shot-toggle{flex-direction:row;align-items:center;font-size:12px;font-weight:500;gap:6px}.shot-toggle input{min-height:22px;width:22px;height:22px}.last-play{font-size:12px;line-height:1.3;margin:6px 0;color:#58705c}.live-help{font-size:13px;line-height:1.5}.roster-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:14px 0}.roster-picks label{flex-direction:row;align-items:center;gap:12px;background:#eef3e8;padding:12px;border-radius:8px}.roster-picks input{width:24px;height:24px;min-height:24px}.roster-picks small,.lineup-picks small{display:block;font-size:12px;font-weight:400;margin-top:4px}.lineup-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lineup-picks button{padding:14px 8px;min-height:66px;background:#f1f4ec;border:2px solid #cbd6c4;border-radius:8px}.lineup-picks button[aria-pressed=true]{background:#244b42;color:white;border-color:#244b42}.lineup-count{font-weight:700}.live-bottom{position:sticky;bottom:0;padding:12px 0;background:#fffef6;margin-top:12px}.live-bottom button{width:100%;font-size:16px}.map-filters{display:flex;gap:12px;margin:12px 0}.map-filters label{flex:1;min-width:0}.map-filters select{width:100%;font-size:14px}.shot-court{display:block;width:100%;max-height:55dvh;aspect-ratio:500/420;touch-action:manipulation}.map-legend{display:flex;gap:20px;font-size:14px}.map-legend span:first-child{color:#17694c}.map-legend span:last-child{color:#b44820}.shot-list{list-style:none;padding:0}.shot-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #d8dfcf;padding:8px 0;font-size:13px}.shot-list button{font-size:12px;white-space:nowrap}.shot-dialog{width:min(95vw,540px);max-height:95dvh;padding:16px;border:1px solid #b6c6af;border-radius:14px;color:#142c29;background:#fffef6;overflow:auto}.shot-dialog::backdrop{background:#102a26b8}.shot-dialog h2{margin:0;font-size:22px}.shot-dialog p{font-size:13px;line-height:1.4}.shot-dialog .shot-court{cursor:crosshair;max-height:52dvh}.shot-dialog button{width:100%}.shot-dialog .fine{font-size:11px}.play-log{font-size:13px;line-height:1.8;padding-left:20px}#live-failure:not(:empty){margin:12px 0;padding:12px;background:#fff1e7;border:1px solid #bb774a;border-radius:8px;font-size:14px}#live-failure button{margin:4px}.live-game button:disabled{cursor:default}.live-game .stats-panel .table-scroll{margin:12px 0}@media(max-width:600px){body.live-game header{min-height:44px;padding:5px 12px}body.live-game header .brand{display:none}body.live-game .section-nav a{padding:6px 12px}body.live-game .stats-shell{padding:8px}body.live-game #content{padding:10px}.live-score strong{font-size:31px}.live-tabs{margin:8px 0}.on-court button{min-height:55px}.event-buttons button{min-height:44px}.selected-target{margin:7px 0}.live-tools{margin-top:6px}.live-game #logout{padding:6px;min-height:36px;font-size:12px}}
.event-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.event-buttons button{flex-direction:column;gap:2px;min-height:50px}.event-buttons .event-other:last-child{grid-column:1/-1;min-height:40px}.correction-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.correction-fields input{width:100%;min-width:0;box-sizing:border-box}.correction-dialog label{font-size:13px}.correction-dialog .actions button{width:auto;flex:1}.correction-dialog #correction-error{color:#88401e}.correction-dialog>form>label{margin-top:12px}
.period-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin:6px 0}.period-controls label{flex-direction:row;align-items:center;font-size:12px}.period-controls select{min-height:36px;padding:5px 9px;font-size:13px}.period-controls button{min-height:36px;font-size:12px;padding:5px 12px}.map-filters{flex-wrap:wrap}.map-filters label{min-width:110px}
