/* Only the two corner panels cover the full-window battlefield. */
body{display:block;width:100%;height:100%;overflow:hidden}
.game-layout{position:fixed;inset:0;width:100%;height:100%;margin:0;padding:0;max-width:none}
.command-deck{position:fixed;inset:0;display:block;padding:0;margin:0;background:none;border:0;box-shadow:none;pointer-events:none;z-index:3}
.command-deck>section{position:absolute;bottom:14px;pointer-events:auto;border:2px ridge #7c805b;box-shadow:0 4px 20px #0007,inset 0 0 15px #0005;background:linear-gradient(140deg,#1b2b1eea,#101c15f2)}
.minimap-panel{left:14px;width:180px;height:196px;padding:7px;gap:5px;justify-content:center}
#minimap{width:150px;height:150px;max-height:none;max-width:100%}.minimap-panel .eyebrow{font-size:7px}.camera-hint{font-size:7px}
.arsenal{right:14px;width:292px;padding:10px;overflow:visible;max-height:calc(100vh - 160px);display:flex;flex-direction:column;gap:9px}
.tower-wallet{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #536344;padding:0 2px 8px}.tower-wallet .eyebrow{font-size:9px}.wallet-value{font-size:17px;color:#e8ca83;font-variant-numeric:tabular-nums}.wallet-value strong{font-weight:600}
#tower-list{gap:6px;flex-shrink:0}.tower-option{min-height:68px;margin:0}.tower-option img{width:34px;height:34px}.tower-option .tower-name{font-size:9px}.tower-price{font-size:9px}
.details{flex-shrink:1;min-height:0;padding:9px 2px 2px;border:0;border-top:1px solid #536344;box-shadow:none;background:none;overflow:auto;max-height:265px}.details h3{font-size:16px}.details .eyebrow{font-size:8px}.details p{font-size:10px;line-height:1.4}.details .stat-row{padding:5px 0}.stat-row strong{font-size:15px}.build-hint{font-size:9px}.detail-actions{flex-wrap:wrap;gap:5px}.upgrade-button{min-width:150px}.sell-button{font-size:9px}.details:empty{display:none}
.hud-controls{border-top:1px solid #536344;padding-top:7px;display:flex;align-items:center;gap:4px;justify-content:space-between;flex-shrink:0}.map-controls{gap:4px;display:flex;flex:1}.hud-controls .small-button{padding:5px 6px;font-size:9px;white-space:nowrap}.hud-controls #fit{font-size:0}.hud-controls #fit::after{content:'⌖';font-size:13px}.hud-controls #grid{font-size:0}.hud-controls #grid::after{content:'▦';font-size:13px}.hud-controls #zoom-in,.hud-controls #zoom-out{font-size:12px;padding:4px 6px}.hud-controls #pause{font-size:0}.hud-controls #pause::after{content:'Ⅱ';font-size:12px}.hud-controls #pause.active::after{content:'▶'}.hud-controls #speed{font-size:9px}.hud-controls #help,.hud-controls #restart{font-size:12px}
.wave-overlay{position:absolute;left:50%;top:18px;transform:translateX(-50%);width:340px;max-width:90vw;text-align:center;z-index:2;pointer-events:none;color:#f1ebd2;text-shadow:0 1px 3px #000,0 2px 9px #000c;background:transparent;border:0;box-shadow:none;padding:0}
.wave-number{font-family:Cinzel,Georgia,serif;font-size:21px;letter-spacing:2px}.wave-number em{font-style:normal;color:#d1d9bd;font-size:13px}.wave-overlay #next-label{display:block;font-size:8px;letter-spacing:1.2px;margin-top:6px;color:#e2d5aa}.wave-overlay h3{display:inline-block;font-family:Cinzel,Georgia,serif;font-size:16px;font-weight:500;margin:5px 5px 3px}.wave-overlay .tag{background:transparent!important;color:#e5d4a2;font-size:7px;padding:0;letter-spacing:1px}.wave-overlay .tag.air{color:#dfc8ff}.wave-overlay #next-desc{font-size:10px;line-height:1.4;color:#e2e5cf}.wave-overlay #board-status{display:none}.wave-overlay .wave-progress{height:2px;width:125px;background:#121e1644;margin:8px auto}.wave-overlay .primary{display:inline-flex;gap:14px;justify-content:center;pointer-events:auto;width:auto;font-size:11px;font-weight:600;padding:5px 12px;background:transparent;border:1px solid #d6d4aa66;box-shadow:none;text-shadow:inherit;color:#f3e6bd}.wave-overlay .primary:hover:not(:disabled){background:#16231d44}.wave-overlay .primary:disabled{opacity:.65;border-color:transparent}.wave-overlay .primary span{font-size:8px}.wave-overlay .wave-hint{font-size:9px!important;color:#efdab4!important;margin-top:7px!important;line-height:1.4}.wave-overlay .wave-progress:has(span[style*='0%']){opacity:.4}
.keep-health{position:absolute;pointer-events:none;transform:translate(-50%,-100%);z-index:1;text-align:center;width:96px;text-shadow:0 1px 3px #000}.keep-health-label{font-size:12px;color:#dfaa8b;display:block;margin-bottom:4px}.keep-health-label strong{color:#f3ead0;font-weight:600}.keep-health-label em{font-size:9px;color:#d6ddc5;font-style:normal}.health-track{height:6px;display:block;background:#17251be6;border:1px solid #b6bc8a80;border-radius:1px;box-shadow:0 1px 4px #0008}.health-track>span{height:100%;display:block;background:#a3bf6b;width:100%;transition:width .2s}
.toast{bottom:24px;max-width:calc(100% - 660px);white-space:normal;padding:8px 12px;font-size:11px;min-width:160px}
@media(max-width:1000px){.arsenal{width:262px;right:10px;bottom:10px;padding:8px;gap:7px}.minimap-panel{left:10px;bottom:10px;width:154px;height:170px}#minimap{width:128px;height:128px}.tower-option{min-height:64px}.tower-option img{width:31px;height:31px}.tower-option .tower-name{font-size:8px}.hud-controls .small-button{padding:4px}.toast{max-width:calc(100% - 480px)}.wave-overlay{top:12px}}
@media(max-height:650px){.minimap-panel{width:145px;height:157px}#minimap{width:115px;height:115px}.arsenal{width:260px;padding:7px;gap:6px}.tower-option{min-height:53px}.tower-option img{width:25px;height:25px}.details{max-height:190px}.wave-overlay{top:9px}.wave-number{font-size:17px}.wave-overlay h3{font-size:13px}.wave-overlay .wave-hint{font-size:8px!important}.wave-overlay #next-desc{font-size:9px}.wallet-value{font-size:15px}}
@media(max-width:650px){.arsenal{width:226px;max-height:calc(100vh - 150px)}.minimap-panel{width:115px;height:126px}#minimap{width:88px;height:88px}.camera-hint{font-size:5px}.minimap-panel .eyebrow{font-size:5px}.tower-option .tower-name{font-size:7px}.tower-option{min-height:57px}.hud-controls{gap:2px}.map-controls{gap:2px}.hud-controls .small-button{padding:3px}.toast{max-width:90%;bottom:245px}.wave-overlay{width:280px}.details p{font-size:9px}}
