:root{--bg: #14121a;--panel: #1e1b28;--panel-2: #262233;--text: #ece9f5;--muted: #9a92b3;--accent: #b5452f;--accent-2: #d98a3d;--line: #332d44}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,sans-serif;background:radial-gradient(circle at top,#201b2c,var(--bg));color:var(--text);min-height:100vh}.app{max-width:560px;margin:0 auto;padding:24px 16px 48px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar h1{font-size:1.4rem;margin:0;letter-spacing:.5px}.status{font-size:.75rem;padding:3px 10px;border-radius:999px;border:1px solid var(--line)}.status.on{color:#7ee0a5}.status.off{color:#e07e7e}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 12px 40px #00000059}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.field span{font-size:.85rem;color:var(--muted)}input{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--text);font-size:1rem;outline:none}input:focus{border-color:var(--accent-2)}.actions{display:flex;flex-direction:column;gap:14px}button{cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:12px 16px;border-radius:10px;font-size:1rem;transition:transform .05s ease,background .2s ease}button:hover:not(:disabled){background:#2f2940}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:#c8503a}.join-row{display:flex;gap:10px}.code-input{width:120px;text-transform:uppercase;letter-spacing:3px;text-align:center;font-weight:700}.error{margin-top:16px;color:#ff9b9b;font-size:.9rem}.code-banner{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel-2);border:1px dashed var(--accent-2);border-radius:12px;padding:16px;margin-bottom:24px}.code-banner span{font-size:.8rem;color:var(--muted)}.code-banner strong{font-size:2rem;letter-spacing:8px;color:var(--accent-2)}.code-banner small{color:var(--muted)}.players{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:8px}.players li{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.dot{width:8px;height:8px;border-radius:50%;background:#7ee0a5}.badge{margin-left:auto;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff}.badge.you{background:var(--panel);border:1px solid var(--accent-2);color:var(--accent-2);margin-left:8px}.hint{color:var(--muted);font-size:.9rem}.phase-pill{display:inline-block;font-size:.85rem;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:6px 14px;margin-bottom:20px}.phase-pill strong{color:var(--accent-2)}.started-box{text-align:center;background:var(--panel-2);border:1px solid var(--accent-2);border-radius:12px;padding:20px}.started-box p:first-child{font-size:1.2rem;margin:0 0 8px}.fiche{border-radius:14px;padding:22px;text-align:center;border:2px solid var(--line);background:var(--panel-2)}.fiche.innocent{border-color:#3f9d6a;box-shadow:0 0 24px #3f9d6a33}.fiche.culprit{border-color:#c0392b;box-shadow:0 0 24px #c0392b40}.fiche-scenario{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:2px}.fiche-status{font-size:1.15rem;font-weight:700;margin:8px 0 4px}.fiche.innocent .fiche-status{color:#7ee0a5}.fiche.culprit .fiche-status{color:#ff8b7e}.fiche-nom{margin:6px 0;font-size:1.6rem}.fiche-desc{color:var(--text);opacity:.9}.fiche-secret{background:var(--panel);border:1px dashed var(--accent-2);border-radius:10px;padding:12px 16px;margin:16px 0;text-align:left}.fiche-secret span{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--accent-2)}.fiche-secret p{margin:6px 0 0}.fiche-warn{font-size:.85rem;color:var(--muted);margin-bottom:0}.game{display:flex;flex-direction:column;gap:20px}.journal{border-top:1px solid var(--line);padding-top:16px}.journal h2{display:flex;align-items:center;gap:10px;margin-top:0}.counter{font-size:.8rem;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:2px 10px}.clues{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:12px}.clues li{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--accent-2);border-radius:8px;padding:12px 16px;animation:clue-in .35s ease}.clues li strong{color:var(--accent-2);display:block;margin-bottom:4px}.clues li p{margin:0;color:var(--text);opacity:.92}@keyframes clue-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.chat{border-top:1px solid var(--line);padding-top:16px}.chat h2{margin-top:0}.chat-log{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px;height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.msg{display:flex;flex-direction:column;gap:2px;max-width:85%}.msg.mine{align-self:flex-end;text-align:right}.msg-author{font-size:.78rem;color:var(--muted)}.msg-author strong{color:var(--accent-2)}.msg-text{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:inline-block}.msg.mine .msg-text{background:var(--accent);border-color:var(--accent);color:#fff}.chat-form{display:flex;gap:8px}.chat-form input{flex:1}.vote-open,.reveal-btn{width:100%}.vote{border-top:1px solid var(--line);padding-top:16px}.vote h2{margin-top:0}.suspects{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}.suspect{flex:1 1 40%;padding:14px;font-size:1rem}.suspect:hover:not(:disabled){border-color:var(--accent-2)}.result{border-radius:14px;padding:22px;border:2px solid var(--line);background:var(--panel-2)}.result.innocents{border-color:#3f9d6a;box-shadow:0 0 26px #3f9d6a38}.result.culprit{border-color:#c0392b;box-shadow:0 0 26px #c0392b40}.result-banner{font-size:1.4rem;font-weight:700;text-align:center;margin-bottom:6px}.result.innocents .result-banner{color:#7ee0a5}.result.culprit .result-banner{color:#ff8b7e}.result-you{text-align:center;color:var(--muted);margin-top:0}.result-culprit{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;text-align:center;margin:12px 0}.result-culprit strong{color:var(--accent-2)}.result-accused{color:var(--muted);text-align:center}.result-expl{background:var(--panel);border:1px dashed var(--accent-2);border-radius:10px;padding:12px 16px;margin:14px 0}.result-expl span{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--accent-2)}.result-expl p{margin:6px 0 0}.tally{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.tally li{display:flex;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 14px}.tally li em{color:var(--muted)}
