:root{--bg: #fafafa;--bg-card: #ffffff;--bg-hover: #f9fafb;--bg-subtle: #f3f4f6;--text: #1a1a2e;--text-muted: #6b7280;--accent: #4f46e5;--accent-hover: #4338ca;--accent-bg: #eef2ff;--border: #e5e7eb;--success: #059669;--success-bg: #ecfdf5;--danger: #dc2626;--danger-bg: #fef2f2;--radius: 8px;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111118;--bg-card: #1a1a24;--bg-hover: #22222e;--bg-subtle: #2a2a36;--text: #e4e4eb;--text-muted: #9ca3af;--accent: #818cf8;--accent-hover: #6366f1;--accent-bg: #1e1b4b;--border: #374151;--success: #34d399;--success-bg: #064e3b;--danger: #f87171;--danger-bg: #450a0a}}:root[data-theme=dark]{--bg: #111118;--bg-card: #1a1a24;--bg-hover: #22222e;--bg-subtle: #2a2a36;--text: #e4e4eb;--text-muted: #9ca3af;--accent: #818cf8;--accent-hover: #6366f1;--accent-bg: #1e1b4b;--border: #374151;--success: #34d399;--success-bg: #064e3b;--danger: #f87171;--danger-bg: #450a0a}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}.app-container{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.app-header{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-bottom:1rem}.theme-toggle{font-size:1.25rem}.api-indicator{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted)}.api-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}h1{font-size:2.5rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.25rem}h2{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}h3{font-size:1rem;font-weight:600;margin-bottom:.5rem}.subtitle{color:var(--text-muted);margin-bottom:2rem}button{font-family:inherit;cursor:pointer;border:none;border-radius:var(--radius);font-size:.9rem;color:var(--text);transition:all .15s ease}.btn-primary{background:var(--accent);color:#fff;padding:.6rem 1.5rem;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg);color:var(--text);padding:.5rem 1rem;border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-icon{background:none;padding:.25rem .5rem;font-size:1.1rem;color:var(--text-muted)}.btn-icon:hover{color:var(--text)}.btn-small{font-size:.8rem;padding:.35rem .75rem}input[type=text],input[type=number],input[type=password]{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.9rem;background:var(--bg-card);color:var(--text);transition:border-color .15s}input:focus{outline:none;border-color:var(--accent)}select{padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.9rem;background:var(--bg-card);color:var(--text);cursor:pointer}input[type=range]{flex:1;accent-color:var(--accent)}.setup-screen{max-width:480px;margin:3rem auto}.setup-section{margin-bottom:2rem}.player-input-row{display:flex;gap:.5rem;margin-bottom:.5rem}.player-input-wrapper{position:relative;flex:1}.player-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);z-index:10;box-shadow:0 4px 12px #00000014;max-height:160px;overflow-y:auto}.player-dropdown-item{display:block;width:100%;text-align:left;padding:.5rem .75rem;background:none;border-radius:0;font-size:.85rem;color:var(--text)}.player-dropdown-item:hover{background:var(--bg-subtle)}.timer-options{display:flex;gap:.4rem;flex-wrap:wrap}.timer-option{padding:.4rem .8rem;font-size:.85rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.timer-option:hover{background:var(--border)}.timer-option.active{background:var(--accent);color:#fff;border-color:var(--accent)}.timer-hint{font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.setup-actions{display:flex;gap:.75rem}.api-key-prompt{max-width:400px;margin:4rem auto;text-align:center}.api-key-prompt p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.api-key-row{display:flex;gap:.5rem}.tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.tab{padding:.6rem 1.25rem;background:none;color:var(--text-muted);border-radius:0;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover:not(.active){color:var(--text)}.question-input .tab-content{display:flex;flex-direction:column;gap:.75rem}.range-inputs{display:flex;gap:.5rem;align-items:center}.range-inputs input{flex:1}.range-separator{color:var(--text-muted);font-size:.85rem}.date-toggle{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted)}.or-separator{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.85rem}.or-separator:before,.or-separator:after{content:"";flex:1;height:1px;background:var(--border)}.asked-by-row{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.asked-by-row label{color:var(--text-muted);white-space:nowrap}.asked-by-row select{flex:1}.validation-success{padding:1rem;background:var(--success-bg);border-radius:var(--radius);color:var(--success)}.validation-success p{margin-bottom:.5rem}.generated-question{padding:1rem;background:var(--bg-subtle);border-radius:var(--radius);margin-bottom:.5rem}.generated-question-text{font-size:1.1rem;font-weight:500;margin:0}.range-label{font-size:.85rem;color:var(--text-muted);margin-bottom:.25rem}.generated-actions{display:flex;gap:.5rem}.add-player-section{margin-top:.75rem}.add-player-form{display:flex;gap:.4rem;align-items:center}.add-player-form input{flex:1;min-width:0}.game-layout{display:flex;gap:2rem}.game-main{flex:1;min-width:0}.game-sidebar{width:200px;flex-shrink:0}.round-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.round-header-actions{display:flex;gap:.5rem}.round-number{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.question-display{font-size:1.35rem;font-weight:600;margin-bottom:1.5rem;line-height:1.4}.range-visual{margin:1.5rem 0}.range-answer-label-row{position:relative;height:1.5rem;margin-bottom:.25rem}.range-answer-label{position:absolute;transform:translate(-50%);font-size:.8rem;font-weight:700;white-space:nowrap}.range-answer-label.in-range{color:var(--success)}.range-answer-label.out-of-range{color:var(--danger)}.range-track{position:relative;height:32px;background:var(--border);border-radius:4px;overflow:visible;margin-bottom:24px}.range-fill{position:absolute;top:0;height:100%;background:var(--accent);opacity:.2;border-radius:4px;transition:all .4s ease}.range-answer-marker{position:absolute;top:0;transform:translate(-50%);z-index:2}.marker-line{width:3px;height:32px;margin:0 auto;border-radius:2px}.in-range .marker-line{background:var(--success)}.out-of-range .marker-line{background:var(--danger)}.range-labels{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted);margin-top:.35rem}.range-bound{position:absolute;bottom:-20px;font-size:.75rem;font-weight:700;color:var(--accent);pointer-events:none;white-space:nowrap}.range-bound-low,.range-bound-high{transform:translate(-50%)}.range-width{font-weight:400;color:var(--text-muted);font-size:.8rem}.timer-bar-container{position:relative;height:28px;background:var(--border);border-radius:4px;margin:1rem 0;overflow:hidden}.timer-bar{height:100%;background:var(--accent);opacity:.25;transition:width 1s linear;border-radius:4px}.timer-bar.timer-danger{background:var(--danger);opacity:.35}.timer-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.8rem;font-weight:600}.holder-banner{padding:.6rem 1rem;border-radius:var(--radius);font-size:.9rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.holder-banner.has-holder{background:var(--accent-bg);border:1px solid var(--accent);color:var(--accent)}.holder-banner.no-holder{background:var(--bg-subtle);color:var(--text-muted)}.holder-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:pulse 1.5s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.holder-badge{font-size:.6rem;font-weight:700;background:var(--accent);color:#fff;padding:.1rem .35rem;border-radius:3px;margin-left:.4rem;letter-spacing:.05em;vertical-align:middle}.player-rows{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.player-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card)}.player-row.is-holder{border-color:var(--accent);background:var(--accent-bg)}.player-row-name{font-weight:600;font-size:.9rem;min-width:80px}.player-row-actions{display:flex;gap:.4rem;align-items:center}.btn-quick{padding:.3rem .6rem;font-size:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);white-space:nowrap}.btn-quick:hover{background:var(--border)}.custom-narrow{margin-top:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-hover)}.custom-narrow-label{font-size:.85rem;color:var(--text-muted);display:block;margin-bottom:.5rem}.custom-narrow-inputs{display:flex;gap:.5rem;align-items:center}.custom-narrow-inputs .range-inputs{flex:1;min-width:200px}.narrowing-log{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.log-entry{font-size:.85rem;padding:.3rem 0;color:var(--text-muted)}.log-entry strong{color:var(--text)}.log-width{font-size:.75rem}.answer-reveal{text-align:center;margin:2rem 0;opacity:0;transform:scale(.9);transition:all .5s ease}.answer-reveal.visible{opacity:1;transform:scale(1)}.answer-number{font-size:3rem;font-weight:700;letter-spacing:-.02em}.answer-source{font-size:.8rem;color:var(--text-muted);margin-top:.25rem}.ai-note{font-size:.8rem;color:var(--text-muted);font-style:italic;margin-top:.5rem}.result-banner{text-align:center;padding:1rem;border-radius:var(--radius);margin:1.5rem 0;font-weight:500;animation:fadeIn .3s ease}.result-win{background:var(--success-bg);color:var(--success)}.result-loss{background:var(--danger-bg);color:var(--danger)}.result-neutral{background:var(--bg-subtle);color:var(--text-muted)}.scoreboard{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.score-list{display:flex;flex-direction:column;gap:.35rem}.score-item{display:flex;justify-content:space-between;padding:.35rem .5rem;border-radius:4px;font-size:.9rem}.score-item.current-holder{background:var(--accent-bg)}.score-value{font-weight:700}.history-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.sessions-list{display:flex;flex-direction:column;gap:.5rem}.session-card,.round-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.session-toggle,.round-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-card);text-align:left;font-size:.85rem}.session-toggle:hover,.round-toggle:hover{background:var(--bg-hover)}.session-rounds{padding:.5rem;display:flex;flex-direction:column;gap:.35rem}.round-detail{padding:.75rem 1rem;font-size:.85rem;border-top:1px solid var(--border)}.round-detail p{margin-bottom:.5rem}.result-badge{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:4px}.badge-win{background:var(--success-bg);color:var(--success)}.badge-loss{background:var(--danger-bg);color:var(--danger)}.badge-neutral{background:var(--bg-subtle);color:var(--text-muted)}.narrowing-log.compact .log-entry{font-size:.8rem;padding:.2rem 0}.leaderboard table{width:100%;border-collapse:collapse;font-size:.85rem}.leaderboard th{text-align:left;padding:.5rem;border-bottom:2px solid var(--border);font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.leaderboard td{padding:.5rem;border-bottom:1px solid var(--border)}.import-export{display:flex;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.empty-state{color:var(--text-muted);font-size:.9rem;padding:2rem;text-align:center}.tab-disabled{opacity:.4;cursor:not-allowed;position:relative}.tab-disabled:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:.35rem .6rem;border-radius:4px;font-size:.75rem;white-space:nowrap;pointer-events:none;z-index:10}.api-dot-off{width:8px;height:8px;border-radius:50%;background:var(--text-muted);opacity:.4}.skip-key-btn,.unset-key-btn{margin-top:1rem;width:100%}.resolve-phase{text-align:center}.resolve-range-info{font-size:.9rem;color:var(--text-muted);margin-bottom:1.5rem}.resolve-form{max-width:360px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem}.resolve-label{font-size:1rem;font-weight:600}.error-banner{background:var(--danger-bg);color:var(--danger);padding:.6rem 1rem;border-radius:var(--radius);font-size:.85rem;margin-top:.75rem}.modal-overlay{position:fixed;inset:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-card);border-radius:12px;padding:2rem;max-width:440px;width:90%;box-shadow:0 20px 60px #00000026}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:.4rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.btn-quick-short{display:none}@media(max-width:700px){.game-layout{flex-direction:column-reverse}.game-sidebar{width:100%}.scoreboard{display:flex;gap:1rem;align-items:center}.scoreboard h3{margin-bottom:0}.score-list{flex-direction:row;gap:1rem;flex:1}.btn-quick-full{display:none}.btn-quick-short{display:inline}.btn-quick{padding:.3rem .4rem;font-size:.7rem}.player-row-actions{gap:.25rem}.player-row-name{font-size:.8rem;min-width:50px}}
