/* ==========================================================================================
   BATTLE HUD REVAMP "Proposed A" (owner-approved mockup, battle-hud.src.html .tbA/.medal/.bar/.track/.mks/.pz/.timer/.sig/.low/.ot/.ub*)
   Loaded after every other HUD stylesheet. Offline (#hud), online (.server-battle-ui / .live-base-summary), co-op/raid, brawl and the
   tutorial share this markup. Frames are CSS/SVG only; the medallion reuses assets/ui/portrait-cog.svg and the portrait is whatever
   battlePortrait() already set on img.battle-avatar. All team colours read the accessibility palette (--team-ally/-light/-dark,
   --team-enemy/-light/-dark) so colour-blind palettes reach the fills, rings and badges.
   Geometry (1x, phone): one centre line 27px below the safe top. Medallion 46px, bar frame 24px with a 3px bevel and an 18px recessed
   track; each frame runs 8px under its medallion and 8px under the timer plate. Timer 62x38 at centre-46, pause 34x34 at centre+12.
   Desktop keeps the 0.9x --desktop-ui-scale zoom from accessibility.css: --hud-z below is the same zoom the header children and the
   keep labels get, used for the few lengths that live on unzoomed parents (gap, top).
   ========================================================================================== */
:root{--hud-z:calc(var(--ui-text-scale,1) * var(--desktop-ui-scale,1));--hud-ink:#10142a}

/* ---------- keep bars row ---------- */
:root #hud .health,:root .live-base-summary{position:absolute!important;top:calc(8px + 19px * var(--hud-z) - 23px)!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:min(648px,calc(100% - 4px))!important;height:46px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:calc(76px * var(--hud-z))!important;padding:0!important;margin-left:0;background:none!important;border:0!important;border-radius:0!important;pointer-events:none}
:root #hud .health label,:root .live-base-summary label{position:relative!important;display:block!important;flex:1 1 0!important;min-width:0;height:46px!important;margin:0!important;padding:0!important;font-size:0!important;letter-spacing:0;
 --c:var(--team-ally);--c-hi:var(--team-ally-light);--c-lo:var(--team-ally-dark)}
:root #hud .health label:last-child,:root .live-base-summary label:last-child{--c:var(--team-enemy);--c-hi:var(--team-enemy-light);--c-lo:var(--team-enemy-dark)}

/* bevelled dark-steel frame (light top, dark bottom, 1px ink outline, faint brushed grain) */
:root #hud .health label::before,:root .live-base-summary label::before{content:'';position:absolute;left:38px;right:0;top:11px;height:24px;z-index:1;border-radius:6px;pointer-events:none;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='24'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9 0.05' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0.315 0 0 0 -0.147'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/160px 100% padding-box,linear-gradient(180deg,#b3bbcd 0,#76809a 34%,#454c63 70%,#2b3042 100%);
 box-shadow:0 0 0 1px var(--hud-ink),inset 0 1px 0 #ffffffa0,inset 0 -1px 0 #0008,0 2px 3px #000b}
:root #hud .health label:last-child::before,:root .live-base-summary label:last-child::before{left:0;right:38px}

/* steel gear medallion behind the portrait */
:root #hud .health label::after,:root .live-base-summary label::after{content:'';position:absolute;left:0;top:0;width:46px;height:46px;z-index:5;pointer-events:none;background:url(assets/ui/portrait-cog.svg?v=949c0b804bdd99ef) center/contain no-repeat;filter:drop-shadow(0 2px 2px #000b)}
:root #hud .health label:last-child::after,:root .live-base-summary label:last-child::after{left:auto;right:0}
/* boss enemy: gold-tinted gear */
:root #hud .health label.is-boss::after,:root .live-base-summary label.is-boss::after{filter:sepia(.9) saturate(2.6) hue-rotate(-12deg) brightness(1.05) drop-shadow(0 2px 2px #000b)}

/* portrait (battlePortrait() source) inside the gear, with the team-colour ring */
:root #hud .health .battle-avatar,:root .live-base-summary .battle-avatar{position:absolute!important;left:8px!important;right:auto!important;top:8px!important;width:30px!important;height:30px!important;z-index:6;box-sizing:border-box;object-fit:cover;border:2px solid var(--c)!important;border-radius:50%;background:#141826;box-shadow:none!important;outline:1px solid #0008;outline-offset:-3px}
:root #hud .health label:last-child .battle-avatar,:root .live-base-summary label:last-child .battle-avatar{left:auto!important;right:8px!important}

