/* Base provided by global.css — page-specific token overrides */
:root{
  --p1:#6366f1;--p1l:#818cf8;
  --p2:#f43f5e;--p2l:#fb7185;
  --gold:#ffd700;
}
html,body{height:100%;width:100%;overflow:hidden;font-size:16px}
button{outline:none}
input{outline:none}

/* === SCREENS === */
.screen{display:none;width:100%;height:100vh;overflow:hidden}
.screen.active{display:flex;flex-direction:column}

/* === SCROLLABLE CONFIG === */
#screen-config{overflow-y:auto;height:100vh}
#screen-config.active{display:block}

/* === CONFIG SCREEN === */
.cfg-wrap{min-height:100vh;padding:24px 16px;display:flex;flex-direction:column;gap:20px;max-width:1200px;margin:0 auto}
.cfg-title{text-align:center;font-size:2rem;font-weight:800;letter-spacing:2px;color:var(--pril)}
.cfg-subtitle{text-align:center;color:var(--muted);font-size:.9rem}
.cfg-columns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.cfg-panel{background:var(--sur);border:1px solid var(--brd);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.cfg-panel.p1-panel{border-color:var(--p1)}
.cfg-panel.p2-panel{border-color:var(--p2)}
.cfg-panel h3{font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:8px}
.p1-panel h3{color:var(--p1l)}
.p2-panel h3{color:var(--p2l)}
.cfg-label{font-size:.8rem;color:var(--muted);margin-bottom:4px}
.cfg-input{width:100%;background:var(--sur2);border:1px solid var(--brd);border-radius:8px;padding:8px 12px;color:var(--txt);font-size:1rem}
.cfg-input:focus{border-color:var(--p1)}
.avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.avatar-btn{background:var(--sur2);border:2px solid var(--brd);border-radius:8px;padding:6px;font-size:1.4rem;cursor:pointer;transition:all .15s;text-align:center}
.avatar-btn:hover{border-color:var(--muted);transform:scale(1.1)}
.avatar-btn.selected{border-color:var(--gold);background:rgba(255,215,0,.1);transform:scale(1.1)}
.controls-display{background:var(--sur2);border-radius:8px;padding:10px;font-size:.8rem;color:var(--muted);text-align:center;line-height:1.6}
.controls-display kbd{background:var(--brd);border-radius:4px;padding:1px 5px;color:var(--txt);font-size:.75rem}
.toggle-group{display:flex;gap:6px}
.toggle-btn{flex:1;background:var(--sur2);border:2px solid var(--brd);border-radius:8px;padding:6px 10px;color:var(--muted);font-size:.85rem;transition:all .15s}
.toggle-btn.active{border-color:var(--p2);color:var(--p2l);background:rgba(244,63,94,.1)}

/* Shared settings panel */
.cfg-shared{background:var(--sur);border:1px solid var(--brd);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.cfg-shared h3{color:var(--gold);font-size:1.1rem}
.cfg-select{width:100%;background:var(--sur2);border:1px solid var(--brd);border-radius:8px;padding:8px 12px;color:var(--txt);font-size:.95rem;-webkit-appearance:none}
.cfg-select:focus{border-color:var(--warn)}
.slider-row{display:flex;align-items:center;gap:10px}
.cfg-slider{flex:1;-webkit-appearance:none;height:6px;border-radius:3px;background:var(--brd);outline:none}
.cfg-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--warn);cursor:pointer}
.slider-val{min-width:32px;text-align:right;font-weight:700;color:var(--warn)}
.checkbox-group{display:flex;gap:10px;flex-wrap:wrap}
.cfg-check{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.9rem}
.cfg-check input{width:16px;height:16px;accent-color:var(--ok)}
.radio-group{display:flex;gap:10px;flex-wrap:wrap}
.cfg-radio{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.9rem}
.cfg-radio input{accent-color:var(--warn)}

