.storage-caption{margin:0 0 14px;color:var(--ui-muted);font-size:12px;line-height:1.5}
.shared-storage-prep .pack-heading:before,.shared-storage-prep .pack-heading:after{display:none}
.shared-storage-prep .prep-model{height:490px}
.field-supplies{margin:12px 94px 0 0;padding:0;border:0;background:none}
.supply-heading{margin-bottom:10px;text-align:center}
.supply-heading h2{margin:0;font:600 18px/1 var(--ui-font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--ui-muted)}
.supply-slots{display:grid;grid-template-columns:repeat(4,80px);justify-content:center;gap:12px}
.shared-storage-prep .supply-slots .ui-slot--equipment{width:80px;min-height:80px;aspect-ratio:1;padding:8px}
.shared-storage-prep .supply-slots .ui-slot--equipment:before{display:none}
.storage-actions[hidden]{display:none}
.storage-actions .ui-button{width:100%}
.shared-storage-prep .prep-roster{margin-top:58px}
.shared-storage-prep .prep-item-details{min-height:0}
.shared-storage-prep .storage-inspector{min-height:0}
.shared-storage-prep .prep-stats .trait-line svg{width:21px;height:21px}
@media(max-width:700px){.shared-storage-prep .prep-model{height:350px}.field-supplies{margin-right:76px}.supply-heading h2{font-size:16px}.supply-slots{grid-template-columns:repeat(4,minmax(44px,62px));gap:6px}.shared-storage-prep .supply-slots .ui-slot--equipment{width:100%;min-height:54px}}
@media(min-width:701px) and (max-width:1180px){.supply-slots{grid-template-columns:repeat(4,minmax(44px,62px));gap:8px}.shared-storage-prep .supply-slots .ui-slot--equipment{width:100%;min-height:62px}}


.shared-storage-prep .supply-heading h2{position:static}

.shared-storage-prep .storage-inspector .ui-inspector__heading{margin-bottom:10px}

.shared-storage-prep .ui-stat-table .ui-stat-row .stat-difference{font-size:16px;font-style:normal}
.shared-storage-prep .ui-stat-table .ui-stat-row .stat-difference--better{color:var(--ui-shade-b3e4ae)}
.shared-storage-prep .ui-stat-table .ui-stat-row .stat-difference--worse{color:var(--ui-danger)}
.shared-storage-prep .ui-stat-table .ui-stat-row .stat-difference--same{color:var(--ui-muted)}

/* Align supplies with the action below the four-row storage grid. */
.shared-storage-prep .prep-equipment{top:10px}
@media(min-width:1181px){.shared-storage-prep .prep-model{height:437.333px}}
@media(min-width:701px) and (max-width:1180px){.shared-storage-prep .prep-model{height:369.375px}}

/* Original framed roster cards; amber identifies the viewed member. */
.shared-storage-prep .prep-roster .ui-avatar[aria-pressed]{background:var(--ui-shade-203136);border:1px solid var(--ui-shade-486168);outline:0;box-shadow:none;transform:none}
.shared-storage-prep .prep-roster .ui-avatar[aria-pressed=true]{background:linear-gradient(135deg,var(--ui-shade-4e4931),var(--ui-shade-323b32));border-color:var(--ui-focus);box-shadow:0 3px 14px var(--ui-shade-ddbc7033)}
.shared-storage-prep .prep-roster .ui-avatar img{opacity:1;filter:none}
.shared-storage-prep .prep-roster .ui-avatar:focus-visible{outline:2px solid var(--ui-focus);outline-offset:4px}

