:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1f2430;--ink: #e8eaed;--muted: #9aa3b2;--line: #2a3040;--accent: #f4c430;--ok: #1f7a4d;--ok-ink: #c9f7dd;--bad: #7a2330;--bad-ink: #ffd5dc}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:repeating-linear-gradient(135deg,#0d0f13 0,#0d0f13 22px,#11141a 22px,#11141a 44px);color:var(--ink);line-height:1.5}#game{max-width:1080px;margin:0 auto;padding:24px 20px 60px}.titlebar{display:flex;align-items:center;gap:16px;margin-bottom:14px}.app-header h1{margin:0;font-size:2.2rem;letter-spacing:-.5px}.timer{margin-left:auto;font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700;color:var(--accent);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:6px 14px}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:24px}.legend{list-style:none;margin:0 0 14px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:10px}.legend b{color:var(--ink);font-weight:700}.rowlabel .cat{font-size:1.15rem;vertical-align:-2px}.field{display:flex;flex-direction:column;font-size:.78rem;color:var(--muted);gap:4px}select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.95rem}.btn{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:9px 16px;font-size:.95rem;cursor:pointer;transition:transform .05s ease,background .15s ease}.btn:hover{background:#262c3a}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:#1a1400;border-color:var(--accent);font-weight:600}.btn-primary:hover{background:#ffd64d}.btn-ghost{background:transparent;color:var(--muted)}.layout{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}@media (max-width: 820px){.layout{grid-template-columns:1fr}}.board-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px}.board{border-collapse:separate;border-spacing:6px;width:100%}.board th{font-size:.8rem;color:var(--muted);font-weight:600;text-align:center;padding:4px 6px}.board th.rowlabel{text-align:right;white-space:nowrap;color:var(--ink)}.board td.cell{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:5px;min-width:100px;text-align:center;vertical-align:middle;white-space:normal}.board td.cell.solved{border-color:#2c9e66;background:#1f7a4d38}.board td.cell.bad{border-color:#a3394a;background:#7a233059}.cell .chips{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center}.chip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;font-size:1.1rem;line-height:1;background:var(--panel);border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:transform .05s ease,opacity .12s ease,background .12s ease}.chip:hover{border-color:var(--accent)}.chip:active{transform:scale(.88)}.chip.elim{opacity:.3;filter:grayscale(1)}.chip.elim:after{content:"";position:absolute;left:3px;right:3px;top:50%;height:2px;background:#ff6b81;transform:rotate(-16deg)}.cell.solved .chip:not(.elim){border-color:#2c9e66;background:#1f7a4d73;font-size:1.35rem;width:38px;height:38px}.clues-wrap{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px}.clues-wrap h2{margin:4px 0 2px;font-size:1.1rem}.hint{margin:0 0 12px;font-size:.78rem;color:var(--muted)}.clues{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}.clues{font-size:1.2rem}.clues li{cursor:default;color:var(--ink);font-size:1.2rem;letter-spacing:.5px;transition:opacity .25s ease,color .25s ease}.clues li.done{color:var(--muted);opacity:.4;text-decoration:line-through}.status{margin-top:16px;min-height:1.4em;font-weight:600}.status.good{color:#58e08f}.status.bad{color:#ff8fa0}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal.hidden{display:none}.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px 32px;text-align:center;max-width:90vw}.modal-card h2{margin:0 0 8px}.modal-card p{color:var(--muted);margin:0 0 18px}.hidden{display:none!important}.menu-screen,.howto-screen{min-height:78vh;display:grid;place-items:center;padding:40px 16px}.menu-card{display:flex;flex-direction:column;gap:12px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:36px 40px;min-width:300px}.menu-title{margin:0;font-size:2.6rem;letter-spacing:-.5px}.menu-sub{margin:-4px 0 10px;color:var(--muted)}.menu-diff{text-align:left}.btn.big{font-size:1.1rem;padding:14px 18px}.howto-card{max-width:640px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px 32px}.howto-card h2{margin-top:0}.howto-list{margin:0 0 4px;padding-left:22px;display:flex;flex-direction:column;gap:12px;font-size:1rem}.howto-card .legend{margin-top:18px;margin-bottom:22px}.game-title{margin:0;font-size:1.6rem;letter-spacing:-.5px}@media (max-width: 640px){#game{padding:14px 10px 48px}.titlebar{gap:8px;margin-bottom:10px}.game-title{font-size:1.15rem}.timer{font-size:1rem;padding:5px 10px}.controls{gap:8px;margin-bottom:16px}.btn{padding:8px 12px;font-size:.9rem}.layout{gap:16px}.board-wrap{padding:8px;border-radius:12px}.board{border-spacing:3px;table-layout:fixed}.board th{font-size:.65rem;padding:2px}.board td.cell{min-width:0;padding:3px;border-radius:8px}.board th.rowlabel{width:26px}.rowlabel .cat{font-size:1rem}.cell .chips{gap:3px}.chip{width:26px;height:26px;font-size:.9rem;border-radius:6px}.cell.solved .chip:not(.elim){width:30px;height:30px;font-size:1.05rem}.clues-wrap{padding:12px 14px}.clues,.clues li{font-size:1.05rem}.legend{font-size:.72rem;gap:4px 10px}.menu-card,.howto-card{padding:24px 20px;min-width:0;width:100%}.menu-title{font-size:2.1rem}.howto-list{font-size:.92rem}}@media (max-width: 400px){.chip{width:22px;height:22px;font-size:.8rem}.cell.solved .chip:not(.elim){width:26px;height:26px}.board th{font-size:.58rem}}