.start-btn{width:100%;padding:16px;border-radius:12px;font-size:1.3rem;font-weight:800;background:linear-gradient(135deg,var(--p1),var(--p2));color:#fff;letter-spacing:1px;transition:all .2s;box-shadow:0 0 20px rgba(99,102,241,.4)}
.start-btn:hover{transform:translateY(-2px);box-shadow:0 0 30px rgba(99,102,241,.6)}
.start-btn:active{transform:translateY(0)}

/* === GAME SCREEN === */
#screen-game{display:none;flex-direction:column;height:100vh}
#screen-game.active{display:flex}
.game-topbar{background:var(--sur);border-bottom:1px solid var(--brd);padding:8px 16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.topbar-mode{font-weight:700;font-size:.95rem;color:var(--gold)}
.topbar-round{color:var(--muted);font-size:.9rem}
.pause-btn{background:var(--sur2);border:1px solid var(--brd);border-radius:8px;padding:5px 12px;color:var(--txt);font-size:.85rem}
.pause-btn:hover{border-color:var(--muted)}

.question-area{background:var(--sur);border-bottom:1px solid var(--brd);padding:12px 16px;flex-shrink:0;text-align:center}
.question-text{font-size:1.6rem;font-weight:800;margin-bottom:8px;direction:auto}
.question-label{font-size:.8rem;color:var(--muted);margin-bottom:6px}
.timer-bar-wrap{height:6px;background:var(--sur2);border-radius:3px;overflow:hidden}
.timer-bar{height:100%;border-radius:3px;transition:width .9s linear,background .3s;background:var(--ok)}
.timer-txt{font-size:.8rem;color:var(--muted);margin-top:4px}

.game-split{display:flex;flex:1;overflow:hidden}
.player-half{flex:1;display:flex;flex-direction:column;overflow:hidden;border:2px solid transparent;transition:border-color .3s}
.player-half.p1-half{border-right:1px solid var(--brd)}
.player-half.p1-half.answered-correct{border-color:var(--ok)}
.player-half.p1-half.answered-wrong{border-color:var(--err)}
.player-half.p2-half.answered-correct{border-color:var(--ok)}
.player-half.p2-half.answered-wrong{border-color:var(--err)}

.player-header{padding:10px 12px;display:flex;align-items:center;gap:8px;flex-shrink:0}
.p1-half .player-header{background:rgba(99,102,241,.1);border-bottom:1px solid rgba(99,102,241,.3)}
.p2-half .player-header{background:rgba(244,63,94,.1);border-bottom:1px solid rgba(244,63,94,.3)}
.player-avatar{font-size:1.6rem}
.player-name{font-weight:700;font-size:1rem}
.p1-half .player-name{color:var(--p1l)}
.p2-half .player-name{color:var(--p2l)}
.player-score{font-size:.9rem;font-weight:700;color:var(--gold)}
.player-streak{font-size:.85rem}
.player-hearts{font-size:.9rem;letter-spacing:1px}
.player-powerup-btn{margin-left:auto;background:var(--sur2);border:1px solid var(--brd);border-radius:8px;padding:4px 8px;font-size:.85rem;cursor:pointer;transition:all .15s}
.player-powerup-btn:hover{border-color:var(--warn)}
.player-powerup-btn.ready{border-color:var(--gold);color:var(--gold)}
.player-powerup-btn.used{opacity:.4;cursor:not-allowed}

.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;flex:1;align-content:start}
.option-btn{background:var(--sur2);border:2px solid var(--brd);border-radius:10px;padding:12px 10px;font-size:1rem;color:var(--txt);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:8px;text-align:left;direction:auto;min-height:60px}
.option-btn:hover{border-color:var(--muted);background:var(--sur)}
.option-btn .key-label{background:var(--brd);border-radius:5px;padding:2px 7px;font-size:.75rem;font-weight:700;color:var(--muted);flex-shrink:0;font-family:monospace}
.option-btn.selected{border-color:var(--warn);background:rgba(245,158,11,.1)}
.option-btn.correct{border-color:var(--ok)!important;background:rgba(16,185,129,.2)!important;color:var(--ok)}
.option-btn.wrong{border-color:var(--err)!important;background:rgba(239,68,68,.15)!important;color:var(--err)}
.option-btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
.option-btn.frozen{opacity:.5;pointer-events:none;filter:hue-rotate(180deg)}

.controls-hint{padding:6px 12px;font-size:.75rem;color:var(--muted);text-align:center;flex-shrink:0}

/* Typing duel */
.typing-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:16px}
.typing-input{width:100%;max-width:320px;background:var(--sur2);border:2px solid var(--brd);border-radius:10px;padding:12px 16px;color:var(--txt);font-size:1.2rem;text-align:center}
.typing-input:focus{border-color:var(--warn)}
.typing-input.correct-anim{border-color:var(--ok);background:rgba(16,185,129,.1)}
.typing-input.wrong-anim{border-color:var(--err);background:rgba(239,68,68,.1)}
.typing-status{font-size:.9rem;color:var(--muted);min-height:1.2em}
.typing-hint{font-size:1.4rem;font-weight:700;color:var(--txt);text-align:center}
.typing-hint .hint-letter{color:var(--ok);font-size:1.6rem}
.submit-btn{background:var(--p1);color:#fff;border-radius:8px;padding:10px 24px;font-size:1rem;font-weight:700}
.p2-half .submit-btn{background:var(--p2)}

/* Flash overlays */
.player-half{position:relative}
.flash-overlay{position:absolute;inset:0;pointer-events:none;z-index:10;opacity:0;transition:opacity .1s}
.flash-correct{background:rgba(16,185,129,.25)}
.flash-wrong{background:rgba(239,68,68,.25)}
.freeze-overlay{position:absolute;inset:0;pointer-events:none;z-index:10;background:rgba(100,200,255,.12);display:none;border:2px solid rgba(100,200,255,.4)}
.freeze-overlay::after{content:'❄️ FROZEN';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;color:rgba(100,200,255,.8);font-weight:800;text-shadow:0 0 20px rgba(100,200,255,.8)}

/* Shake animation */
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.shake{animation:shake .4s ease-in-out}

/* Score popup */
.score-popup{position:absolute;font-size:1.2rem;font-weight:800;pointer-events:none;z-index:20;animation:floatUp 1.2s ease-out forwards}
@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-60px) scale(1.3)}}
.score-popup.pos{color:var(--ok)}
.score-popup.neg{color:var(--err)}
.score-popup.neutral{color:var(--muted)}