/* Full-width roster with a reserved control at either end. */
.shared-storage-prep .prep-roster{margin-right:0;padding-inline:50px;gap:12px}
.shared-storage-prep .prep-roster .ui-avatar{flex:0 1 84px;width:84px;min-height:110px}
.shared-storage-prep .prep-roster .ui-avatar img{width:100%;max-width:74px;height:74px}
.shared-storage-prep .prep-roster:before{left:14px;font-size:23px}
.shared-storage-prep .roster-arrow{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;min-height:44px;padding:8px;border:0;border-radius:4px;background:none;color:var(--ui-cyan);cursor:pointer}
.shared-storage-prep .roster-arrow--previous{left:0}
.shared-storage-prep .roster-arrow--next{right:0}
.shared-storage-prep .roster-arrow:hover{color:var(--ui-focus);background:var(--ui-surface)}
.shared-storage-prep .prep-roster:before{display:none}
.shared-storage-prep .prep-roster .roster-unknown{border:1px solid var(--ui-shade-486168);background:var(--ui-shade-203136);cursor:default}
.shared-storage-prep .unknown-portrait{display:grid;place-items:center;width:100%;height:88px;font:600 48px/1 var(--ui-font-display);color:var(--ui-muted)}
@media(max-width:700px){.shared-storage-prep .prep-roster{padding-inline:34px;gap:6px;min-height:86px}.shared-storage-prep .roster-arrow{width:32px;padding:4px}.shared-storage-prep .prep-roster .ui-avatar{min-height:88px;flex:1 1 0;width:0}.shared-storage-prep .prep-roster .ui-avatar img{height:54px}.shared-storage-prep .unknown-portrait{height:69px;font-size:36px}}
@media(min-width:1321px){.shared-storage-prep .prep-roster:before{display:block;left:46px}}

/* Fit complete cards, then page through the remaining roster. */
.shared-storage-prep .prep-roster:before{display:none}
.shared-storage-prep .prep-roster .ui-avatar{flex:0 0 84px;width:84px}
.shared-storage-prep .roster-arrow:disabled{opacity:.3;cursor:default;background:none;color:var(--ui-muted)}
@media(max-width:700px){.shared-storage-prep .prep-roster .ui-avatar{flex:0 0 62px;width:62px}}

/* Membership remains independent of the amber viewing frame. */
.shared-storage-prep .prep-roster .ui-avatar.expedition-excluded img{opacity:.4;filter:grayscale(1)}
.shared-storage-prep .storage-actions .ui-button,.shared-storage-prep .loadout-actions .ui-button{min-height:54px;font-size:25px;text-transform:uppercase;color:var(--ui-cyan);border-color:var(--ui-border);background:var(--ui-panel);box-shadow:none}
.shared-storage-prep .storage-actions .ui-button:hover,.shared-storage-prep .loadout-actions .ui-button:hover{background:var(--ui-surface);border-color:var(--ui-cyan)}
.shared-storage-prep .combat-section h2{display:flex;align-items:center;gap:12px}
.combat-preview{font:400 16px/1 var(--ui-font-display);color:var(--ui-cyan);text-transform:none;letter-spacing:0}
.combat-preview[hidden]{display:none}
.prep-mobile-tabs,.loadout-actions{display:none}
@media(max-width:700px){
 .prep-mobile-tabs{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 0 12px;margin-bottom:10px;background:var(--ui-bg)}
 .prep-mobile-tabs .ui-button[aria-selected=true]{border-color:var(--ui-focus);color:var(--ui-focus);background:var(--ui-surface)}
 .shared-storage-prep .prep-workspace[data-mobile-tab]>.prep-character,.shared-storage-prep .prep-workspace[data-mobile-tab]>.prep-pack,.shared-storage-prep .prep-workspace[data-mobile-tab]>.prep-stats{display:none}
 .shared-storage-prep .prep-workspace[data-mobile-tab=loadout]>.prep-character,.shared-storage-prep .prep-workspace[data-mobile-tab=storage]>.prep-pack,.shared-storage-prep .prep-workspace[data-mobile-tab=stats]>.prep-stats{display:block}
 .loadout-actions:not([hidden]){display:flex;margin-right:76px}
 .loadout-actions .ui-button{width:100%}
 .loadout-actions[hidden]{display:none}
}
@media(max-width:370px){
 .shared-storage-prep .prep-heading{grid-template-columns:auto 1fr}
 .shared-storage-prep .prep-heading h1{grid-column:2;grid-row:1;text-align:left;font-size:23px}
 .shared-storage-prep .prep-actions{grid-column:1 / -1;grid-row:2;width:100%;justify-content:space-between}
}
/* Teal equipment actions stay distinct from the yellow launch action. */
.shared-storage-prep .storage-actions .ui-button,.shared-storage-prep .loadout-actions .ui-button{background:var(--ui-shade-609da1);border:1px solid var(--ui-shade-71b8c2);color:var(--ui-on-member)}
.shared-storage-prep .storage-actions .ui-button:hover,.shared-storage-prep .loadout-actions .ui-button:hover{background:var(--ui-shade-71b8c2);border-color:var(--ui-cyan)}

