@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Arial,sans-serif;color:#eef3fb;background:#090f19;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f7a84e;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Outfit,sans-serif}p{color:#929db1}.app{min-height:100vh;display:flex}.sidebar{width:256px;background:#101927;position:fixed;inset:0 auto 0 0;border-right:1px solid #273247;display:flex;flex-direction:column;padding:30px 17px;z-index:3}.brand{display:flex;align-items:center;gap:12px;padding:6px 7px 42px}.brand strong{font-size:15px;letter-spacing:.3px;display:block}.brand small{font-size:10px;letter-spacing:1.2px;color:#93a0b7}.ball{font-size:34px}.sideLabel,.eyebrow{color:#8190a7;font-size:10px;letter-spacing:1.7px;font-weight:800}.sideLabel{padding:0 14px 14px}.nav{display:flex;align-items:center;gap:12px;color:#a2aec2;border:0;background:none;border-radius:10px;width:100%;text-align:left;padding:14px;font-weight:700;margin:3px 0}.nav:hover,.nav.current{background:#283342;color:#fff}.nav.current{border-left:3px solid #f4a74e}.sideBottom{margin-top:auto}.statusCloud{font-size:11px;padding:12px;color:#79dba8;display:flex;gap:8px;align-items:center}.main{margin-left:256px;min-width:0;width:100%;padding:35px clamp(18px,4vw,64px);max-width:1680px}.top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:29px}.top h1{font-size:34px;line-height:1.1;margin:10px 0 9px}.top p{margin:0;font-size:13px}.playerBox{border:1px solid #303d50;background:#172233;padding:12px 16px;border-radius:12px;min-width:160px}.playerBox label{font-size:10px;color:#95a2b5;display:block;margin-bottom:5px;letter-spacing:1px;font-weight:800}.playerBox select{background:transparent;color:#fff;border:0;font-weight:700;width:100%}.playerBox option{background:#172233}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric,.card,.sessionCard{background:#151e2c;border:1px solid #2b374a;border-radius:15px}.metric{padding:20px}.metricHead{display:flex;justify-content:space-between;align-items:start;gap:9px}.metricHead small{letter-spacing:1px;font-size:10px;font-weight:800;color:#91a0b4}.metricHead span{font-size:21px}.metric>strong{font:700 32px Outfit,sans-serif;display:block;margin:18px 0 4px}.muted{color:#92a0b4!important}.metric>.muted{font-size:11px}.sectionTitle{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:35px 0 19px}.sectionTitle h2{font-size:22px;margin:0 0 5px}.sectionTitle p{font-size:12px;margin:0}.primary{border:0;background:#f0a247;color:#161719;border-radius:10px;padding:12px 19px;font-weight:800;display:inline-flex;gap:8px;justify-content:center;align-items:center}.primary:hover{background:#ffc071}.empty{padding:70px 18px;border:1px dashed #3b4960;border-radius:16px;text-align:center}.emptyIcon{font-size:56px}.empty h2{margin:14px 0}.empty p{font-size:13px}.sessionCard{padding:24px;margin-bottom:19px}.sessionHead{display:flex;justify-content:space-between;align-items:center;gap:18px}.sessionHead h2{font-size:21px;margin:10px 0 0}.sessionHead h2 .muted{font-size:16px;font-weight:500}.pill{background:#273e37;color:#8ee5b2;padding:6px 9px;border-radius:6px;font-size:10px;font-weight:800;white-space:nowrap}.sessionTotal{font:700 33px Outfit;white-space:nowrap}.sessionTotal span{font:500 12px DM Sans;color:#9aa8ba}.progress{width:100%;height:9px;background:#2e3a4b;border-radius:50px;overflow:hidden;margin:24px 0}.progress>div{height:100%;background:linear-gradient(90deg,#f1a348,#ffcf79);transition:width .25s}.sessionStats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:center;padding:2px 0 24px;border-bottom:1px solid #29364a}.sessionStats small{font-size:10px;color:#9daabd;display:block;letter-spacing:1px}.sessionStats strong{font:700 26px Outfit;display:block;margin-top:9px}.shotBox{text-align:center;padding:29px 0 0}.shotHint{color:#aebacc;font-size:11px;font-weight:800;letter-spacing:1.7px}.shotBox h2{font-size:29px;margin:9px 0 23px}.shotActions{display:flex;justify-content:center;gap:15px}.shotActions button{border:0;border-radius:12px;color:#fff;font-size:17px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:13px;padding:20px 36px;min-width:190px}.hit{background:#269c6a}.hit:hover{background:#37bd83}.miss{background:#b6464a}.miss:hover{background:#d65e64}.toolActions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:23px}.toolActions button,.rowActions button{border:1px solid #3a475a;background:#202d3e;color:#c9d4e3;border-radius:8px;padding:9px 12px;display:inline-flex;align-items:center;gap:6px}.toolActions button:hover,.rowActions button:hover{background:#34445b}.card{padding:23px;margin:18px 0}.card h3{font-size:18px;margin-bottom:16px}.roundTiles{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.roundTile{background:#202c3c;border-radius:10px;text-align:center;padding:19px 7px}.roundTile small{font-size:10px;letter-spacing:1px;color:#aab6c6}.roundTile strong{display:block;font:700 28px Outfit;margin:10px 0 5px}.roundTile span{font-size:11px;color:#9fadc0}.goal{border:1px solid #886039;background:#372b21;padding:10px 14px;color:#ffbf6b;font-weight:800;font-size:12px;border-radius:9px}.chartGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chartGrid .card{margin:0}.chartCard p{font-size:12px}.chart{height:300px;margin-top:22px}.emptyChart{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#8b99ad;text-align:center}.emptyChart p{max-width:210px;font-size:13px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:500px;text-align:left;font-size:13px}th{color:#99a7ba;letter-spacing:.6px;font-size:10px;padding:13px;border-bottom:1px solid #334155}td{padding:15px 13px;border-bottom:1px solid #29364a;color:#dae3ef}.accent{color:#93e3b9;font-weight:800}.rowActions{white-space:nowrap}.rowActions .danger{color:#f18e94;margin-left:7px}.smallCard{max-width:530px}.inlineForm{display:flex;gap:12px}.inlineForm input,.auth input{min-width:0;flex:1;border:1px solid #3b4a60;background:#101825;border-radius:9px;padding:12px;color:#fff}.error{color:#ffaaa9}.banner{background:#3c222b;border:1px solid #bc6166;border-radius:12px;padding:15px;display:flex;justify-content:space-between}.banner button{background:none;color:#fff;border:0;font-size:20px}.auth,.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.authCard{max-width:410px;width:100%;padding:35px;background:#151e2c;border:1px solid #324053;border-radius:20px}.authCard h1{font-size:30px;margin:6px 0}.authCard .logo{font-size:30px;font-weight:800;color:#ffbd71}.authCard p{font-size:13px}.authCard form{display:flex;flex-direction:column;gap:17px;margin:25px 0 10px}.authCard label{display:flex;flex-direction:column;gap:7px;color:#d8e0ed;font-weight:700;font-size:12px}.authCard .primary{margin-top:5px}.textButton{background:none;border:0;color:#ffbd71;padding:13px 0}footer{font-size:11px;color:#708198;text-align:center;margin-top:32px}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.chartGrid{grid-template-columns:1fr}}@media(max-width:760px){.app{display:block}.sidebar{position:static;width:100%;height:auto;padding:12px 12px 8px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px}.brand{padding:5px 10px;margin-right:auto}.brand strong{font-size:12px}.brand small{font-size:8px}.ball{font-size:25px}.sideLabel,.sideBottom{display:none}.sidebar .nav{width:auto;font-size:0;padding:12px;margin:0}.sidebar .nav svg{width:21px;height:21px}.main{margin:0;padding:20px 15px}.top{align-items:flex-start}.top h1{font-size:25px}.top p{font-size:11px}.playerBox{min-width:100px;padding:10px}.metric{padding:15px}.metric>strong{font-size:26px}.metricHead small{font-size:9px}.sectionTitle{flex-wrap:wrap}.sessionCard{padding:15px}.sessionHead h2{font-size:17px}.sessionTotal{font-size:25px}.sessionStats strong{font-size:21px}.shotActions button{min-width:0;flex:1;padding:18px 7px;font-size:14px}.roundTiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.roundTile{padding:12px 3px}.roundTile strong{font-size:19px}.roundTile span{font-size:9px}.roundTile small{font-size:8px}.card{padding:16px}.chart{height:270px}}@media(max-width:430px){.top{display:block}.playerBox{display:inline-block;margin-top:16px}.sessionStats small{font-size:8px}.shotBox h2{font-size:23px}}.courtWrap{max-width:720px;margin:0 auto 22px;text-align:center}.courtCaption{font-size:10px;color:#a8c0ca;letter-spacing:1px;font-weight:800;margin:8px 0}.courtSvg{width:100%;max-width:550px;display:block;margin:auto;aspect-ratio:500/325}.courtLegend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:12px 0}.courtZone{padding:9px 4px;border:1px solid #3b4d60;border-radius:9px;background:#1d2b39;min-width:0}.courtZone b{display:block;font-size:10px;line-height:1.3}.courtZone span{display:block;color:#abc0ce;font-size:11px;margin-top:5px}.courtZone.courtActive{border:2px solid #f0a247;background:#4a3724;color:#ffd99b}.courtNote{font-size:11px;margin:9px 0 16px;color:#a5b5c8}@media(max-width:760px){.courtLegend{grid-template-columns:repeat(2,minmax(0,1fr))}.courtZone:last-child{grid-column:1/-1}}.roundSummary{padding:12px 18px;margin:10px 0;border-radius:10px;background:#263242;color:#e7edf6;font-weight:700;text-align:center}:root{color:#e8f9fc;background:#060e17}body{background:radial-gradient(ellipse at 82% -12%,#113645 0%,transparent 43%),#060e17}.sidebar{background:linear-gradient(180deg,#081823,#08111a);border-right:1px solid #1d5764}.brand{border-bottom:1px solid #1c4050;margin-bottom:29px;padding-bottom:24px}.brand strong{font-weight:800;letter-spacing:1.2px}.brand small{color:#63d4e1;font-size:9px}.sideLabel,.eyebrow{color:#48bed0;letter-spacing:2px}.nav{border:1px solid transparent;border-radius:5px;transition:background .2s,border-color .2s}.nav.current,.nav:hover{color:#9bfbf8;border-color:#265d6b;background:linear-gradient(90deg,#103744,#0b2330)}.nav.current{border-left:3px solid #53e1e8}.main{max-width:1840px}.top h1{text-transform:uppercase;letter-spacing:.5px;font-weight:700}.top h1:after{content:" // LIVE SYSTEM";font-size:10px;letter-spacing:2px;color:#5cdef0;vertical-align:middle;padding-left:12px;white-space:nowrap}.playerBox,.metric,.card,.sessionCard{background:linear-gradient(155deg,#112633f0,#091825f7);border:1px solid #23505e;border-radius:9px;box-shadow:inset 0 1px #ffffff09}.metric{position:relative;overflow:hidden}.metric:before{content:"";position:absolute;top:0;left:0;width:42%;height:2px;background:linear-gradient(90deg,#4ff6ee,transparent)}.metricHead small,.sessionStats small{color:#7fbec9;letter-spacing:1.5px}.metric>strong,.sessionTotal,.sessionStats strong{font-variant-numeric:tabular-nums;color:#f3feff}.metric>strong{font-size:36px}.sectionTitle h2,.card h3{text-transform:uppercase;letter-spacing:.6px}.primary{background:#55e0df;color:#071d28;box-shadow:0 0 0 1px #b3ffff30;font-weight:800;border-radius:5px}.primary:hover{background:#a6ffff}.sessionCard{border-color:#2b7685}.sessionHead{border-left:3px solid #4ae0df;padding-left:12px}.pill{background:#123f3b;border:1px solid #29816e;color:#73ffd1;letter-spacing:1px}.progress{background:#102532;border:1px solid #1d4656;height:10px;border-radius:3px}.progress>div{background:linear-gradient(90deg,#249ea9,#62fff2);box-shadow:0 0 12px #30efe78a}.shotHint{color:#59e9ed;font-size:11px;letter-spacing:2.6px}.shotBox h2{text-transform:uppercase;letter-spacing:1.5px}.shotActions button{border-radius:6px;min-height:74px;letter-spacing:1px;transition:filter .2s,transform .15s}.shotActions button:active{transform:scale(.98)}.hit{background:linear-gradient(145deg,#15896e,#145b50);border:1px solid #3bf1bc!important}.miss{background:linear-gradient(145deg,#a53a4e,#5f263a);border:1px solid #ff7291!important}.toolActions button,.rowActions button{background:#0a2634;border:1px solid #306473;color:#b4e6ed;border-radius:5px}.roundTile,.courtZone{background:linear-gradient(180deg,#123441,#0c2533);border:1px solid #2c606d;border-radius:6px}.roundTile strong{color:#64e4e4}.goal{background:#2c251b;border:1px solid #987245;color:#ffca7a}.courtWrap{max-width:780px}.courtCaption{color:#5dd6e1;letter-spacing:2px;text-align:left;border-left:3px solid #53e2e7;padding:8px 12px;background:#0e2b38}.courtSvg{max-width:640px;aspect-ratio:500/425;filter:drop-shadow(0 10px 16px #0005)}.courtZone{padding:10px 6px}.courtZone b{font-size:10px;color:#c8ebef}.courtZone span{color:#66d7df;font-size:12px;font-weight:700}.courtZone.courtActive{background:#45331e;border:1px solid #ffc478;box-shadow:inset 0 0 0 1px #ffc47850,0 0 12px #ffb54a2b}.courtZone.courtActive b,.courtZone.courtActive span{color:#ffe0a1}.courtNote{color:#8aafba}.chartCard .recharts-cartesian-grid line{stroke:#1d4853}table th{background:#0c2938;color:#7fe4ea}table tr:hover td{background:#10344350}@keyframes zonePulse{0%,to{opacity:.45}50%{opacity:1}}.courtPulse{animation:zonePulse 1.6s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.courtPulse{animation:none}*{scroll-behavior:auto!important}}@media(max-width:760px){.brand{margin-bottom:0;padding-bottom:5px;border:0}.top h1:after{display:block;padding:9px 0 0}.metric>strong{font-size:29px}.courtCaption{font-size:9px;letter-spacing:1px}.shotActions button{min-height:65px}}.adminCreate{max-width:740px}.adminCreate h3,.card h3:has(svg){display:flex;align-items:center;gap:10px}.adminHelp{color:#8caeb9;font-size:12px;margin:14px 0 0}.adminEdit{background:#0a2532;border:1px solid #53d9d9;color:#fff;padding:9px;border-radius:5px;min-width:160px;max-width:280px;width:100%}.rowActions .danger{color:#ff9f9f;border-color:#7e3d4c}.adminCreate input{background:#071923;border:1px solid #347184;color:#fff;padding:13px;border-radius:5px;min-width:0;flex:1}@media(max-width:760px){.adminCreate .inlineForm{flex-direction:column}.adminCreate .inlineForm input{width:100%}.rowActions{white-space:normal}.rowActions button{margin:3px}}
