:root{color-scheme:light dark;--bg: #1e1f24;--panel: #2a2b32;--text: #e9e9ee;--muted: #9a9ba3;--border: #3d3e46;--green: #4caf7d;--bystander: #d8c98a;--assassin: #b25454;--accent: #5b8def}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.cn-app{max-width:760px;margin:0 auto;padding:1rem 1rem 3rem;display:flex;flex-direction:column;gap:.85rem}.cn-topbar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.cn-title{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.cn-title span{color:var(--accent)}.cn-settings{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem}.cn-settings>summary{cursor:pointer;color:var(--muted);font-size:.82rem;font-weight:600}.cn-settings .cn-setup{margin-top:.6rem;background:none;border:none;padding:0}.cn-turn{text-align:center;padding:.35rem 0}.cn-turn-main{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.cn-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:.85rem;font-size:.75rem;color:var(--muted)}.cn-legend-item{display:inline-flex;align-items:center;gap:.3rem}.cn-legend-swatch{width:.8rem;height:.8rem;border-radius:3px;display:inline-block}.cn-legend-swatch.cat-green{background:var(--green)}.cn-legend-swatch.cat-bystander{background:var(--bystander)}.cn-legend-swatch.cat-assassin{background:var(--assassin)}.cn-action{display:flex;justify-content:center;align-items:center;gap:.5rem;min-height:2.5rem}.cn-primary{font-size:1rem;padding:.6rem 1.4rem}.cn-meter{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;min-width:12rem}.cn-meter-bar{height:6px;border-radius:3px;background:var(--border);overflow:hidden}.cn-meter-fill{height:100%;background:var(--accent)}.cn-sd-counts{text-align:center;font-size:.8rem;color:var(--muted)}.cn-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:#4a1f22;border:1px solid var(--assassin);color:#f3c8c8;padding:.5rem .75rem;border-radius:6px}.cn-retry{flex:0 0 auto;background:var(--assassin);color:#f3c8c8}.cn-setup{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem}.cn-setup input[type=password],.cn-setup input[type=text].cn-model-custom,.cn-setup input[type=text].cn-seed,.cn-setup select.cn-model-select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.4rem .5rem}.cn-seed{width:7rem}.cn-key-input{flex:1 1 220px;min-width:140px}.cn-model-select,.cn-model-custom{flex:0 1 160px}.cn-remember-label{display:flex;align-items:center;gap:.3rem;font-size:.85rem;color:var(--muted);white-space:nowrap}.cn-privacy,.cn-rules{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:.6rem .85rem;font-size:.8rem;color:var(--muted)}.cn-privacy>summary,.cn-rules>summary{cursor:pointer;color:var(--text);font-weight:600;font-size:.82rem}.cn-privacy ul,.cn-rules ul{margin:.5rem 0 .25rem;padding-left:1.1rem}.cn-privacy li,.cn-rules li{margin:.25rem 0;line-height:1.4}.cn-privacy a{color:var(--accent)}.cn-privacy-tip{margin:.4rem 0 0;color:var(--text)}.cn-clear-key{color:var(--muted)}.cn-status{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;margin-top:.15rem;font-size:.82rem;color:var(--muted)}.cn-badge{border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600;letter-spacing:.02em}.cn-badge-won{background:#1f4a30;color:#8de8ab}.cn-badge-lost{background:#4a1f22;color:#f3a0a0}.cn-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.55rem}.cn-cell{position:relative;aspect-ratio:1.5 / 1;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.01em;padding:.25rem;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;word-break:break-word;box-shadow:0 1px 2px #00000040;transition:transform .06s ease,border-color .1s ease}.cn-cell:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.cn-cell:disabled{cursor:default}.cn-cell.shade-green{box-shadow:inset 0 0 0 3px var(--green)}.cn-cell.shade-bystander{box-shadow:inset 0 0 0 3px var(--bystander)}.cn-cell.shade-assassin{box-shadow:inset 0 0 0 3px var(--assassin)}.cn-cell.revealed{opacity:.55}.cn-cell.bystander-seen{border-style:dashed;border-color:var(--bystander)}.cn-cell-badge{position:absolute;top:2px;right:3px;font-size:.7rem;line-height:1;pointer-events:none}.cn-cell.revealed.cat-green{background:var(--green);color:#0c2417}.cn-cell.revealed.cat-bystander{background:var(--bystander);color:#2b2610}.cn-cell.revealed.cat-assassin{background:var(--assassin);color:#2b0d0d}.cn-clue-bar,.cn-end-guessing{display:flex;gap:.5rem;align-items:center}.cn-clue-bar input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.4rem .5rem}.cn-clue-word{flex:1 1 auto}.cn-clue-num{width:4rem}button{background:var(--accent);color:#0c1424;border:none;border-radius:6px;padding:.45rem .8rem;font-weight:600;cursor:pointer}button:hover{filter:brightness(1.08)}.cn-new-game,.cn-pass-clue,.cn-undo{background:transparent;color:var(--text);border:1px solid var(--border)}.cn-topbar-actions{display:flex;gap:.5rem;align-items:center}.cn-undo:disabled{opacity:.4;cursor:default}.cn-log-panel{border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;background:var(--panel)}.cn-log-panel>summary{cursor:pointer}.cn-log-panel h3{display:inline;margin:0;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cn-log{margin-top:.5rem}.cn-log{max-height:220px;overflow-y:auto;font-size:.82rem;display:flex;flex-direction:column;gap:.25rem}.cn-log-line{border-bottom:1px solid var(--border);padding-bottom:.2rem}.cn-log-debug{color:var(--accent);font-style:italic}.cn-log.cn-hide-debug .cn-log-debug{display:none}@media (max-width: 480px){.cn-cell{font-size:.65rem}.cn-setup{flex-direction:column;align-items:stretch}.cn-key-input,.cn-model-select,.cn-model-custom{flex:1 1 auto}}
