/* Squad dossier — the saved-squad "view card" (replaces the old squad.png). Mirrors
   the legend-dossier look (dark glass, VLBOT gold) but shows a 1–5 roster: the leader
   enlarged + crowned, then the squad. Minimal stats — this is a visual roster, not a
   stat sheet. Each portrait opens that unit's full dossier. */
#squadCard{--sc-accent:#e2c58d;--sc-rgb:226,197,141;--sc-lead:#f3c85a;color:#e9eef7;background:#080d16;width:min(760px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 44px);padding:0;border:1px solid #cbd9ff26;border-radius:22px;overflow:auto;box-shadow:0 40px 160px #000b,0 0 80px rgba(var(--sc-rgb),.06);font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;scrollbar-color:#3b465a #080d16}
#squadCard[data-fleet="1"]{--sc-accent:#9edbfa;--sc-rgb:118,199,245;--sc-lead:#8fd3ff}
#squadCard[data-fleet="1"] .sc-roster{--sc-grid:rgba(118,199,245,.1)}
#squadCard::backdrop{background:#02050bdc;backdrop-filter:blur(14px)}
#squadCard[open]{animation:sc-arrive .5s cubic-bezier(.2,.8,.2,1) both}
#squadCard *{box-sizing:border-box}
#squadCard [hidden]{display:none!important}
#squadCard button{font:inherit;cursor:pointer}
#squadCard button:focus-visible{outline:2px solid var(--sc-accent);outline-offset:4px}
.sc-shell{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 0%,rgba(var(--sc-rgb),.10),transparent 60%),linear-gradient(160deg,#17213322,transparent 55%)}
.sc-shell::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.14' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.sc-close{position:absolute;z-index:5;right:16px;top:14px;width:36px;height:36px;display:grid;place-items:center;border:1px solid #ffffff20;border-radius:50%;background:#111925;color:#c5d0e0;font-size:24px!important;line-height:1;transition:background .2s,transform .2s}
.sc-close:hover{background:#263349;transform:rotate(90deg)}
.sc-topline{display:flex;align-items:center;gap:20px;padding:22px 70px 18px 28px;border-bottom:1px solid #ffffff10;font-size:9px;letter-spacing:.2em;color:#a4aebf}
.sc-brand{font-size:15px;letter-spacing:.12em;font-weight:850;color:#eff4ff}.sc-brand>span{color:var(--sc-accent)}
.sc-edition{margin-left:auto;white-space:nowrap}.sc-edition b{margin-left:10px;color:var(--sc-accent)}
.sc-head{padding:26px 30px 6px}
.sc-kicker{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.2em;font-weight:600;color:var(--sc-accent)}.sc-kicker>span{width:18px;height:1px;background:var(--sc-accent)}
#squadCard h2{font-size:clamp(23px,3vw,37px);font-weight:550;letter-spacing:-.05em;line-height:1.1;margin:11px 0 14px;color:#f5f4f0;overflow-wrap:anywhere;text-wrap:balance}
.sc-badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:4px}
.sc-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:7px;letter-spacing:.02em;border:1px solid #ffffff14;background:#ffffff05;color:#cdd7e6}
.sc-badge.cat{background:rgba(96,165,250,.13);color:#93c5fd;border-color:rgba(96,165,250,.3)}
.sc-badge.vlbot{background:rgba(148,163,184,.12);color:#aeb8c6;border-color:rgba(148,163,184,.3)}
.sc-badge.hotutils{background:rgba(96,165,250,.12);color:#93c5fd;border-color:rgba(96,165,250,.4)}
.sc-badge.hotutils_guild{background:rgba(167,139,250,.12);color:#c4b5fd;border-color:rgba(167,139,250,.45)}
.sc-count{margin-left:auto;font-size:10px;letter-spacing:.1em;color:#8b98ab;white-space:nowrap}
.sc-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:15px 0 4px;padding:9px;border:1px solid rgba(var(--sc-rgb),.15);border-radius:10px;background:linear-gradient(105deg,rgba(var(--sc-rgb),.08),transparent 72%)}
.sc-metrics>span{display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto auto;column-gap:5px;min-width:0}.sc-metrics i{grid-row:1 / span 2;display:grid;place-items:center;color:var(--sc-accent);font-style:normal;font-size:14px}.sc-metrics b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8eef8;font-size:10px;font-weight:650}.sc-metrics small{color:#7f8da2;font-size:7px;letter-spacing:.09em;white-space:nowrap}
.sc-roster{position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:14px 20px;padding:28px 26px 14px;background-image:linear-gradient(var(--sc-grid,#e2c58d0b) 1px,transparent 1px),linear-gradient(90deg,var(--sc-grid,#e2c58d0b) 1px,transparent 1px);background-size:34px 34px;background-position:center;border-top:1px solid #ffffff08;border-bottom:1px solid #ffffff08;overflow:hidden}
.sc-roster::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(var(--sc-rgb),.08) 48%,transparent 53%);transform:translateY(-120%);animation:sc-scan 6s ease-in-out infinite}
.sc-roster::after{content:"";position:absolute;inset:12px 20%;border:1px solid rgba(var(--sc-rgb),.13);border-radius:50%;transform:rotate(-12deg) scaleY(.25);pointer-events:none}
.sc-unit{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;width:98px;border:0;background:transparent;padding:4px;border-radius:14px;transition:transform .18s ease,background .2s}
.sc-unit:hover,.sc-unit:focus-visible{transform:translateY(-3px);background:#ffffff05}
.sc-unit.lead{width:132px}
.sc-face{position:relative;width:84px;height:84px;border-radius:50%;overflow:hidden;background:#111e2e;box-shadow:0 0 0 1px rgba(var(--sc-rgb),.35),0 0 0 4px #080f19,0 10px 26px #0008}
.sc-unit.lead .sc-face{width:116px;height:116px;box-shadow:0 0 0 2px var(--sc-lead),0 0 0 5px #080f19,0 0 22px rgba(243,200,90,.35),0 14px 34px #0009}
.sc-face img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;filter:contrast(1.06)}
.sc-face .sc-initial{display:grid;place-items:center;height:100%;font-size:30px;color:var(--sc-accent)}
.sc-unit.lead .sc-face .sc-initial{font-size:44px}
.sc-face::after{content:'';position:absolute;inset:0;border-radius:50%;pointer-events:none;background:linear-gradient(0deg,#07111b66,transparent 55%)}
.sc-crown{position:absolute;top:-6px;left:50%;transform:translateX(-50%);z-index:3;font-size:13px;color:#0f1218;background:var(--sc-lead);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 10px rgba(243,200,90,.5);border:2px solid #080d16}
.sc-role{font-size:8px;letter-spacing:.14em;font-weight:700;text-transform:uppercase;color:var(--sc-lead)}
.sc-name{font-size:11.5px;font-weight:600;color:#e7edf7;line-height:1.25;max-width:100%;overflow-wrap:anywhere;text-wrap:balance}
.sc-unit.lead .sc-name{font-size:13px}
.sc-req{display:inline-flex;gap:4px;flex-wrap:wrap;justify-content:center}
.sc-req>span{font-size:8.5px;font-weight:700;padding:1px 6px;border-radius:5px;background:#ffffff08;color:#cdb98a;border:1px solid #e2c58d2e;white-space:nowrap}
.sc-reserves{display:flex;gap:3px;align-items:center;justify-content:center;margin-top:1px}
.sc-reserves>i{font-size:9px;color:#a78bfa;font-style:normal}
.sc-reserves img{width:20px;height:20px;border-radius:50%;object-fit:cover;border:1px solid rgba(167,139,250,.6);opacity:.9}
.sc-view{display:block;font-size:8px;letter-spacing:.06em;color:#7f8ca1;opacity:0;transition:opacity .2s}
.sc-unit:hover .sc-view,.sc-unit:focus-visible .sc-view{opacity:1}
.sc-hint{text-align:center;font-size:10px;color:#8793a6;padding:4px 20px 2px}
.sc-footer{display:flex;justify-content:space-between;gap:16px;padding:16px 30px;margin-top:10px;border-top:1px solid #ffffff10;font-size:8px;letter-spacing:.15em;color:#8b9ab0}
.sc-footer>span:first-child{display:flex;gap:8px;align-items:center}
.sc-footer i{width:5px;height:5px;background:var(--sc-accent);display:inline-block;border-radius:50%;box-shadow:0 0 10px rgba(var(--sc-rgb),.6)}
.sc-footer>span:last-child{letter-spacing:.02em;color:#b5a483;font-style:italic}
@keyframes sc-arrive{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@keyframes sc-scan{0%,100%{transform:translateY(-120%)}50%{transform:translateY(120%)}}
.sc-unit{animation:sc-pop .5s calc(var(--i,0)*.07s) both}
@keyframes sc-pop{from{opacity:0;transform:translateY(10px) scale(.92)}to{opacity:1;transform:none}}
@media(max-width:560px){.sc-topline{padding:20px 58px 16px 20px;gap:14px}.sc-edition{display:none}.sc-head{padding:22px 20px 4px}.sc-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sc-roster{gap:12px 14px;padding:18px 14px 8px}.sc-unit{width:84px}.sc-unit.lead{width:108px}.sc-face{width:72px;height:72px}.sc-unit.lead .sc-face{width:98px;height:98px}.sc-footer{padding:14px 20px}.sc-footer>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){#squadCard,#squadCard *,#squadCard *::before{animation:none!important;transition:none!important}}