/* recessed track (the existing .battle-meter-well), fill with top highlight, yellow damage trail */
:root #hud .health .battle-meter-well,:root .live-base-summary .battle-meter-well{position:absolute!important;left:41px!important;right:3px!important;top:14px!important;bottom:auto!important;height:18px!important;z-index:2;box-sizing:border-box;overflow:hidden;border:0!important;border-radius:3px!important;background:linear-gradient(#05060b,#191c2a 70%,#252939)!important;box-shadow:inset 0 2px 2px #000,inset 0 0 0 1px #000b!important}
:root #hud .health label:last-child .battle-meter-well,:root .live-base-summary label:last-child .battle-meter-well{left:3px!important;right:41px!important}
:root #hud .health .battle-meter-well i,:root .live-base-summary .battle-meter-well i{position:absolute;top:0;bottom:0;left:0;height:auto}
/* mirrored enemy bar: empties towards the enemy medallion */
:root #hud .health label:last-child .battle-meter-well i,:root .live-base-summary label:last-child .battle-meter-well i{left:auto;right:0}
:root #hud .health .battle-meter-trail,:root .live-base-summary .battle-meter-trail{background:linear-gradient(#ffe796,#e5ae24)!important}
:root #hud .health .battle-meter-fill,:root .live-base-summary .battle-meter-fill{background:linear-gradient(180deg,var(--c-hi) 0,var(--c) 48%,var(--c-lo) 100%)!important}
:root #hud .health .battle-meter-fill::after,:root .live-base-summary .battle-meter-fill::after{content:'';position:absolute;left:2px;right:2px;top:2px;height:2px;border-radius:2px;background:#ffffff6b}

/* native progress stays for semantics, invisible, over the track */
:root #hud .health progress,:root .live-base-summary progress{position:absolute!important;left:41px!important;right:3px!important;top:14px!important;width:auto!important;height:18px!important;margin:0!important;opacity:0!important;z-index:0}
:root #hud .health label:last-child progress,:root .live-base-summary label:last-child progress{left:3px!important;right:41px!important}

/* base HP numbers inside the track; the "Base health numbers" setting empties the text and leaves a clean track */
:root #hud .health label b,:root .live-base-summary label b{position:absolute!important;display:block!important;left:41px!important;right:3px!important;top:14px!important;height:18px;padding:0 0 0 8px;z-index:4;box-sizing:border-box;text-align:center;white-space:nowrap;overflow:hidden;font:700 10.5px/18px var(--wr-font-display,'Rubik','Segoe UI',system-ui,sans-serif)!important;letter-spacing:.2px;color:#fff8e6!important;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 #000,1px 0 0 #000b,-1px 0 0 #000b,0 -1px 0 #0008,0 0 3px #000!important;pointer-events:none}
:root #hud .health label:last-child b,:root .live-base-summary label:last-child b{left:3px!important;right:41px!important;padding:0 8px 0 0}

/* boss phase markers on the mirrored enemy track (battle-effects.js writes right:%) */
:root #hud .health .boss-phase-markers,:root .live-base-summary .boss-phase-markers{position:absolute!important;left:41px!important;right:3px!important;top:14px!important;bottom:auto!important;height:18px!important;z-index:7;pointer-events:none}
:root #hud .health label:last-child .boss-phase-markers,:root .live-base-summary label:last-child .boss-phase-markers{left:3px!important;right:41px!important}
:root #hud .health .boss-phase-marker,:root .live-base-summary .boss-phase-marker{position:absolute;top:0;bottom:0;left:auto;width:2px;transform:translateX(50%);background:#ffe4aadd;box-shadow:0 0 2px #000}
:root #hud .health .boss-phase-marker::before,:root .live-base-summary .boss-phase-marker::before{content:'';position:absolute;left:50%;top:-7px;width:10px;height:9px;border:0;transform:translateX(-50%);background:linear-gradient(#fff1b3,#e5ae24 60%,#9a6418);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 0 .6px #10142a) drop-shadow(0 1px 0 #10142a)}
:root #hud .health .boss-phase-marker.passed,:root .live-base-summary .boss-phase-marker.passed{background:#8a8794aa}
:root #hud .health .boss-phase-marker.passed::before,:root .live-base-summary .boss-phase-marker.passed::before{background:linear-gradient(#a7a4b0,#5c5a66)}

