#worldMapPanel.world-battle-mode{inset:0!important;width:1600px!important;height:900px!important;max-width:none!important;max-height:none!important;transform:none!important;padding:0!important;border:0!important;border-radius:0!important;background:#29271b!important;display:flex!important;flex-direction:column;z-index:100!important}
#worldMapPanel.world-battle-mode[hidden]{display:none!important}
#worldMapPanel.world-battle-mode .world-heading{height:36px;min-height:36px;padding:0 16px!important;background:linear-gradient(#725335,#3c2b1d);border:0!important}
#worldMapPanel.world-battle-mode .world-heading h1{font-size:17px;color:#ead6a6;margin:0}
#worldMapPanel.world-battle-mode .world-heading .panel-kicker,#worldMapPanel.world-battle-mode [data-world-tab],#worldMapPanel.world-battle-mode .world-footer{display:none}
#worldMapPanel.world-battle-mode .world-content{flex:1;min-height:0;padding:0!important;overflow:hidden!important}
#worldMapPanel.world-battle-mode .panel-close{color:#ead6a6;width:30px;height:30px;background:none;border:0}
.combat-cinema{height:100%;display:flex;flex-direction:column;color:#f3e1b3;font:14px Georgia}
.combat-hud{height:84px;flex:none;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;text-align:center;background:linear-gradient(#2e2a20,#252b23);border-bottom:1px solid #a48a5655;z-index:4;box-shadow:0 5px 20px #15170f44}
.combat-hud b,.combat-hud strong{display:block;font-size:20px;letter-spacing:.4px;color:#f0ddae}
.combat-hud span{display:block;margin-top:5px;color:#d4c39e;font-size:12px}
.combat-hud small{display:block;margin-top:4px;color:#ac9d7b;font-size:11px;letter-spacing:.3px}
.combat-hud #combatPhase{color:#d4bd87;text-transform:uppercase;letter-spacing:2px;font-size:10px}
.combat-hud #combatTactic{min-height:13px;font-size:11px;color:#d1a95e}
.combat-army-heading meter{display:block;width:150px;height:5px;margin:6px auto 3px;border:0;background:#101d21;border-radius:4px;appearance:none}
.combat-army-heading meter::-webkit-meter-bar{background:#101b1e;border:0;height:4px;border-radius:4px}
.combat-army-heading meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#406b75,#a7c3bc)}
.combat-army-heading.enemy meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#7a4934,#d8b078)}
.combat-army-heading meter::-webkit-meter-suboptimum-value{background:#bd8a40}
.combat-army-heading meter::-webkit-meter-even-less-good-value{background:#a54f39}
.combat-field{flex:1;position:relative;overflow:hidden;isolation:isolate;background:#706841}
.combat-ground{position:absolute;inset:0;background:radial-gradient(ellipse at center,#b7a66c44,#1b281d88),url('../maps/relief/ground.webp') center/900px 900px;filter:saturate(.7) brightness(.91)}
.combat-ground:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#18322e50,transparent 28%,transparent 72%,#482d2150),radial-gradient(ellipse at center,transparent 35%,#101b1c88)}
.combat-edge-foliage{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 0 10%,#243e2d99,transparent 25%),radial-gradient(ellipse at 100% 90%,#22332277,transparent 20%);box-shadow:inset 0 12px 25px #18251a40,inset 0 -12px 25px #18251a40}
.combat-scene,.combat-cards,.combat-atmosphere,.combat-effects{position:absolute;inset:0;pointer-events:none;width:100%;height:100%}
.combat-cards{z-index:2}
.combat-atmosphere{z-index:1}
.combat-effects{z-index:3}
.combat-card{position:absolute;width:54px;height:66px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 4px 2px #171a1588);pointer-events:auto;cursor:help;transition:none}
.combat-card:before{content:'';position:absolute;left:4px;right:4px;bottom:13px;height:14px;background:#183d4566;border:1px solid #6e9d8c80;transform:skewX(-25deg);box-shadow:0 4px 7px #171b1544}
.combat-card.team-1:before{background:#693b2755;border-color:#b18b6266}
.combat-squad{position:relative;width:54px;height:49px;flex:none;transform-origin:center 75%}
.combat-figure{position:absolute;bottom:0;width:34px;height:53px;object-fit:contain;filter:brightness(1.14);transform:translateY(var(--gait,0px));transform-origin:center bottom}
.combat-figure.figure-0{left:0;z-index:1;bottom:3px}
.combat-figure.figure-1{left:10px;z-index:3}
.combat-figure.figure-2{left:20px;z-index:2;bottom:4px}
.combat-card.team-1 .combat-figure{transform:translateY(var(--gait,0px)) scaleX(-1)}
.combat-card b{position:relative;z-index:3;min-width:31px;box-sizing:border-box;padding:1px 4px;background:#24414ce8;color:#fff3d6;font:700 11px/13px Georgia;text-align:center;border:1px solid #92b2b477;border-radius:2px;font-variant-numeric:tabular-nums}
.combat-card.team-1 b{background:#633e2be8;border-color:#bb9a6e88}
.combat-strength{display:block;position:relative;width:31px;height:2px;background:#20271e}
.combat-strength span{display:block;height:100%;background:#b6c799}
.combat-card.is-reserve b{border-style:dashed;background:#4b4c37}
.combat-card i{position:absolute;z-index:4;top:7px;color:#ffcd9d;font:bold 16px Georgia;font-style:normal;text-shadow:0 1px 4px #161811;pointer-events:none}
.combat-card.fallen{opacity:.26;filter:grayscale(1)}
.combat-card.fallen .combat-squad{transform:translateY(9px) rotate(65deg)!important}
.combat-card.fallen .combat-figure{opacity:.4!important}
.combat-card.fallen b,.combat-card.fallen .combat-strength{visibility:hidden}
.combat-stage-banner{position:absolute;inset:42% 15% auto;z-index:4;text-align:center;font:700 23px Georgia;color:#ead8a9;letter-spacing:5px;text-shadow:0 2px 12px #141c14;pointer-events:none}
.combat-stage-banner:empty{display:none}
.combat-verdict{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse,#182019ee,#11190e77);backdrop-filter:blur(2px)}
.combat-verdict[hidden]{display:none}
.combat-verdict strong{font:700 78px Georgia;color:#ead5a1;margin:16px;text-shadow:0 3px 18px #10170e}
.combat-verdict small{text-transform:uppercase;letter-spacing:5px;color:#c5ae77}
.combat-verdict p{max-width:650px;text-align:center;font-size:15px;color:#e0cb9f;margin:0 0 24px}
.combat-controls{position:relative;height:60px;flex:none;display:flex;justify-content:center;align-items:center;gap:12px;background:linear-gradient(#3b3426,#24241c);border-top:1px solid #a08b5155;z-index:6}
.combat-controls button,.combat-verdict button{padding:9px 22px;border:1px solid #b28d51;border-radius:4px;background:linear-gradient(#81653e,#4b371f);color:#f9e9bd;font:700 14px Georgia;cursor:pointer;box-shadow:inset 0 1px #e5cb9155,0 2px 6px #14171044}
.combat-controls button:hover,.combat-verdict button:hover{border-color:#d8bc7a;background:linear-gradient(#96764a,#614828)}
.combat-controls #combatPlay{min-width:178px}
.combat-controls button[aria-pressed=true]{background:#b2914d;color:#201b14}
.combat-sound{font-size:12px;display:flex;gap:5px;align-items:center}
.combat-controls>span{position:absolute;right:24px;font-size:12px;color:#baaa83}
#combatTimeline{position:absolute;left:0;bottom:0;width:100%;height:3px;appearance:none;border:0;background:#20251b;accent-color:#b89a59}
#combatTimeline::-webkit-progress-bar{background:#20251b}
#combatTimeline::-webkit-progress-value{background:linear-gradient(90deg,#73613b,#ccb67a)}
@media(prefers-reduced-motion:reduce){.combat-field *{transition:none!important;animation:none!important}}
.combat-fortification{position:absolute;left:56%;top:46%;width:260px;height:320px;transform:translate(calc(-50% + var(--wall-shock,0px)),-50%);z-index:1;pointer-events:none;filter:drop-shadow(0 12px 8px #121a1499)}.combat-fortification>img:first-child{width:100%;height:100%;object-fit:contain}.combat-fortification.player-wall{left:44%;scale:-1 1}.combat-fortification.breached>img:first-child{opacity:.35;filter:grayscale(.8);transform:translateY(20px) rotate(8deg)}.combat-fortification .combat-stakes{position:absolute;width:160px;height:140px;object-fit:contain;left:-100px;top:170px;z-index:-1}.combat-fortification .combat-moat{position:absolute;width:200px;height:200px;object-fit:contain;left:-140px;top:130px;z-index:-2;opacity:.8}.combat-wall-meter{position:absolute;z-index:4;top:16px;left:50%;transform:translateX(-50%);width:230px;text-align:center;padding:7px 14px;background:#28271dba;border:1px solid #a48b5055;border-radius:3px;pointer-events:none}.combat-wall-meter small{font-size:10px;letter-spacing:2px;color:#c7af79}.combat-wall-meter b{display:block;font:12px Georgia;color:#e0c994;margin:5px 0}.combat-wall-meter>div{height:4px;background:#181b13}.combat-wall-meter>div>span{display:block;height:4px;background:linear-gradient(90deg,#826b3b,#d5bb78)}
.combat-card[data-kind=ram] .combat-figure,.combat-card[data-kind=ballista] .combat-figure,.combat-card[data-kind=scorpio] .combat-figure{width:42px;height:46px;transform:translateY(var(--gait,0px)) scaleX(-1)}.combat-card[data-kind=ram] .figure-1,.combat-card[data-kind=ballista] .figure-1,.combat-card[data-kind=scorpio] .figure-1{left:6px}.combat-card[data-kind=ram] .figure-2,.combat-card[data-kind=ballista] .figure-2,.combat-card[data-kind=scorpio] .figure-2{left:12px}.combat-card.team-1[data-kind=ram] .combat-figure,.combat-card.team-1[data-kind=ballista] .combat-figure,.combat-card.team-1[data-kind=scorpio] .combat-figure{transform:translateY(var(--gait,0px))}
/* Keep marching silhouettes readable: counts return at contact on the replay clock. */
.combat-card[data-moving=true] b,.combat-card[data-moving=true] .combat-strength{visibility:hidden}
