:root{--bg: #0f1419;--panel: #1a2230;--panel-2: #222d3f;--line: #2e3b52;--text: #e6edf3;--muted: #8b9bb0;--accent: #4cc9f0;--danger: #ef476f;--ok: #06d6a0}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text)}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4;padding-bottom:env(safe-area-inset-bottom)}h1,h2,h3{margin:0 0 8px}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0 0 12px}a{color:var(--accent)}code,pre{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em}pre{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;overflow-x:auto;-webkit-user-select:all;user-select:all}code{background:var(--bg);padding:1px 5px;border-radius:4px}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,Consolas,monospace}.error{color:var(--danger);margin:10px 0 0}.app{max-width:620px;margin:0 auto;padding:0 8px 40px}.app.admin{max-width:760px}header{display:flex;justify-content:space-between;align-items:center;padding:12px 4px;gap:8px}.who{display:flex;align-items:center;gap:8px;min-width:0}.who strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-links{display:flex;gap:12px;align-items:center;font-size:.9rem}main{display:flex;flex-direction:column;gap:12px}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.card,.panels{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.center-screen .card{width:100%;max-width:380px}.dot{display:inline-block;width:14px;height:14px;border-radius:50%;flex:none;border:1px solid rgba(255,255,255,.25);vertical-align:-2px}input,button{font:inherit}input[type=text],input[type=email],input[type=number],input:not([type]){width:100%;padding:12px;margin:0 0 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text)}input[type=color]{width:48px;height:44px;padding:2px;border:1px solid var(--line);border-radius:10px;background:var(--bg);margin:0 0 10px}.code-input{text-align:center;letter-spacing:.3em;font-size:1.5rem;text-transform:uppercase}button{cursor:pointer;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:12px 14px}button:disabled{opacity:.45;cursor:not-allowed}button.primary{width:100%;background:var(--accent);color:#04202a;border-color:var(--accent);font-weight:700;margin-bottom:6px}button.primary.danger,button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.secondary{width:100%}button.link{background:none;border:none;color:var(--accent);padding:8px 4px;width:auto}.card form button.link,.sheet button.link{display:block;margin:0 auto}.inline{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.inline input[type=text],.inline input:not([type]){flex:1;min-width:140px}.inline button{margin-bottom:10px}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.btn-row button{flex:1;min-width:150px}.status{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 6px;text-align:center}.stat.wide{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;padding:8px 14px}.stat .label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.stat.wide .label{display:inline}.stat .value{font-size:1.3rem;font-weight:700}.stat .lives{color:var(--danger);letter-spacing:1px;font-size:1.1rem}.board-wrap{width:100%}.board{position:relative;display:grid;width:100%;aspect-ratio:1;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:10px;-webkit-user-select:none;user-select:none}.cell{position:relative;border:.5px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.cell.inrange{background:#4cc9f021}.cell.movable{background:#06d6a029}.cell.movable:after{content:"";width:22%;height:22%;border-radius:50%;background:#06d6a0cc}.cell.selected{outline:2px solid var(--accent);outline-offset:-2px}.token{width:88%;height:88%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:clamp(7px,2.4vw,13px);font-weight:800;border:1px solid rgba(0,0,0,.35);z-index:1}.token.me{box-shadow:0 0 0 2px #fff,0 0 8px 2px var(--accent)}.ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.ring circle{fill:#4cc9f00f;stroke:var(--accent);stroke-width:.06;stroke-dasharray:.25 .15}.actions-row .hint{color:var(--muted);font-size:.85rem;margin:8px 2px 0}.tabs{display:flex;gap:6px;margin-bottom:10px}.tabs button{flex:1;padding:9px}.tabs button.on,.jury button.on{background:var(--accent);color:#04202a;border-color:var(--accent);font-weight:700}.badge{display:inline-block;background:var(--danger);color:#fff;border-radius:999px;font-size:.7rem;padding:1px 7px;margin-left:6px;font-weight:700}.feed,.timeline,.plain,.jury{list-style:none;margin:0;padding:0}.feed{max-height:280px;overflow-y:auto}.feed li,.timeline li{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.92rem}.feed li:last-child,.timeline li:last-child{border-bottom:none}.time{color:var(--muted);font-size:.8rem;flex:none;min-width:44px}.timeline .time{min-width:120px}.timeline{margin-top:10px}.jury li{margin-bottom:6px}.jury button{width:100%;text-align:left;display:flex;align-items:center;gap:8px}.plain li{padding:4px 0}.eliminated h2{color:var(--danger)}.winner{text-align:center;padding:8px 0 16px}.winner .trophy{font-size:3rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{width:100%;max-width:480px;background:var(--panel);border:1px solid var(--line);border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.field{display:block;margin-bottom:8px;color:var(--muted);font-size:.9rem}.stepper{display:flex;gap:8px;margin-top:6px}.stepper input{text-align:center;font-size:1.3rem;margin:0}.stepper button{width:56px;font-size:1.4rem;padding:0}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(18px + env(safe-area-inset-bottom));background:var(--panel-2);border:1px solid var(--line);border-left:4px solid var(--ok);padding:12px 16px;border-radius:10px;z-index:40;max-width:92vw;box-shadow:0 6px 20px #00000080}.toast.bad{border-left-color:var(--danger)}.toast.info{border-left-color:var(--accent)}.prow{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden}.prow.dead{opacity:.75}.prow-head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:10px 12px;cursor:pointer}.prow-head .small:last-child{margin-left:auto}.prow-body{padding:4px 12px 12px;border-top:1px solid var(--line)}.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.grid5 input{padding:10px 6px;text-align:center}.danger-zone{margin-top:14px}.danger-zone summary{cursor:pointer;color:var(--danger)}.flag{display:inline-block;height:14px;width:auto;max-width:28px;border-radius:2px;flex:none;vertical-align:-2px;border:1px solid rgba(255,255,255,.25);object-fit:cover}.dot.big{width:40px;height:40px}.token.flagged{padding:0;overflow:hidden;border:2px solid;background:var(--panel-2)}.token.flagged img{width:100%;height:100%;object-fit:cover;display:block}.flag-picker{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 10px}.flag-preview{width:72px;height:72px;border-radius:10px;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}.flag-preview img{max-width:64px;max-height:64px;display:block}.flag-buttons{flex:1;min-width:160px}.flag-picker .error{flex-basis:100%;margin:0}.who button.link{padding:0;display:flex;align-items:center;gap:8px;color:var(--text);font-weight:700;min-width:0}.board-size{margin:4px 0 12px}.board-size .stepper{max-width:260px;margin-bottom:6px}.cell.occupied{cursor:pointer}.tip{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:4px;background:#0b0f14;border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:.8rem;white-space:nowrap;z-index:6;pointer-events:none;box-shadow:0 4px 12px #00000080}.tip.below{bottom:auto;top:100%;margin:4px 0 0}.tip.left{left:0;transform:none}.tip.right{left:auto;right:0;transform:none}.tip-hearts{color:var(--danger);margin-left:6px;letter-spacing:1px}@media (hover: hover){.cell.occupied:hover{z-index:5}.cell.occupied:hover .tip{display:block}}.target-hearts{color:var(--danger);margin:-4px 0 10px;letter-spacing:1px}.card-top{display:flex;justify-content:flex-end;margin:-6px -4px 0}.lang{font-size:.9rem}
