:root{--bg: #16321a;--panel: #1f2a22;--panel-2: #283a2c;--line: #36513a;--text: #eaf3ea;--muted: #9fb6a2;--accent: #ffd23f;--accent-2: #6fcf7a;--danger: #e2554f}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(circle at 50% -10%,#234a28,#0e1f12 70%);color:var(--text);-webkit-user-select:none;user-select:none}#app{max-width:1320px;margin:0 auto;padding:12px;display:flex;flex-direction:column;gap:12px;min-height:100%}#topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 16px}.brand{font-size:22px;font-weight:800;letter-spacing:.5px}.brand .logo{font-size:24px}.stats{display:flex;gap:10px;margin-left:auto}.stat{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:6px 12px;font-weight:700;font-variant-numeric:tabular-nums;min-width:78px;text-align:center}.stat.cash{color:var(--accent)}.stat.lives{color:#ff8a85}.controls{display:flex;gap:8px}button{font:inherit;font-weight:700;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:9px 14px;cursor:pointer;transition:transform .04s ease,background .15s ease,opacity .15s ease}button:hover:not(:disabled){background:#324a36}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent-2);color:#11280f;border-color:#5cb968}button.primary:hover:not(:disabled){background:#84e08f}#play{display:flex;gap:12px;align-items:flex-start}#canvas-wrap{position:relative;flex:1 1 auto;min-width:0}canvas#game{width:100%;height:auto;display:block;border-radius:12px;border:1px solid var(--line);box-shadow:0 10px 30px #00000059;cursor:crosshair;touch-action:none}#sidebar{flex:0 0 286px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}#sidebar h2{margin:2px 0 10px;font-size:16px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}#shop{display:flex;flex-direction:column;gap:8px}.shop-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px}.shop-item .ic{font-size:22px;width:30px;text-align:center}.shop-item .body{flex:1 1 auto;min-width:0}.shop-item .nm{font-weight:700;font-size:14px}.shop-item .ds{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-item .pr{font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}.shop-item.selected{outline:2px solid var(--accent)}.shop-item.poor .pr{color:var(--danger)}.panel{margin-top:14px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px}.panel.hidden,.hidden{display:none}.panel h3{margin:0 0 8px;font-size:16px;display:flex;align-items:center;gap:8px}.panel .sub{font-size:11px;color:var(--muted);margin-bottom:10px}.targets{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px}.targets button{padding:6px 0;font-size:12px}.targets button.active{background:var(--accent);color:#2a2206;border-color:var(--accent)}.stat-line{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding:2px 0}.stat-line b{color:var(--text)}.panel .actions{display:flex;gap:8px;margin-top:10px}.panel .actions button{flex:1}#upgradeBtn{background:#2f5fb0;border-color:#2a55a0}#upgradeBtn:hover:not(:disabled){background:#3a72d0}#sellBtn{background:#7a3b3b;border-color:#6e3434}#hint{margin-top:14px;font-size:12px;color:var(--muted);line-height:1.45}#hint kbd{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:0 5px;font-size:11px}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;text-align:center;background:#08120ac7;border-radius:12px;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.overlay.show{display:flex}.overlay .card{max-width:440px}.overlay h1{font-size:34px;margin:0 0 8px}.overlay p{color:#d6e6d8;line-height:1.5;margin:6px 0}.overlay .big{font-size:18px;margin:14px 0 18px}.overlay button{font-size:17px;padding:12px 26px}@media (max-width: 900px){#play{flex-direction:column}#sidebar{flex-basis:auto;width:100%}.stats{margin-left:0}}