/* Power-up flash */
@keyframes pwrFlash{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}100%{opacity:1;transform:scale(1)}}
.powerup-flash{animation:pwrFlash .4s ease-in-out}

/* Heart loss */
@keyframes heartLoss{0%{transform:scale(1)}50%{transform:scale(1.4);color:var(--err)}100%{transform:scale(0);opacity:0}}

/* === PAUSE OVERLAY === */
#pause-overlay{position:fixed;inset:0;background:rgba(8,12,18,.85);z-index:1000;display:none;flex-direction:column;align-items:center;justify-content:center;gap:20px}
#pause-overlay.active{display:flex}
.pause-box{background:var(--sur);border:1px solid var(--brd);border-radius:16px;padding:40px;text-align:center;display:flex;flex-direction:column;gap:16px}
.pause-title{font-size:2.5rem;font-weight:900;color:var(--gold)}
.resume-btn{background:var(--ok);color:#fff;border-radius:10px;padding:12px 32px;font-size:1.1rem;font-weight:700}

/* === RESULTS SCREEN === */
#screen-results{align-items:center;justify-content:center;overflow-y:auto}
.results-box{background:var(--sur);border:1px solid var(--brd);border-radius:16px;padding:32px;max-width:600px;width:90%;text-align:center;display:flex;flex-direction:column;gap:16px;margin:20px auto}
.results-title{font-size:2rem;font-weight:900;color:var(--gold)}
.winner-banner{font-size:1.4rem;font-weight:700;padding:12px;border-radius:10px;background:linear-gradient(135deg,rgba(99,102,241,.2),rgba(244,63,94,.2));border:1px solid var(--brd)}
.podium{display:flex;flex-direction:column;gap:8px}
.podium-row{display:flex;align-items:center;justify-content:space-between;background:var(--sur2);border-radius:10px;padding:12px 16px;gap:12px}
.podium-place{font-size:1.3rem}
.podium-info{flex:1;text-align:left}
.podium-name{font-weight:700;font-size:1rem}
.podium-score{color:var(--gold);font-weight:700}
.podium-stats{font-size:.85rem;color:var(--muted)}
.results-stats{background:var(--sur2);border-radius:10px;padding:16px;text-align:left;font-size:.9rem;display:flex;flex-direction:column;gap:6px}
.stat-row{display:flex;justify-content:space-between;color:var(--muted)}
.stat-row span{color:var(--txt)}
.results-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.res-btn{padding:12px 24px;border-radius:10px;font-size:1rem;font-weight:700}
.res-btn.rematch{background:var(--p1);color:#fff}
.res-btn.config{background:var(--sur2);border:1px solid var(--brd);color:var(--txt)}

/* Grand Prix between-rounds */
#between-overlay{position:fixed;inset:0;background:rgba(8,12,18,.9);z-index:900;display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px}
#between-overlay.active{display:flex}
.between-box{background:var(--sur);border:1px solid var(--gold);border-radius:16px;padding:32px;text-align:center;min-width:320px}
.between-title{font-size:1.6rem;font-weight:800;color:var(--gold);margin-bottom:12px}
.between-scores{display:flex;gap:20px;justify-content:center;margin-bottom:16px}
.between-player{text-align:center;padding:12px 24px;border-radius:10px;background:var(--sur2)}
.between-score{font-size:2rem;font-weight:900;color:var(--gold)}
.next-round-btn{background:var(--ok);color:#fff;border-radius:10px;padding:12px 32px;font-size:1.1rem;font-weight:700;margin-top:8px}

/* Confetti canvas */
.confetti-canvas{position:fixed;top:0;left:0;pointer-events:none;z-index:9999}

/* Back-to-dashboard link */
.back-link{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#1c2a3a;border:1px solid #243044;border-radius:8px;color:#8b949e;font-size:.85rem;text-decoration:none}

/* Controls label color helpers */
.controls-label-p1{color:var(--p1l)}
.controls-label-p2{color:var(--p2l)}

/* Pause overlay helpers */
.pause-hint{color:var(--muted);font-size:.9rem}
.pause-kbd{background:var(--brd);border-radius:4px;padding:1px 6px;font-size:.85rem}
.quit-btn{background:transparent;border:1px solid var(--brd);border-radius:10px;padding:10px 32px;font-size:1rem;font-weight:600;color:var(--muted);transition:all .15s}
.back-dash-link{font-size:.82rem;color:var(--muted);text-decoration:none;margin-top:-6px}

/* Between-rounds player card helpers */
.between-p1-border{border:1px solid var(--p1)}
.between-p2-border{border:1px solid var(--p2)}
.between-p1-name{color:var(--p1l);font-weight:700}
.between-p2-name{color:var(--p2l);font-weight:700}
.between-next-info{color:var(--muted);font-size:.9rem;margin-bottom:8px}

/* Responsive */
@media(max-width:700px){
  .cfg-columns{grid-template-columns:1fr}
  .question-text{font-size:1.2rem}
  .option-btn{font-size:.85rem;padding:8px 6px}
}
