:root{--bg:#080d11;--panel:#0d151b;--panel2:#111d24;--line:#263841;--muted:#6c858a;--text:#dfe8e1;--lime:#d1f35a;--orange:#f0703a;--blue:#5bc7dd;--red:#ee574d;--shadow:0 22px 60px #0008}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 45% -10%,#20353b 0,#0b151b 38%,#070b0e 78%);color:var(--text);font-family:Rajdhani,Arial,sans-serif;letter-spacing:.04em;min-height:100vh}.app-shell{max-width:1640px;margin:auto;padding:24px 28px 18px}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #354950;padding:0 0 18px}.brand-lockup{display:flex;align-items:center;gap:14px}.brand-mark{display:grid;grid-template-columns:repeat(3,7px);gap:4px;transform:skew(-22deg)}.brand-mark span{height:30px;background:var(--lime);box-shadow:0 0 14px #d1f35a55}.brand-mark span:nth-child(2){height:22px;margin-top:8px;background:#96b837}.brand-mark span:nth-child(3){height:14px;margin-top:16px;background:#58711c}.eyebrow{font-size:11px;color:var(--muted);letter-spacing:.19em;font-weight:700}h1,h2,p{margin:0}h1{font:700 29px/'1' Rajdhani,sans-serif;letter-spacing:.15em}h1 i{color:var(--orange);font-style:normal}h2{font:700 22px/'1' Barlow Condensed,sans-serif;letter-spacing:.12em}.top-status{display:flex;align-items:center;gap:24px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.13em}.signal{color:var(--lime)}.signal b,.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime);margin-right:7px}.mission-strip{display:flex;justify-content:space-between;align-items:center;padding:22px 4px 18px}.mission-copy{display:grid;gap:4px}.mission-copy strong{font:600 23px Barlow Condensed;letter-spacing:.08em}.mission-sub{font-size:13px;color:#8ea5a5}.objective{display:grid;grid-template-columns:auto 160px auto;align-items:center;gap:12px;font-size:11px;font-weight:700}.objective-label{color:var(--orange)}.objective-track{height:5px;background:#26343a;overflow:hidden}.objective-track span{display:block;height:100%;width:0;background:var(--orange);transition:.35s}.game-layout{display:grid;grid-template-columns:225px minmax(560px,1fr) 250px;gap:14px}.panel{background:linear-gradient(145deg,#101a20e8,#0b1318ed);border:1px solid #283b42;box-shadow:var(--shadow);position:relative}.left-rail,.right-rail{padding:16px}.panel-heading{display:flex;justify-content:space-between;align-items:center;font:700 12px Barlow Condensed;letter-spacing:.16em;color:#a9bdbb;padding-bottom:12px;border-bottom:1px solid #2a3a40}.count,.status-pill{color:var(--lime);font-size:12px}.status-pill{border:1px solid #6c7d37;padding:2px 7px;font-size:10px}.unit-roster{display:grid;gap:8px;margin:13px 0 28px}.unit-card{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:8px;border:1px solid transparent;padding:8px 6px;cursor:pointer;transition:.2s}.unit-card:hover,.unit-card.active{border-color:#719046;background:#1b2927}.unit-card.active{box-shadow:inset 3px 0 var(--lime)}.unit-token{height:35px;width:35px;display:grid;place-items:center;border:1px solid var(--blue);color:var(--blue);font:700 14px Barlow Condensed;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.unit-card.ogre .unit-token{border-color:var(--lime);color:var(--lime);background:#27361d}.unit-card.enemy .unit-token{border-color:var(--red);color:var(--red)}.unit-name{font:700 13px Barlow Condensed;letter-spacing:.08em}.unit-type{display:block;color:var(--muted);font-size:10px;margin-top:2px}.hp-bar{display:flex;gap:2px}.hp-bar i{display:block;width:6px;height:4px;background:var(--lime)}.hp-bar i.off{background:#33413f}.legend-block{border-top:1px solid #2a3a40;padding-top:14px}.readout-row{display:flex;justify-content:space-between;padding:8px 0;font-size:10px;color:var(--muted);border-bottom:1px solid #1c2a30}.readout-row b{color:#c5d3c9;font-size:10px}.warning{color:var(--orange)!important}.battlefield{padding:14px}.battlefield-head{display:flex;justify-content:space-between;align-items:center;padding:2px 5px 13px}.battlefield-head h2{margin-top:4px}.turn-counter{text-align:right}.turn-counter span{display:block;font-size:10px;color:var(--muted);letter-spacing:.15em}.turn-counter strong{font:700 29px Barlow Condensed;color:var(--lime)}.map-frame{position:relative;background:#0a1216;min-height:560px;overflow:hidden;border:1px solid #2d464b}.map-frame:before{content:"";position:absolute;inset:0;opacity:.28;background-image:linear-gradient(#7a9b9420 1px,transparent 1px),linear-gradient(90deg,#7a9b9420 1px,transparent 1px);background-size:50px 50px;pointer-events:none}.map-frame:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#29403b1a 0,#05090b88 85%);pointer-events:none}#battlefield-map{width:100%;height:560px;display:block}.map-corner{position:absolute;z-index:2;color:#668078;font-size:9px;letter-spacing:.16em}.corner-tl{left:14px;top:12px;color:var(--lime)}.corner-tl span{font-size:17px;margin-left:4px}.corner-tr{right:14px;top:12px}.corner-bl{left:14px;bottom:12px}.corner-br{right:14px;bottom:12px}.map-toast{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);font:700 11px Barlow Condensed;letter-spacing:.18em;color:#849b91;pointer-events:none;transition:.2s}.map-toast.hidden{opacity:0}.battlefield-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 4px 0}.selection-readout{display:flex;align-items:center;gap:10px;min-height:34px}.selection-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid #3d5252;color:var(--lime);font-size:20px}.selection-readout b{display:block;font:700 13px Barlow Condensed;letter-spacing:.09em}.selection-readout small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.action-row{display:flex;gap:8px}.action-button{background:#18242a;border:1px solid #40565c;color:#c8d4ce;padding:10px 14px;font:700 11px Rajdhani;letter-spacing:.13em;cursor:pointer}.action-button:hover{border-color:var(--lime);color:var(--lime)}.action-button.primary{background:#536c25;border-color:#a9c74e;color:#f4ffcd}.action-button.primary:hover{background:#75952e;color:#fff}.action-button span{margin-left:10px;opacity:.7}.combat-log{height:250px;overflow:auto;margin:12px 0}.log-line{padding:8px 0;border-bottom:1px solid #1d2b30;font-size:11px;line-height:1.35;color:#9fb2ad}.log-line strong{color:var(--lime);font-weight:600}.log-line.enemy strong{color:var(--red)}.log-time{color:#56706d;font-size:9px;margin-right:7px}.divider{border-top:1px solid #2a3a40;margin:12px 0 14px}.command-list{display:grid;gap:9px}.command-list div{display:flex;align-items:center;gap:8px;color:#9cafaa;font-size:10px}.command-list kbd{font:700 10px Rajdhani;color:var(--lime);border:1px solid #475e43;padding:2px 5px;min-width:28px;text-align:center}.intel-card{margin-top:22px;padding:12px;background:#151f20;border:1px solid #34453f}.intel-card p{font-size:11px;line-height:1.45;color:#98aaa4;margin:9px 0 13px}.intel-line{display:flex;justify-content:space-between;font-size:9px;color:#708982;margin-top:8px}.intel-line i{display:flex;gap:3px}.intel-line b{width:12px;height:4px;background:var(--lime)}.intel-line b.off{background:#35423f}.footer-note{display:flex;justify-content:space-between;color:#4e6767;font-size:9px;letter-spacing:.14em;padding:16px 2px 0}.hex{cursor:pointer;transition:fill .12s,stroke .12s}.hex:hover{filter:brightness(1.3)}.hex.move{fill:#4c722c88;stroke:#a7cc4f}.hex.attack{fill:#81362e99;stroke:#ff7864}.hex.selected{stroke:var(--lime);stroke-width:3}.terrain{fill:#16302e;opacity:.8}.ruin{fill:#243d3a;stroke:#3c5b50;stroke-width:1}.unit-svg{pointer-events:none}.unit-label{font:700 10px Barlow Condensed;letter-spacing:.08em;fill:#dce8d9}.unit-hp{fill:var(--lime)}.unit-hp-bg{fill:#293d35}.modal{position:fixed;inset:0;background:#030709cc;backdrop-filter:blur(5px);z-index:20;display:grid;place-items:center}.modal.hidden{display:none}.modal-card{width:min(420px,calc(100% - 36px));padding:34px;background:#111d20;border:1px solid #758c47;box-shadow:0 0 80px #000}.modal-kicker{color:var(--orange);font:700 11px Rajdhani;letter-spacing:.2em}.modal-card h2{font-size:38px;color:var(--lime);margin:10px 0}.modal-card p{color:#a9b9b2;line-height:1.5;margin-bottom:24px}@media(max-width:1100px){.game-layout{grid-template-columns:190px minmax(480px,1fr)}.right-rail{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:14px}.right-rail .combat-log{height:150px}.right-rail .divider{display:none}.intel-card{margin-top:0}}@media(max-width:760px){.app-shell{padding:14px}.top-status,.footer-note{display:none}.mission-strip{display:grid;gap:18px}.objective{grid-template-columns:auto 1fr auto}.game-layout{display:block}.left-rail,.right-rail{margin-top:14px}.battlefield{margin-top:0}.map-frame,#battlefield-map{min-height:450px;height:450px}.battlefield-footer{align-items:stretch;flex-direction:column}.action-row{justify-content:stretch}.action-button{flex:1}.right-rail{display:block}.right-rail .combat-log{height:130px}.mission-copy strong{font-size:20px}}
