/* Generated texture is decorative; native progress elements expose exact HP. */
.robattle-arena{display:grid;grid-template-columns:minmax(148px,.72fr) minmax(300px,720px) minmax(148px,.72fr);align-items:center;gap:10px;min-width:0;flex:1}
/* Direct WebGL adds its own visible canvas while the 2D fallback remains
   hidden. Hide the arena only when no battle screen is visible. */
.robattle-arena:not(:has(>.world-battle-screen:not([hidden]))){display:none}
.robattle-arena>.world-battle-screen{grid-column:2;grid-row:1;width:100%;min-height:0;max-height:none;align-self:center;box-sizing:border-box;box-shadow:0 0 30px #0005;border-color:#335564}
.robattle-arena>.robattle-health{display:contents}
.robattle-health[hidden]{display:none!important}
.robattle-health{background:transparent;border:0;padding:0;gap:6px}
.robattle-team{min-width:0;--team-color:#78ead5;display:flex;flex-direction:column;gap:5px;max-height:min(70vh,510px);overflow:auto;scrollbar-width:thin}
.robattle-team[data-side=enemy]{--team-color:#ffc076}
.robattle-arena .robattle-team{grid-column:1;grid-row:1;align-self:center}
.robattle-arena .robattle-team[data-side=enemy]{grid-column:3}
.robattle-team[hidden]{display:none}
.robattle-team>.robattle-team-label{background:none;border:0;border-bottom:1px solid #385364;padding:0 0 4px;color:var(--team-color);font-size:9px;letter-spacing:.13em;text-transform:uppercase}
.robattle-health .armor-unit{padding:6px 7px;background:linear-gradient(135deg,#173140e8,#091925);border:1px solid #354c5b;border-top:2px solid var(--team-color);border-radius:6px;box-shadow:0 4px 10px #0003;min-width:0}
.robattle-health .armor-unit[data-side=enemy]{background:linear-gradient(135deg,#302a23e8,#141d25);border-color:#534638;border-top-color:var(--team-color)}
.robattle-health .armor-unit-title{display:flex;align-items:center;gap:5px;padding:0 0 4px;margin:0 0 2px;background:none;border:0;border-bottom:1px solid #ffffff12}
.robattle-health .armor-unit-title strong{margin:0;color:#f1ebd9;font-size:11px;overflow-wrap:anywhere;line-height:1.2}
.armor-unit-number{font:9px monospace;color:var(--team-color);border:1px solid #ffffff20;padding:2px;border-radius:3px}
.robattle-health .armor-unit>.armor-part{display:grid;position:relative;grid-template-columns:1fr auto;gap:1px;margin:3px 0 0;align-items:center;opacity:1;font-size:9px;line-height:1.15}
.robattle-health .armor-part>.armor-part-value{grid-column:2;grid-row:1;font-size:9px;color:#e6e4d9;font-variant-numeric:tabular-nums;white-space:nowrap}
.armor-part-label{grid-column:1;grid-row:1;color:#bdd0d8}
.robattle-health .armor-part>.armor-progress{position:absolute;width:1px;height:1px!important;overflow:hidden;clip-path:inset(50%);margin:0;opacity:0}
.armor-rack{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));height:11px;gap:0;filter:drop-shadow(0 1px 1px #0008);background:linear-gradient(90deg,#092232,#102c3b);border:1px solid #385567;border-radius:2px;overflow:hidden}
.armor-cell{position:relative;min-width:0;display:block}
.armor-cell::before,.armor-cell>i{content:'';position:absolute;inset:0;display:block;background-image:url('/client/assets/ui/robattle/armor-rail-v1.webp');background-repeat:no-repeat;background-size:1200% 250%;background-position:var(--segment-x) 50%}
.armor-cell::before{filter:grayscale(1) brightness(.35);opacity:.65}
.armor-cell>i{transition:clip-path 180ms ease-out}
.robattle-team[data-side=enemy] .armor-cell>i{filter:hue-rotate(215deg) saturate(.85)}
.robattle-health .armor-part>.armor-part-state{grid-column:1/-1;grid-row:3;font-size:7px;letter-spacing:.08em;color:#ef928b;min-height:0;line-height:1;text-align:left}
.armor-part-state:empty{display:none}
.robattle-health .armor-part[data-critical=true] .armor-part-value{color:#ffc076}
.robattle-health .armor-part[data-destroyed=true] .armor-part-label{color:#ee9b91}
.robattle-health .armor-part[data-destroyed=true] .armor-rack{opacity:.65}
.robattle-team:has(.armor-unit:nth-of-type(3)) .armor-unit{padding:4px 6px}
.robattle-team:has(.armor-unit:nth-of-type(3)) .armor-unit-title{padding-bottom:3px;margin-bottom:1px}
.robattle-team:has(.armor-unit:nth-of-type(3)) .armor-part{margin-top:2px}
.robattle-team:has(.armor-unit:nth-of-type(3)) .armor-rack{height:8px}
.hunt-compact .robattle-health{grid-template-columns:1fr;gap:8px}
.hunt-compact .robattle-team{gap:5px}.hunt-compact .robattle-team-label{font-size:8px;padding-bottom:4px}
.hunt-compact .robattle-health .armor-unit{padding:5px}.hunt-compact .robattle-health .armor-unit-title{padding-bottom:3px;margin-bottom:0}
.hunt-compact .robattle-health .armor-unit-title strong{font-size:10px}
.hunt-compact .robattle-health .armor-unit>.armor-part{margin-top:2px;gap:0;font-size:9px;line-height:1.2}
.hunt-compact .armor-rack{height:12px}.hunt-compact .robattle-health .armor-part>.armor-part-state{font-size:7px}
.hunt-compact .armor-unit-number{display:none}
@media(prefers-reduced-motion:reduce){.armor-cell>i{transition:none}}
@media(max-width:1100px){.robattle-arena{grid-template-columns:minmax(150px,1fr) minmax(240px,2fr) minmax(150px,1fr);gap:8px}.robattle-health .armor-unit{padding:8px}.armor-rack{height:25px}}
