.operation-card{display:grid;grid-template-columns:1.2fr 1fr;min-height:440px;border:1px solid var(--line);background:#18231d}.operation-art{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:42px;overflow:hidden;background:radial-gradient(ellipse at 40% 20%,#7d8550 0,transparent 55%),linear-gradient(130deg,#253e36 25%,#496341 26%,#1d322a 29%,#65704b 30%,#283d2c 70%)}.operation-art:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 49px,#d1d2ab12 50px),repeating-linear-gradient(90deg,transparent,transparent 49px,#d1d2ab12 50px)}.operation-art strong{font:700 clamp(45px,6vw,90px) 'Barlow Condensed';z-index:1}.operation-art span,.operation-art small{letter-spacing:3px;font-size:11px;z-index:1;color:#e8dfb5}.operation-copy{padding:45px}.operation-copy h1{font-size:46px}.operation-copy p{color:var(--muted);line-height:1.8}.op-facts{display:flex;gap:18px;font-size:11px;color:var(--gold);margin:28px 0}.enter-battle{display:block;text-align:center;padding:17px;font-weight:600}.op-army{display:block;text-align:center;padding:20px;color:var(--muted);font-size:12px}.in-battle{overflow:hidden}.in-battle>header,.in-battle>nav{display:none!important}.in-battle #main{margin:0;padding:0;max-width:none}.battle-screen{position:fixed;inset:0;background:#18271d;isolation:isolate}.battle-screen .map-viewport{position:absolute;inset:0;max-height:none;border:0;overflow:auto;z-index:0}.battle-screen .map-viewport .tactical-map:not(.zoomed){width:100%;min-width:0;height:100%;min-height:100%;border:0}.battle-screen .map-viewport .tactical-map.zoomed{width:1600px;height:1200px}.battle-screen .map-shell{border-radius:0}.combat-hud{position:absolute;left:20px;right:20px;top:18px;display:flex;align-items:center;gap:14px;z-index:6;padding:12px;background:#101a16ed;border:1px solid #ffffff18;backdrop-filter:blur(14px)}.combat-exit,.combat-hud>button{min-width:42px;min-height:42px;padding:10px;background:#2a3b2c;color:#eee3bc}.combat-hud>.primary{background:var(--gold);color:#15241a;font-size:12px}.combat-mission{flex:1;display:flex;flex-direction:column;gap:5px}.combat-mission small{font-size:9px;letter-spacing:1.5px;color:var(--gold)}.combat-mission strong{font-size:16px;font-weight:600}.combat-status{position:absolute;top:108px;right:30px;z-index:5;display:flex;gap:22px;background:#14221ce8;padding:10px 16px;font-size:10px;color:#d4dacb}.combat-status span{display:flex;gap:6px;align-items:center}.combat-status b{font-size:14px}.combat-objectives{position:absolute;top:107px;left:30px;display:flex;gap:8px;z-index:5}.combat-objectives button{background:#223125ed;border:1px solid #d8bd7d77;color:#eeddb2;padding:10px 14px;font-size:11px}.combat-objectives button span{margin-right:7px}.combat-objectives button.secured{color:#bcdf9e;border-color:#93b67d}.combat-bottom{position:absolute;left:20px;right:20px;bottom:18px;z-index:5;pointer-events:none}.combat-instruction{width:max-content;max-width:100%;margin:0 auto 12px;padding:10px 18px;background:#10221ceb;font-size:12px;text-align:center;color:#e9e0be}.combat-dock{display:flex;gap:15px;align-items:center;padding:12px;background:#111d17f5;border:1px solid #b7c29933;pointer-events:auto}.combat-dock .formation-list{margin:0;flex:1;flex-wrap:nowrap;overflow:auto;padding:3px}.combat-dock .formation-list button{white-space:nowrap;padding:14px 12px;font-size:11px;min-width:110px}.combat-actions{display:flex;gap:8px}.combat-actions button{padding:13px;background:#2a3b2a;color:#e8dbaf;font-size:11px;white-space:nowrap}.combat-actions b{margin-left:7px;color:#e5c985}.combat-sheet{position:absolute;right:20px;top:96px;bottom:112px;width:340px;max-width:calc(100% - 40px);overflow:auto;padding:20px;background:#14211afa;border:1px solid #80936a77;z-index:8;box-shadow:0 12px 60px #0008}.combat-sheet[hidden],.combat-sheet [hidden]{display:none!important}.sheet-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px}.sheet-title button{background:none;font-size:25px;color:var(--gold)}.combat-sheet .reserves{grid-template-columns:1fr}.combat-option-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.combat-option-buttons button{background:#263827;padding:12px;font-size:11px}.combat-sheet .map-controls{display:grid;grid-template-columns:1fr 1fr}.combat-sheet .map-controls select{max-width:100%;margin-top:8px}.combat-sheet #selected-unit h2{font-size:28px}.combat-sheet .stat{padding:10px 0}.combat-sheet #selected-unit .row{display:flex;gap:10px}.combat-sheet #selected-unit .row button{flex:1}.battle-screen .sector-fog{background:repeating-linear-gradient(135deg,#13221aec,#13221aec 20px,#17291eec 20px,#17291eec 21px)}.battle-screen .sector-fog>span{margin-top:20px}.goal-glow{box-shadow:0 0 0 8px #e4c66b22,0 0 35px #f4db7b55!important;border:2px solid #eed489!important}.battle-screen .objective{width:42px;height:42px}.battle-screen .tactical-unit{width:44px;height:36px}.battle-screen .objective small{top:46px;font-size:10px}.battle-screen .map-shell #nodes{bottom:0}.battle-screen .combat-instruction:empty{display:none}@media(max-width:720px){.operation-card{grid-template-columns:1fr}.operation-art{min-height:230px;padding:25px}.operation-copy{padding:25px}.operation-copy h1{font-size:38px}.combat-hud{top:8px;left:8px;right:8px;gap:7px;padding:8px}.combat-exit{padding:10px}.combat-mission small{font-size:7px;letter-spacing:.7px}.combat-mission strong{font-size:12px;line-height:1.4}.combat-hud>button{padding:8px;min-width:35px;font-size:10px}.combat-objectives{top:90px;left:12px;right:12px;gap:5px}.combat-objectives button{padding:9px;font-size:10px;flex:1}.combat-status{top:132px;right:12px;left:12px;justify-content:space-between;background:#17271dc9;padding:7px 12px}.combat-bottom{left:8px;right:8px;bottom:8px}.combat-instruction{font-size:10px;padding:9px 10px;line-height:1.5;margin-bottom:7px}.combat-dock{display:block;padding:7px}.combat-dock .formation-list button{font-size:9px;min-width:94px;padding:11px 8px}.combat-actions{margin-top:6px;justify-content:space-between}.combat-actions button{flex:1;padding:9px;font-size:10px}.combat-sheet{left:8px;right:8px;top:90px;bottom:150px;width:auto;max-width:none;padding:16px}.battle-screen .tactical-unit{width:30px;height:30px}.battle-screen .objective{width:33px;height:33px}.battle-screen .objective small{top:38px;font-size:9px}.battle-screen .sector-fog span{font-size:10px}.battle-screen .sector-fog small{font-size:8px}}
.battle-screen #sector-fog{display:none!important}.battle-screen .future-objective{opacity:.35;box-shadow:none!important;border:1px dashed #abb697!important;cursor:default}.battle-screen .future-objective small:after{content:' · NEXT';font-size:7px}.select-all{padding:13px 10px;background:#283a29;color:#e4d0a2;white-space:nowrap;font-size:11px}.select-all.active{background:var(--gold);color:#172419}@media(max-width:720px){.combat-dock{display:flex;flex-wrap:wrap;gap:5px}.combat-dock .formation-list{width:calc(100% - 68px);flex:1;min-width:0}.combat-actions{width:100%;margin-top:0}.select-all{font-size:10px;padding:12px 8px}}
.combat-instruction{position:fixed;top:158px;left:50%;transform:translateX(-50%);margin:0;background:#12251bd9;max-width:calc(100% - 40px);pointer-events:none}@media(max-width:720px){.combat-instruction{top:174px;max-width:calc(100% - 24px)}}
/* Live squad roster replaces the scrolling casualty strip. Dedicated map space
   never sits beneath HUD, roster, or status instructions. */
.battle-screen{--head:142px;--foot:142px;height:100dvh;max-width:100vw;overflow:hidden}.battle-screen .map-viewport{inset:var(--head) 0 var(--foot);min-height:0;overflow:auto}.combat-hud{top:8px;left:12px;right:12px;min-height:65px;padding:8px}.combat-status{top:89px;right:20px}.combat-objectives{top:88px;left:20px;max-width:65%;flex-wrap:nowrap}.combat-objectives button{min-height:44px;position:relative;overflow:hidden}.combat-objectives button:after{content:'';position:absolute;left:0;bottom:0;height:3px;width:var(--capture,0%);background:var(--gold)}.combat-bottom{left:12px;right:12px;bottom:8px;min-width:0}.combat-instruction{position:static;transform:none;margin:0 0 7px;width:100%;max-width:none;min-height:28px;background:#111c16;font-size:11px;padding:6px;white-space:normal}.combat-dock{display:grid;grid-template-columns:70px minmax(0,1fr) 210px;gap:8px;min-width:0;padding:8px}.combat-dock .formation-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;overflow:visible;width:auto;min-width:0;padding:0;margin:0}.combat-dock .formation-list button{position:relative;display:flex;justify-content:space-between;align-items:center;gap:4px;min-width:0;min-height:35px;padding:6px 8px;overflow:hidden;white-space:nowrap;font-size:10px}.combat-dock .formation-list button span{overflow:hidden;text-overflow:ellipsis;min-width:0}.combat-dock .formation-list button strong{font-size:9px;font-weight:400}.combat-dock .formation-list button i{position:absolute;left:0;bottom:0;height:2px;background:#9ebd89}.combat-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.combat-actions button{min-height:44px;white-space:normal}.select-all{min-height:44px;height:100%;padding:8px}.combat-sheet{top:80px;bottom:155px;max-height:calc(100dvh - 235px)}.combat-sheet button{min-height:44px}.battle-screen .tactical-unit{width:44px;height:38px}.battle-screen .objective{width:40px;height:40px}.battle-screen .objective small{top:42px}.battle-screen #nodes{touch-action:manipulation}.combat-dock,.combat-hud{max-width:100%;box-sizing:border-box}.combat-mission{min-width:0}.combat-mission strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-hud button{flex-shrink:0}.combat-sheet #selected-unit .selected-art{display:none}
@media(max-width:720px){.battle-screen{--head:155px;--foot:185px}.combat-hud{left:6px;right:6px;top:6px;min-height:58px;gap:5px}.combat-hud>button,.combat-exit{min-width:42px;min-height:44px;padding:6px}.combat-mission small{font-size:7px}.combat-mission strong{font-size:11px}.combat-objectives{top:72px;left:8px;right:8px;max-width:none}.combat-objectives button{min-height:40px;flex:1;font-size:10px;padding:6px}.combat-status{top:118px;left:8px;right:8px;padding:5px 10px;min-height:27px}.combat-bottom{left:6px;right:6px;bottom:6px}.combat-dock{grid-template-columns:50px minmax(0,1fr);gap:5px;padding:6px}.combat-dock .formation-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.combat-dock .formation-list button{display:flex;flex-direction:column;gap:1px;justify-content:center;min-height:40px;font-size:8px;padding:3px;line-height:1.2}.combat-dock .formation-list button strong{font-size:8px}.combat-actions{grid-column:1/-1;width:100%;margin:0;display:grid;grid-template-columns:1fr 1fr}.combat-actions button{min-height:36px;padding:7px;font-size:10px}.combat-instruction{font-size:10px;line-height:1.3;min-height:28px;padding:5px;max-height:38px;overflow:hidden}.select-all{font-size:9px;white-space:normal}.battle-screen .tactical-unit{width:38px;height:32px}.battle-screen .objective{width:36px;height:36px}.battle-screen .objective small{font-size:8px;top:37px}.combat-sheet{top:70px;left:6px;right:6px;bottom:190px;max-height:calc(100dvh - 260px)}.combat-sheet .sheet-title{margin-bottom:8px;padding-bottom:7px}.combat-sheet .stat{padding:6px 0}}
@media(max-height:550px){.battle-screen{--head:91px;--foot:98px}.combat-hud{min-height:42px;height:44px;top:3px}.combat-mission small{display:none}.combat-hud>button,.combat-exit{min-height:34px}.combat-objectives{top:52px;max-width:65%}.combat-objectives button{min-height:32px}.combat-status{top:52px;left:auto;right:12px;min-height:30px}.combat-dock{grid-template-columns:55px minmax(0,1fr) 150px;padding:4px}.combat-dock .formation-list{grid-template-columns:repeat(4,minmax(0,1fr))}.combat-dock .formation-list button{min-height:25px;font-size:8px;flex-direction:row}.combat-actions{grid-column:auto;display:grid;grid-template-columns:1fr}.combat-actions button{min-height:25px;padding:3px}.select-all{min-height:32px}.combat-instruction{display:none}.combat-bottom{bottom:3px}.combat-sheet{top:48px;bottom:100px;max-height:calc(100dvh - 148px)}}
.battle-screen .map-viewport{scrollbar-width:none}.battle-screen .map-viewport::-webkit-scrollbar{display:none}.battle-screen .objective.future-objective small{display:none}.battle-screen .tactical-unit{touch-action:manipulation}.battle-screen .tactical-unit:focus-visible{outline:2px solid #fff}.combat-actions button:disabled{opacity:.45}
@media(max-width:720px) and (max-height:700px){.battle-screen .map-viewport .tactical-map:not(.zoomed){height:560px;min-height:560px}.battle-screen .tactical-unit{width:38px;height:34px}.battle-screen .objective small{font-size:8px}}
.combat-mission small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combat-hud #battle-start{min-width:68px}.combat-sheet .sheet-title{position:sticky;top:-20px;background:#14211a;z-index:2}.combat-sheet{scrollbar-width:thin;scrollbar-color:#718266 #14211a}
