:root{--bg:#121824;--panel:#1c2433;--panel-2:#243047;--line:#34425c;--text:#e6edf5;--muted:#8d9bb0;--accent:#7fc3ff;--accent-2:#4a90d9;--danger:#e25c4d;--gold:#ffd24a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}*{box-sizing:border-box}body{background:radial-gradient(ellipse at top, #1f2b40 0%, transparent 60%), var(--bg);min-height:100vh;margin:0}button{font:inherit;color:#0d1420;background:var(--accent);cursor:pointer;text-align:left;border:0;border-radius:8px;padding:.5em .9em;font-weight:600}button:hover:not(:disabled){filter:brightness(1.1)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}button.danger{background:var(--danger);color:#fff}button.small{padding:.3em .6em;font-size:.85em}input,select{font:inherit;color:var(--text);border:1px solid var(--line);background:#0f1520;border-radius:8px;min-width:0;padding:.5em .7em}label{color:var(--muted);gap:.35em;display:grid}code.link{word-break:break-all;color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85em}.error{color:var(--danger)}.hint{color:var(--muted);margin:.3em 0;font-size:.9em}.row{flex-wrap:wrap;align-items:center;gap:.6em;display:flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:.8em;padding:1em 1.2em;display:grid}.panel h3{margin:0}.tag{background:var(--panel-2);color:var(--accent);border-radius:999px;margin-left:.4em;padding:.1em .5em;font-size:.75em}.home{gap:1em;max-width:440px;margin:0 auto;padding:10vh 16px 32px;display:grid}.home h1{letter-spacing:.02em;text-shadow:0 0 24px #7fc3ff55;margin:0;font-size:2.6em}.home h1 span{color:var(--accent);letter-spacing:.3em;text-transform:uppercase;font-size:.45em;display:block}.lobby{gap:1em;max-width:720px;margin:0 auto;padding:24px 16px;display:grid}.seats{gap:.4em;margin:0;padding:0;list-style:none;display:grid}.online{color:#4ade80}.offline{color:#6b7280}.assign-table{border-collapse:collapse;width:100%}.assign-table td{padding:.35em 0}.assign-table td:last-child{text-align:right}.game{flex-direction:column;height:100vh;display:flex}.game-top{padding:.5em 16px;padding-top:calc(.5em + env(safe-area-inset-top,0px));background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1.2em;display:flex}.game-top>:last-child{margin-left:auto}.your-turn{color:#0d1420;background:var(--gold);border-radius:999px;margin-left:.6em;padding:.1em .6em;font-weight:700}.game-main{flex:1;grid-template-columns:minmax(0,1fr) 360px;min-height:0;display:grid}.board-wrap{min-height:0;position:relative}.board-canvas{position:absolute;inset:0}.zone-info{border:1px solid var(--line);background:#0f1520e6;border-radius:10px;gap:.2em;max-width:60%;padding:.6em .8em;font-size:.9em;display:grid;position:absolute;bottom:12px;left:12px}.blight-tag{color:#9be15d;margin-left:.4em}.sidebar{border-left:1px solid var(--line);background:#151c29;flex-direction:column;gap:.8em;padding:12px;display:flex;overflow-y:auto}.survivor-list{gap:.5em;display:grid}.survivor-card{background:var(--panel);border:1px solid var(--line);border-left-width:5px;border-radius:10px;gap:.35em;padding:.5em .7em;display:grid}.survivor-card.mine{cursor:pointer}.survivor-card.selected{background:var(--panel-2);outline:1px solid var(--accent-2)}.survivor-card.dead{opacity:.4}.sc-head{align-items:center;gap:.5em;display:flex}.sc-dot{border-radius:50%;width:.8em;height:.8em;display:inline-block}.sc-owner{color:var(--muted);font-size:.85em}.sc-active{background:var(--gold);color:#0d1420;border-radius:999px;margin-left:auto;padding:0 .5em;font-size:.75em}.sc-done{color:#4ade80;margin-left:auto}.sc-stats{flex-wrap:wrap;gap:.8em;font-size:.85em;display:flex}.sc-cards{margin:0;padding-left:1.1em;font-size:.88em}.sc-cards .unloaded{color:var(--muted);text-decoration:line-through}.sc-skills{flex-wrap:wrap;gap:.3em;display:flex}.sc-skills span{border:1px solid var(--line);background:#0f1520;border-radius:999px;padding:.05em .5em;font-size:.75em}.actions{gap:.5em;display:grid}.action-group{gap:.35em;display:grid}.event-log{border:1px solid var(--line);background:#0f1520;border-radius:10px;flex:1;min-height:140px;padding:.5em .7em;font-size:.82em;line-height:1.45;overflow-y:auto}.log-phase{color:var(--accent);margin-top:.4em}.waiting-banner{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:.4em 1em;position:fixed;top:70px;left:50%;transform:translate(-50%)}.modal-backdrop{z-index:10;background:#05080ecc;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;gap:.6em;width:min(560px,100%);max-height:90vh;padding:1.2em;display:grid;overflow-y:auto}.modal h3,.modal h2{margin:0}.modal-actions{justify-content:flex-end;gap:.6em;display:flex}.choice-list{gap:.4em;display:grid}.wounds-table{width:100%}.wounds-table td{padding:.2em 0}.outcome.won h2{color:var(--gold)}.outcome.lost h2{color:var(--danger)}.inventory-editor{width:min(820px,100%)}.inv-survivors{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1em;display:grid}.inv-survivor h4,.inv-pool h4{margin:0 0 .4em}.inv-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35em;margin-bottom:.35em;display:grid}.inv-row.backpack{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.inv-slot{color:var(--muted);border:1px dashed var(--line);background:#0f1520;align-content:start;gap:.15em;min-height:64px;padding:.35em .45em;font-weight:400;display:grid}.inv-slot.filled{color:var(--text);background:var(--panel-2);border-style:solid}.inv-slot.picked{outline:2px solid var(--gold)}.inv-slot-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.7em}.inv-card{font-size:.9em;font-weight:600}.inv-card-stats{color:var(--muted);font-size:.72em}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--panel-2);border:1px solid var(--accent-2);z-index:20;border-radius:10px;max-width:calc(100% - 32px);padding:.6em 1em;position:fixed;transform:translate(-50%)}@media (width<=860px){.game{height:auto;min-height:100vh}.game-main{grid-template-columns:1fr}.board-wrap{height:min(100vw,70vh)}.sidebar{border-left:0;border-top:1px solid var(--line)}}.saved-games{gap:.6em;margin:0;padding:0;list-style:none;display:grid}.saved-games li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8em;padding-bottom:.6em;display:flex}.saved-games li:last-child{border-bottom:0;padding-bottom:0}.token-tip{z-index:5;pointer-events:none;white-space:pre-line;border:1px solid var(--accent-2);background:#0b1019f0;border-radius:8px;max-width:280px;padding:.45em .65em;font-size:.82em;line-height:1.4;position:absolute;box-shadow:0 6px 18px #0008}.dice-tray{z-index:4;pointer-events:none;gap:.4em;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.dice-roll{border:1px solid var(--line);background:#0f1520e6;border-radius:10px;align-items:center;gap:.6em;padding:.35em .7em;animation:.18s ease-out tray-in;display:flex}.dice-who{color:var(--muted);white-space:nowrap;font-size:.8em}.dice-row{flex-wrap:wrap;gap:.3em;display:inline-flex}.dice-row.big .die{width:34px;height:34px}.dice-result{color:var(--danger);white-space:nowrap;font-size:.85em;font-weight:700}.dice-result.ok{color:#4ade80}.die{background:#f4f1ea;border:2px solid #c9c2b4;border-radius:6px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:26px;height:26px;padding:3px;animation:.52s cubic-bezier(.2,.8,.3,1.2) both die-roll;display:inline-grid}.die.ok{border-color:#22c55e;box-shadow:0 0 8px #22c55e88}.die.fail{opacity:.75;border-color:#ef4444}.die>span{display:block}.die>.pip{background:#1b1b1b;border-radius:50%;width:70%;height:70%;margin:auto}@keyframes die-roll{0%{opacity:0;transform:rotate(-200deg)scale(.3)}70%{opacity:1;transform:rotate(12deg)scale(1.08)}to{transform:rotate(0)scale(1)}}@keyframes tray-in{0%{opacity:0;transform:translateY(-8px)}}.hit-row{gap:.3em;display:grid}.chips{flex-wrap:wrap;gap:.35em;display:flex}.chip{background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:.3em .7em;font-weight:500}.chip.active{background:var(--accent);color:#0d1420;border-color:var(--accent)}@media (prefers-reduced-motion:reduce){.die,.dice-roll{animation:none}}.briefing{color:#c8d3e0;margin:0;font-style:italic}.goals{gap:.25em;margin:0;padding-left:1.2em;font-size:.92em;display:grid}.goals-panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.5em .7em}.goals-panel summary{cursor:pointer;font-weight:600}.goals-panel .goals{margin-top:.4em}.legend{border:1px solid var(--line);z-index:3;background:#0f1520e6;border-radius:10px;padding:.35em .6em .5em;font-size:.8em;position:absolute;bottom:12px;right:12px}.legend.closed{padding-bottom:.35em}.legend-toggle{color:var(--muted);background:0 0;padding:0;font-size:1em;font-weight:600}.legend ul{gap:.3em;margin:.35em 0 0;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:.5em;display:flex}.sw{background:#d6dee6;border-radius:3px;flex:none;width:22px;height:16px;display:inline-block}.sw-move{background:0 0;border:2.5px dashed #4ade80}.sw-attack{background:linear-gradient(#ef444455,#ef444455),#d6dee6}.sw-blight{background:radial-gradient(circle at 30% 40%,#9be15d 2px,#0000 3px),radial-gradient(circle at 70% 65%,#9be15d 2px,#0000 3px),linear-gradient(#4f8a2b88,#4f8a2b88),#d6dee6}.sw-selected{border:3px solid var(--gold);background:0 0}.sw-ruins{background:linear-gradient(#2b1a1073,#2b1a1073),#8c877b}.sw-token{color:#fff;border-radius:4px;flex:none;place-items:center;width:20px;height:18px;margin:0 1px;font-size:.85em;font-weight:700;display:inline-grid}.sw-token.spawn{background:#8b1e1e}.sw-token.objective{background:#c0392b;border:1.5px solid #fff}.sw-token.noise{color:#3b2200;background:#f08c00;border-radius:50%}.sw-token.beacon{color:#ffd24a;background:0 0;font-size:1.1em}@media (width<=860px){.legend{font-size:.72em}}.google-button{color:#1f1f1f;background:#fff;border:1px solid #dadce0;border-radius:8px;justify-content:center;align-items:center;gap:.6em;padding:.6em 1em;font-weight:600;text-decoration:none;display:inline-flex}.google-button:hover{background:#f1f3f4}.account{align-items:center;gap:.6em;display:flex}.account img{border-radius:50%;width:32px;height:32px}.account button{margin-left:auto}
