:root{--bg:#10141a;--panel:#161c24;--panel2:#1d252f;--line:#2a3441;--fg:#e4e8ee;--muted:#8a95a4;--accent:#d6b26a;--t:#e3903c;--ct:#5b9fe0;--wall:#0c1015;--floor:#323b47;--floor2:#3a4452;--site:#4b4232;--cover:#232a33;--maplabel:#7d8898;--p1:#3f8ff0;--p2:#3fbf6a;--p3:#e8cf3a;--p4:#ef8a2e;--p5:#a86ae8;--smoke:#c9ced6;--molly:#f06a2a;--flash:#fff3a6;--he:#e24b4b;--display:"Chakra Petch","Segoe UI",system-ui,sans-serif;--body:"IBM Plex Sans",system-ui,-apple-system,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{height:100%}body{margin:0}[hidden]{display:none!important}body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:14px}*{box-sizing:border-box}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{grid-template-columns:240px minmax(0,1fr) 330px;height:100%;min-height:0;display:grid}.col{flex-direction:column;min-width:0;min-height:0;display:flex}.left,.right{background:var(--panel);overflow-y:auto}.left{border-right:1px solid var(--line);gap:18px;padding:18px 16px}.right{border-left:1px solid var(--line);gap:16px;padding:18px 16px}.center{gap:10px;padding:12px 16px}.brand{font-family:var(--display);letter-spacing:.02em;font-size:20px;font-weight:700;line-height:1.1}.brand small{font-family:var(--mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:4px;font-size:11px;font-weight:400;display:block}.label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.section{flex-direction:column;gap:8px;display:flex}.strats{flex-direction:column;gap:4px;display:flex}.strat{text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;display:flex}.strat:hover{background:var(--panel2)}.strat[aria-current=true]{background:var(--panel2);border-color:var(--line)}.strat .side{font-family:var(--mono);border-radius:3px;flex:none;padding:2px 5px;font-size:10px;font-weight:500}.side.T{background:color-mix(in srgb,var(--t) 22%,transparent);color:var(--t)}.side.CT{background:color-mix(in srgb,var(--ct) 22%,transparent);color:var(--ct)}.strat span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row{flex-wrap:wrap;gap:6px;display:flex}.btn{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-size:13px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1a1408;font-weight:600}.btn.danger{color:#ff8a80}.btn.danger.armed{background:#5a1f1c;border-color:#ff8a80}.btn[disabled]{opacity:.45;cursor:not-allowed}.input,.ta{background:var(--bg);border:1px solid var(--line);border-radius:6px;width:100%;padding:7px 9px}.ta{resize:vertical;min-height:54px;line-height:1.4}.input:focus,.ta:focus{border-color:var(--accent);outline:none}.seg{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{font-family:var(--mono);background:0 0;border:0;padding:7px 14px;font-size:12px}.seg button[aria-pressed=true].T{background:var(--t);color:#1d1206}.seg button[aria-pressed=true].CT{background:var(--ct);color:#06121f}.hint{color:var(--muted);font-size:12px;line-height:1.45}.tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tool{background:var(--panel);border:1px solid var(--line);border-radius:6px;align-items:center;gap:7px;padding:6px 10px;font-size:13px;display:flex}.tool kbd{font-family:var(--mono);color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:0 4px;font-size:10px}.tool[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel))}.tool svg{flex:none;width:16px;height:16px}.tools .spacer{flex:1}.toolhint{color:var(--muted);min-height:1.2em;font-size:12px}.board{background:var(--wall);border:1px solid var(--line);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}#svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.playing-badge{font-family:var(--mono);letter-spacing:.08em;background:var(--accent);color:#1a1408;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;top:10px;left:10px}.timeline{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{background:var(--panel);border:1px solid var(--line);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.chip b{font-family:var(--mono);color:var(--muted);font-size:11px;font-weight:500}.chip[aria-current=true]{border-color:var(--accent)}.chip[aria-current=true] b{color:var(--accent)}.stephead,.players{flex-direction:column;gap:8px;display:flex}.pl{border:1px solid var(--line);background:var(--bg);border-radius:8px;grid-template-columns:28px minmax(0,1fr);gap:6px 10px;padding:10px;display:grid}.pl.sel{border-color:var(--accent)}.dot{width:28px;height:28px;font-family:var(--mono);color:#0b0f14;border:3px solid var(--t);cursor:pointer;border-radius:50%;place-items:center;font-size:12px;font-weight:500;display:grid}.ct .dot{border-color:var(--ct)}.pl .top{grid-template-columns:minmax(0,1fr) 92px;gap:6px;display:grid}.pl .ta{grid-column:1/-1;min-height:44px}.foot{color:var(--muted);font-size:11px;line-height:1.5}.m-wall{fill:var(--wall)}.m-floor{fill:var(--floor)}.m-site{fill:var(--site)}.m-cover{fill:var(--cover);stroke:#4a5462;stroke-width:1px}.m-lbl{fill:var(--maplabel);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:15px}.m-big{fill:color-mix(in srgb,var(--accent) 55%,transparent);font-family:var(--display);font-size:64px;font-weight:700}.grid line{stroke:#ffffff08}.tok-num{font-family:var(--mono);fill:#0b0f14;pointer-events:none;font-size:16px;font-weight:500}.tok-name{font-family:var(--body);fill:var(--fg);paint-order:stroke;stroke:#0b0f14;stroke-width:4px;pointer-events:none;font-size:15px;font-weight:600}.badge-num{font-family:var(--mono);fill:#0b0f14;pointer-events:none;font-size:12px;font-weight:500}[data-kind]{cursor:grab}.dlg-back{z-index:10;background:#000a;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dlg{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;width:min(560px,100%);padding:18px;display:flex}.dlg h3{font-family:var(--display);margin:0;font-size:18px}.dlg .ta{min-height:220px;font-family:var(--mono);font-size:12px}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--bg);z-index:20;border-radius:6px;padding:8px 14px;font-size:13px;position:fixed;transform:translate(-50%)}@media (width<=980px){html,body,#root{height:auto}.app{grid-template-columns:minmax(0,1fr);height:auto}.center{order:1}.right{border-left:0;border-top:1px solid var(--line);order:2}.left{border-right:0;border-top:1px solid var(--line);order:3}.board{aspect-ratio:1;flex:none;max-width:100%}.tool .tname{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}select.input{appearance:auto}.hint.err{color:#ff8a80}.link{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}
