/* Readable body copy; keep decorative lettering for names and short headings. */
html body[data-faction] #game-ui .battle-header #mode-label{font-size:13px;line-height:1.3}
html body[data-faction] #game-ui :is(.food-source strong,.hill-status strong,.siege-scoreline,.siege-worksites strong,.larvae-status b,.alloutwar-status b){font-size:15px;line-height:1.25}
html body[data-faction] #game-ui :is(.food-source em,.supply-totals,.hill-status span,.hill-status small,.siege-worksites small,.siege-rally,.larvae-status small,.alloutwar-status small){font-size:12px;line-height:1.35}
html body[data-faction] #game-ui :is(.tactical-alert,.kill-confirmation){font-size:14px;line-height:1.35}
html body[data-faction] #game-ui .war-row>span{font-size:13px;line-height:1.35}
html body[data-faction] #game-ui .war-row>b{font-size:11px}
html body[data-faction] #game-ui .vital-values b{font-size:14px;line-height:1.3}
html body[data-faction] #game-ui .vital-current{display:block;font-variant-numeric:tabular-nums}
html body[data-faction] #game-ui .vital-maximum{display:block;font:11px/1.15 var(--field-body);color:#eadfca}
html body[data-faction] #game-ui :is(.ability-help,#combat-feedback){font-size:14px;line-height:1.35}
html body[data-faction] #game-ui :is(#interact small,#ability small,.keyboard-controls){font-size:12px;line-height:1.25}
html body[data-faction] #game-ui .deployment-balance{font-size:12px;line-height:1.4}
html body[data-faction] #game-ui .promotion-status{display:none}
html body[data-faction] #game-ui .personal-points-card>span{font-size:12px}
html body[data-faction] #game-ui .personal-points-card>small{font-size:11px}

/* Cards contain role, survivability and access. Detailed mechanics belong to
   the selected-class drawer, so increasing type does not create stat soup. */