/* Open header: navigation, responsive roster, launch. */
.shared-storage-prep .prep-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:24px;align-items:center;border:0;background:none;box-shadow:none;padding:0;margin-bottom:30px}
.shared-storage-prep .prep-heading .prep-roster{grid-column:2;grid-row:1;position:relative;display:flex;justify-content:center;align-items:center;gap:12px;min-width:0;min-height:110px;margin:0;padding:0 50px;border:0;background:none;box-shadow:none}
.shared-storage-prep .prep-heading .prep-roster .ui-avatar{margin-top:0}
.shared-storage-prep .prep-actions{grid-column:3;grid-row:1}
.loadout-membership{display:flex;justify-content:center;margin:14px 94px 0 0}
.loadout-membership .ui-button{min-width:120px}
@media(max-width:700px){
 .shared-storage-prep .prep-heading{grid-template-columns:1fr auto;gap:18px;margin-bottom:12px}
 .shared-storage-prep .prep-heading .ui-button--back{grid-column:1;grid-row:1}
 .shared-storage-prep .prep-actions{grid-column:2;grid-row:1;width:auto;justify-content:flex-end}
 .shared-storage-prep .prep-heading .prep-roster{grid-column:1 / -1;grid-row:2;padding-inline:34px;min-height:88px;gap:6px}
 .loadout-membership{margin-right:76px}
}

.shared-storage-prep .prep-heading .prep-roster{width:100%;max-width:472px;justify-self:center;box-sizing:border-box}
@media(max-width:700px){.shared-storage-prep .prep-heading .prep-roster{max-width:334px}}
@media(min-width:701px){.shared-storage-prep .prep-heading{grid-template-columns:minmax(0,1fr) minmax(0,min(472px,calc(100% - 400px))) minmax(0,1fr)}}
/* Roster and model share a measured center at every breakpoint. */
.shared-storage-prep .prep-heading{position:relative;--ui-prep-roster-center:50%;--ui-prep-roster-width:472px}
.shared-storage-prep .prep-heading .prep-roster{left:var(--ui-prep-roster-center,50%);width:var(--ui-prep-roster-width,472px);max-width:none;transform:translateX(-50%);justify-self:start}
@media(min-width:701px){.shared-storage-prep .prep-heading{grid-template-columns:1fr 1fr;min-height:110px}.shared-storage-prep .prep-heading .prep-roster{position:absolute;top:0;grid-column:1 / -1}.shared-storage-prep .prep-actions{grid-column:2}}

/* Expedition membership and viewing focus are separate avatar states. */
.shared-storage-prep .prep-roster .ui-avatar[data-member]{border:1px solid var(--ui-shade-486168);background:linear-gradient(135deg,var(--ui-shade-203238),var(--ui-shade-1a2c32));box-shadow:none}
.shared-storage-prep .prep-roster .ui-avatar[data-member] img{opacity:.45;filter:grayscale(1)}
.shared-storage-prep .prep-roster .ui-avatar.expedition-selected{border-color:var(--ui-member-border);background:linear-gradient(135deg,var(--ui-member-start),var(--ui-member-end))}
.shared-storage-prep .prep-roster .ui-avatar.expedition-selected img{opacity:1;filter:none}
.shared-storage-prep .prep-roster .ui-avatar[data-member][aria-pressed=true]{border-color:var(--ui-focus);background:linear-gradient(135deg,var(--ui-shade-4e4931),var(--ui-shade-323b32));box-shadow:0 3px 14px var(--ui-shade-ddbc7033)}
.shared-storage-prep .prep-roster .ui-avatar[data-member][aria-pressed=true] img{opacity:1;filter:none}
.shared-storage-prep .prep-roster .roster-unknown{background:linear-gradient(135deg,var(--ui-shade-203238),var(--ui-shade-1a2c32))}