/* low HP (either keep under 25%): the frame heats red and pulses, the fill keeps its team colour */
:root #hud .health label.is-low::before,:root .live-base-summary label.is-low::before{background:linear-gradient(180deg,#f0b0a4 0,#c0605a 34%,#7a2a2a 70%,#4a1618 100%);animation:battle-hud-low 1.1s ease-in-out infinite}
:root #hud .health label.is-low .battle-meter-well,:root .live-base-summary label.is-low .battle-meter-well{box-shadow:inset 0 2px 2px #000,inset 0 0 0 1px #000b,inset 0 0 9px 2px #ff2a1acc!important}
:root #hud .health label.is-low b,:root .live-base-summary label.is-low b{color:#ffd9cf!important}
@keyframes battle-hud-low{0%,100%{box-shadow:0 0 0 1px var(--hud-ink),inset 0 1px 0 #ffffffa0,inset 0 -1px 0 #0008,0 0 2px 1px #ff3b2f88}50%{box-shadow:0 0 0 1px var(--hud-ink),inset 0 1px 0 #ffffffa0,inset 0 -1px 0 #0008,0 0 8px 3px #ff3b2f}}

/* ---------- raised slate timer with a gold rim ---------- */
/* the online header strip is only a positioning box (ui-system.css gives it a wood face and a highlight line) */
:root .server-battle-ui>header{box-shadow:none!important;background:none!important}
:root #hud>header>div,:root .server-battle-ui>header>span{position:absolute!important;top:0!important;left:50%!important;right:auto!important;margin:0!important;transform:translateX(-46px)!important}
:root body #hud #timer,:root body .server-battle-ui>header>span{position:relative!important;display:grid!important;place-items:center;box-sizing:border-box;width:62px!important;height:38px!important;margin:0!important;padding:0!important;border:2px solid transparent!important;border-radius:8px!important;
 font:800 21px/1 var(--wr-font-display,'Rubik','Segoe UI',system-ui,sans-serif)!important;color:#fff6e2!important;font-variant-numeric:tabular-nums;white-space:nowrap;
 text-shadow:0 1px 0 var(--hud-ink),1px 0 0 #10142acc,-1px 0 0 #10142acc,0 -1px 0 #10142a99,0 2px 4px #0008!important;
 background:radial-gradient(ellipse 80% 45% at 50% 0,#ffffff24,#fff0 70%) padding-box,linear-gradient(180deg,#414b70,#272e49 55%,#1a1f33) padding-box,linear-gradient(180deg,#fff0b0,#e2b04c 38%,#a86e1c 70%,#6b4508) border-box!important;
 box-shadow:0 0 0 1px var(--hud-ink),inset 0 -3px 0 #0006,0 3px 4px #000b!important;filter:none!important}
/* the online span is also the header child; keep its own transform */
:root body .server-battle-ui>header>span{position:absolute!important}
/* overtime: ember rim, pulse and an OVERTIME tab under the plate (replaces the red text glow and the old 2x GOLD line) */
:root body #hud #timer.battle-overtime,:root body .server-battle-ui>header>span.battle-overtime{color:#ffc29a!important;
 background:radial-gradient(ellipse 80% 45% at 50% 0,#ffffff24,#fff0 70%) padding-box,linear-gradient(180deg,#5a2a24,#36171a 55%,#22101a) padding-box,linear-gradient(180deg,#ffe0b0,#ff8a3d 40%,#b8321c 75%,#5a1208) border-box!important;
 border-color:transparent!important;filter:none!important;animation:battle-hud-ot 1.2s ease-in-out infinite}
:root body #hud #timer.battle-overtime::after,:root body .server-battle-ui>header>span.battle-overtime::after{content:'OVERTIME';display:block;position:absolute;left:50%;top:calc(100% - 1px);transform:translateX(-50%);padding:2px 5px;border:1px solid #ffb26b;border-top:0;border-radius:0 0 5px 5px;background:linear-gradient(#b8381a,#6e1a08);font:800 7px/1 var(--wr-font-display,'Rubik',sans-serif);letter-spacing:.09em;color:#ffe9cf;white-space:nowrap;text-shadow:0 1px 0 #3a0a02;filter:none}
@keyframes battle-hud-ot{0%,100%{box-shadow:0 0 0 1px var(--hud-ink),inset 0 -3px 0 #0006,0 3px 4px #000b,0 0 3px 1px #ff5a2a99}50%{box-shadow:0 0 0 1px var(--hud-ink),inset 0 -3px 0 #0006,0 3px 4px #000b,0 0 9px 3px #ff5a2a}}

/* ---------- square gold pause attached to the timer ---------- */
:root body #hud #pause,:root body .server-battle-ui>header>.battle-pause{position:absolute!important;left:50%!important;right:auto!important;top:2px!important;transform:translateX(12px)!important;box-sizing:border-box;width:34px!important;height:34px!important;min-height:0!important;margin:0!important;padding:0!important;display:flex!important;gap:4px;align-items:center;justify-content:center;font-size:0!important;
 border:2px solid transparent!important;border-radius:7px!important;
 background:radial-gradient(ellipse 90% 55% at 50% 0,#ffffff5c,#fff0 70%) padding-box,linear-gradient(180deg,#ffdc5c,#f3a51e 62%,#d88a14) padding-box,linear-gradient(180deg,#8a5a10,#3a2306) border-box!important;
 box-shadow:0 0 0 1px var(--hud-ink),inset 0 -3px 0 #a8640c,inset 0 1px 0 #fffa,0 3px 4px #000b!important;z-index:1}
:root body #hud #pause::before,:root body #hud #pause::after,:root body .server-battle-ui>header>.battle-pause::before,:root body .server-battle-ui>header>.battle-pause::after{content:'';display:block;width:5px;height:16px;box-sizing:border-box;background:#fff6d8;border:1px solid #5a3a12;border-radius:1px;box-shadow:0 1px 0 #3a2306}
:root body #hud #pause.is-paused{background:radial-gradient(ellipse 90% 55% at 50% 0,#ffffff80,#fff0 70%) padding-box,linear-gradient(180deg,#fff0a0,#f7cc62 50%,#ab6819) padding-box,linear-gradient(180deg,#fff1ad,#c48a2a) border-box!important;box-shadow:0 0 0 1px var(--hud-ink),inset 0 0 7px #fff2ad99,0 0 5px 2px #ffe19be6,0 0 15px 5px #ffb72a99!important}

/* ---------- leader signature chip: slate pill with a brass rim (leader-signature.js markup unchanged) ---------- */
:root .health .leader-sig{left:4px;top:calc(100% + 6px);height:26px;gap:5px;padding:0 10px 0 2px;box-sizing:border-box;border-radius:13px;border:1.5px solid transparent;background:linear-gradient(#333b5a,#1a1e31) padding-box,linear-gradient(#f3d27a,#9a6418) border-box;box-shadow:0 0 0 1px var(--hud-ink),0 2px 3px #0009;color:#f6f3ec;font-family:var(--wr-font-display,'Rubik',system-ui,sans-serif)}
:root .health .leader-sig-icon{width:21px;height:21px;font-size:12px;background:conic-gradient(#06080eb8 calc(var(--cd,0)*1turn),transparent 0),var(--sig,#e8c25a);box-shadow:inset 0 0 0 1.5px #ffffff66,0 0 0 1px var(--hud-ink),inset 0 -2px 2px #0005}
:root .health .leader-sig-name{font:600 7px/1.1 var(--wr-font-display,'Rubik',sans-serif);letter-spacing:.08em;color:#e7cf8f;opacity:1}
:root .health .leader-sig-value{font:700 10px/1.15 var(--wr-font-display,'Rubik',sans-serif)}
:root .health .leader-sig.inactive{opacity:1;filter:saturate(.3) brightness(.82)}
:root .health label:last-child .leader-sig{left:auto;right:4px}

/* ==========================================================================================
   UNIT HP BARS: recessed track with a thin ink outline, team fill with highlight, yellow trail, hex-shield level badge tucked into
   the left end. Markup unchanged (span.level + .hp-well>i.hp-ghost+i.hp-fill + small). The .unit-health box stays the bar, so the
   world anchor (battleHealthTransform) is unchanged. Full health still shows only the badge.
   ========================================================================================== */
.unit-health{--c:var(--team-ally);--c-hi:var(--team-ally-light);--c-lo:var(--team-ally-dark)}
.unit-health.enemy{--c:var(--team-enemy);--c-hi:var(--team-enemy-light);--c-lo:var(--team-enemy-dark)}
.unit-health.coop-partner{--c:#8ff2d5;--c-hi:#c8ffef;--c-lo:#3fae8e}
.unit-health.heal-flash .hp-fill{--c:#64ff64;--c-hi:#b4ffb4;--c-lo:#2fbf3a}
.unit-health:not(.base-health):not(.tower-health){width:58px;height:10px}
.unit-health .hp-well{inset:0;box-sizing:border-box;border:1px solid var(--hud-ink)!important;border-left-width:4px!important;border-radius:5px!important;background:linear-gradient(#040509,#1d2030) padding-box!important;box-shadow:inset 0 1.5px 1px #000!important;overflow:hidden}
.unit-health.guarded .hp-well{box-shadow:inset 0 1.5px 1px #000,0 0 6px 2px #c1d7ff!important}
.unit-health .hp-well i{top:0;bottom:0;height:auto}
.unit-health .hp-ghost{background:linear-gradient(#ffe796,#e5ae24)!important}
.unit-health .hp-fill,.unit-health.coop-partner:not(.heal-flash) .hp-fill{border:0!important;border-radius:0 2px 2px 0;background:linear-gradient(180deg,var(--c-hi) 0,var(--c) 45%,var(--c-lo))!important}
.unit-health .hp-fill::after{content:'';position:absolute;left:1px;right:1px;top:1px;height:1.5px;border-radius:1px;background:#ffffff78}
/* hex-shield badge: gold rim (SVG) + team enamel + Rubik numeral */
.unit-health .level{position:absolute;left:-15px;right:auto;top:50%;transform:translateY(-50%);z-index:2;box-sizing:border-box;width:18px!important;height:20px!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;display:grid;place-items:center;padding:1px 0 0;font:800 10.5px/1 var(--wr-font-display,'Rubik','Segoe UI',sans-serif)!important;color:#fff;text-shadow:0 1px 0 #000,0 0 2px #000}
.unit-health .level[hidden]{display:none}
.unit-health .level::before,.unit-health .level::after{content:'';position:absolute;pointer-events:none}
.unit-health .level::before{inset:0;z-index:-2;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 18' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fff2b8'/%3E%3Cstop offset='.4' stop-color='%23e5c36f'/%3E%3Cstop offset='1' stop-color='%23a8741c'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M8 0L16 3.78V12.78L8 18L0 12.78V3.78Z' fill='%2310142a'/%3E%3Cpath d='M8 1L15 4.36V12.36L8 17L1 12.36V4.36Z' fill='url(%23g)'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.unit-health.has-perk .level::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 18' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f3e4ff'/%3E%3Cstop offset='.4' stop-color='%23c4a0e1'/%3E%3Cstop offset='1' stop-color='%237a52a8'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M8 0L16 3.78V12.78L8 18L0 12.78V3.78Z' fill='%2310142a'/%3E%3Cpath d='M8 1L15 4.36V12.36L8 17L1 12.36V4.36Z' fill='url(%23g)'/%3E%3C/svg%3E")}
.unit-health .level::after{inset:15% 15%;z-index:-1;clip-path:polygon(50% 0,100% 21%,100% 71%,50% 100%,0 71%,0 21%);background:radial-gradient(ellipse 85% 50% at 50% 0,#ffffff60,#fff0 70%),linear-gradient(var(--c-hi),var(--c-lo) 80%)}
/* full health: only the badge, centred (style.css rule kept; repeated so the left offset above cannot win) */
.unit-health.full-health>.level.level{left:50%;right:auto;transform:translate(-50%,-50%)}
/* squad followers: slimmer line, no badge */
.unit-health.squad-follower:not(.base-health):not(.tower-health){width:46px;height:8px}
.unit-health.squad-follower .hp-well{border-left-width:1px!important;border-radius:4px!important}
/* towers keep their wider bar */
.unit-health.tower-health{width:76px;height:10px}
/* boss and keep bars: wider, brass bezel, numbers inside on one line */
.unit-health.base-health,.unit-health.boss-health:not(.base-health){width:96px!important;height:14px!important}
.unit-health.boss-health:not(.base-health){width:86px!important}
.unit-health.base-health .hp-well,.unit-health.boss-health .hp-well{border:1.5px solid transparent!important;border-left-width:6px!important;border-radius:6px!important;background:linear-gradient(#040509,#1d2030) padding-box,linear-gradient(#f6d98a,#a87424 60%,#6a4410) border-box!important;box-shadow:inset 0 1.5px 1px #000,0 0 0 1px var(--hud-ink)!important}
.unit-health.base-health .level,.unit-health.boss-health .level{left:-17px;width:21px!important;height:24px!important;font-size:12px!important}
.unit-health.base-health>small,.unit-health.boss-health>small{position:absolute;top:0;left:6px;right:0;width:auto;height:100%;display:grid;place-items:center;z-index:3;white-space:nowrap;font:700 9.5px/1 var(--wr-font-display,'Rubik','Segoe UI',sans-serif)!important;color:#fff8e6;text-shadow:0 1px 0 #000,1px 0 0 #000b,-1px 0 0 #000b,0 0 2px #000;pointer-events:none}
.unit-health.full-health>small{display:none}

/* phone and touch sizes (the mockup's 1x unit bars) */
@media(max-width:700px),(pointer:coarse){
 .unit-health:not(.base-health):not(.tower-health){width:50px;height:9px}
 .unit-health .level{left:-13px;width:16px!important;height:18px!important;font-size:9.5px!important}
 .unit-health.squad-follower:not(.base-health):not(.tower-health){width:40px;height:7px}
 .unit-health.base-health{width:85px!important;height:12px!important}
 .unit-health.boss-health:not(.base-health){width:77px!important;height:12px!important}
 .unit-health.base-health .hp-well,.unit-health.boss-health .hp-well{border-left-width:5px!important}
 .unit-health.base-health .level,.unit-health.boss-health .level{left:-15px;width:19px!important;height:22px!important;font-size:11px!important}
 .unit-health.base-health>small,.unit-health.boss-health>small{left:5px;font-size:8.5px!important}
}

/* reduced motion: no pulsing frames */
@media(prefers-reduced-motion:reduce){:root #hud .health label.is-low::before,:root .live-base-summary label.is-low::before,:root body #hud #timer.battle-overtime,:root body .server-battle-ui>header>span.battle-overtime{animation:none}}
html.reduce-motion #hud .health label.is-low::before,html.reduce-motion .live-base-summary label.is-low::before,html.reduce-motion body #hud #timer.battle-overtime,html.reduce-motion body .server-battle-ui>header>span.battle-overtime{animation:none!important}

/* ===== Objective bars (lanterns, pylons, wardstones, chests, capture stones): the same recessed track and team fill as the unit
   bars, no level badge and no numbers. Owned = ally palette, hostile = enemy palette, neutral/capture = gold. Markup unchanged
   (div.objective-label.objective-health > i.objective-fill, built in game.js). ===== */
.objective-label.objective-health{--c:#ffd75a;--c-hi:#fff0a8;--c-lo:#b07a1c;width:58px!important;height:9px!important;padding:0!important;box-sizing:border-box;border:1px solid var(--hud-ink)!important;border-radius:5px!important;overflow:hidden;background:linear-gradient(#040509,#1d2030)!important;box-shadow:inset 0 1.5px 1px #000,0 1px 1.5px #000c!important}
.objective-label.objective-health.owned{--c:var(--team-ally);--c-hi:var(--team-ally-light);--c-lo:var(--team-ally-dark)}
.objective-label.objective-health.hostile{--c:var(--team-enemy);--c-hi:var(--team-enemy-light);--c-lo:var(--team-enemy-dark)}
.objective-label.objective-health.capture{--c:#ffd75a;--c-hi:#fff0a8;--c-lo:#b07a1c}
.objective-health .objective-fill{position:relative;height:100%!important;display:block;border-radius:0 2px 2px 0!important;background:linear-gradient(180deg,var(--c-hi) 0,var(--c) 45%,var(--c-lo))!important}
.objective-health .objective-fill::after{content:'';position:absolute;left:1px;right:1px;top:1px;height:1.5px;border-radius:1px;background:#ffffff78}
@media (hover:hover) and (pointer:fine){.objective-label.objective-health{width:64px!important;height:10px!important}}