:root {
  --bg:#070b12;
  --panel:#101724;
  --panel2:#151f30;
  --line:#27364d;
  --text:#f4f7fb;
  --muted:#91a1b7;
  --accent:#ff9f1c;
  --accent2:#ffd166;
  --red:#ff4d5a;
  --green:#38d996;
  --blue:#4db8ff;
  --shadow:0 18px 50px rgba(0,0,0,.28);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}
button,a.link-btn{border:1px solid var(--line);background:#182338;color:var(--text);border-radius:10px;padding:.72rem 1rem;cursor:pointer;font-weight:750;text-decoration:none;transition:.15s ease}
button:hover,a.link-btn:hover{transform:translateY(-1px);border-color:#466080;background:#202e46}
button:active{transform:translateY(0)}
button:disabled{opacity:.55;cursor:not-allowed}
input,select{width:100%;border:1px solid var(--line);background:#0b121e;color:var(--text);border-radius:9px;padding:.72rem .8rem;outline:none}
input:focus,select:focus{border-color:#5579a7;box-shadow:0 0 0 3px rgba(77,184,255,.09)}
label{display:grid;gap:.4rem;color:#c9d4e4;font-size:.9rem;font-weight:700}
.toggle-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:700;color:var(--muted);letter-spacing:.08em;vertical-align:middle;margin-left:.5rem}
.toggle-label input[type="checkbox"]{width:auto;margin:0;cursor:pointer;accent-color:var(--accent)}
.eyebrow{font-size:.72rem;letter-spacing:.22em;font-weight:900;color:var(--accent2)}
.ghost-btn{background:rgba(255,255,255,.045);backdrop-filter:blur(8px)}
.primary-btn{background:linear-gradient(180deg,#ffb02e,#f08a00);color:#111;border-color:#ffb02e}
.secondary-btn{background:#22314a}.success-btn{background:#12382d;border-color:#256b52;color:#baf7df}.danger-btn{background:#5a1820;border-color:#94313c}.danger-outline{background:transparent;border-color:#81313a;color:#ff9ca5}
.muted{color:var(--muted);font-size:.85rem}.alert-error{padding:.75rem 1rem;border:1px solid #71303a;background:#35141a;border-radius:10px;color:#ffb5bc}

/* SCOREBOARD */
.scoreboard-page{min-height:100vh;overflow:hidden;background:radial-gradient(circle at 50% -20%,#1b2b45 0,#09101a 36%,#05080d 78%)}
.scoreboard-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;padding:.5vw 1.5vw 1vw;gap:.5vh}
.scoreboard-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.game-status{display:flex;align-items:center;gap:.45rem;margin-top:.35rem;font-size:.85rem;font-weight:900;letter-spacing:.08em;color:#c9d4e4}
.status-dot{width:9px;height:9px;border-radius:999px;background:#65758c;box-shadow:0 0 0 4px rgba(101,117,140,.12)}
.status-live{background:var(--green);box-shadow:0 0 16px rgba(56,217,150,.7)}.status-paused{background:var(--accent2)}.status-finished{background:var(--red)}
.display-actions{display:flex;gap:.6rem}
.arena-board{display:flex;flex-direction:column;align-items:center;gap:1vh;min-height:0}
.team-panel,.clock-panel{border-radius:1.3vw;box-shadow:var(--shadow);position:relative;overflow:hidden}
.clock-panel{border:1px solid rgba(142,167,202,.18);background:linear-gradient(180deg,rgba(24,35,54,.94),rgba(11,17,28,.94))}
.team-panel{display:grid;grid-template-rows:auto auto 1fr auto;align-items:center;text-align:center;padding:2vh 2vw;border:1px solid var(--team-border);background:var(--team-bg);border-radius:1.3vw;width:100%}
.team-panel::before{content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;background:radial-gradient(circle at 50% 20%,var(--team-glow),transparent 53%)}
.home-panel{--team-glow:#2D8CFF;--team-color:#2D8CFF;--team-bg:linear-gradient(180deg,rgba(45,140,255,.45),rgba(20,60,120,.7));--team-border:rgba(45,140,255,.6)}.away-panel{--team-glow:#D9272E;--team-color:#D9272E;--team-bg:linear-gradient(180deg,rgba(217,39,46,.45),rgba(100,15,20,.7));--team-border:rgba(217,39,46,.6)}
.team-label{font-size:clamp(.72rem,1vw,1rem);letter-spacing:.18em;color:var(--muted);font-weight:900}
.team-name{margin:.4vh 0 0;font-size:clamp(1.5rem,3.25vw,4rem);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}
.big-score{align-self:center;font-variant-numeric:tabular-nums;font-size:clamp(10rem,28vw,32rem);line-height:.82;font-weight:950;letter-spacing:-.07em;text-shadow:0 .05em .18em rgba(0,0,0,.25)}
.team-meta{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);width:100%;padding-top:1.4vh;gap:1rem}
.team-meta>div{display:flex;flex-direction:column;gap:.25rem}.team-meta strong{font-size:clamp(1.5rem,3vw,3.3rem)}.meta-label{font-size:clamp(.65rem,.85vw,.9rem);letter-spacing:.12em;color:var(--muted);font-weight:900}
.possession-arrow{position:absolute;top:1rem;font-size:2.2vw;opacity:.08;transition:.2s}.home-panel .possession-arrow{left:1rem}.away-panel .possession-arrow{right:1rem}.possession-arrow.active{opacity:1;color:var(--accent2);filter:drop-shadow(0 0 12px rgba(255,209,102,.75))}
.clock-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;padding:0 1vw}
.game-clock{font-size:clamp(8rem,18vw,20rem);font-weight:950;line-height:.9;font-variant-numeric:tabular-nums;color:#fff;letter-spacing:-.055em;text-shadow:0 0 40px rgba(255,255,255,.15)}
.period-row{display:flex;align-items:center;gap:1vw;font-weight:900;color:#cad6e7;font-size:clamp(1rem,1.8vw,2rem)}.period-row strong{font-size:clamp(3rem,6vw,6.5rem);color:var(--accent2)}
.period-card{border:1px solid #2a3a52;background:#111d2e;border-radius:1vw;padding:1vh 1.5vw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;align-self:center}.period-card span{font-size:clamp(.7rem,1vw,1rem);letter-spacing:.15em;color:var(--accent2);font-weight:900}.period-card strong{font-size:clamp(3rem,5vw,5rem);font-variant-numeric:tabular-nums;color:#fff;line-height:1}
.scores-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:1vw;width:100%}
.clock-warning{color:#ff5d68!important;text-shadow:0 0 20px rgba(255,77,90,.32)}
.lineup-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:1vw;align-items:center;min-height:7vh}.lineup-column{min-width:0}.lineup-title{font-size:.66rem;letter-spacing:.15em;color:var(--muted);font-weight:900;margin-bottom:.45rem}.lineup-list{display:flex;gap:.45rem;overflow:hidden}.lineup-player{display:grid;grid-template-columns:auto minmax(55px,1fr) auto;align-items:center;gap:.4rem;border:1px solid var(--line);background:#0d1521;border-radius:9px;padding:.45rem .55rem;min-width:0;flex:1}.jersey{display:grid;place-items:center;width:25px;height:25px;border-radius:6px;background:#1e2d44;font-weight:900;color:var(--accent2)}.lineup-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.76rem}.lineup-player strong{font-size:.72rem;white-space:nowrap}.lineup-empty{color:var(--muted);font-size:.8rem}.center-message{font-size:.75rem;letter-spacing:.15em;font-weight:950;color:var(--accent2);white-space:nowrap}
.connection-badge{position:fixed;bottom:.5rem;right:.6rem;padding:.28rem .5rem;border-radius:6px;background:#1c2532;color:#92a4bb;font-size:.62rem;letter-spacing:.08em;font-weight:900}.connection-badge.online{color:#75e4ba}.connection-badge.offline{color:#ff929c;background:#33171b}

/* CONTROL */
.control-page{min-height:100vh;background:linear-gradient(180deg,#08101a,#090d14 45%,#070a10);padding-bottom:4rem}.control-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1rem,3vw,3rem);background:rgba(7,11,18,.9);backdrop-filter:blur(12px);border-bottom:1px solid #1f2b3d}.control-header h1{margin:.15rem 0 0;font-size:1.35rem}.header-actions{display:flex;gap:.55rem}.control-layout{width:min(1500px,96vw);margin:1rem auto;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.control-card{background:linear-gradient(180deg,rgba(17,25,39,.98),rgba(12,18,29,.98));border:1px solid #223149;border-radius:14px;padding:1rem;box-shadow:0 12px 30px rgba(0,0,0,.16)}.control-card h2{margin:0;font-size:1.1rem}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.game-picker-card,.master-card,.history-card{grid-column:1/-1}.form-row{display:grid;grid-template-columns:1fr auto;gap:.6rem}.game-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem}.stack-form{display:grid;gap:.8rem;margin-top:.9rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}details{margin-top:.9rem;border-top:1px solid var(--line);padding-top:.75rem}summary{cursor:pointer;color:#ffcf77;font-weight:800}
.match-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:.8rem}.control-clock-box,.match-settings{border:1px solid var(--line);border-radius:12px;background:#0b131f;padding:.9rem}.control-clock-box>span,.period-control>span,.possession-controls>span{font-size:.7rem;letter-spacing:.12em;color:var(--muted);font-weight:900}.control-clock-box>strong{display:block;font-size:clamp(2.5rem,5vw,5rem);line-height:1.05;margin:.25rem 0 .8rem;font-variant-numeric:tabular-nums}.shot-control>strong{color:#ff6672}.button-grid{display:grid;gap:.45rem;margin-top:.45rem}.button-grid.two{grid-template-columns:1fr 1fr}.button-grid.three{grid-template-columns:1fr 1fr 1fr}.period-control{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.45rem;margin-bottom:.75rem}.period-control strong{font-size:2rem;min-width:2.2rem;text-align:center;color:var(--accent2)}.possession-controls{margin-top:.75rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:.45rem}.possession-controls span{grid-column:1/-1}.active-control{border-color:#d99b2f!important;background:#4a3514!important;color:#ffe2a8!important}
.team-control-card{min-width:0}.team-control-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:.7rem}.team-control-head h2{margin:.15rem 0 0;font-size:1.4rem}.control-score{font-size:3.2rem;font-weight:950;line-height:.9;font-variant-numeric:tabular-nums}.quick-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin:.8rem 0}.score-btn{background:#15372c;border-color:#246348;color:#9ff1d0;font-size:1.05rem}.team-counters{display:grid;grid-template-columns:1fr 1fr auto;gap:.55rem;align-items:stretch;margin-bottom:.8rem}.team-counters>div{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.35rem;border:1px solid var(--line);padding:.45rem;border-radius:10px;background:#0c1420}.team-counters span{font-size:.75rem;color:var(--muted);font-weight:850}.team-counters strong{font-size:1.4rem}.player-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.player-table{width:100%;border-collapse:collapse;min-width:760px}.player-table th,.player-table td{padding:.5rem .45rem;border-bottom:1px solid #1d293b;text-align:center;font-size:.8rem}.player-table th{position:sticky;top:0;background:#131e2e;color:#9eb0c6;font-size:.68rem;letter-spacing:.05em}.player-table td:nth-child(2),.player-table th:nth-child(2){text-align:left}.player-table tr.on-court{background:rgba(56,217,150,.055)}.mini-actions{white-space:nowrap}.mini-actions button{padding:.34rem .45rem;font-size:.7rem;margin:.08rem}.add-player-form{display:grid;grid-template-columns:70px 1fr auto;gap:.45rem;margin-top:.65rem}.empty-state{padding:1rem;color:var(--muted);text-align:center}.event-list{display:grid;gap:.35rem;max-height:320px;overflow:auto}.event-item{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .7rem;border:1px solid #1f2c40;background:#0b131f;border-radius:9px}.event-item span{font-size:.82rem}.event-item small{color:var(--muted);font-size:.68rem;white-space:nowrap}.event-item.reverted{opacity:.45;text-decoration:line-through}.toast{position:fixed;z-index:50;right:1rem;top:5rem;background:#183529;border:1px solid #2c6e53;color:#c8fbe7;padding:.75rem 1rem;border-radius:10px;box-shadow:var(--shadow)}.toast.bad{background:#3b181d;border-color:#7c313a;color:#ffc0c6}

/* LOGIN */
.login-page{display:grid;place-items:center;padding:1rem}.login-card{width:min(430px,94vw);background:#101826;border:1px solid #27364d;border-radius:16px;padding:1.4rem;box-shadow:var(--shadow)}.login-card h1{margin:.4rem 0}.login-card p{color:var(--muted)}.login-card form{display:grid;gap:.75rem;margin-top:1rem}

@media (max-width:1000px){
  .control-layout{grid-template-columns:1fr}.team-control-card{grid-column:1}.match-grid{grid-template-columns:1fr 1fr}.match-settings{grid-column:1/-1}
}
@media (max-width:700px){
  .control-header{align-items:flex-start}.header-actions{flex-direction:column}.two-col,.match-grid{grid-template-columns:1fr}.match-settings{grid-column:auto}.control-layout{width:96vw}.team-counters{grid-template-columns:1fr}.quick-controls{grid-template-columns:repeat(2,1fr)}.add-player-form{grid-template-columns:60px 1fr}.add-player-form button{grid-column:1/-1}.button-grid.three{grid-template-columns:1fr 1fr}.possession-controls{grid-template-columns:1fr}.possession-controls span{grid-column:auto}
}
@media (max-aspect-ratio:4/3){
  .scoreboard-page{overflow:auto}.scoreboard-shell{min-height:100vh}.arena-board{grid-template-columns:1fr 1fr;grid-template-areas:"clock clock" "home away"}.clock-panel{grid-area:clock;min-height:28vh}.home-panel{grid-area:home}.away-panel{grid-area:away}.big-score{font-size:22vw}.game-clock{font-size:12vw}.lineup-strip{grid-template-columns:1fr 1fr}.center-message{display:none}
}
