:root{--bg:#070b18;--bg-2:#0d1426;--panel:#111a30;--panel-2:#16213d;--line:#24314f;--text:#e2e8f0;--muted:#94a3b8;--cyan:#22d3ee;--good:#34d399;--warn:#fbbf24;--bad:#f87171;--info:#60a5fa;--magenta:#d946ef;--radius:10px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font);margin:0;font-size:15px;line-height:1.4}h1,h2,h3{margin:0}small{color:var(--muted);font-weight:400}.muted{color:var(--muted)}.small{font-size:13px}.tone-good{color:var(--good)}.tone-warn{color:var(--warn)}.tone-bad{color:var(--bad)}.tone-info{color:var(--info)}.btn{border:1px solid var(--line);background:var(--panel-2);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--cyan)}.btn:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{color:#ecfeff;background:linear-gradient(#0891b2,#0e7490);border-color:#22d3ee}.btn.danger{color:#fecaca;border-color:#7f1d1d}.btn.active{border-color:var(--cyan);background:#0e7490}.btn.big{min-height:52px;padding:10px 22px;font-size:16px}.btn.icon{min-width:44px;padding:0}.btn small{color:inherit;opacity:.8}.menu{background:radial-gradient(1200px 500px at 70% -10%, #22d3ee26, transparent), radial-gradient(800px 400px at 10% 110%, #d946ef1f, transparent), var(--bg);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.menu-card{width:100%;max-width:640px}.eyebrow{color:var(--cyan);text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:700}.menu h1{margin:8px 0 16px;font-size:clamp(36px,7vw,64px);line-height:1.05}.menu h1 span{background:linear-gradient(90deg, var(--cyan), var(--magenta));color:#0000;-webkit-background-clip:text;background-clip:text}.tagline{color:#cbd5e1;margin-bottom:28px;font-size:18px}.menu-actions{gap:12px;max-width:380px;display:grid}.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.toggle input{width:20px;height:20px}.version{color:#64748b;margin-top:32px;font-size:13px}.newgame{max-width:1180px;margin:0 auto;padding:24px 16px 48px}.newgame-head{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.newgame-head h1{margin-bottom:6px;font-size:28px}.field{gap:6px;max-width:420px;margin-bottom:18px;display:grid}.field span{color:var(--muted);font-size:13px}.field input,.field select{border:1px solid var(--line);background:var(--bg-2);min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:8px 12px}.field.compact{margin:10px 0}.section-title{margin-bottom:4px;font-size:20px}.preset-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin:16px 0 24px;display:grid}.preset-card{text-align:left;background:var(--panel);border:2px solid var(--line);color:var(--text);font:inherit;cursor:pointer;border-radius:14px;align-content:start;gap:10px;padding:18px;display:grid}.preset-card:hover{border-color:#3b4d75}.preset-card.selected{border-color:var(--cyan);box-shadow:0 0 0 4px #22d3ee26}.preset-card h3{font-size:20px}.preset-summary{color:#cbd5e1;min-height:3.6em;margin:0}.kv{grid-template-columns:1fr auto;gap:4px 12px;margin:0;font-size:14px;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.preset-units{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.mini-slot{border:1px solid var(--line);text-align:center;color:#475569;border-radius:6px;padding:4px 0;font-size:11px;font-weight:700}.warn-note{color:var(--warn);margin:0;font-size:13px}.newgame-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.game{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--bg-2);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;display:flex}.brand{align-items:center;gap:10px;min-width:180px;display:flex}.brand strong{display:block}.brand small{font-size:12px;display:block}.stats{flex-wrap:wrap;flex:1;gap:6px 20px;margin:0;display:flex}.stats>div{display:grid}.stats dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.stats dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:700}.game-main{flex:1;grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:12px;padding:12px 16px;display:grid}.lane-area{gap:8px;min-width:0;display:grid}.lane-header{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:1fr 1fr;align-items:start;gap:8px 16px;padding:10px 14px;display:grid}.lane-title strong{color:var(--cyan);display:block}.lane-title small{font-size:12px}.lane-hp{grid-column:1/-1;grid-template-columns:auto;gap:2px;display:grid}.lane-title{grid-column:1/-1}.lane-metric{display:grid}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.value{font-variant-numeric:tabular-nums;font-weight:700}.value.small{font-size:13px}.bar{border:1px solid var(--line);background:#0b1222;border-radius:6px;height:10px;overflow:hidden}.bar>div{background:currentColor;border-radius:6px;height:100%;transition:width .2s}.canvas-shell{border-radius:var(--radius);border:1px solid var(--line);background:#070b18;width:min(100%,80.3922vh - 120.588px);margin:0 auto;position:relative;overflow:hidden}.canvas-wrap{aspect-ratio:820/1020;width:100%;position:relative}.canvas-wrap canvas{touch-action:manipulation;display:block}.canvas-loading{color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}.paused-badge,.armed-badge,.setup-badge{pointer-events:none;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:calc(100% - 24px);padding:6px 14px;font-size:14px;font-weight:700;position:absolute;top:12px;left:50%;overflow:hidden;transform:translate(-50%)}.paused-badge{color:#1c1917;background:#fbbf24eb}.armed-badge{color:#1c1917;background:#fb923cf2}.setup-badge{color:#042f2e;background:#22d3eee6}.stall{border:1px solid var(--warn);border-radius:var(--radius);background:#422006;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.side{align-content:start;gap:10px;max-height:calc(100vh - 150px);padding-right:2px;display:grid;overflow-y:auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.panel h2{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:16px;display:flex}.panel p{margin:4px 0}.badge{letter-spacing:.04em;background:#02061799;border:2px solid;border-radius:6px;place-items:center;min-width:40px;height:26px;padding:0 6px;font-size:12px;font-weight:800;display:inline-grid}.catalog{gap:8px;margin:0;padding:0;list-style:none;display:grid}.catalog-item{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:10px}.catalog-item.locked{opacity:.55}.ci-head{align-items:center;gap:10px;display:flex}.ci-head strong{display:block}.ci-head small{font-size:12px}.ci-stats{color:#cbd5e1;font-size:12.5px}.ci-strong{color:var(--good);font-size:12.5px}.ci-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.ci-foot small{display:block}.ci-foot .btn{min-width:112px;font-size:13px}.hp-row{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:8px 0;display:grid}.row-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.log ul{gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.log li{border-left:3px solid;padding-left:10px}.log li.tone-info{color:#cbd5e1;border-left-color:var(--info)}.footer{background:var(--bg-2);border-top:1px solid var(--line);z-index:5;flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex;position:sticky;bottom:0}.speed{gap:6px;display:flex}.ability{align-items:center;gap:12px;display:flex}.ability-btn{border-color:#9a3412;flex-direction:column;gap:0;line-height:1.1}.ability-btn.armed{background:#c2410c;border-color:#fdba74}.intel{min-width:150px;color:var(--muted);gap:4px;font-size:13px;display:grid}.main-action{flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto;display:flex}.wave-status{color:var(--warn);font-variant-numeric:tabular-nums;font-weight:700}.modal-backdrop{z-index:50;background:#020617b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--info);border-radius:14px;width:min(720px,100%);max-height:calc(100vh - 32px);padding:18px 20px;overflow-y:auto}.modal.tone-good{border-top-color:var(--good)}.modal.tone-bad{border-top-color:var(--bad)}.modal header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.modal footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.help-list{gap:8px;padding-left:18px;display:grid}.result-reason{font-size:17px;font-weight:600}.summary{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:12px;font-size:14px}.summary caption{text-align:left;color:var(--muted);margin-bottom:6px}.summary th,.summary td{border-bottom:1px solid var(--line);text-align:right;padding:6px 8px}.summary th:first-child,.summary td:first-child{text-align:left}.toast{border:1px solid var(--bad);color:#fee2e2;z-index:60;background:#7f1d1d;border-radius:10px;max-width:calc(100% - 32px);padding:10px 16px;font-weight:600;position:fixed;bottom:88px;left:50%;transform:translate(-50%)}@media (max-width:1100px){.game-main{grid-template-columns:1fr}.side{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;max-height:none}}@media (max-width:640px){.topbar,.game-main,.footer{padding-left:16px;padding-right:16px}.stats{flex-basis:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px;display:grid}.stats dd{white-space:normal}.main-action{width:100%;margin-left:0}.main-action .btn.primary{flex:1}.ability{flex-wrap:wrap}.preset-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.bar>div{transition:none}}
