/* ============================================================
   AQS Puzzle Game CSS
   Dark theme — indigo/violet accent
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body.aqs-pz-body{background:#050510;color:#e2e8f0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:100vh;overflow-x:hidden}

/* ── SCREENS ─────────────────────────────────────────── */
.pz-screen{display:none}
.pz-screen.active{display:block}

/* ── LAYOUT WRAPPER ──────────────────────────────────── */
.pz-main{max-width:820px;margin:0 auto;padding:20px 16px 60px}

/* ── CARD ────────────────────────────────────────────── */
.pz-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:24px;margin-bottom:18px}
.pz-card-title{font-size:1rem;font-weight:700;color:#a5b4fc;margin-bottom:16px;display:flex;align-items:center;gap:8px}

/* ── HEADER ──────────────────────────────────────────── */
.pz-header{position:sticky;top:0;z-index:100;background:rgba(5,5,16,.92);border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(12px);padding:0 16px;height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.pz-header-logo{font-size:1.1rem;font-weight:800;background:linear-gradient(135deg,#a5b4fc,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;white-space:nowrap}
.pz-header-right{display:flex;gap:8px;align-items:center}

/* ── HERO TITLE ──────────────────────────────────────── */
.pz-hero{text-align:center;padding:32px 0 8px}
.pz-hero h1{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:900;background:linear-gradient(135deg,#a5b4fc 0%,#8b5cf6 50%,#ec4899 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.15;margin-bottom:10px}
.pz-hero p{color:#94a3b8;font-size:.95rem;max-width:460px;margin:0 auto}

/* ── MODE GRID ───────────────────────────────────────── */
.pz-mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}
@media(max-width:480px){.pz-mode-grid{grid-template-columns:1fr}}
.pz-mode-card{background:rgba(255,255,255,.04);border:2px solid rgba(255,255,255,.08);border-radius:16px;padding:18px 16px;cursor:pointer;transition:all .2s;text-align:left;-webkit-tap-highlight-color:transparent;user-select:none}
.pz-mode-card:hover{border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.08);transform:translateY(-2px)}
.pz-mode-card.selected{border-color:#8b5cf6;background:rgba(139,92,246,.15);box-shadow:0 0 0 3px rgba(139,92,246,.2)}
.pz-mode-icon{font-size:2rem;margin-bottom:10px;display:block}
.pz-mode-name{font-size:.95rem;font-weight:700;color:#e2e8f0;margin-bottom:4px}
.pz-mode-desc{font-size:.78rem;color:#94a3b8;line-height:1.45}
.pz-mode-badge{display:inline-block;margin-top:8px;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:10px;background:rgba(139,92,246,.25);color:#c4b5fd;border:1px solid rgba(139,92,246,.3)}

/* ── FORM CONTROLS ───────────────────────────────────── */
.pz-form-group{margin-bottom:16px}
.pz-label{font-size:.8rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px;display:block}
.pz-input{width:100%;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.12);border-radius:10px;color:#e2e8f0;font-size:.95rem;padding:11px 14px;outline:none;font-family:inherit;transition:border-color .2s}
.pz-input:focus{border-color:#8b5cf6}
.pz-input::placeholder{color:#4b5563}
.pz-select{width:100%;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.12);border-radius:10px;color:#e2e8f0;font-size:.92rem;padding:11px 14px;outline:none;font-family:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.pz-select:focus{border-color:#8b5cf6}
.pz-select option{background:#1e1b4b}

/* ── SEGMENT ─────────────────────────────────────────── */
.pz-seg{display:flex;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:4px;gap:4px}
.pz-seg-btn{flex:1;background:none;border:none;border-radius:7px;color:#64748b;font-size:.82rem;font-weight:600;padding:8px 4px;cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap}
.pz-seg-btn.active{background:rgba(139,92,246,.35);color:#c4b5fd;border:1px solid rgba(139,92,246,.4)}

/* ── BUTTONS ─────────────────────────────────────────── */
.pz-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:12px;border:none;font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-appearance:none}
.pz-btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 4px 20px rgba(99,102,241,.35)}
.pz-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 28px rgba(99,102,241,.45)}
.pz-btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}
.pz-btn-ghost{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#94a3b8}
.pz-btn-ghost:hover{background:rgba(255,255,255,.12);color:#e2e8f0}
.pz-btn-danger{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#fca5a5}
.pz-btn-danger:hover{background:rgba(239,68,68,.25)}
.pz-btn-full{width:100%}
.pz-btn-sm{padding:8px 16px;font-size:.82rem;border-radius:9px}

/* ── CREATE / JOIN TABS ──────────────────────────────── */
.pz-tab-row{display:flex;gap:8px;margin-bottom:20px}
.pz-tab-btn{flex:1;padding:11px 20px;border:1.5px solid rgba(255,255,255,.1);border-radius:10px;background:transparent;color:#64748b;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}
.pz-tab-btn.active{background:rgba(99,102,241,.25);border-color:rgba(99,102,241,.5);color:#a5b4fc}

/* ── ROOM CODE ───────────────────────────────────────── */
.pz-room-code-box{text-align:center;padding:24px;background:rgba(139,92,246,.07);border:2px dashed rgba(139,92,246,.35);border-radius:16px;margin:16px 0}
.pz-room-code{font-size:2.8rem;font-weight:900;letter-spacing:.25em;color:#a5b4fc;font-family:'Courier New',monospace;cursor:pointer;transition:transform .15s;display:inline-block}
.pz-room-code:active{transform:scale(.96)}
.pz-room-code-hint{font-size:.78rem;color:#64748b;margin-top:8px}

/* ── PLAYER SLOTS ────────────────────────────────────── */
.pz-players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin:16px 0}
.pz-player-slot{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:14px 10px;text-align:center;transition:all .3s}
.pz-player-slot.filled{border-color:rgba(139,92,246,.4);background:rgba(139,92,246,.1)}
.pz-player-slot.host-slot{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.08)}
.pz-player-slot.me-slot{border-color:rgba(16,185,129,.4);background:rgba(16,185,129,.08)}
.pz-player-avatar{width:42px;height:42px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:800;background:linear-gradient(135deg,#6366f1,#8b5cf6)}
.pz-player-name{font-size:.8rem;font-weight:600;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-player-badge{font-size:.65rem;color:#64748b;margin-top:3px}
.pz-empty-slot{opacity:.35;font-size:.78rem;color:#475569}
.pz-empty-slot .pz-player-avatar{background:rgba(255,255,255,.06);color:#475569;font-size:1rem}

/* ── STATUS DOTS ─────────────────────────────────────── */
.pz-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;animation:pz-pulse 1.4s ease-in-out infinite}
.pz-status-dot.green{background:#10b981}
.pz-status-dot.amber{background:#f59e0b}
.pz-status-dot.red{background:#ef4444}
@keyframes pz-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}

/* ── PROGRESS BAR ────────────────────────────────────── */
.pz-gen-wrap{margin:20px 0}
.pz-gen-bar-bg{height:8px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden}
#pz-gen-bar{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:4px;width:0%;transition:width .4s ease}
.pz-gen-label{font-size:.82rem;color:#94a3b8;text-align:center;margin-top:10px}

/* ── SCOREBOARD ──────────────────────────────────────── */
.pz-scoreboard{background:rgba(0,0,0,.25);border-radius:12px;overflow:hidden}
.pz-score-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.05);transition:all .3s}
.pz-score-row:last-child{border-bottom:none}
.pz-score-row.me{background:rgba(99,102,241,.1)}
.pz-score-rank{font-size:.82rem;font-weight:800;color:#64748b;width:22px;text-align:center;flex-shrink:0}
.pz-score-rank.r1{color:#f59e0b}
.pz-score-rank.r2{color:#94a3b8}
.pz-score-rank.r3{color:#b45309}
.pz-score-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;flex-shrink:0}
.pz-score-name{flex:1;font-size:.88rem;font-weight:600;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-score-pts{font-size:.88rem;font-weight:700;color:#a5b4fc;flex-shrink:0}
.pz-score-answer-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.pz-score-answer-indicator.answered{background:#10b981}
.pz-score-answer-indicator.waiting{background:rgba(255,255,255,.15)}

/* ── TIMER RING ──────────────────────────────────────── */
.pz-timer-wrap{display:flex;justify-content:center;margin-bottom:20px}
.pz-timer-ring{position:relative;width:72px;height:72px}
.pz-timer-ring svg{transform:rotate(-90deg)}
.pz-timer-ring-bg{stroke:rgba(255,255,255,.08)}
.pz-timer-ring-fg{stroke:#8b5cf6;stroke-linecap:round;transition:stroke-dashoffset .9s linear,stroke .4s}
.pz-timer-ring-fg.urgent{stroke:#ef4444}
.pz-timer-ring-fg.done{stroke:#10b981;transition:stroke .3s,stroke-dashoffset .3s}
.pz-timer-val.answered{color:#10b981;font-size:1rem}
.pz-timer-val{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:900;color:#e2e8f0}

/* ── QUESTION CARD (QUIZ mode) ───────────────────────── */
.pz-q-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:24px;margin-bottom:16px}
.pz-q-num{font-size:.75rem;font-weight:700;color:#8b5cf6;text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px}
.pz-q-text{font-size:1.1rem;font-weight:600;color:#e2e8f0;line-height:1.55;margin-bottom:20px}
.pz-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:500px){.pz-options{grid-template-columns:1fr}}
.pz-option{background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.1);border-radius:12px;padding:13px 16px;cursor:pointer;font-size:.9rem;color:#cbd5e1;font-weight:500;transition:all .18s;text-align:left;font-family:inherit;display:flex;align-items:center;gap:10px;-webkit-tap-highlight-color:transparent}
.pz-option:hover:not(:disabled){border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.1);color:#e2e8f0}
.pz-option:disabled{cursor:not-allowed}
.pz-option.selected{border-color:#8b5cf6;background:rgba(139,92,246,.2);color:#c4b5fd}
.pz-option.correct{border-color:#10b981;background:rgba(16,185,129,.15);color:#6ee7b7}
.pz-option.wrong{border-color:#ef4444;background:rgba(239,68,68,.12);color:#fca5a5}
.pz-option-letter{width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0}
.pz-option.selected .pz-option-letter{background:rgba(139,92,246,.4)}
.pz-option.correct .pz-option-letter{background:rgba(16,185,129,.35)}
.pz-option.wrong .pz-option-letter{background:rgba(239,68,68,.3)}

/* ── WORD HUNT mode ──────────────────────────────────── */
.pz-word-clue{font-size:1rem;font-weight:600;color:#e2e8f0;margin-bottom:16px;line-height:1.5;background:rgba(99,102,241,.07);border-left:3px solid #6366f1;padding:12px 16px;border-radius:0 10px 10px 0}
.pz-blanks{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0;justify-content:center}
.pz-blank-cell{width:38px;height:44px;border-bottom:3px solid rgba(139,92,246,.5);display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;font-size:1.3rem;font-weight:800;color:#a5b4fc;transition:border-color .3s}
.pz-blank-cell.revealed{border-color:#10b981;color:#6ee7b7}
.pz-blank-cell.typed-correct{border-color:#10b981;color:#6ee7b7;background:rgba(16,185,129,.1)}
.pz-blank-cell.typed-wrong{border-color:#ef4444;color:#fca5a5;background:rgba(239,68,68,.08)}
.pz-word-input-row{display:flex;gap:8px;margin-top:8px}
.pz-word-input{flex:1;background:rgba(255,255,255,.07);border:2px solid rgba(255,255,255,.12);border-radius:10px;color:#e2e8f0;font-size:1rem;padding:12px 14px;outline:none;font-family:inherit;transition:border-color .2s;text-transform:uppercase}
.pz-word-input:focus{border-color:#8b5cf6}
.pz-word-feedback{font-size:.88rem;font-weight:700;text-align:center;padding:8px;border-radius:8px;margin-top:8px;display:none}
.pz-word-feedback.correct{background:rgba(16,185,129,.15);color:#6ee7b7;display:block}
.pz-word-feedback.wrong{background:rgba(239,68,68,.12);color:#fca5a5;display:block}

/* ── WORD HUNT – Point Guess button ──────────────────── */
.pz-point-guess-btn{background:rgba(251,191,36,.12);border:1.5px solid rgba(251,191,36,.35);color:#fbbf24;border-radius:10px;padding:8px 18px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}
.pz-point-guess-btn:hover{background:rgba(251,191,36,.22);border-color:rgba(251,191,36,.6)}
.pz-point-guess-btn:disabled{opacity:.45;cursor:not-allowed}

/* ── CROSSWORD mode ──────────────────────────────────── */
.pz-cw-grid{display:grid;gap:2px;margin:0 auto}
.pz-cw-cell{width:34px;height:34px;position:relative;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:3px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}
.pz-cw-cell.pz-cw-blocked{background:#0f0f1a;border-color:transparent;border-radius:2px}
.pz-cw-cell-num{position:absolute;top:2px;left:3px;font-size:.5rem;font-weight:800;color:#8b5cf6;line-height:1;pointer-events:none;z-index:1}
.pz-cw-cell-inp{width:100%;height:100%;background:transparent;border:none;outline:none;text-align:center;font-size:.95rem;font-weight:800;color:#e2e8f0;text-transform:uppercase;font-family:inherit;cursor:text;caret-color:transparent}
.pz-cw-cell-inp.cw-inp-correct{color:#6ee7b7;background:rgba(16,185,129,.18)}
.pz-cw-cell-inp.cw-inp-wrong{color:#fca5a5;background:rgba(239,68,68,.18);animation:cw-shake .3s}
.pz-cw-cell-inp.cw-active-word{background:rgba(139,92,246,.18)}
.pz-cw-cell-inp:read-only{cursor:default}
@keyframes cw-shake{0%,100%{transform:translateX(0)}33%{transform:translateX(-3px)}66%{transform:translateX(3px)}}
.pz-cw-clues{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;margin-top:4px}
@media(max-width:500px){.pz-cw-clues{grid-template-columns:1fr}}
.pz-cw-clues h4{font-size:.78rem;font-weight:700;color:#8b5cf6;text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px}
.pz-cw-clue-item{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px;padding:7px 10px;border-radius:9px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);cursor:pointer;transition:all .2s}
.pz-cw-clue-item.active{border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.1)}
.pz-cw-clue-item.solved{border-color:rgba(16,185,129,.4);background:rgba(16,185,129,.07);opacity:.7}
.pz-cw-num{font-size:.78rem;font-weight:800;color:#8b5cf6;min-width:20px;flex-shrink:0}
.pz-cw-clue-item.solved .pz-cw-num{color:#10b981}
.pz-cw-clue-text{font-size:.8rem;color:#cbd5e1;line-height:1.45}
.pz-cw-answer-zone{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:18px;margin-bottom:16px}
.pz-cw-active-clue{font-size:.92rem;color:#a5b4fc;font-weight:600;margin-bottom:12px}
.pz-cw-answer-row{display:flex;gap:8px}

/* ── JIGSAW mode ─────────────────────────────────────── */
.pz-jigsaw-layout{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}
@media(max-width:640px){.pz-jigsaw-layout{grid-template-columns:1fr}}
.pz-jigsaw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;aspect-ratio:1;background:rgba(139,92,246,.12);border:2px solid rgba(139,92,246,.25);border-radius:6px;padding:2px}
/* Jigsaw pieces — actual puzzle-cut shapes via clip-path */
.pz-jigsaw-piece{aspect-ratio:1;display:flex;align-items:center;justify-content:center;transition:all .4s;position:relative;overflow:visible;background:rgba(30,28,60,.85);border:none}
/* 9 unique puzzle piece clip-paths for a 3x3 grid (tab = bump, blank = indent) */
.pz-jigsaw-piece:nth-child(1){clip-path:polygon(0% 0%,70% 0%,70% -8%,85% -8%,85% 0%,100% 0%,100% 70%,108% 70%,108% 85%,100% 85%,100% 100%,0% 100%)}
.pz-jigsaw-piece:nth-child(2){clip-path:polygon(0% 0%,100% 0%,100% 70%,108% 70%,108% 85%,100% 85%,100% 100%,30% 100%,30% 108%,15% 108%,15% 100%,0% 100%,0% 85%,-8% 85%,-8% 70%,0% 70%)}
.pz-jigsaw-piece:nth-child(3){clip-path:polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 85%,-8% 85%,-8% 70%,0% 70%)}
.pz-jigsaw-piece:nth-child(4){clip-path:polygon(0% 0%,30% 0%,30% -8%,15% -8%,15% 0% /* notch top */,70% 0%,70% -8%,85% -8%,85% 0%,100% 0%,100% 100%,0% 100%,0% 85%,-8% 85%,-8% 70%,0% 70%)}
.pz-jigsaw-piece:nth-child(5){clip-path:polygon(0% 0%,100% 0%,100% 30%,108% 30%,108% 15%,100% 15%,100% 70%,108% 70%,108% 85%,100% 85%,100% 100%,0% 100%,0% 85%,-8% 85%,-8% 70%,0% 70%,0% 30%,-8% 30%,-8% 15%,0% 15%)}
.pz-jigsaw-piece:nth-child(6){clip-path:polygon(0% 0%,100% 0%,100% 100%,30% 100%,30% 108%,15% 108%,15% 100%,0% 100%,0% 30%,-8% 30%,-8% 15%,0% 15%)}
.pz-jigsaw-piece:nth-child(7){clip-path:polygon(0% 0%,30% 0%,30% -8%,15% -8%,15% 0%,100% 0%,100% 100%,0% 100%)}
.pz-jigsaw-piece:nth-child(8){clip-path:polygon(0% 0%,100% 0%,100% 100%,70% 100%,70% 108%,85% 108%,85% 100%,0% 100%,0% 15%,-8% 15%,-8% 30%,0% 30%)}
.pz-jigsaw-piece:nth-child(9){clip-path:polygon(0% 0%,100% 0%,100% 100%,0% 100%)}
/* Piece states */
.pz-jigsaw-piece.locked{background:rgba(15,12,40,.9)}
.pz-jigsaw-piece.locked::before{content:'🔒';font-size:1.3rem;opacity:.6}
.pz-jigsaw-piece.unlocked{background:linear-gradient(135deg,rgba(99,102,241,.55),rgba(139,92,246,.5));box-shadow:0 0 0 2px rgba(139,92,246,.7),inset 0 0 20px rgba(139,92,246,.2)}
.pz-jigsaw-piece.unlocked::after{content:'✓';font-size:1.7rem;color:#c4b5fd;text-shadow:0 0 12px rgba(167,139,250,.8);font-weight:900}
.pz-jigsaw-piece.new-unlock{animation:pz-pop .5s ease}
@keyframes pz-pop{0%{transform:scale(.7);opacity:.5}60%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
/* Crossword prefilled cells */
.pz-cw-cell-inp.cw-inp-prefilled{color:#fbbf24;background:rgba(251,191,36,.12);cursor:default;font-weight:900}

/* ── QUESTION PROGRESS ───────────────────────────────── */
.pz-q-progress{display:flex;gap:5px;margin-bottom:20px;flex-wrap:wrap}
.pz-q-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.12);transition:all .3s}
.pz-q-dot.done-correct{background:#10b981}
.pz-q-dot.done-wrong{background:#ef4444}
.pz-q-dot.current{background:#8b5cf6;box-shadow:0 0 8px rgba(139,92,246,.7)}

/* ── GAME LAYOUT (side panel) ────────────────────────── */
.pz-game-layout{display:grid;grid-template-columns:1fr 220px;gap:16px;align-items:start}
@media(max-width:680px){.pz-game-layout{grid-template-columns:1fr}}
.pz-game-layout .pz-side-panel{order:2}
@media(max-width:680px){.pz-game-layout .pz-side-panel{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}}

/* ── TOAST ───────────────────────────────────────────── */
#pz-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9999;pointer-events:none;display:flex;flex-direction:column;gap:8px;align-items:center}
.pz-toast-item{background:rgba(15,12,40,.96);border:1px solid rgba(255,255,255,.15);color:#e2e8f0;padding:10px 20px;border-radius:12px;font-size:.88rem;font-weight:600;box-shadow:0 8px 30px rgba(0,0,0,.4);animation:pz-toast-in .3s ease;backdrop-filter:blur(10px)}
@keyframes pz-toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ── RESULTS ─────────────────────────────────────────── */
.pz-podium{display:flex;align-items:flex-end;justify-content:center;gap:12px;margin:32px 0 24px}
.pz-podium-step{text-align:center;min-width:90px}
.pz-podium-block{border-radius:8px 8px 0 0;margin:0 auto;width:72px;transition:height .6s ease}
.pz-podium-step.rank-1 .pz-podium-block{background:linear-gradient(180deg,#fbbf24,#f59e0b);height:100px}
.pz-podium-step.rank-2 .pz-podium-block{background:linear-gradient(180deg,#e2e8f0,#94a3b8);height:70px}
.pz-podium-step.rank-3 .pz-podium-block{background:linear-gradient(180deg,#d97706,#b45309);height:50px}
.pz-podium-avatar{width:48px;height:48px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:900;border:3px solid rgba(255,255,255,.3)}
.pz-podium-step.rank-1 .pz-podium-avatar{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#fef3c7}
.pz-podium-step.rank-2 .pz-podium-avatar{background:linear-gradient(135deg,#94a3b8,#64748b);border-color:#e2e8f0}
.pz-podium-step.rank-3 .pz-podium-avatar{background:linear-gradient(135deg,#d97706,#b45309);border-color:#fde68a}
.pz-podium-crown{font-size:1.6rem;margin-bottom:4px;display:block}
.pz-podium-name{font-size:.82rem;font-weight:700;color:#e2e8f0;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-podium-pts{font-size:.75rem;color:#94a3b8}

.pz-results-table{width:100%;border-collapse:collapse;font-size:.88rem}
.pz-results-table th{text-align:left;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.08);color:#64748b;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}
.pz-results-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05)}
.pz-results-table tr.me td{color:#a5b4fc;font-weight:700}
.pz-results-table tr:last-child td{border-bottom:none}

/* ── ANSWER REVIEW ───────────────────────────────────── */
.pz-review-item{padding:14px 16px;border-radius:12px;margin-bottom:10px;border-left:4px solid transparent;background:rgba(255,255,255,.04)}
.pz-review-item.correct{border-left-color:#10b981;background:rgba(16,185,129,.06)}
.pz-review-item.wrong{border-left-color:#ef4444;background:rgba(239,68,68,.06)}
.pz-review-item.skipped{border-left-color:#64748b;background:rgba(100,116,139,.06)}
.pz-review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pz-review-num{font-size:.75rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.08em}
.pz-review-icon{font-size:1.1rem}
.pz-review-question{font-size:.88rem;color:#cbd5e1;font-weight:600;line-height:1.45;margin-bottom:10px}
.pz-review-answers{display:flex;flex-direction:column;gap:5px}
.pz-review-correct{font-size:.82rem;color:#6ee7b7;background:rgba(16,185,129,.1);padding:5px 10px;border-radius:7px}
.pz-review-mine{font-size:.82rem;color:#a5b4fc;background:rgba(139,92,246,.1);padding:5px 10px;border-radius:7px}
.pz-review-item.wrong .pz-review-mine{color:#fca5a5;background:rgba(239,68,68,.1)}
.pz-review-item.skipped .pz-review-mine{color:#94a3b8;background:rgba(255,255,255,.04)}
.pz-review-label{font-weight:700;margin-right:4px;opacity:.7}
.skipped-text{font-style:italic;color:#64748b!important;background:none!important}

.pz-winner-banner{text-align:center;padding:24px;background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(251,191,36,.06));border:1px solid rgba(245,158,11,.25);border-radius:18px;margin-bottom:20px}
.pz-winner-crown{font-size:3rem;display:block;margin-bottom:8px}
.pz-winner-name{font-size:1.5rem;font-weight:900;color:#fbbf24;margin-bottom:4px}
.pz-winner-pts{font-size:.95rem;color:#94a3b8}

/* ── CELEBRATING OVERLAY ─────────────────────────────── */
#pz-celebration{display:none;position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:9999;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px;backdrop-filter:blur(6px)}
#pz-celebration.show{display:flex;animation:pz-cel-in .4s ease}
@keyframes pz-cel-in{from{opacity:0}to{opacity:1}}
.pz-cel-emoji{font-size:5rem;margin-bottom:12px;animation:pz-bounce 1s ease infinite alternate}
@keyframes pz-bounce{from{transform:scale(1)}to{transform:scale(1.1)}}

/* ── FEEDBACK OVERLAY (correct/wrong) ────────────────── */
#pz-answer-overlay{display:none;position:fixed;inset:0;z-index:800;pointer-events:none;align-items:center;justify-content:center}
#pz-answer-overlay.show{display:flex}
.pz-answer-overlay-inner{font-size:4rem;animation:pz-overlay-pop .6s ease forwards}
@keyframes pz-overlay-pop{0%{transform:scale(.5);opacity:0}40%{transform:scale(1.2);opacity:1}80%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}

/* ── OPPONENT BAR ────────────────────────────────────── */
.pz-opponent-bar{display:flex;align-items:center;justify-content:center;gap:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:14px 20px;margin-bottom:16px;flex-wrap:wrap}
.pz-opp-player{display:flex;align-items:center;gap:10px}
.pz-opp-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;flex-shrink:0;background:linear-gradient(135deg,#6366f1,#8b5cf6)}
.pz-opp-avatar-me{background:linear-gradient(135deg,#10b981,#059669)!important;box-shadow:0 0 0 3px rgba(16,185,129,.3)}
.pz-opp-info{display:flex;flex-direction:column}
.pz-opp-name{font-size:.82rem;font-weight:700;color:#e2e8f0;display:flex;align-items:center;gap:6px}
.pz-opp-pts{font-size:.75rem;color:#64748b;font-weight:600;margin-top:1px;transition:color .3s}
.pz-opp-me .pz-opp-pts{color:#10b981}
.pz-opp-you-tag{font-size:.62rem;font-weight:800;background:rgba(16,185,129,.2);color:#6ee7b7;border:1px solid rgba(16,185,129,.35);border-radius:5px;padding:1px 5px;letter-spacing:.04em}
.pz-vs-badge{font-size:.7rem;font-weight:900;color:#8b5cf6;background:rgba(139,92,246,.15);border:1px solid rgba(139,92,246,.3);border-radius:8px;padding:4px 10px;letter-spacing:.1em;flex-shrink:0}

/* ── NEXT QUESTION BUTTON ────────────────────────────── */
.pz-next-btn{background:linear-gradient(135deg,#10b981,#059669)!important;box-shadow:0 4px 20px rgba(16,185,129,.35)!important;font-size:1rem;letter-spacing:.02em;animation:pz-next-pulse 2s ease-in-out infinite}
.pz-next-btn:hover{transform:translateY(-2px)!important;box-shadow:0 8px 30px rgba(16,185,129,.45)!important}
@keyframes pz-next-pulse{0%,100%{box-shadow:0 4px 20px rgba(16,185,129,.35)}50%{box-shadow:0 4px 28px rgba(16,185,129,.6)}}

/* ── WAITING MESSAGE ─────────────────────────────────── */
.pz-wait-msg{display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:14px 20px;font-size:.88rem;font-weight:600;color:#64748b}

/* ── UTILITY ─────────────────────────────────────────── */
.pz-hide{display:none!important}
.pz-ta-c{text-align:center}
.pz-mt-12{margin-top:12px}
.pz-mt-20{margin-top:20px}
.pz-divider{border:none;border-top:1px solid rgba(255,255,255,.07);margin:20px 0}
.pz-loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(255,255,255,.15);border-top-color:#8b5cf6;border-radius:50%;animation:pz-spin .7s linear infinite;vertical-align:middle;margin-right:8px}
@keyframes pz-spin{to{transform:rotate(360deg)}}
.pz-code-input{font-size:2rem;font-weight:900;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:100%;font-family:'Courier New',monospace}
.pz-info-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:20px;font-size:.78rem;font-weight:600;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);color:#a5b4fc}
.pz-pts-flash{animation:pz-pts-pop .5s ease;color:#a5b4fc;font-weight:800}
@keyframes pz-pts-pop{0%{transform:scale(.8);opacity:.5}60%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}

/* ── CHAT ────────────────────────────────────────────── */
.pz-chat-wrap{background:rgba(0,0,0,.2);border-radius:10px;overflow:hidden}
#pz-chat-msgs{height:100px;overflow-y:auto;padding:8px;font-size:.78rem;line-height:1.5}
#pz-chat-msgs::-webkit-scrollbar{width:3px}
#pz-chat-msgs::-webkit-scrollbar-thumb{background:rgba(139,92,246,.4);border-radius:2px}
.pz-chat-msg{margin-bottom:4px}
.pz-chat-name{color:#a5b4fc;font-weight:700}
.pz-chat-input-row{display:flex;gap:6px;padding:6px;border-top:1px solid rgba(255,255,255,.07)}
.pz-chat-inp{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:7px;color:#e2e8f0;font-size:.78rem;padding:7px 10px;outline:none;font-family:inherit}
.pz-chat-send{background:#6366f1;border:none;border-radius:7px;color:#fff;font-size:.8rem;padding:7px 12px;cursor:pointer;font-family:inherit;font-weight:700}

/* ── RESPONSIVE ──────────────────────────────────────── */
@media(max-width:480px){
  .pz-main{padding:12px 10px 60px}
  .pz-card{padding:16px}
  .pz-hero h1{font-size:1.7rem}
  .pz-room-code{font-size:2.2rem}
}
