:root{--bg: #0e1116;--bg-2: #161b22;--card: #1b2230;--card-2: #232c3d;--line: #2c3648;--text: #e6edf3;--muted: #8b98a9;--accent: #c8442f;--accent-2: #d97706;--investigators: #3b82f6;--murderers: #c8442f;--ok: #16a34a;--radius: 12px;--shadow: 0 6px 20px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -10%,#1a2130,var(--bg));color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Malgun Gothic,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:640px;margin:0 auto;min-height:100vh;padding:0 14px 40px}.topbar{display:flex;align-items:center;gap:8px;padding:14px 4px;position:sticky;top:0;background:linear-gradient(var(--bg),rgba(14,17,22,.85));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5}.brand{font-weight:800;letter-spacing:.04em;font-size:18px}.brand-han{color:var(--accent);font-weight:700}.conn-dot{width:9px;height:9px;border-radius:50%;background:var(--accent-2);margin-left:auto;animation:pulse 1.2s infinite}.help-btn{margin-left:auto;width:34px;height:34px;padding:0;border-radius:50%;background:var(--card-2);border:1px solid var(--line);font-size:16px}.conn-dot+.help-btn{margin-left:8px}@keyframes pulse{50%{opacity:.3}}.screen{display:flex;flex-direction:column;gap:12px}.loading{padding:60px 0;text-align:center;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card h3{margin:0 0 10px;font-size:15px;color:var(--muted);font-weight:700;letter-spacing:.02em}.muted{color:var(--muted);font-size:14px}.warn{border-color:var(--accent-2)}.warn ul{margin:0;padding-left:18px;color:var(--accent-2);font-size:14px}button{font:inherit;cursor:pointer;border:none;border-radius:10px;padding:12px 16px;color:var(--text);background:var(--card-2);transition:transform .05s,background .15s,opacity .15s}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:var(--accent);font-weight:700;width:100%}.secondary{background:var(--investigators);font-weight:600;width:100%}.danger{background:var(--accent);font-weight:700}.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}.hero{text-align:center;padding:30px 0 6px}.hero h1{font-size:42px;margin:0;letter-spacing:.05em}.tagline{color:var(--muted);margin-top:6px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field.row{flex-direction:row;align-items:center;justify-content:space-between}.field span{font-size:13px;color:var(--muted)}input,select{font:inherit;background:var(--bg-2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:12px}input:focus,select:focus{outline:2px solid var(--accent)}.divider{text-align:center;color:var(--muted);font-size:12px;margin:14px 0}.footnote{text-align:center;color:var(--muted);font-size:12px}.room-code{font-size:18px}.room-code strong{font-size:26px;letter-spacing:.2em;color:var(--accent-2)}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.roster li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-2);border-radius:8px}.roster li.offline{opacity:.5}.seat-num{width:22px;height:22px;display:grid;place-items:center;background:var(--card-2);border-radius:50%;font-size:12px}.nick{flex:1}.badge-host{font-size:11px;background:var(--accent-2);color:#1a1200;padding:2px 6px;border-radius:6px;font-weight:700}.badge-off{font-size:11px;color:var(--muted)}.role-toggles{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.toggle{background:var(--bg-2);border:1px solid var(--line);padding:8px 12px;font-size:14px}.toggle.on{background:var(--accent);border-color:var(--accent);font-weight:700}.lobby-actions{display:flex;flex-direction:column;gap:8px}.role-card{text-align:center;border-width:2px}.team-investigators{border-color:var(--investigators)}.team-murderers{border-color:var(--murderers)}.role-eyebrow{color:var(--muted);font-size:13px}.role-name{font-size:34px;margin:4px 0 10px}.role-tip{color:var(--muted);font-size:14px}.intel-line{margin:6px 0}.status-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.phase-pill,.round-pill,.role-pill{padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;background:var(--card-2)}.phase-pill{background:var(--accent)}.role-pill{margin-left:auto;border:1px solid var(--line)}.role-pill.team-investigators{color:var(--investigators)}.role-pill.team-murderers{color:var(--murderers)}.timer-pill{padding:6px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--bg-2);border:1px solid var(--line)}.timer-pill.urgent{color:#fff;background:var(--accent);border-color:var(--accent)}.scene-board{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.tile,.ftile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px}.tile-cat{font-size:13px;font-weight:700;color:var(--accent-2);margin-bottom:6px}.tile-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.opt{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:3px 4px;border-radius:6px}.opt.marked{background:#c8442f26;color:var(--text);font-weight:700}.place-order{margin-left:auto;font-size:11px;color:var(--accent-2)}.tile-pending{font-size:11px;color:var(--muted);margin-top:4px}.forensic-panel{border-color:var(--accent-2)}.truth-reminder{background:var(--bg-2);border-radius:8px;padding:10px;margin-bottom:10px;font-size:14px}.forensic-tiles{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:12px}.ftile-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ftile-opt{background:var(--bg-2);border:1px solid var(--line);font-size:12px;padding:8px 6px}.ftile-opt.chosen{background:var(--accent);border-color:var(--accent);font-weight:700}.card-table{display:flex;flex-direction:column;gap:8px}.player-cards{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px}.player-cards.is-murderer{border-color:var(--accent)}.pc-name{font-weight:700;margin-bottom:6px;display:flex;gap:6px;align-items:center}.you-tag,.murderer-tag{font-size:11px;padding:1px 6px;border-radius:6px}.you-tag{background:var(--investigators)}.murderer-tag{background:var(--accent)}.pc-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pc-col{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.pc-kind{font-size:11px;color:var(--muted);width:100%}.chip{font-size:12px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:3px 7px}.chip-truth{background:var(--accent);border-color:var(--accent);font-weight:700}.controls{display:flex;flex-direction:column;gap:10px}.wait-note{text-align:center;color:var(--muted)}.labtech,.insideman{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;padding:16px;z-index:20}.modal{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;width:100%;max-width:460px;box-shadow:var(--shadow)}.solve-step{margin:12px 0}.step-label{font-size:13px;color:var(--muted);margin-bottom:6px}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip-btn{background:var(--bg-2);border:1px solid var(--line);font-size:13px;padding:8px 10px}.chip-btn.sel{background:var(--accent);border-color:var(--accent);font-weight:700}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.chat-log{background:var(--bg-2);border-radius:8px;padding:10px;height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;font-size:14px}.chat-msg{word-break:break-word}.chat-from{color:var(--accent-2);font-weight:700;margin-right:4px}.chat-input{display:flex;gap:6px;margin-top:8px}.chat-input input{flex:1}.silenced-note{margin-top:8px;padding:10px;background:var(--bg-2);border-radius:8px;color:var(--muted);font-size:13px;text-align:center}.event-log ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.verdict{text-align:center;border-width:2px}.verdict h1{margin:0 0 6px}.reveal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.reveal-list li{display:flex;justify-content:space-between;padding:8px 10px;background:var(--bg-2);border-radius:8px;border-left:3px solid var(--line)}.reveal-list li.team-investigators{border-left-color:var(--investigators)}.reveal-list li.team-murderers{border-left-color:var(--murderers)}.reveal-list .role{color:var(--muted)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:12px 18px;border-radius:10px;box-shadow:var(--shadow);z-index:30;max-width:90%}.small{font-size:12px;padding:6px 10px}.auth-tabs{display:flex;gap:6px;margin-bottom:12px}.tab{flex:1;background:var(--bg-2);border:1px solid var(--line);font-size:14px}.tab.on{background:var(--card-2);border-color:var(--accent);font-weight:700}.account-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;text-align:center}.stat{background:var(--bg-2);border-radius:8px;padding:8px 4px;display:flex;flex-direction:column;gap:2px}.stat-num{font-size:18px;font-weight:800;color:var(--accent-2)}.stat-label{font-size:11px;color:var(--muted)}.opt-list{display:flex;flex-direction:column;gap:6px}.opt-row{display:flex;justify-content:space-between;align-items:center;background:var(--bg-2);border:1px solid var(--line);font-size:14px;text-align:left}.opt-row.on{border-color:var(--accent)}.opt-state{font-size:12px;font-weight:700;color:var(--muted)}.opt-row.on .opt-state{color:var(--accent)}.presentation-order{font-size:13px;color:var(--muted)}.help-modal{max-width:520px;max-height:85vh;display:flex;flex-direction:column}.help-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.help-head h3{margin:0;color:var(--text)}.modal-close{background:transparent;border:none;color:var(--muted);font-size:18px;padding:4px 8px}.help-tabs{display:flex;gap:6px;margin-bottom:12px}.help-tabs .tab{flex:1}.help-body{overflow-y:auto;font-size:14px;line-height:1.6}.help-section ul,.help-section ol{padding-left:18px;margin:8px 0}.help-section li{margin:6px 0}.help-section h4{margin:14px 0 6px;font-size:14px}.help-section h4.team-investigators{color:var(--investigators)}.help-section h4.team-murderers{color:var(--murderers)}.help-section p{margin:6px 0}@media (min-width: 560px){.forensic-tiles{grid-template-columns:1fr 1fr}}
