#battlefield-overlay{position:fixed;inset:0 0 var(--shell-bottom,66px);z-index:65;background:#14281c;color:#ece1ba;display:flex;flex-direction:column;font-size:13px;--node-x:0px;--node-y:0px}
#battlefield-overlay[hidden]{display:none}.battlefield-open .bottom-nav{z-index:80!important}.battlefield-open .floating-hud,.battlefield-open .scene-shortcuts{visibility:hidden}
.bf-header{display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px;background:linear-gradient(#314b35,#14291d);border-bottom:2px ridge #958556;gap:8px}.bf-header h1{font-size:20px;letter-spacing:3px;margin:0}.bf-header h1 span{font-size:10px;letter-spacing:0;font-weight:normal;color:#b9b48e}.bf-header small{font-size:8px;letter-spacing:2px;color:#c9b97f}
.bf-tools{display:flex;gap:4px;padding:5px 8px;background:#14241a;flex-wrap:wrap}.bf-tools button,.bf-map-shell .map-zoom button{font:inherit;color:#e4d7a6;background:#29412c;border:1px solid #8d8057;padding:6px 9px;border-radius:3px}.bf-main{flex:1;min-height:0;display:flex;flex-direction:column}.bf-scroll{overflow:auto;padding:14px;flex:1;overscroll-behavior:contain}.bf-card{max-width:720px;margin:8px auto;padding:18px;border:2px ridge #9d8b59;background:linear-gradient(135deg,#304332,#172a1e);box-shadow:0 7px 24px #0005;line-height:1.7}.bf-card h2{font-size:23px;color:#ead396}.bf-card li{margin:9px 0}.bf-card ul{padding-left:20px}.bf-card button{margin:5px;min-height:40px}.bf-warning{background:#682b21;color:#fff1ce;padding:8px;margin:0}.bf-warning[hidden]{display:none}
.bf-summary{padding:7px 12px;display:grid;gap:3px;background:#172b1ee8;flex:none;box-shadow:0 3px 5px #0003}.bf-summary strong{color:#f3dba0;font-size:14px}.bf-summary span,.bf-summary small{font-size:11px}.bf-xp{height:4px;background:#07170b;overflow:hidden}.bf-xp i{display:block;height:100%;background:linear-gradient(90deg,#8d8b42,#ebd37a);transition:width .25s}
.bf-map-shell{position:relative;flex:1;min-height:100px;overflow:hidden}.bf-map-viewport{width:100%;height:100%;overflow:auto;touch-action:none;overscroll-behavior:none;scrollbar-width:thin;scrollbar-color:#897d4d #233b27;cursor:grab}.bf-grid{transform-origin:0 0;isolation:isolate}.bf-tile{position:absolute!important;--node-x:0px;--node-y:0px}.bf-tile .tile-name{font-size:12px;min-width:120px;white-space:nowrap}.bf-tile .tile-name i{display:block;font-size:10px;color:#f1dfa3}.bf-map-note{position:absolute;left:8px;right:8px;bottom:6px;text-align:center;font-size:10px;color:#f1e7bd;pointer-events:none;text-shadow:0 1px 3px #000,0 0 6px #000}.bf-map-shell .map-zoom{position:absolute;left:auto;right:9px;top:9px;bottom:auto;display:flex;gap:3px;z-index:10}
.bf-selection{padding:9px 12px;min-height:50px;background:linear-gradient(#293e2b,#11231a);border-top:2px ridge #968855;display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;flex:none}.bf-selection p{margin:3px 0}.bf-selection small{font-size:11px}.bf-selection>div{flex:1;min-width:160px}.bf-selection button{min-height:40px;font-size:12px}.bf-routes{position:absolute;inset:0;pointer-events:none;z-index:0}.bf-routes path{stroke:#f3eee1;stroke-width:2;fill:none;stroke-dasharray:7 7;opacity:.7}.bf-routes path.own{stroke:#e0ba54;stroke-width:3}.bf-routes path.hostile{stroke:#e85a49;stroke-width:3}.bf-routes path.star-trail{stroke:#ffed93;stroke-width:5;filter:drop-shadow(0 0 5px #e9ae31)}
.bf-party{position:absolute;z-index:8;pointer-events:none;width:48px;height:48px;transform:translate(-50%,-50%)}.bf-party[hidden]{display:none}.bf-party small{position:absolute;top:38px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#183320d9;color:#ffefba;font-size:9px;border:1px solid #a89553;padding:1px 4px}.bf-soldier{display:block;width:48px;height:48px;background:url(assets/art/march-units-v04.png) 0 0/400% 600% no-repeat;animation:bf-march .8s steps(3) infinite}.bf-party.royal{filter:drop-shadow(0 0 5px #ffde7b)}.bf-party.royal:after{content:'⚑';position:absolute;right:-5px;top:0;color:#ffe38b;text-shadow:0 2px #4a2e0b}
.bf-name-frame .tile-name,.bf-city-frame #city-name,.bf-city-frame .scene-title strong{border:2px ridge #d2b267;padding:2px 6px;border-radius:3px;box-shadow:0 0 6px #e1bc5938}.bf-rewards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.bf-reward{padding:13px;border:1px solid #a4945a;text-align:center;background:#10241a}.bf-reward>span{font-size:40px;color:#e7c76d}.bf-reward h3{font-size:17px;margin:5px}.bf-reward p{font-size:12px}.bf-reward.frame>span{border:3px ridge #c7ab61;padding:0 12px}.bf-reward.effect>span{text-shadow:0 0 14px #f3ca6c}
@keyframes bf-march{to{background-position-x:100%}}@media(prefers-reduced-motion:reduce){.bf-soldier{animation:none}.bf-xp i{transition:none}}@media(max-width:360px){.bf-header h1{font-size:17px}.bf-tools button{padding:5px 7px}.bf-selection{padding:6px 9px;gap:4px;font-size:11px}.bf-summary{padding:5px 8px}.bf-card{padding:11px}.bf-card h2{font-size:20px}}@media(max-height:450px){.bf-header{padding:3px 10px}.bf-header small{display:none}.bf-tools{padding:2px 8px}.bf-summary{padding:3px 10px}.bf-selection{padding:4px 10px;min-height:35px}}
.bf-lobby .bf-card{background:linear-gradient(135deg,#354b31e8,#10271cf5),url(assets/art/world-terrain-v2.png);border-color:#bca165}.bf-lobby-kicker{display:block;color:#d6be7a;font-size:11px;letter-spacing:2px}.bf-lobby h2{font-size:32px;letter-spacing:5px;margin-bottom:6px}.bf-lobby h3{font-size:19px;color:#ebd99d}.bf-lobby-actions{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.bf-lobby-actions>.primary-button{font-size:19px;padding:12px 28px;min-height:52px}.bf-lobby-links{display:flex;flex-wrap:wrap;gap:4px}.bf-result-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;margin:16px 0}.bf-result-stats>div{background:#102719cc;border:1px solid #7d7953;padding:10px;font-size:11px;color:#c2c6a6}.bf-result-stats strong{display:block;font-size:22px;color:#f1d99b;line-height:1.5}.bf-history{display:grid;gap:3px;border-left:3px solid #bca465;background:#10271c;padding:10px 12px;margin:10px 0}.bf-history small,.bf-history span{font-size:11px;color:#cbd0ac}.bf-threats{flex:none;padding:5px 10px;background:#243723;border-top:1px solid #8c8053;font-size:10px;max-height:116px;overflow:auto}.bf-threats strong,.bf-threats span,.bf-threats small{display:block}.bf-threats.danger{background:#612b20;border-color:#dd8859}.bf-threats button{font:inherit;display:block;background:#172c1dd9;border:1px solid #a69054;color:#f9e4b1;padding:4px 7px;margin:3px 0;width:100%;text-align:left;min-height:28px}.bf-threats.danger button{background:#4b201b}.city-battle-launch{position:fixed;z-index:27;left:12px;bottom:calc(var(--shell-bottom,66px) + 12px);display:flex;gap:5px;align-items:center;max-width:calc(100vw - 24px);background:#142b1eea;border:1px solid #b59c61;padding:7px;box-shadow:0 4px 14px #0006}.city-battle-launch small{font-size:10px;color:#d8cc9a}.city-battle-launch .primary-button{font-size:14px;min-height:40px}.city-battle-launch .secondary-button{min-height:40px}.feature-open .city-battle-launch,.battlefield-open .city-battle-launch{display:none}@media(max-width:360px){.city-battle-launch small{display:none}.bf-result-stats strong{font-size:18px}.bf-lobby h2{font-size:26px}.bf-threats{max-height:90px}}@media(max-height:450px){.bf-threats{max-height:68px}.bf-summary{font-size:10px}}
.bf-skill-dock{display:flex;gap:6px;padding:4px 10px;background:#1b3020;flex:none}.bf-skill-dock button{font-size:11px;padding:5px 13px;min-height:30px}.bf-castle-book{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:9px;margin:15px 0}.bf-castle-book article{display:grid;text-align:center;border:1px solid #7a8052;background:#14291b;padding:7px}.bf-book-art{position:relative;height:100px;width:100%;--node-x:0px;--node-y:0px}.bf-book-art .castle-cutout{width:96px;height:96px;top:50%;left:50%}.bf-castle-book small{font-size:10px}.bf-castle-book .locked .bf-book-art{filter:grayscale(1);opacity:.35}.bf-party.royal[data-skin=conqueror-march]{filter:drop-shadow(0 0 5px #ff7461)}.bf-party.royal[data-skin=conqueror-march]:after{color:#ff7461}.bf-routes[data-effect=laststand-effect] path.star-trail{stroke:#d6a3ff;filter:drop-shadow(0 0 6px #a86bff)}.bf-city-frame[data-frame=frontier-frame] #city-name,.bf-name-frame[data-frame=frontier-frame] .tile-name{border-color:#c8d9e8}.bf-city-frame[data-frame=triad-frame] #city-name:before,.bf-name-frame[data-frame=triad-frame] .tile-name:before{content:'♛ ';color:#ffe5a2}@media(max-height:450px){.bf-skill-dock{padding:2px 8px}.bf-skill-dock button{min-height:25px;padding:3px 8px}.bf-selection{max-height:75px;overflow:auto}}
.bf-preview{display:grid;justify-items:center;gap:5px;padding:12px;background:#13281a;border:1px solid #a39058;margin:12px 0}.bf-preview .bf-book-art{width:120px}.bf-preview small{font-size:10px;color:#c6bd94}.bf-preview>span{padding:3px 14px}.bf-preview[data-kind=frame]>span{border:3px ridge #dbbf77;box-shadow:0 0 8px #ffd98d44}.bf-preview[data-skin=frontier-frame]>span{border-color:#c5dce9}.bf-preview[data-skin=triad-frame]>span:before{content:'♛ '}.bf-preview>i{font-style:normal;color:#e6c477}.bf-preview[data-kind=march]>i{font-size:30px;filter:drop-shadow(0 0 5px #ffdd77)}.bf-preview[data-skin=conqueror-march]>i{color:#ff8870}.bf-preview[data-kind=effect]>i{text-shadow:0 0 10px #ffe385;font-size:26px}.bf-preview[data-skin=laststand-effect]>i{color:#ddb4ff;text-shadow:0 0 10px #c380ff}

/* Keep the battlefield centered when the scaled map is smaller than the viewport. */
.bf-map-viewport{background:linear-gradient(#11291bba,#0a1c12e0),url(assets/art/world-terrain-v2.png) center/640px 640px;overflow-anchor:none}
.bf-grid{box-shadow:0 0 0 2px #baab6e66,0 0 35px #0008}
.bf-tile.home{z-index:7}.bf-tile.home:before{content:'';position:absolute;left:-8px;right:-8px;top:53px;height:92px;border:3px solid #f6d773;border-radius:50%;box-shadow:0 0 16px #ffda6d,inset 0 0 12px #ffdf7a77;pointer-events:none}.bf-tile.home .tile-name{color:#fff3a8;border:1px solid #f4d873;background:#20381de8}
.bf-home-beacon{position:absolute;z-index:9;transform:translate(-50%,-50%);border:2px ridge #f5db83;background:#163c2af0;color:#fff0b0;font-size:11px;min-height:36px;padding:5px 9px;white-space:nowrap;box-shadow:0 2px 12px #0008;touch-action:manipulation}.bf-home-beacon[hidden]{display:none}
/* Position transforms change each frame; soldier elements and walk cycles stay mounted. */
.bf-party{left:0;top:0;transform:none;will-change:transform;contain:layout style}.bf-party small{z-index:5}
.bf-soldier{position:absolute;clip-path:inset(0 0 9% 0);left:var(--unit-x,0px);top:var(--unit-y,0px);background-position-y:var(--unit-row,0%);animation-delay:var(--unit-delay,0s);filter:drop-shadow(1px 3px 2px #07180baa)}
.bf-party[data-back=true] .bf-soldier{background-position-y:var(--unit-back-row,20%)}
.bf-party[data-troop=ember-riders] .bf-soldier,.bf-troop-preview[data-troop=ember-riders] .bf-soldier{width:60px;height:60px;top:calc(var(--unit-y,0px) - 7px);filter:sepia(1) saturate(2.4) hue-rotate(325deg) brightness(1.25) drop-shadow(1px 3px 2px #160b09aa)}
.bf-party[data-troop=dawn-guard] .bf-soldier,.bf-troop-preview[data-troop=dawn-guard] .bf-soldier{filter:sepia(.8) saturate(1.6) brightness(1.25) drop-shadow(1px 3px 2px #171208aa)}
.bf-party[data-troop=jade-rangers] .bf-soldier,.bf-troop-preview[data-troop=jade-rangers] .bf-soldier{filter:sepia(.7) saturate(1.7) hue-rotate(65deg) brightness(1.25) drop-shadow(1px 3px 2px #092015aa)}
.bf-troop-preview,.bf-reward>.bf-troop-preview{display:block;position:relative;width:112px;height:80px;padding:0!important;margin:8px auto;background:radial-gradient(ellipse at 50% 85%,#c8a85b33,transparent 65%);overflow:visible}
.bf-troop-preview .bf-soldier{left:calc(24px + var(--unit-x,0px));top:calc(18px + var(--unit-y,0px));transform:scale(1.25);transform-origin:50% 100%}.bf-troop-preview[data-troop=ember-riders] .bf-soldier{top:calc(12px + var(--unit-y,0px))}
@media(max-height:450px){
 .bf-header .secondary-button{min-height:28px;padding:3px 10px;font-size:11px}.bf-tools button{min-height:26px;padding:2px 7px;font-size:11px}
 .bf-summary{grid-template-columns:1fr 1fr;gap:1px 12px}.bf-summary strong{grid-column:1;grid-row:1}.bf-summary [data-bf-count]{grid-column:2;grid-row:1}.bf-summary [data-bf-size]{grid-column:1;grid-row:2}.bf-summary [data-bf-xp]{grid-column:2;grid-row:2}.bf-summary .bf-xp{grid-column:1/-1;grid-row:3;height:3px}.bf-summary strong,.bf-summary span,.bf-summary small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .bf-map-shell{min-height:60px}.bf-threats{max-height:50px}.bf-selection{min-height:30px;max-height:45px}.bf-map-shell .map-zoom{top:4px;right:4px}.bf-map-shell .map-zoom button{min-height:30px;min-width:34px;padding:3px 7px}
}
.battle-map-mode .bottom-nav{display:none!important}
#battlefield-overlay.bf-map-mode{inset:0;height:100dvh}
.bf-map-mode .bf-header,.bf-map-mode .bf-tools{display:none}
.bf-map-mode .bf-main{position:relative;display:block;height:100%;overflow:hidden}
.bf-map-mode .bf-map-shell{position:absolute;inset:calc(44px + env(safe-area-inset-top,0px)) 0 0;min-height:0}
.bf-map-mode .bf-summary{position:absolute;left:0;right:78px;top:env(safe-area-inset-top,0px);height:44px;padding:3px 8px;display:flex;flex-direction:column;gap:0;z-index:12;pointer-events:none;background:#172b1ee8}
.bf-map-mode .bf-summary strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bf-map-mode .bf-summary [data-bf-count]{font-size:10px}.bf-map-mode .bf-summary [data-bf-size],.bf-map-mode .bf-summary .bf-xp,.bf-map-mode .bf-summary [data-bf-xp]{display:none}
.bf-pause-float{position:absolute;top:env(safe-area-inset-top,0px);right:0;width:78px;height:44px;z-index:15;border:1px solid #b6a268;background:#203d2e;color:#ffe5a0;font-size:13px}
.bf-map-mode .bf-skill-dock{position:absolute;right:6px;bottom:calc(6px + env(safe-area-inset-bottom,0px));z-index:12;background:#14281cdd;padding:0;gap:3px;border-radius:4px}.bf-map-mode .bf-skill-dock button{min-height:40px;padding:4px 7px;font-size:11px;margin:0}
.bf-map-mode .bf-map-note{display:none}.bf-map-mode .map-zoom{top:auto;bottom:calc(54px + env(safe-area-inset-bottom,0px));right:6px;box-shadow:none}.bf-map-mode .map-zoom button{min-width:36px;min-height:36px;padding:3px 6px;font-size:16px}.bf-map-mode .map-zoom [data-map-zoom=reset]{font-size:11px}
.bf-map-mode .bf-threats{position:absolute;z-index:13;top:48px;left:6px;max-width:230px;max-height:36px;padding:0;border:0;background:transparent}.bf-map-mode .bf-threats[hidden]{display:none}.bf-map-mode .bf-threats strong,.bf-map-mode .bf-threats small,.bf-map-mode .bf-threats span,.bf-map-mode .bf-threats button~button{display:none}.bf-map-mode .bf-threats button{margin:0;min-height:32px;background:#602b20ed;font-size:10px}
.bf-map-mode .bf-selection{position:absolute;z-index:14;bottom:calc(102px + env(safe-area-inset-bottom,0px));left:6px;right:6px;max-width:420px;max-height:120px;overflow:auto;padding:7px 32px 7px 9px;min-height:0;background:#14281cf5;border:1px solid #a99864;font-size:11px}.bf-map-mode .bf-selection[data-active=false]{display:none}.bf-map-mode .bf-selection p{font-size:10px}.bf-map-mode .bf-selection button{min-height:36px}.bf-target-close{display:none}.bf-map-mode:has(.bf-selection[data-active=true]) .bf-target-close{display:block;position:absolute;left:min(394px,calc(100% - 40px));bottom:calc(182px + env(safe-area-inset-bottom,0px));z-index:16;width:32px;height:32px;border:1px solid #a99864;background:#223c2c;color:#ffe5a0;font-size:22px}


.bf-party .bf-soldier{transform:scaleX(var(--march-mirror,1));transform-origin:center bottom}.bf-routes path{stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.bf-routes path.star-trail{stroke-width:3}

.bf-classes{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.bf-classes [data-class=ranger]{grid-column:2}.bf-classes .bf-reward{min-width:0;padding:9px 5px;display:flex;flex-direction:column;align-items:center}.bf-classes h3{font-size:16px}.bf-classes p{font-size:11px;overflow-wrap:anywhere;flex:1}.bf-classes button{max-width:100%;margin:6px 0 0;padding:6px 4px;font-size:11px;white-space:normal}.bf-classes .locked{border-style:dashed;opacity:.65}

.bf-map-mode .bf-command{position:absolute;z-index:14;left:6px;bottom:calc(6px + env(safe-area-inset-bottom,0px));width:min(420px,calc(100% - 12px));display:flex;flex-direction:column;gap:3px;pointer-events:none}.bf-command>*{pointer-events:auto}.bf-map-mode .bf-command .bf-selection{position:relative;inset:auto;width:100%;max-height:135px;margin:0;padding:8px 35px 8px 9px}.bf-map-mode .bf-command .bf-skill-dock{position:static;align-self:flex-end;flex-wrap:wrap}.bf-map-mode .bf-command .bf-target-close{position:absolute;left:auto;right:2px;top:28px;bottom:auto}.bf-mission-status{align-self:flex-start;padding:3px 7px;border:1px solid #b9a86488;background:#152c20ee;color:#f1dea3;font-size:11px;border-radius:3px}.bf-map-mode .map-zoom{bottom:auto;top:6px;right:6px}.bf-routes path.other{opacity:.12;stroke-width:1.5}.bf-routes path.selected{opacity:.85;stroke-width:3}.bf-routes path.own{opacity:1;stroke:#ffe05c;stroke-width:4;filter:drop-shadow(0 1px 2px #102217)}.bf-routes path.hostile{opacity:.95}

#battlefield-overlay.bf-map-mode .bf-command .bf-target-close{left:auto;right:2px;top:28px;bottom:auto}

.city-base-open:not(.feature-open) .top-status-bar,.city-base-open:not(.feature-open) .work-dock{display:none}.city-base-open .scene-shortcuts [data-action=quests],.city-base-open .scene-shortcuts [data-action=reports]{display:none}.city-base-status{position:fixed;z-index:35;top:calc(72px + env(safe-area-inset-top,0px));left:8px;right:8px;max-width:640px;margin:auto;min-height:34px;display:flex;align-items:center;justify-content:center;gap:15px;padding:4px 10px;background:linear-gradient(100deg,#203f2cf0,#12251cf0);border:1px solid #b09a5f;color:#f1d99b;box-sizing:border-box}.city-base-status strong{font-size:13px}.city-base-status span{font-size:11px}.feature-open .city-base-status,.battlefield-open .city-base-status{display:none}.base-legacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.base-legacy-grid button{min-height:44px}.city-base-open .city-stage [data-building=keep] .building-label,.city-base-open .city-stage [data-building=academy] .building-label,.city-base-open .city-stage [data-building=warehouse] .building-label{border-color:#d2b46c;color:#ffe3a0}.city-base-open .city-battle-launch{flex-wrap:wrap}.city-base-open .city-battle-launch button{min-height:40px;font-size:12px}.city-base-open .city-battle-launch .primary-button{font-size:15px}@media(max-width:600px){.city-base-status{gap:8px}.city-base-status strong{font-size:11px}.city-base-status span{font-size:10px}.city-base-open .city-battle-launch small{display:none}.city-base-open .city-battle-launch{gap:4px;left:6px;max-width:calc(100vw - 12px);padding:5px}.city-base-open .city-battle-launch button{padding:5px 8px}}

.bf-class-label{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:6;white-space:nowrap;border:1px solid var(--class-color,#e4cf8c);background:#12271ef2;color:var(--class-color,#e4cf8c);padding:2px 7px;font-size:12px;border-radius:4px;font-weight:bold}.bf-tile[data-profession=pioneer],.bf-classes [data-class=pioneer]{--class-color:#a5dc7b}.bf-tile[data-profession=conqueror],.bf-classes [data-class=conqueror]{--class-color:#ffa28a}.bf-tile[data-profession=sentinel],.bf-classes [data-class=sentinel]{--class-color:#ffe07a}.bf-tile[data-profession=ranger],.bf-classes [data-class=ranger]{--class-color:#80d9ef}.bf-classes [data-class]{border-color:var(--class-color)}.bf-classes [data-class] h3{color:var(--class-color)}

.bf-tile[data-profession=aviator],.bf-classes [data-class=aviator]{--class-color:#c7adff}.bf-classes [data-class=ranger]{grid-column:1}.bf-classes [data-class=aviator]{grid-column:3}

.bottom-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}.bf-section-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:1040px;margin:0 auto 12px}.bf-section-tabs button{min-height:44px;margin:0}.bf-section-tabs [aria-current=page]{box-shadow:inset 0 -3px #efd28a}

.game-shell .top-status-bar,.game-shell .work-dock{display:none!important}

/* Vector icons have a centered viewBox and do not depend on font baselines. */
.icon-button{box-sizing:border-box;padding:0;line-height:1;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;appearance:none}.icon-button svg{display:block;width:20px;height:20px;flex-shrink:0;pointer-events:none}

/* A continuous, single-color ring for round settings and close buttons. */
.icon-button{border:2px solid #d6c28c;border-radius:50%;box-shadow:none}

/* Arrival consequence colors, shared by arrows, troops and warnings. */
.bf-routes path.hostile.threat-lethal{stroke:#ff554f;stroke-width:4;opacity:1}
.bf-routes path.hostile.threat-empty-hit{stroke:#ffb347;stroke-width:3;opacity:1}
.bf-routes path.hostile.threat-defended{stroke:#9bbacb;stroke-width:2;opacity:.8}
.bf-party[data-threat=lethal],.bf-threats button[data-threat=lethal]{--threat-color:#ff7770;--threat-bg:#59201ef2}
.bf-party[data-threat=empty-hit],.bf-threats button[data-threat=empty-hit]{--threat-color:#ffbf64;--threat-bg:#503716f2}
.bf-party[data-threat=defended],.bf-threats button[data-threat=defended]{--threat-color:#b8d1df;--threat-bg:#243d4bf2}
.bf-party-risk{position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;line-height:1.4;padding:1px 4px;border:1px solid var(--threat-color);color:var(--threat-color);background:var(--threat-bg);border-radius:3px;pointer-events:none}
#battlefield-overlay .bf-threats button[data-threat]{border-color:var(--threat-color);color:var(--threat-color);background:var(--threat-bg)}

/* Match incoming troops to their route; preserve route width while zooming. */
.bf-routes path.hostile{vector-effect:non-scaling-stroke;stroke-width:3.5;opacity:1}
.bf-routes path.hostile.threat-lethal{stroke:#ff554f;stroke-width:4;filter:drop-shadow(0 0 2px #ff554f)}
.bf-routes path.hostile.threat-empty-hit{stroke:#ffb347;stroke-width:3.5;filter:drop-shadow(0 0 2px #ffb347)}
.bf-routes path.hostile.threat-defended{stroke:#9bbacb;stroke-width:3;opacity:1;filter:drop-shadow(0 0 1px #9bbacb)}
#battlefield-overlay .bf-party[data-threat=lethal] .bf-soldier{filter:sepia(1) saturate(5) hue-rotate(320deg) brightness(1.2) drop-shadow(0 0 4px #ff554f)}
#battlefield-overlay .bf-party[data-threat=empty-hit] .bf-soldier{filter:sepia(1) saturate(3) brightness(1.3) drop-shadow(0 0 4px #ffb347)}
#battlefield-overlay .bf-party[data-threat=defended] .bf-soldier{filter:grayscale(1) sepia(.3) hue-rotate(150deg) brightness(1.25) drop-shadow(0 0 3px #9bbacb)}
#battlefield-overlay .bf-party[data-threat]:not([data-threat=""]) small{border-color:var(--threat-color);color:var(--threat-color);background:var(--threat-bg)}
.bf-party-risk{top:56px}

.bf-tactic-list{display:grid;gap:12px;margin:16px 0}.bf-tactic-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px;border:1px solid #8f8654;background:#10241a;text-align:left}.bf-tactic-icon{font-size:28px;line-height:1.3;color:#e7c76d;text-align:center}.bf-tactic-row h3{font-size:18px;margin:0 0 8px;color:#efda9c}.bf-tactic-row ul,.bf-tactic-notes{margin:0;padding-left:20px;font-size:13px;line-height:1.8}.bf-tactic-row li+li{margin-top:4px}.bf-tactic-row strong{color:#ecdcae}.bf-tactic-action{align-self:center}.bf-tactic-action button{margin:0;min-width:124px;min-height:44px}.bf-tactic-notes{margin:14px 0;color:#bec6aa}@media(max-width:600px){.bf-tactic-row{grid-template-columns:26px minmax(0,1fr);gap:10px;padding:12px}.bf-tactic-icon{font-size:24px}.bf-tactic-action{grid-column:2}.bf-tactic-action button{width:100%;min-width:0}.bf-tactic-row ul{font-size:12px}}

.bf-tactic-row{grid-template-columns:36px minmax(0,1fr)}@media(max-width:600px){.bf-tactic-row{grid-template-columns:26px minmax(0,1fr)}}
