:root{font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;color:#e7eee9;background:#0b151a}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 30% 0%,#223d41 0,#0b151a 60%);min-height:100vh}header{display:flex;align-items:center;gap:22px;padding:20px 30px;background:#101c21;border-bottom:1px solid #355358}header strong{font-size:23px;color:#d8b76f;letter-spacing:3px}header small{color:#718f93;letter-spacing:2px}header span{margin-left:auto}main{max-width:1500px;margin:25px auto;padding:0 20px}.panel{background:#17282d;border:1px solid #365157;padding:30px;border-radius:10px;box-shadow:0 16px 38px #02060766}h1{margin:0 0 10px;font-size:27px}h2{font-size:18px}p{color:#9fb7b9}.authgrid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.authgrid form{display:flex;flex-direction:column;gap:12px;background:#0c1c20;padding:24px;border:1px solid #30474b;border-radius:8px}input{background:#1b3034;color:white;border:1px solid #506569;padding:13px;border-radius:5px}button{border:0;background:#c4a362;color:#0f1b1b;padding:11px 16px;border-radius:5px;font-weight:800;cursor:pointer;margin:3px}button:hover{filter:brightness(1.13)}button.secondary{background:#354e54;color:#e6efef}.hidden{display:none!important}.between{display:flex;justify-content:space-between;align-items:center;gap:12px}.room{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #345054;padding:14px;background:#112329}.room small{color:#9fb7b9}.gamewrap{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px}.field{min-width:0}canvas{width:100%;height:auto;background:#15252d;border:2px solid #405e62;cursor:crosshair;touch-action:none}.instructions,.subtle{font-size:12px;color:#8ba8ad}aside{border:1px solid #324e53;padding:16px;background:#16272a}#production button{display:block;width:100%;text-align:left;font-size:12px}#production button.active{outline:2px solid #fff}#selected{font-size:13px;color:#cae1dd;margin-top:22px}#wallet{color:#d8b76f;font-size:23px;font-weight:800;margin:15px 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#b94b3d;color:white;border-radius:5px;display:none}#players{overflow:auto}table{border-collapse:collapse;width:100%}th,td{padding:8px;border-bottom:1px solid #3a5558;text-align:left}@media(max-width:850px){.gamewrap,.authgrid{grid-template-columns:1fr}header small{display:none}.between{align-items:start;flex-direction:column}}
/* Premium tactical HUD */
:root{--gold:#e5c580} body{background:radial-gradient(ellipse at 75% 5%,#193a3e,#071318 70%)} header{background:#08181eea;box-shadow:0 5px 25px #0009}header strong{font-weight:950} header small{font-size:10px} main{max-width:1580px}.panel{background:linear-gradient(145deg,#162f33,#0a1c22);border:1px solid #426065}button{letter-spacing:.6px;transition:transform .12s,background .12s}button:active{transform:scale(.98)}#battle{padding-top:2px}.gamewrap{grid-template-columns:minmax(0,1fr) 290px;gap:12px}.field{position:relative}canvas{max-height:76vh;object-fit:contain;border:1px solid #60837b;box-shadow:0 15px 55px #000a;image-rendering:auto}aside{background:linear-gradient(#182d34,#0e1d24);border:1px solid #587079;box-shadow:inset 0 2px #cdb77a80}aside h3{color:#e8d29c;font-size:12px;letter-spacing:2px;text-transform:uppercase;margin-top:23px}.purchase{display:flex!important;align-items:center;gap:11px;background:#213b41;width:100%;border:1px solid #416067!important;color:#e7eade!important;border-radius:2px!important;padding:10px!important;margin:5px 0!important}.purchase:hover,.purchase.active{background:#45635f!important;outline:1px solid #d1b87d}.purchase-icon{display:inline-grid;place-items:center;width:38px;height:38px;font-size:20px;color:#edcf89;background:#112830;border:1px solid #63756c}.purchase span:nth-child(2){display:flex;flex-direction:column;text-align:left;gap:3px}.purchase small{color:#a8cbbf;font-size:10px}#wallet{letter-spacing:1px;font-size:24px}#status{font-family:monospace;color:#a3bebc;line-height:1.7;font-size:11px}.status-live{color:#8ce6c8;font-weight:bold}#battleTitle{font-size:17px;letter-spacing:2px;text-transform:uppercase;color:#e3d1a4}.instructions{background:#10232b;padding:12px;border:1px solid #3d5b60;margin-top:6px;letter-spacing:.3px}.hero{background:linear-gradient(90deg,#142e35bb,#0a1b21ee),radial-gradient(circle at 70% 40%,#466353 0,transparent 55%);border:1px solid #4e6c68;padding:36px;margin-bottom:20px;position:relative;overflow:hidden}.hero:after{content:'◆';position:absolute;right:7%;top:-95px;font-size:310px;color:#ffffff07;transform:rotate(-30deg)}.hero .eyebrow{color:#83c7c4;letter-spacing:4px;font-size:12px;font-weight:bold}.hero h1{font-size:clamp(33px,6vw,62px);letter-spacing:5px;font-weight:950;margin:7px 0;color:#e6c886}.hero p{max-width:580px}.hero button{font-size:15px;padding:15px 25px;position:relative;z-index:2}.featureline{display:flex;gap:17px;flex-wrap:wrap;color:#8ab6b1;font:11px monospace;margin:16px 0}.featureline span{border-left:2px solid #b9a36b;padding-left:10px}#serverNotice{font-size:12px;color:#d9bc80}#selected{line-height:1.8}#selected b{color:#edcd8e;letter-spacing:2px}
@media(max-width:850px){.gamewrap{grid-template-columns:1fr}.hero{padding:22px}canvas{max-height:none}}

/* Frontul de Fier — design system 2: enhanced live-game HUD */
:root{--ink:#09151b;--bronze:#d0ad68;--teal:#8fd1ca;--stroke:#547875}
header{border-bottom:2px solid #bf985e;position:relative;z-index:5;background:linear-gradient(110deg,#101c20,#15282e 65%,#0b141b)}
header strong{font-size:clamp(18px,2vw,28px);text-shadow:0 3px 18px #dba5502a}
header small{color:#a9c1ba}
.hero{min-height:332px;background:linear-gradient(90deg,#061319fa 0%,#0b1e25e8 45%,#0b1e259e 76%,#071a1fb0 100%),url('img/art-batalie.webp') center/cover no-repeat;border-color:#806b49;box-shadow:0 18px 45px #0009,inset 0 0 80px #071a1a8a;border-radius:4px;padding:38px 42px}
.hero h1{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-style:italic;letter-spacing:4px;text-shadow:2px 4px 0 #152d30,0 8px 32px #000}
.hero:after{content:'';inset:0;top:auto;right:0;width:42%;height:8px;background:linear-gradient(90deg,transparent,#dab575);transform:none}
.hero p{color:#c5d0cc;text-shadow:0 2px 7px #000;font-size:15px;line-height:1.6}
.art-label{position:absolute;right:14px;bottom:17px;color:#bac5bc;background:#05131ba8;font-size:9px;letter-spacing:1.4px;padding:6px 8px;z-index:2}
.hero button{background:linear-gradient(#e8cb81,#bb8e4e);box-shadow:0 5px 15px #0009;border:1px solid #edd7a5;border-radius:2px;min-width:255px}
#battle>.between{border:1px solid #3f6265;background:linear-gradient(90deg,#0c232b,#182e33);padding:10px 13px;margin-bottom:8px;display:flex;align-items:center;flex-wrap:wrap}
#battleTitle{font-size:16px;margin:0 auto 0 0}
.audio-controls{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.audio-controls button,#pause,#leave{font-size:11px;padding:9px 10px;margin:0;border:1px solid #577078;background:#223940}
.audio-controls button[aria-pressed="true"]{background:#41645d;color:#f2d99f;border-color:#a2b995}
.volume-field{display:flex;gap:4px;align-items:center;padding:0 10px;font:10px monospace;color:#b1c3bd}
.volume-field input{width:77px;height:17px;accent-color:#edc57d;padding:0;cursor:pointer}
#game{background:#142a2d;border:2px solid #739087;box-shadow:0 0 0 5px #0c1b23,0 12px 45px #0009}
#status{font-size:12px}#production{display:grid;gap:3px}#production .purchase{border-left:3px solid #af9660!important}
#production .purchase:hover{transform:translateX(-2px)}
.instructions{font-size:11px;line-height:1.65}
.panel{box-shadow:0 18px 55px #0007}
:focus-visible{outline:2px solid #ecc77d;outline-offset:3px}
@media(max-width:650px){.hero{padding:28px 20px;min-height:340px}.audio-controls{gap:3px}.volume-field{padding-left:4px}.hero h1{font-size:37px}}

.adminTabs{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.adminTabs button.active{border:1px solid #e6c17f;background:#4e6058;color:#ffe2a0}
#adminMatches,#adminAudit{max-height:390px;overflow:auto;border:1px solid #3d5759}
#players th,#adminMatches th,#adminAudit th{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#ebce96;background:#172d32}
#players td,#adminMatches td,#adminAudit td{font-size:13px}#admin td button{font-size:11px}
/* REDUTA — executable game visual rebuild. All battlefield imagery is rendered by the live canvas. */
:root{color-scheme:dark;--red:#b21d16;--red-bright:#ff3e25;--gold:#e6c78a;--brass:#c69c56;--plate:#121618;--dark:#080b0e;--border:#6d6251}
body{background:#090c0e;color:#e8e4db;font-family:Arial,Helvetica,sans-serif}header.topbar{min-height:66px;padding:11px 25px;background:linear-gradient(90deg,#07080a,#191918,#070a0d);border-bottom:2px solid #713528;box-shadow:0 5px 40px #000}
.topbar .wordmark{font:950 29px Impact,'Arial Narrow',sans-serif;letter-spacing:4px;color:#e7d1a7;text-decoration:none;text-shadow:1px 2px 0 #4b1711}.mark{color:#b2211a;font-size:37px;vertical-align:middle}.edition{color:#978d7d!important;font:10px Consolas,monospace;letter-spacing:3px}.separator{color:var(--red)}.identity{margin-left:auto;color:#f0ca82;font-size:12px}.top-status{color:#86a58e;font:10px Consolas,monospace;letter-spacing:2px}.top-status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#47b978;box-shadow:0 0 9px #5f9}.top-status{margin-left:auto}.identity:not(:empty)+.top-status{margin-left:20px}
main{max-width:1920px;margin:0 auto;padding:16px 18px}.home-grid{display:grid;grid-template-columns:minmax(300px,31%) minmax(0,1fr);gap:7px;min-height:calc(100vh - 288px);max-height:860px}.poster,.home-center,.home-card{position:relative;overflow:hidden;border:1px solid #725447;box-shadow:0 0 0 2px #040608,0 9px 36px #000a}.poster{background:#151519 url('img/reduta-poster.webp') center center/cover no-repeat;min-height:550px}.poster-shade{position:absolute;inset:0;background:linear-gradient(90deg,#080a0aba 0%,#04050865 75%),linear-gradient(0deg,#070807e5 0%,transparent 62%)}.poster-content{position:relative;z-index:1;padding:55px 9% 24px;max-width:550px}.poster-kicker{font-size:10px;letter-spacing:3px;color:#e9d5a3;text-shadow:0 1px #000}.poster-star{text-align:center;margin:26px auto 2px;color:#d2a35e;font-size:55px;text-shadow:0 2px 0 #410900,0 0 25px #f4481a}.poster h1{font:950 clamp(57px,6.7vw,119px) Impact,'Arial Narrow',sans-serif;color:#ded0b8;letter-spacing:3px;margin:0;line-height:1;text-shadow:4px 5px 0 #33130b,0 0 40px #000,1px -1px #fff;transform:scaleY(1.05)}.poster-tagline{color:#e3d0a6;font-size:13px;letter-spacing:2px;font-weight:bold;text-shadow:0 2px 5px #000}.poster-menu{margin-top:40px;display:grid;gap:6px;max-width:265px}.poster-menu button{font-family:Impact,'Arial Narrow',sans-serif!important;letter-spacing:1.35px;font-size:17px;text-align:left;padding:11px 17px;margin:0;border:1px solid #6e443e;border-left:4px solid #87322a;border-radius:0;background:linear-gradient(90deg,#09090deb,#1d1b1bd8);color:#e5d9c8;box-shadow:0 2px 12px #0009;display:flex;justify-content:space-between;gap:12px}.poster-menu button:hover{background:linear-gradient(90deg,#76180c,#290e0e);border-color:#ff6345;color:white;transform:translateX(3px)}.poster-menu button.menu-play{background:linear-gradient(#cf3020,#7b150d);border:1px solid #eb6b52;box-shadow:0 0 20px #f00a;color:white;text-shadow:0 1px #000;justify-content:flex-start}.poster-menu button span{font:11px Consolas;color:#dca986}.art-disclosure{position:absolute;bottom:8px;right:10px;font:9px Consolas,monospace;color:#b8b0a3;background:#0a0809df;padding:6px 8px;letter-spacing:1px}
.home-center{background:linear-gradient(140deg,#181819,#080d0e);border-color:#5b5550;display:flex;flex-direction:column}.preview-head{height:92px;display:flex;justify-content:space-between;align-items:center;padding:16px 26px;background:linear-gradient(100deg,#151716,#21201d,#111517);border-bottom:3px solid #76180e;gap:10px}.preview-head small,.card-kicker{font:10px Consolas,monospace;color:#e4a47c;letter-spacing:2.5px}.preview-head h2{font:950 clamp(20px,2.2vw,35px) Impact,'Arial Narrow',sans-serif;letter-spacing:2px;margin:8px 0 0;color:#e8d9bd}.live-tag{white-space:nowrap;color:#84c19e;border:1px solid #335a42;background:#0e2717;padding:8px;font:11px Consolas}.preview-image{position:relative;flex:1;min-height:330px;background:#0b1512;overflow:hidden;display:grid;place-items:center}.preview-image img{width:100%;height:100%;object-fit:contain;filter:contrast(1.04) saturate(1.08);position:absolute;inset:0}.preview-caption{position:absolute;bottom:11px;left:15px;padding:7px 10px;font:10px Consolas;background:#020806df;border:1px solid #46604f;color:#b6e1c3;letter-spacing:1px}.preview-foot{display:flex;gap:20px;flex-wrap:wrap;padding:14px 18px;font:10px Consolas;color:#c6bda8;border-top:1px solid #564237;background:#171715}.preview-foot span::first-letter{color:#b33127}.preview-action{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(90deg,#211f1c,#111819);border-top:1px solid #696052;padding:16px 22px}.preview-action>div{display:flex;flex-direction:column;gap:7px}.preview-action strong{font:20px Impact;letter-spacing:1px}.preview-action small{color:#bcb2a0}.launch-alt,.home-card button{background:linear-gradient(#ba2f22,#67150f);border:1px solid #da6657!important;border-radius:0;color:white;padding:13px 25px;font:14px Impact;letter-spacing:1px;white-space:nowrap}
.featurebar{display:flex;justify-content:space-evenly;gap:10px;flex-wrap:wrap;padding:12px 8px;background:#181715;border:1px solid #413e34;margin-top:8px;font:11px Consolas,monospace;color:#c1b5a3;letter-spacing:1px}.featurebar b{color:#e43d28;margin-right:5px}.featurebar em{font-style:normal;font-size:9px;color:#cead63}.home-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.home-card{padding:20px 24px;background:linear-gradient(110deg,#1e1e1e,#12191b);min-height:195px;border-color:#4e453a}.home-card::after{content:'✦';position:absolute;right:-10px;top:-29px;font-size:148px;color:#af50220b}.home-card h3{font:24px Impact;margin:12px 0;color:#e9dfcc;letter-spacing:1px}.home-card p{max-width:420px;font-size:13px;line-height:1.5;color:#b8b3a6}.home-card button{font-size:12px;padding:10px 14px}.home-card button span{padding-left:14px}
.panel{max-width:1240px;margin:40px auto;border-radius:0;border:1px solid #74503f;background:linear-gradient(115deg,#202121,#0e1517);padding:35px}.panel h1{font-family:Impact;letter-spacing:2px}.panel h2{font-family:Impact;letter-spacing:1px;color:#edd5a4}.section-heading{margin-bottom:25px}.backlink{background:none;border:0;color:#d6b779;padding:0;margin:0 0 18px;font-family:Consolas;letter-spacing:1px}.authgrid form{border-color:#675043;background:#0b1216;border-radius:0}.authgrid input{width:100%;display:block;margin-top:8px;background:#171c1f;border:1px solid #655544}.authgrid form button,#create{border-radius:0;background:linear-gradient(#bf3223,#7e1e13);color:#f7e6d0}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.soft{font:10px Consolas;color:#c9a562}
#battle{margin:0 auto;max-width:1900px}.battle-header{border:1px solid #654e46!important;background:linear-gradient(90deg,#1d1b1b,#0c1316)!important;border-bottom:3px solid #9c281d!important;padding:9px 18px!important}.battle-header h1{color:#e4d0ac!important;font-family:Impact;font-size:19px!important;letter-spacing:2.3px!important}.audio-controls button,.battle-header>button{background:#241f1f!important;border:1px solid #67504a!important;border-radius:0!important;font-weight:700}.audio-controls button[aria-pressed=true]{border-color:#a0a678!important;color:#eed69a!important}.gamewrap{grid-template-columns:minmax(0,1fr) 290px;gap:7px}.field{background:#0a0c0e}canvas#game{display:block;width:100%;max-height:none;aspect-ratio:1280/770;border:2px solid #5a5044;background:#111c19;box-shadow:0 7px 35px #000b}.instructions{background:#0d1112;border:1px solid #51433b;color:#b2a79a;margin-top:0;display:flex;flex-wrap:wrap;align-items:center;gap:15px;font:10px Consolas;letter-spacing:.5px}.instructions b{color:#e3c38d}.instructions span::before{content:'◆ ';color:#c13b2a}
.gamewrap aside{background:linear-gradient(#201e1d,#0f1416);border:1px solid #675346;box-shadow:inset 0 0 0 2px #07090a;padding:0;color:#dad5c7}.side-header{padding:18px 15px 14px;border-bottom:1px solid #674e38;background:linear-gradient(#2e2823,#191917);color:#e6c995;display:flex;flex-direction:column;gap:6px;font:18px Impact;letter-spacing:1px}.side-header small{color:#9f9787;font:10px Consolas;letter-spacing:2px}.resource{background:#161817;padding:15px;border-bottom:1px solid #5e4938}.resource>span{display:block;font:10px Consolas;color:#c3ab87;letter-spacing:1px}.resource>#wallet{display:block;font:32px Impact;color:#ffd07c;margin:7px 0 0;text-shadow:0 2px 8px #7e3b067d}.gamewrap #status{padding:13px 15px;color:#aac7af;border-bottom:1px solid #5d4738;font:11px Consolas}.side-category{padding:12px 13px 6px}.side-category h3{font:17px Impact;letter-spacing:1.6px;color:#ddc396;margin:0 0 5px}.side-category small{font-size:11px;color:#a79f93}.gamewrap #production{padding:8px 10px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.gamewrap .purchase{flex-direction:column;align-items:stretch;text-align:left;gap:4px;margin:0!important;padding:4px!important;border:1px solid #5b4e43!important;border-left:1px solid #5b4e43!important;background:#191a19!important;min-height:125px}.purchase:hover,.purchase.active{background:#39251f!important;outline:1px solid #da623c!important}.purchase-icon{width:100%;height:72px;display:grid;place-items:center;background:linear-gradient(120deg,#2a2925,#10191a)!important;border:1px solid #2e3936!important}.purchase-icon img{height:77px;width:90px;max-width:100%;object-fit:contain;filter:drop-shadow(0 2px 3px #000)}.purchase span:nth-child(2){padding:2px 5px;text-align:left;gap:3px}.purchase strong{font:13px Impact;letter-spacing:.5px;color:#ede2c9}.purchase small{font:10px Consolas;color:#d9b983!important}.side-objective{background:#221d18;margin:10px;padding:12px;border:1px solid #544237}.side-objective b{color:#dcb87a;font:12px Impact}.side-objective p{font-size:11px;color:#c3b8a4;line-height:1.5}.gamewrap #selected{margin:8px 12px;padding:10px;font:12px Consolas;background:#0d1414;border:1px solid #3a413d}.gamewrap #selected b{color:#e5c689}
#toast{border:1px solid #f18f58;border-radius:0;box-shadow:0 12px 45px #000c;z-index:80}dialog{width:min(460px,92vw);background:linear-gradient(#27201c,#0c1417);color:#eee4d5;border:1px solid #b95e42;box-shadow:0 20px 90px #000d;padding:24px}dialog::backdrop{background:#000c;backdrop-filter:blur(4px)}dialog h2{font:26px Impact;letter-spacing:1.5px}.modal-heading{display:flex;justify-content:space-between;align-items:center}.setting-lines{display:grid;gap:12px;padding:14px 4px;margin:20px 0}.setting-lines label{display:flex;gap:14px;align-items:center}.setting-lines input{accent-color:#c63323}dialog button{border-radius:0}
@media(max-width:1050px){.home-grid{grid-template-columns:minmax(270px,36%) minmax(0,1fr);min-height:auto;max-height:none}.poster{min-height:600px}.preview-head h2{font-size:24px}.preview-action{flex-direction:column;align-items:start}.home-bottom{grid-template-columns:repeat(2,1fr)}.gamewrap{grid-template-columns:1fr}.gamewrap aside #production{grid-template-columns:repeat(3,1fr)}.gamewrap aside{max-width:none}.instructions{font-size:9px}}
@media(max-width:690px){main{padding:9px}.home-grid{display:block}.poster{min-height:680px}.poster-content{padding:44px 8%}.home-center{margin-top:10px;min-height:470px}.home-bottom{grid-template-columns:1fr}.preview-image{min-height:260px}.preview-head{height:auto}.live-tag{display:none}.preview-foot{font-size:9px}.featurebar{justify-content:flex-start}.topbar .edition,.top-status{display:none!important}.gamewrap aside #production{grid-template-columns:repeat(2,1fr)}.audio-controls{flex-wrap:wrap}.lobby-grid,.authgrid{grid-template-columns:1fr}}

/* Arsenal assets – production tiles */
.purchase-icon{width:88px!important;height:73px!important;flex:none;background:radial-gradient(ellipse at 45% 70%,#3b4040,#11191d 75%);border:1px solid #654c3a!important;overflow:hidden}.purchase-icon img{width:96%;height:96%;object-fit:contain;filter:drop-shadow(0 5px 5px #0009)}.purchase{min-height:81px;padding:5px!important;margin:3px 0!important}.purchase strong{font:800 13px system-ui;color:#eee2c8}.purchase small{font-size:10px!important}.gamewrap aside{overflow:auto;max-height:calc(100vh - 150px)}

/* RTS viewport and fullscreen shell — functional camera support */
#battle{max-width:none;width:100%;}
#battle .battle-header{min-height:62px;flex-wrap:wrap;}
#battle .gamewrap{min-height:0;}
#battle .field{overflow:hidden;position:relative;}
#battle canvas{display:block;cursor:crosshair;width:100%;height:auto;max-height:none;}
#fullscreen{white-space:nowrap;background:#601f1a!important;border-color:#e05542!important;color:#fff!important;}
#battle:fullscreen{margin:0;padding:0;width:100vw;height:100vh;max-width:none;background:#070b0d;display:flex;flex-direction:column;overflow:hidden;}
#battle:fullscreen .battle-header{flex:none;min-height:58px;margin:0!important;}
#battle:fullscreen .gamewrap{flex:1;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 298px;gap:4px;min-height:0;}
#battle:fullscreen .field{display:flex;flex-direction:column;min-height:0;min-width:0;}
#battle:fullscreen #game{flex:1;width:100%;height:100%;aspect-ratio:auto;min-height:0;min-width:0;object-fit:fill;}
#battle:fullscreen .instructions{flex:none;padding:7px 12px;max-height:56px;overflow:hidden;}
#battle:fullscreen aside{max-height:none;height:100%;overflow-y:auto;}
#battle:fullscreen .audio-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
#battle:fullscreen .audio-controls button{padding:6px 8px;font-size:11px;}
#battle:fullscreen #production{grid-template-columns:repeat(2,minmax(0,1fr));}
@media(max-width:900px){#battle:fullscreen .gamewrap{grid-template-columns:minmax(0,1fr) 180px;}#battle:fullscreen #production{grid-template-columns:1fr;}#battle:fullscreen .instructions{display:none;}#battle:fullscreen .audio-controls{display:none;}}

/* RTS tactical command toolbar */
#rtsActions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:9px 12px;}
#rtsActions button{background:linear-gradient(#29332b,#101a1b);color:#e3d3ad;border:1px solid #69634a;padding:11px 6px;letter-spacing:.8px;font:700 12px system-ui;cursor:pointer;}
#rtsActions button:hover,#rtsActions button.active{background:linear-gradient(#833526,#411a18);border-color:#f2754e;color:#fff;box-shadow:inset 0 0 8px #f05e3039;}

@media(max-width:1100px){#rtsActions{grid-template-columns:1fr 1fr}}

/* REDUTA 0.5: battlefield-first composition, consistent pixels in responsive fullscreen */
#battle{padding:0!important;max-width:none!important}
#battle .gamewrap{gap:0!important;grid-template-columns:minmax(0,1fr) 312px!important;align-items:stretch}
#battle .field{min-width:0;background:#243b2e}
#battle canvas#game{width:100%;height:auto;max-height:none;aspect-ratio:1280/770;border:0!important;outline:1px solid #655947;box-shadow:none!important}
#battle .instructions{padding:9px 15px;border-top:1px solid #554637!important}
#battle .gamewrap aside{border-left:3px solid #712c22!important;max-height:calc(100vh - 92px);overflow-y:auto}
#battle:fullscreen .gamewrap{grid-template-columns:minmax(0,1fr) 310px!important;flex:1;min-height:0;max-height:100vh}
#battle:fullscreen .field{height:100%;overflow:hidden}
#battle:fullscreen canvas#game{flex:1;height:calc(100% - 40px)!important;width:100%!important;aspect-ratio:auto!important;object-fit:fill;min-height:0}
#battle:fullscreen .instructions{height:40px!important;display:flex!important;align-items:center;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}
#battle:fullscreen aside{max-height:100%;height:100%}
#battle .purchase:disabled{opacity:.43;cursor:not-allowed;filter:grayscale(.65)}
#battle .purchase:disabled:hover{background:#191a19!important;outline:none!important}
@media (max-width:950px){#battle .gamewrap{grid-template-columns:1fr!important}#battle:fullscreen .gamewrap{grid-template-columns:minmax(0,1fr) 210px!important;}#battle:fullscreen .instructions{display:none!important}#battle:fullscreen canvas#game{height:100%!important}}
/* Fit the live command surface in the browser viewport without cropping its interaction area. */
@media (min-width:951px){
  #battle:not(:fullscreen) canvas#game{height:clamp(380px,calc(100vh - 228px),990px)!important;aspect-ratio:auto!important;object-fit:fill!important;}
}
