:root{--bg:#1b1712;--panel:#2a241c;--panel-2:#342c22;--text:#efe6d4;--muted:#b3a58c;--accent:#e0a040;--good:#7ecb6a;--bad:#e06a5a;--armor-light:#d8c27a;--armor-armored:#9aa3ad;--armor-air:#6fb3e0;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}#app{grid-template:"hud hud""stage side"1fr/1fr 300px;height:100vh;display:grid}#hud{background:var(--panel);border-bottom:1px solid #000;grid-area:hud;align-items:center;gap:24px;padding:8px 16px;font-weight:600;display:flex}#hud .money{color:var(--accent)}#hud .lives{color:var(--bad)}#hud .wave-preview{align-items:center;gap:8px;min-width:0;margin-left:auto;font-weight:500;display:flex}#hud .wave-preview.is-hidden{display:none}#hud .wave-preview-label{color:var(--muted)}#hud .wave-preview-chips{gap:6px;display:flex}#hud .unit-chip{border:1.5px solid var(--chip-armor,var(--muted));background:var(--panel-2);border-radius:6px;align-items:center;gap:3px;padding:1px 6px 1px 2px;display:inline-flex}#hud .unit-chip b{font-size:13px}#hud .unit-icon{display:block}#hud .wave-preview:not(.is-hidden)+.call-wave{margin-left:0}#hud .call-wave{margin-left:auto}.armor-light{--chip-armor:var(--armor-light)}.armor-armored{--chip-armor:var(--armor-armored)}.armor-air{--chip-armor:var(--armor-air)}.armor-dot{vertical-align:0;background:var(--chip-armor);border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}@media (width<=900px){#hud .wave-preview{display:none}#hud .wave-preview:not(.is-hidden)+.call-wave{margin-left:auto}}#hud .call-wave.is-hidden{visibility:hidden}#stage{grid-area:stage;min-width:0;min-height:0;position:relative;overflow:hidden}#game{cursor:crosshair;display:block}#side{background:var(--panel);border-left:1px solid #000;flex-direction:column;grid-area:side;min-height:0;padding:12px;display:flex;overflow:hidden}#build{flex-direction:column;flex:none;gap:3px;max-height:min(384px,100% - 220px);margin-bottom:12px;display:flex;overflow-y:auto}#side h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 0 8px;font-size:13px}button{font:inherit;color:var(--text);background:var(--panel-2);cursor:pointer;border:1px solid #54483a;border-radius:6px;padding:6px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.active{background:var(--accent);color:#1b1712;border-color:var(--accent)}#controls{gap:6px;display:flex}.weapon-row{text-align:left;flex:none;align-items:center;gap:7px;width:100%;padding:4px 8px;display:flex}.weapon-row .name{flex:1;font-weight:600}.weapon-row .cost{color:var(--accent);font-weight:700}.weapon-row.unaffordable{opacity:.5}.weapon-row.active{background:var(--panel-2);color:var(--text);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.swatch{border:1px solid #000;border-radius:3px;width:12px;height:12px}kbd{color:var(--muted);border:1px solid #54483a;border-radius:3px;padding:0 4px;font-size:10px}.desc{color:var(--muted);margin-bottom:4px;font-size:12px}.row{justify-content:space-between;font-size:12px;line-height:1.5;display:flex}.row span{color:var(--muted)}.row.good b{color:var(--good)}.row.bad b{color:var(--bad)}#details{background:var(--panel-2);border-radius:8px;flex-direction:column;flex:0 auto;min-height:0;margin-top:auto;padding:10px;display:flex}#details .details-body{min-height:0;overflow-y:auto}#details.empty{background:0 0;border:1px dashed #54483a}#details .hint{color:var(--muted);text-align:center;margin:0;font-size:12px}#details h3{align-items:center;gap:6px;margin:0 0 6px;font-size:15px;display:flex}#details h3 small{color:var(--muted);font-weight:400}#details h3 .cost{color:var(--accent);margin-left:auto}#details .actions{flex:none;gap:6px;margin-top:8px;display:flex}#details .actions[hidden]{display:none}#details .actions button{flex:1}#toast{opacity:0;pointer-events:none;background:#000c;border-radius:6px;padding:6px 14px;transition:opacity .2s;position:absolute;top:16px;left:50%;transform:translate(-50%)}#toast.visible{opacity:1}#end{background:#0009;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}#end[hidden]{display:none}#end h2{margin:0;font-size:40px}#end .end-actions{gap:8px;display:flex}#end .next-level{background:var(--accent);color:#1b1712;border-color:var(--accent)}#end .next-level[hidden]{display:none}#hud .level-picker select{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid #54483a;border-radius:6px;padding:4px 8px}#hud .level-picker select:disabled{opacity:.6;cursor:not-allowed}#controls{flex-wrap:wrap;align-items:center}#controls .volume{min-width:80px;accent-color:var(--accent);flex:1}
