:root,[data-theme=light]{--bg:#eef1f6;--panel:#fff;--panel-shadow:0 2px 16px #00000014;--text:#1a1e2e;--text-secondary:#5c6880;--label:#3a4358;--input-bg:#f7f8fb;--input-border:#d0d7e2;--focus-ring:#4f6ef71f;--accent:#4f6ef7;--accent-end:#6c5ce7;--accent-shadow:#4f6ef74d;--accent-hover-shadow:#4f6ef773;--accent-glow:#4f6ef740;--secondary-bg:#fff;--secondary-border:#d0d7e2;--secondary-hover:#f0f2f8;--secondary-text:#3a4358;--divider:#e2e6ee;--card-bg:#f5f7fb;--card-border:#e2e6ee;--timer-track:#e2e6ee;--timer-glow:#4f6ef726;--timer-label:#8895ad;--timer-idle:#b0b8c9;--score-accent:#4f6ef7;--vote-selected-bg:#eef2ff;--vote-selected-border:#4f6ef7;--vote-selected-shadow:0 0 0 2px #4f6ef740, 0 2px 12px #4f6ef726;--confirm-border:#2ea04359;--confirm-bg:#2ea04314;--confirm-text:#1a7f37;--success-glow:#2ea04340;--error:#e53e3e;--self-mark:#4f6ef7}[data-theme=gray]{--bg:#25272e;--panel:#2e3039;--panel-shadow:0 4px 24px #00000059;--text:#e4e5ea;--text-secondary:#8e919e;--label:#b0b3be;--input-bg:#222329;--input-border:#41434d;--focus-ring:#e53e3e2e;--accent:#e53e3e;--accent-end:#c53030;--accent-shadow:#e53e3e4d;--accent-hover-shadow:#e53e3e80;--accent-glow:#e53e3e40;--secondary-bg:#353740;--secondary-border:#4a4d58;--secondary-hover:#3e4049;--secondary-text:#c8cad2;--divider:#3c3e48;--card-bg:#2a2c34;--card-border:#3c3e48;--timer-track:#3c3e48;--timer-glow:#e53e3e33;--timer-label:#7a7d8a;--timer-idle:#555762;--score-accent:#e53e3e;--vote-selected-bg:#e53e3e1a;--vote-selected-border:#e53e3e;--vote-selected-shadow:0 0 0 2px #e53e3e40, 0 2px 12px #e53e3e26;--confirm-border:#48bb7859;--confirm-bg:#48bb781a;--confirm-text:#68d391;--success-glow:#48bb7840;--error:#fc8181;--self-mark:#fc8181}[data-theme=dark]{--bg:#0c0c10;--panel:#16161e;--panel-shadow:0 4px 28px #00000080;--text:#e4e5ea;--text-secondary:#6b6e7a;--label:#9a9daa;--input-bg:#111118;--input-border:#2a2a36;--focus-ring:#e53e3e33;--accent:#e53e3e;--accent-end:#b83232;--accent-shadow:#e53e3e59;--accent-hover-shadow:#e53e3e8c;--accent-glow:#e53e3e4d;--secondary-bg:#1e1e28;--secondary-border:#2e2e3a;--secondary-hover:#26262f;--secondary-text:#b0b3be;--divider:#22222e;--card-bg:#131318;--card-border:#22222e;--timer-track:#22222e;--timer-glow:#e53e3e40;--timer-label:#5a5d6a;--timer-idle:#3a3d48;--score-accent:#e53e3e;--vote-selected-bg:#e53e3e14;--vote-selected-border:#e53e3e;--vote-selected-shadow:0 0 0 2px #e53e3e4d, 0 0 18px #e53e3e26;--confirm-border:#48bb784d;--confirm-bg:#48bb7814;--confirm-text:#68d391;--success-glow:#48bb7833;--error:#fc8181;--self-mark:#fc8181}*{box-sizing:border-box}:root{color:var(--text);background:var(--bg);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}body{background:var(--bg);min-height:100vh;margin:0;transition:background .3s}#root{min-height:100vh}.layout{place-items:center;min-height:100vh;padding:24px;display:grid}.layout.wide{place-items:start center}.panel{background:var(--panel);width:min(760px,100%);box-shadow:var(--panel-shadow);border:none;border-radius:18px;gap:16px;padding:24px;transition:background .3s,box-shadow .3s;display:grid}.panel.wide{width:min(1400px,100%)}.adminChips{flex-wrap:wrap;gap:6px;margin:4px 0 0;display:flex}.adminChip{background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.8rem;line-height:1.4;display:inline-flex}.adminChip.golden{color:#f59e0b;background:#f59e0b1f;border-color:#f59e0b59;font-weight:600}.adminChip.positive{color:var(--confirm-text);background:#2ea0431a;border-color:#2ea0434d}.adminChip.negative{color:var(--error);background:#e53e3e1a;border-color:#e53e3e4d}.adminChip.muted{opacity:.6}.adminChip strong{color:var(--text);font-weight:600}.scoreScale{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.scoreScale button{background:var(--card-bg);border:1px solid var(--card-border);width:36px;min-width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:0;font-size:.95rem;font-weight:600;transition:all .15s}.scoreScale button:hover:not(.active){background:var(--secondary-hover);color:var(--text)}.scoreScale button.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 8px var(--accent-glow)}.scoreScale button.clear{width:auto;color:var(--text-secondary);padding:0 10px}.scoreScale .scoreDivider{background:var(--divider);width:1px;height:24px;margin:0 4px}.completionsList{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;flex-direction:column;gap:8px;margin-top:10px;padding:10px;display:flex}.completionItem{background:var(--panel);border:1px solid var(--card-border);border-radius:6px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.completionItem .completionText{color:var(--text);font-weight:500}h1{color:var(--text);margin:0;font-size:30px}h2{color:var(--text);margin:0}p{margin:0}.subtitle{color:var(--text-secondary)}.row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.inputGroup{color:var(--label);gap:6px;font-weight:500;display:grid}.inputGroupError input,.inputGroupError textarea,.inputGroupError select{border-color:var(--error);background:color-mix(in srgb, var(--error) 8%, var(--input-bg))}.inputGroupError input:focus,.inputGroupError textarea:focus,.inputGroupError select:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--error) 30%, transparent)}.fieldError{color:var(--error);font-size:12px;font-weight:500;line-height:1.3}input,select,textarea,button{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--text);font:inherit;border-radius:10px;padding:10px 12px;transition:background .2s,border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}textarea{resize:vertical;min-height:90px}textarea.bioTextarea{min-height:52px;font-size:.85rem}.bioHint{color:var(--text-secondary);font-weight:400}button{cursor:pointer;font-weight:600;transition:transform .12s,opacity .12s,box-shadow .12s,background .2s}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:linear-gradient(135deg, var(--accent), var(--accent-end));color:#fff;box-shadow:0 3px 12px var(--accent-shadow);border-color:#0000}.primary:hover:not(:disabled){box-shadow:0 4px 18px var(--accent-hover-shadow);transform:translateY(-1px)}.secondary{background:var(--secondary-bg);border:1px solid var(--secondary-border);color:var(--secondary-text)}.secondary:hover:not(:disabled){background:var(--secondary-hover)}.divider{background:var(--divider);height:1px}.themeSwitcher{align-items:center;gap:6px;display:flex}.themeBtn{border:2px solid var(--input-border);cursor:pointer;border-radius:50%;width:28px;min-width:28px;height:28px;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s;position:relative}.themeBtn:hover{transform:scale(1.15)}.themeBtn.themeBtnActive{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.themeBtnLight{background:linear-gradient(135deg,#fff 50%,#4f6ef7 50%)}.themeBtnGray{background:linear-gradient(135deg,#2e3039 50%,#e53e3e 50%)}.themeBtnDark{background:linear-gradient(135deg,#0c0c10 50%,#e53e3e 50%)}.header{justify-content:space-between;align-items:center;gap:16px;display:flex}.headerActions{align-items:center;gap:10px;display:flex}.timerHud{flex-shrink:0;width:104px;height:104px;position:relative}.timerRingSvg{width:104px;height:104px;filter:drop-shadow(0 2px 8px var(--timer-glow));display:block}.timerRingTrack{fill:none;stroke:var(--timer-track);stroke-width:6px}.timerRingProgress{fill:none;stroke-width:6px;stroke-linecap:round;filter:drop-shadow(0 0 6px var(--accent-glow));transition:stroke-dashoffset .35s linear}.timerHudCenter{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding-top:4px;display:flex;position:absolute;inset:0}.timerHudLabel{letter-spacing:.14em;text-transform:uppercase;color:var(--timer-label);font-size:9px;font-weight:700;line-height:1.1}.timerHudValue{font-variant-numeric:tabular-nums;color:var(--text);font-size:26px;font-weight:800;line-height:1.05}.timerHudIdle{color:var(--timer-idle);font-size:22px;font-weight:600}.timerHudUnit{color:var(--timer-label);margin-top:1px;font-size:10px;font-weight:600}.ratingHint{margin:-4px 0 0;font-size:13px;line-height:1.35}.leaveButton{width:auto;min-width:116px}.scoreboard{gap:6px;margin:0;padding:0;list-style:none;display:grid}.scoreboard li{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;transition:background .2s;display:flex}.scoreboard li strong{color:var(--score-accent);font-size:18px}.gameGrid{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:24px;display:grid}.gameMain{gap:16px;min-width:0;display:grid}.gameSidebar{gap:10px;display:grid;position:sticky;top:24px}.sidebarTitle{letter-spacing:.1em;text-transform:uppercase;color:var(--timer-label);margin:0;font-size:12px;font-weight:700}@media (width<=900px){.gameGrid{grid-template-columns:minmax(0,1fr)}.gameSidebar{position:static}}.phaseBlock{gap:10px;display:grid}.duelPrompt{text-align:center;margin:0;font-size:22px;line-height:1.3}.duelOptions{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;display:grid}.duelColumn{gap:8px;min-width:0;display:grid}.duelColumn .voteOption{height:100%}@media (width<=720px){.duelOptions{grid-template-columns:1fr}}.voteChips{flex-wrap:wrap;gap:6px;padding:4px 2px;display:flex}.voteChip{background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.8rem;line-height:1.4;animation:.25s voteFadeIn;display:inline-flex}.voteChip.voteChipGolden{color:#f59e0b;background:#f59e0b24;border-color:#f59e0b66;font-weight:600;box-shadow:0 0 0 1px #f59e0b26}.voteChipHeart{font-size:13px;line-height:1}.voteChipName{font-weight:500}.voteHint{margin:-4px 0 0;font-size:13px;line-height:1.35}.voteOption{text-align:left;background:var(--card-bg);border:1px solid var(--card-border);gap:8px;transition:background .2s,border-color .2s,transform .12s;display:grid}.voteOption:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 10px #00000014}.voteOptionMeta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.voteOptionTag{letter-spacing:.1em;text-transform:uppercase;color:var(--timer-label);font-size:11px;font-weight:700}.voteSelfMark{color:var(--self-mark);font-size:12px;font-weight:600}.voteOptionAuthor{color:var(--text);text-transform:none;letter-spacing:.02em;margin-left:8px;font-weight:600}.voteRevealBar{background:var(--card-border);border-radius:3px;height:6px;margin:12px 0 18px;overflow:hidden}.voteRevealBarFill{transform-origin:100%;background:linear-gradient(90deg,#ffd86b,#ff7a3d);width:100%;height:100%;animation:5s linear forwards voteRevealCountdown}@keyframes voteRevealCountdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.voteOptionBody{color:var(--text);font-size:15px;line-height:1.35}.voteBreakdown{border:1px solid var(--card-border);background:var(--card-bg);border-radius:12px;margin-top:8px;padding:12px 14px}.voteBreakdownTitle{letter-spacing:.06em;text-transform:uppercase;color:var(--timer-label);margin:0 0 8px;font-size:12px;font-weight:700}.voteBreakdownList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.voteBreakdownList li{justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.voteBreakdownSide{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:800}.voteOption.voteLocked{opacity:.72}.voteOption.voteSelected{border-color:var(--vote-selected-border);box-shadow:var(--vote-selected-shadow);background:var(--vote-selected-bg);animation:.5s votePulse}.voteOption.voteGolden{background:color-mix(in srgb, #f59e0b1f 100%, var(--vote-selected-bg));border-color:#f59e0b99;box-shadow:0 0 0 2px #f59e0b59,0 6px 24px #f59e0b2e}.voteHintInline{letter-spacing:.04em;text-transform:uppercase;color:var(--timer-label);opacity:.7;font-size:11px;font-weight:500}.voteStatus{color:var(--accent);font-weight:600;animation:.35s voteFadeIn}@keyframes votePulse{0%{transform:scale(1)}50%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes voteFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ratingItem{border:1px solid var(--card-border);background:var(--card-bg);border-radius:10px;gap:6px;padding:10px 12px;transition:background .2s;display:grid}.ratingSelf{color:var(--self-mark);font-size:12px;font-weight:600}.errorText{color:var(--error)}.copyLinkBtn{font-size:14px}.aiStatusBadge{border:1px solid var(--confirm-border);background:var(--confirm-bg);color:var(--confirm-text);border-radius:12px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;font-weight:500;transition:background .3s,border .3s;display:flex}.aiStatusBadge.aiStatus-generating{border-color:var(--accent);color:var(--text);background:linear-gradient(135deg,#7d5aff14,#ff69b414)}.aiStatusBadge.aiStatus-ready{animation:.45s confirmBannerIn}.aiStatusBadge.aiStatus-idle{opacity:.6}.aiSpinner{border:2px solid #7d5aff40;border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite aiSpin;display:inline-block}.aiSpinnerInline{vertical-align:-3px;border-color:#fff #ffffff59 #ffffff59;margin-right:8px}.aiCheck{font-size:18px}@keyframes aiSpin{to{transform:rotate(360deg)}}.confirmBanner{border:1px solid var(--confirm-border);background:var(--confirm-bg);color:var(--confirm-text);border-radius:10px;margin:0;padding:8px 12px;font-weight:500;animation:.4s confirmBannerIn}.phaseBlock.phaseSuccess{animation:.55s phaseSuccessPop}.primary.btnSuccess{animation:.65s btnSuccessGlow}.primary.btnPulse{animation:.42s btnPressPop}.ratingItem.ratingPickFlash{animation:.42s ratingPickFlash}@keyframes confirmBannerIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes phaseSuccessPop{0%{transform:scale(1);box-shadow:0 0 #0000}40%{box-shadow:0 0 0 1px var(--success-glow);transform:scale(1.008)}to{box-shadow:none;transform:scale(1)}}@keyframes btnSuccessGlow{0%{filter:brightness();box-shadow:0 3px 12px var(--accent-shadow)}35%{filter:brightness(1.06);box-shadow:0 4px 24px var(--accent-hover-shadow)}to{filter:brightness();box-shadow:0 3px 12px var(--accent-shadow)}}@keyframes btnPressPop{0%{transform:scale(1)}45%{transform:scale(.97)}to{transform:scale(1)}}@keyframes ratingPickFlash{0%{border-color:var(--card-border);background:var(--card-bg)}40%{border-color:var(--confirm-border);background:var(--confirm-bg)}to{border-color:var(--card-border);background:var(--card-bg)}}.authTabs{gap:8px;margin-bottom:8px;display:flex}.authTabs button{flex:1;padding:10px 12px}.authTabActive{background:var(--accent);color:var(--accent-fg,#fff);border-color:var(--accent)}.profileRow{border-bottom:1px solid var(--card-border);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.profileRow>span{color:var(--muted-fg,#888)}.profileRow.profileBio{flex-direction:column;align-items:flex-start;gap:4px}.profileBio p{margin:0}.promptHeader{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.feedbackButtons{gap:4px;display:inline-flex}.feedbackBtn{border:1px solid var(--card-border);background:var(--card-bg);cursor:pointer;opacity:.65;border-radius:8px;padding:4px 8px;font-size:1rem;transition:opacity .15s,transform .15s,border-color .15s}.feedbackBtn:hover:not(:disabled){opacity:1;transform:scale(1.1)}.feedbackBtn:disabled{cursor:not-allowed;opacity:.5}.feedbackBtnActive{opacity:1;border-color:var(--accent);background:var(--confirm-bg,#0080001a)}.memoryPortrait{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;margin:12px 0;padding:12px}.memoryPortrait h3{margin:0 0 6px}.memoryThemes,.memoryPrefs{margin:8px 0;padding:0;list-style:none}.memoryThemes li,.memoryPrefs li{grid-template-columns:130px 1fr 140px;align-items:center;gap:10px;padding:6px 0;font-size:.92rem;display:grid}.themeName{font-weight:600}.themeBar{background:var(--card-border);border-radius:6px;height:8px;display:block;overflow:hidden}.themeBarFill{background:linear-gradient(90deg, var(--accent), var(--accent-end,var(--accent)));height:100%;display:block}.themeMeta{color:var(--muted-fg,#888);font-size:.82rem}