html body[data-faction] #game-ui.respawning #respawn:not([hidden]){width:min(980px,calc(100vw - 40px));padding:20px 22px;top:18px;bottom:18px;height:calc(100dvh - 36px);max-height:980px;gap:6px}
html body[data-faction] #respawn>small{font-size:14px;line-height:1.4}
html body[data-faction] #respawn>#respawn-time{font-size:38px}
html body[data-faction] #respawn #respawn-economy{font-size:16px;line-height:1.35;font-weight:700;margin:0 0 4px}
html body[data-faction] #respawn .friends-respawn-group h3{font-size:23px;line-height:1.1;margin:10px 0 9px}
html body[data-faction] #respawn .friends-respawn-grid{gap:10px}
html body[data-faction] #respawn .respawn-elite-hint{flex-shrink:0;margin:2px 0 5px;color:#f2d496;font:14px/1.4 var(--field-body);text-wrap:balance}
html body[data-faction] #respawn [data-respawn-kind]{grid-template-columns:70px minmax(0,1fr);grid-template-rows:auto auto;gap:4px 10px;min-height:134px;padding:13px 15px;align-content:center}
html body[data-faction] #respawn .respawn-model{width:70px;height:52px;grid-row:1 / 3}
html body[data-faction] #respawn .respawn-role-name{font-size:25px;align-self:center;line-height:1.05}
html body[data-faction] #respawn [data-respawn-kind] .respawn-card-copy{display:grid;gap:3px;font:14px/1.3 var(--field-body);letter-spacing:0;margin:0;color:#f1e2c4}
html body[data-faction] #respawn .respawn-job{color:#d9d9cb}
html body[data-faction] #respawn .respawn-stats{font-variant-numeric:tabular-nums}
html body[data-faction] #respawn .respawn-access{font-weight:700;color:#cbe0b3}
html body[data-faction] #respawn [data-access="cost"] .respawn-access{color:#f3c582}
html body[data-faction] #respawn :is([data-access="full"],[data-access="locked"]) .respawn-access{color:#f1b0a1}
html body[data-faction] #respawn .respawn-slots{font-size:13px;color:#d1cbb9}
html body[data-faction] #respawn .career-class-rank{grid-column:1;grid-row:3;font:11px/1.2 var(--field-display);margin:0;text-align:center}
html body[data-faction] #respawn [data-respawn-kind].selected{outline-width:3px;outline-offset:-4px}
html body[data-faction] #respawn [data-respawn-kind]:disabled{opacity:.7}
html body[data-faction] #respawn #respawn-detail{flex-shrink:0;margin-top:4px;border:1px solid #d6bd8670;background:#0d1b2055;text-align:left;font:14px/1.45 var(--field-body)}
html body[data-faction] #respawn #respawn-detail summary{padding:8px 12px;cursor:pointer;font:21px/1.2 var(--field-display);color:#f3dbab;letter-spacing:.03em}
html body[data-faction] #respawn .respawn-detail-body{max-height:136px;overflow-y:auto;padding:0 13px 10px;overscroll-behavior:contain}
html body[data-faction] #respawn .respawn-detail-body p{margin:7px 0;font-size:14px;line-height:1.45}
html body[data-faction] #respawn .respawn-detail-body b{color:#f2d496}
html body[data-faction] #respawn #class-status{font-size:14px;line-height:1.3;flex-shrink:0}
html body[data-faction] #respawn #confirm-respawn{min-height:48px;margin-top:4px;font-size:25px}
@media(min-width:1100px){html body[data-faction] #game-ui.respawning #respawn:not([hidden]){width:min(1120px,calc(100vw - 40px))}html body[data-faction] #respawn .friends-respawn-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.damage-edge{position:absolute;inset:0;z-index:5;pointer-events:none;border:3px solid #e6826266;box-shadow:inset 0 0 35px 5px #a92b1633;background:none}
.damage-edge[data-kind="guard"]{border-color:#e5cb8e66;box-shadow:inset 0 0 25px 2px #dca95c1a}
.damage-edge[data-kind="break"]{border-color:#f9b963aa;box-shadow:inset 0 0 38px 6px #d68b3f30}
.confirmed-hit{position:absolute;left:50%;top:calc(50% + 42px);transform:translateX(-50%);z-index:10;pointer-events:none;color:#fff2c6;font:700 15px/1.2 var(--field-body);letter-spacing:.08em;text-shadow:0 2px 3px #0a1515,-1px -1px #0a1515,1px 1px #0a1515}
.confirmed-hit::before{content:'✕';margin-right:6px;font-size:21px}
.confirmed-hit[data-kind="blocked"]{color:#e6cd94}.confirmed-hit[data-kind="shatter"]{color:#ffc28b}
/* The existing notice band avoids objective rows; the border is peripheral. */
html body[data-battle-controls="touch"] #game-ui #combat-feedback{top:calc(50% - 68px);font-size:13px;line-height:1.3;max-width:230px;padding:5px 9px;white-space:nowrap}
html body[data-battle-controls="touch"] #game-ui .mobile-battle-notice{font-size:13px;max-height:54px}
html body[data-battle-controls="touch"] #game-ui .vital-values b{font-size:12px;line-height:1.25}
html body[data-battle-controls="touch"] #game-ui .arcade-status .class-label{font-size:11px;line-height:1.15;min-height:13px;max-height:26px;white-space:normal}
html body[data-battle-controls="touch"] #game-ui .movement-zone-label{font-size:10px}
html body[data-battle-controls="touch"] #game-ui #movement-state{font-size:11px}
html body[data-battle-controls="touch"] #game-ui :is(.food-source strong,.hill-status strong,.siege-mobile-summary,.larvae-status b,.alloutwar-status b){font-size:12px}
html body[data-battle-controls="touch"] #game-ui :is(.food-source em,.supply-totals,.hill-status span,.hill-status small,.larvae-status small,.alloutwar-status small){font-size:11px}
html body[data-battle-controls="touch"] #game-ui .battle-header #mode-label{font-size:11px}
html body[data-battle-controls="touch"] #game-ui :is(#ability small,#interact small){font-size:11px}
html body[data-battle-controls="touch"] #game-ui :is(#guard-label,#ability-label,#interact-label){font-size:15px;line-height:1.15}
html body[data-battle-controls="touch"] #game-ui #guard-status{font-size:10px;line-height:1.25}
@media(max-width:650px){
 html body[data-faction] #game-ui.respawning #respawn:not([hidden]){width:calc(100vw - 20px);top:calc(8px + var(--phone-top,0px));bottom:calc(8px + var(--phone-bottom,0px));height:calc(100dvh - 16px - var(--phone-top,0px) - var(--phone-bottom,0px));padding:14px;gap:5px}
 html body[data-faction] #respawn>span{font-size:18px}
 html body[data-faction] #respawn>#respawn-time{font-size:30px}
 html body[data-faction] #respawn>small{font-size:13px}
 html body[data-faction] #respawn #respawn-economy{font-size:14px}
 html body[data-faction] #respawn .friends-respawn-grid{grid-template-columns:1fr;gap:9px}
 html body[data-faction] #respawn [data-respawn-kind]{grid-template-columns:64px minmax(0,1fr);min-height:130px;padding:12px;gap:4px 9px}
 html body[data-faction] #respawn .respawn-model{width:64px;height:48px;grid-row:1 / 3}
 html body[data-faction] #respawn .respawn-role-name{font-size:25px}
 html body[data-faction] #respawn [data-respawn-kind] .respawn-card-copy{grid-column:2;grid-row:2;font-size:14px}
 html body[data-faction] #respawn #respawn-detail summary{font-size:20px}
 html body[data-faction] #respawn .respawn-detail-body{max-height:124px}
 html body[data-faction] #respawn #confirm-respawn{font-size:23px}
}
@media(max-height:520px){
 html body[data-faction] #game-ui.respawning #respawn:not([hidden]){top:8px;height:calc(100dvh - 16px);padding:10px 16px;gap:3px}
 html body[data-faction] #respawn>#respawn-time{font-size:25px}html body[data-faction] #respawn>small{display:none}
 html body[data-faction] #respawn #respawn-detail summary{font-size:18px;padding:5px 10px}
 html body[data-faction] #respawn #confirm-respawn{min-height:42px;font-size:22px}
 html body[data-faction] #respawn .respawn-detail-body{max-height:75px}
}