.storage-pages{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:var(--ui-muted)}
.storage-pages[hidden]{display:none}
.storage-pages .ui-button{min-width:44px}
/* Avatar-local membership, independent of the currently viewed character. */
.shared-storage-prep .prep-roster .roster-card{position:relative;flex:0 0 84px;width:84px;overflow:hidden;border:1px solid var(--ui-border);border-radius:8px;background:linear-gradient(145deg,var(--ui-shade-203238),var(--ui-shade-1a2c32))}
.shared-storage-prep .prep-roster .roster-card.expedition-selected{border-color:var(--ui-member-border);background:linear-gradient(145deg,var(--ui-member-start),var(--ui-member-end))}
.shared-storage-prep .prep-roster .roster-card.viewed{border-color:var(--ui-focus);background:linear-gradient(145deg,var(--ui-member-end),var(--ui-panel));box-shadow:0 3px 14px var(--ui-shade-ddbc7033)}
.shared-storage-prep .prep-roster .roster-card .ui-avatar{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;min-height:126px;margin:0;padding:12px 3px 8px;border:0;border-radius:0;background:none;box-shadow:none;color:var(--ui-text)}
.shared-storage-prep .prep-roster .roster-card .ui-avatar img{width:74px;height:74px;max-width:100%;object-fit:contain;opacity:.45;filter:grayscale(1)}
.shared-storage-prep .prep-roster .roster-card.expedition-selected img,.shared-storage-prep .prep-roster .roster-card.viewed img{opacity:1;filter:none}
.shared-storage-prep .prep-roster .roster-card .ui-avatar>span{font:600 18px/24px var(--ui-font-display);text-transform:uppercase}
.shared-storage-prep .prep-roster .roster-card .ui-avatar:focus-visible{outline-offset:-4px}
.roster-checkbox{position:absolute;top:0;right:0;display:grid;place-items:center;width:44px;height:44px;cursor:pointer}
.roster-checkbox input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.roster-checkbox span{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--ui-border);border-radius:4px;background:var(--ui-bg);pointer-events:none}
.roster-checkbox svg{width:18px;height:18px;visibility:hidden}
.roster-checkbox input:checked+span{background:var(--ui-member-end);border-color:var(--ui-focus);color:var(--ui-focus)}
.roster-checkbox input:checked+span svg{visibility:visible}
.roster-checkbox input:focus-visible+span{outline:2px solid var(--ui-focus);outline-offset:3px}
.roster-checkbox:hover input:not(:disabled)+span{border-color:var(--ui-focus)}
.roster-checkbox input:disabled{cursor:default}
.roster-checkbox input:disabled+span{opacity:.35}
.shared-storage-prep .prep-roster .roster-card .unknown-portrait{display:grid;place-items:center;height:106px;font-size:38px;color:var(--ui-muted)}
.shared-storage-prep .prep-heading,.shared-storage-prep .prep-heading .prep-roster{min-height:142px}
.shared-storage-prep #auto-equip{min-width:120px;background:var(--ui-shade-609da1);color:var(--ui-on-member);border-color:var(--ui-cyan)}
.shared-storage-prep #auto-equip:hover{background:var(--ui-shade-71b8c2)}
@media(max-width:700px){.shared-storage-prep .prep-roster .roster-card{flex-basis:62px;width:62px}.shared-storage-prep .prep-roster .roster-card .ui-avatar{min-height:112px;padding-top:16px;gap:8px}.shared-storage-prep .prep-roster .roster-card .ui-avatar img{width:54px;height:58px}.shared-storage-prep .prep-roster .roster-card .ui-avatar>span{font-size:15px;line-height:22px}.shared-storage-prep .prep-roster .roster-card .unknown-portrait{height:88px}.shared-storage-prep .prep-heading .prep-roster{min-height:124px}}
.shared-storage-prep #auto-equip{text-transform:uppercase;font:600 22px/1 var(--ui-font-display)}
.shared-storage-prep .prep-roster .roster-card .ui-avatar[data-member][aria-pressed]{background:none;border:0;box-shadow:none}
.shared-storage-prep .prep-roster .roster-card .ui-avatar>.unknown-portrait{font-size:38px}
