.match-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0 4px}
.roster-entry,.squad-card{display:flex;align-items:center;gap:9px;min-width:0;border:1px solid #759f795e;border-left:3px solid #8dbc94;background:#173126;padding:9px}
.enemy-squad{border-color:#b573565e;border-left-color:#da8b6b;background:#35271feb}
.squad-portrait.hero-art{height:54px;width:38px;flex:0 0 38px;border:1px solid #b6a5736b;min-height:0}
.squad-copy{min-width:0;flex:1}.squad-copy strong{display:block;color:#f0e0ba;font:600 18px/1.15 var(--serif);overflow-wrap:anywhere;margin:4px 0}
.squad-role{display:block;font-size:12px;line-height:1.35;letter-spacing:.04em;color:#bcd1b5}.enemy-squad .squad-role{color:#e3b49a}
.squad-level{display:block;font-size:12px;line-height:1.4;color:#d0d5ba}
.squad-health{display:block;height:4px;background:#0a1b12;margin-top:5px}.squad-health i{display:block;height:100%;background:#8ab67b}.enemy-squad .squad-health i{background:#d38263}
.squad-strip{position:absolute;left:18px;right:18px;bottom:68px;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:570px;pointer-events:none}
.squad-card{padding:7px;background:#173126ed}.squad-card.enemy-squad{background:#35271fed}.squad-fallen{opacity:.62}.squad-card .squad-portrait{height:47px;width:32px;flex-basis:32px}
.squad-card .squad-copy strong{font-size:16px;line-height:1.15;max-height:2.3em;overflow:hidden}
.abilities .ability-slot{position:relative;flex:1;min-width:0}.ability-slot>.ability{width:100%}
.abilities.has-points .ability-slot{padding-top:48px}
.quick-skill-upgrade{position:absolute;top:0;left:0;width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:6px;padding:3px;border:1px solid #efd18a;background:#c7a65c;color:#17261c;font-size:20px;font-weight:700;line-height:1}
.quick-skill-upgrade small{font-size:14px;font-weight:600}.quick-skill-upgrade:hover{background:#efd391}.quick-skill-upgrade:disabled{background:#263c2d;color:#a8b796;border-color:#8b98755e;cursor:default}
.quick-skill-upgrade[hidden]{display:none}
@media(max-width:820px){.match-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.squad-strip{left:12px;right:12px;bottom:64px}.squad-card{gap:6px}.squad-card .squad-copy strong{font-size:14px}.squad-card .squad-role{font-size:12px;letter-spacing:0}}
@media(max-width:640px){.squad-strip{gap:5px}.squad-card{padding:6px 5px;border-left-width:2px;gap:5px;align-items:flex-start}.squad-card .squad-portrait{display:none}.squad-copy strong{font-size:17px}.squad-card .squad-copy strong{min-height:2.3em}.squad-role{font-size:12px;letter-spacing:0}.enemy-intel{font-size:12px;max-width:45%}.roster-entry{padding:8px}.quick-skill-upgrade{gap:4px}.selection-notes{font-size:12px!important;flex-wrap:wrap}}

/* Small, click-through team readout stays out of the fighting area. */
.squad-strip{top:12px;left:12px;right:auto;bottom:auto;width:184px;max-width:45%;grid-template-columns:1fr;gap:4px}
.squad-strip .squad-card{padding:5px 7px;background:#10251bd9;border-left-width:2px}
.squad-strip .enemy-squad{background:#30251ed9}
.squad-strip .squad-portrait,.squad-strip .squad-level{display:none}
.squad-strip .squad-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 6px}
.squad-strip .squad-copy strong{grid-column:1;grid-row:1;min-height:0;max-height:none;margin:0;font:600 12px/1.15 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.squad-strip .squad-role{grid-column:2;grid-row:1;font-size:9px;letter-spacing:0;line-height:1}
.squad-strip .squad-health{grid-column:1/-1;height:3px;margin:0}
.map-title{left:218px}
@media(max-width:640px){.squad-strip{top:9px;left:9px;width:163px;max-width:44%}.squad-strip .squad-card{padding:5px}.squad-strip .squad-copy strong{font-size:11px}.map-title{display:none}}

/* Transparent status cards and a top-of-screen message stack. */
.squad-strip .squad-card{opacity:.65;background:#10251b8c}.squad-strip .enemy-squad{background:#30251e8c}.squad-strip .squad-fallen{opacity:.45}
.battle-messages{position:fixed;top:max(8px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 28px));z-index:16;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}
.battle-messages .toast{position:static;inset:auto;transform:none;width:fit-content;max-width:100%;margin:0;background:#10231bab;border-color:#c4ac684d;box-shadow:none;padding:8px 14px;pointer-events:none;text-align:center}
.battle-messages .toast{display:none;opacity:0}.battle-messages .toast.visible{display:block;opacity:.78;transform:none}
@media(max-width:640px){.battle-messages{top:max(5px,env(safe-area-inset-top));width:calc(100% - 20px)}.battle-messages .toast{padding:6px 10px;font-size:12px}}
.hero-art.portrait-nezha,.portrait-nezha{background-image:url('assets/nezha-portrait-emblems.webp');background-size:320% auto!important;background-position:20% 10%!important;background-repeat:no-repeat}
