/* Member configuration only: existing facilities keep their own layout. */
.party-loadout-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); flex:0 0 auto; gap:4px; padding:8px 12px; border-bottom:1px solid var(--line); background:var(--surface); }
.party-loadout-tabs button { display:flex; min-width:0; min-height:48px; justify-content:center; align-items:center; gap:8px; padding:8px; border:1px solid var(--line); border-radius:var(--ga-radius-button,3px); background:transparent; color:var(--muted); font:inherit; font-size:var(--ga-font-control,.875rem); cursor:pointer; }
.party-loadout-tabs button[aria-pressed="true"] { border-color:var(--party-color,var(--gold)); background:linear-gradient(120deg,rgb(var(--party-color-rgb,var(--accent-rgb)) / 16%),transparent); color:var(--text); box-shadow:inset 0 -2px var(--party-color,var(--gold)); }
.party-loadout-tab-icon { width:24px; height:24px; object-fit:contain; }
.party-loadout-tabs button:focus-visible,.party-gear-summary>summary:focus-visible { outline:2px solid var(--gold-strong); outline-offset:-3px; }
.party-settings-equipment { min-width:0; }
.party-loadout-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.party-loadout-section-heading small { color:var(--gold); font-size:var(--ga-font-caption,.6875rem); letter-spacing:.12em; }
.party-loadout-section-heading h3,.party-gear-picker h3 { margin:4px 0; font-size:var(--ga-font-section,.9375rem); }
.party-loadout-section-heading em { color:var(--muted); font-style:normal; font-size:var(--ga-font-note,.75rem); }
.party-loadout-note,.party-loadout-readonly,.party-loadout-empty { font-size:var(--ga-font-body,.875rem); line-height:1.7; overflow-wrap:anywhere; }
.party-loadout-note { margin:8px 0 12px; color:var(--muted); }
.party-loadout-readonly { padding:12px; border:1px solid var(--line); }
.party-loadout-empty { padding:16px 8px; color:var(--muted); }
.party-gear-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:8px; }
.party-gear-summary { min-width:0; border:1px solid var(--line); border-radius:4px; background:var(--surface); }
.party-settings-dialog .party-gear-slot { display:grid; min-width:0; min-height:80px; grid-template-columns:32px minmax(0,1fr) 10px; align-items:center; gap:8px; padding:10px 8px; text-align:left; list-style:none; }
.party-gear-summary>summary { cursor:pointer; }
.party-gear-summary>summary::-webkit-details-marker { display:none; }
.party-gear-summary[open] { border-color:var(--party-color,var(--gold)); }
.party-gear-summary[open]>summary i { transform:rotate(180deg); }
.party-gear-art { display:block; width:32px; height:32px; object-fit:contain; }
.party-gear-slot span { min-width:0; }
.party-gear-slot small { display:block; color:var(--muted); font-size:var(--ga-font-note,.75rem); font-weight:400; line-height:1.5; }
.party-settings-dialog .party-gear-slot strong { display:block; font-size:var(--ga-font-item-name,.8125rem); line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
.party-gear-slot i { color:var(--gold); font-style:normal; }
.party-gear-summary-body { padding:0 8px 12px; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.party-gear-summary-body .equip-confirm-stats { grid-template-columns:minmax(0,1fr); font-size:var(--ga-font-note,.75rem); }
.party-gear-summary-body .implicit-trait-note { min-width:0; font-size:var(--ga-font-note,.75rem); }
.party-gear-change-link { width:100%; margin-top:16px; }

.party-orb-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:8px; }
.party-orb-summary-slot { min-width:0; border:1px solid var(--line); border-radius:4px; background:var(--surface); }
.party-orb-summary-slot>summary,.party-orb-summary-slot.is-empty { display:flex; min-height:112px; align-items:center; flex-direction:column; justify-content:space-between; gap:8px; padding:8px 4px; list-style:none; }
.party-orb-summary-slot>summary { cursor:pointer; }
.party-orb-summary-slot>summary::-webkit-details-marker { display:none; }
.party-orb-summary-slot>summary:focus-visible,.party-orb-command-summary>summary:focus-visible { outline:2px solid var(--gold-strong); outline-offset:-3px; }
.party-orb-summary-slot[open] { border-color:var(--party-color,var(--gold)); }
.party-orb-summary-slot small { display:flex; width:100%; justify-content:space-between; gap:4px; color:var(--muted); font-size:var(--ga-font-caption,.6875rem); }
.party-orb-summary-name { display:grid; min-width:0; gap:4px; justify-items:center; text-align:center; }
.party-orb-summary-name strong { font-size:var(--ga-font-item-name,.8125rem); line-height:1.5; overflow-wrap:anywhere; }
.party-orb-summary-name em { font-style:normal; }
.party-orb-summary-slot.is-dormant { border-style:dashed; color:var(--muted); }
.party-orb-summary-slot.is-dormant .magic-orb { filter:grayscale(1); opacity:.65; }
.party-orb-summary-effect { padding:0 8px 8px; border-top:1px solid var(--line); font-size:var(--ga-font-note,.75rem); line-height:1.7; overflow-wrap:anywhere; }
.party-orb-command-summary { margin-top:12px; padding:8px 12px; border:1px solid var(--line); border-radius:4px; background:var(--surface); }
.party-orb-command-summary>summary { display:flex; min-height:44px; justify-content:space-between; align-items:center; gap:8px; cursor:pointer; font-size:var(--ga-font-body,.875rem); }
.party-orb-command-summary ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:0; list-style:none; }
.party-orb-command-summary li { display:grid; min-width:0; grid-template-columns:32px minmax(0,1fr); align-items:center; gap:4px 8px; font-size:var(--ga-font-item-name,.8125rem); }
.party-orb-command-summary li>small { grid-column:1 / -1; color:var(--muted); font-size:var(--ga-font-caption,.6875rem); }
.party-orb-command-summary li>span { overflow-wrap:anywhere; }
.party-orb-command-summary li em { display:block; color:var(--muted); font-style:normal; font-size:var(--ga-font-caption,.6875rem); }
.party-orb-change-link { width:100%; margin-top:16px; }

@media(max-width:390px) { .party-loadout-tabs { padding:8px; }.party-loadout-tabs button { gap:4px; padding:6px 4px; }.party-loadout-tabs span { white-space:nowrap; }.party-loadout-tab-icon { width:20px; height:20px; }.party-settings-dialog .party-gear-slot { grid-template-columns:28px minmax(0,1fr) 10px; gap:6px; }.party-gear-slot .party-gear-art { width:28px; height:28px; } }

/* Names of owned outfits in the existing appearance dialog. */
.character-picker-dialog .character-option-name { width:100%; min-width:0; color:var(--text); font-size:var(--ga-font-note,.75rem); line-height:1.5; letter-spacing:normal; overflow-wrap:anywhere; }
.character-picker-dialog .character-appearance-status { flex:0 0 auto; margin-block:8px; font-size:var(--ga-font-note,.75rem); }
.character-picker-dialog .character-appearance-status p { margin:0 0 4px; }
.character-picker-dialog .character-appearance-status button { min-height:44px; font-size:var(--ga-font-control,.875rem); }

/* Starter names remain readable in the registration selection grid. */
.character-picker-register .character-option-name { display:block; min-width:0; font-size:var(--ga-font-note,.75rem); line-height:1.5; letter-spacing:normal; overflow-wrap:anywhere; }

/* Member settings chrome follows the screen theme. Keep member identity, swatches,
   traits, item rarities, orb attributes and status colours on their own tokens. */
.party-settings-backdrop:has(>.party-settings-dialog) {
  background:radial-gradient(circle at 50% 8%,rgb(var(--accent-rgb) / 10%),transparent 34%),color-mix(in srgb,var(--surface-deep) 88%,transparent);
}
.party-settings-dialog {
  border-color:var(--line);
  background:radial-gradient(circle at 2% 0%,rgb(var(--accent-rgb) / 15%),transparent 32%),var(--dialog);
  box-shadow:0 24px 70px #000a,0 0 32px rgb(var(--accent-rgb) / 10%),inset 0 1px #ffffff0d;
}
.party-settings-dialog::before { background:linear-gradient(90deg,transparent,var(--gold) 35% 65%,transparent); }
.party-settings-dialog .party-settings-dialog-heading { border-color:var(--line); background:linear-gradient(90deg,rgb(var(--accent-rgb) / 8%),transparent 55%); }
.party-settings-dialog .party-settings-kicker>i { background:var(--gold); box-shadow:0 0 7px rgb(var(--accent-rgb) / 70%); }
.party-settings-dialog .party-settings-kicker .eyebrow,
.party-settings-dialog .party-settings-close>i,
.party-settings-dialog .party-settings-jump-nav small,
.party-settings-dialog .party-settings-section-heading small { color:var(--gold); }
.party-settings-dialog .party-settings-kicker>span,
.party-settings-dialog .party-settings-close>i { border-color:var(--line); }
.party-settings-dialog .party-settings-jump-nav { border-color:var(--line); background:var(--inset); }
.party-settings-dialog .party-settings-jump-nav button { border-color:var(--line); }
.party-settings-dialog .party-settings-jump-nav button:hover { background:var(--surface-hover); }
.party-settings-dialog .party-settings-dialog-body { scrollbar-color:rgb(var(--accent-rgb) / 38%) transparent; }
.party-settings-dialog .party-loadout-tabs button[aria-pressed="true"] {
  border-color:var(--selected-border); color:var(--selected-text);
  background:linear-gradient(120deg,rgb(var(--accent-rgb) / 16%),transparent);
  box-shadow:inset 0 -2px var(--gold);
}
.party-settings-dialog .character-settings-current .character-settings-change { border-color:var(--line); background:var(--surface); }
.party-settings-dialog .character-settings-change i { color:var(--gold); }
.party-settings-dialog .character-settings-change:hover:not(:disabled) { border-color:var(--accent-border-strong); background:var(--surface-hover); }
.party-settings-dialog .character-name-form input { background:var(--input); }
.party-settings-dialog .character-combat-option.selected {
  border-color:var(--selected-border); background:radial-gradient(circle at 10% 20%,rgb(var(--accent-rgb) / 18%),transparent 48%),rgb(var(--accent-rgb) / 8%);
  box-shadow:inset 3px 0 var(--gold),0 0 14px rgb(var(--accent-rgb) / 8%);
}
.party-settings-dialog .character-combat-option>i { color:var(--gold); }
.party-settings-dialog .party-role-status { border-color:var(--line); background:var(--inset); }
.party-settings-dialog .party-role-stat { border-color:rgb(var(--accent-rgb) / 46%); background:var(--inset); }
.party-settings-dialog :is(.party-gear-summary,.party-orb-summary-slot)[open] { border-color:var(--selected-border); }

/* The shared member dialog uses quiet surfaces and reserves the accent for active choices. */
#party-settings-dialog {
  --member-panel: color-mix(in srgb, var(--surface-2) 40%, var(--inset));
  --member-accent-fill: rgb(var(--accent-rgb) / 15%);
  --member-divider: color-mix(in srgb, var(--line) 58%, transparent);
  border-radius: 14px;
}
#party-settings-dialog::before { opacity: .55; }
#party-settings-dialog .party-settings-dialog-heading {
  grid-template-columns: 40px minmax(0, 1fr) 44px;
  gap: 8px; padding: 12px; border: 0;
}
#party-settings-dialog .party-settings-heading-mark { width: 40px; height: 40px; }
#party-settings-dialog .party-settings-heading-copy { overflow-wrap: anywhere; }
#party-settings-dialog .party-settings-heading-copy > p { display: block; overflow: visible; }
#party-settings-dialog .party-settings-close {
  justify-content: center; width: 44px; min-height: 44px; padding: 0;
  border-radius: 50%; background: var(--member-accent-fill);
}
#party-settings-dialog .party-settings-close > i { border: 0; color: var(--text); font-size: 1.125rem; }
#party-settings-dialog .party-settings-close > span { display: none; }
#party-settings-dialog .party-settings-jump-nav {
  gap: 4px; margin-inline: 12px; padding: 4px; border: 0;
  border-radius: 9px; background: var(--inset);
}
#party-settings-dialog .party-settings-jump-nav button { border: 0; border-radius: 6px; gap: 4px; padding-inline: 4px; color: var(--text); }
#party-settings-dialog .party-settings-jump-nav span { white-space: normal; overflow-wrap: anywhere; }
#party-settings-dialog .party-settings-dialog-body { padding: 12px; background: none; }
#party-settings-dialog :is(.party-settings-section-heading, .party-inline-roles-heading) { flex-wrap: wrap; gap: 4px 12px; }
#party-settings-dialog .party-settings-section-heading > em { white-space: normal; }
#party-settings-dialog .character-settings-current {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px; padding: 12px; border: 0; border-radius: 10px;
  background: radial-gradient(ellipse at top left, rgb(var(--party-color-rgb, var(--accent-rgb)) / 22%), transparent 64%), var(--member-panel);
  box-shadow: none;
}
#party-settings-dialog .character-settings-current::before { content: none; }
#party-settings-dialog .character-settings-portrait,
#party-settings-dialog .character-settings-portrait img { width: 100%; height: 84px; object-fit: contain; }
#party-settings-dialog .character-settings-current-copy { grid-column: 2 / -1; }
#party-settings-dialog .character-settings-current-copy strong {
  font-size: var(--ga-font-page); white-space: normal; overflow-wrap: anywhere;
}
#party-settings-dialog .character-settings-current-copy :is(small, em) { font-size: var(--ga-font-note); overflow-wrap: anywhere; }
#party-settings-dialog .character-settings-current > :is(.character-settings-change, .monster-forms-member-entry) {
  grid-column: span 2; min-width: 0; min-height: 44px; padding: 6px 8px;
  border: 0; border-radius: 6px; background: var(--inset); box-shadow: none;
  color: var(--text); font-size: var(--ga-font-note); white-space: normal; overflow-wrap: anywhere;
}
#party-settings-dialog .character-settings-current > .monster-forms-member-entry:only-of-type { grid-column: 1 / -1; }
#party-settings-dialog .character-settings-current > :is(.character-settings-change, .monster-forms-member-entry):enabled:hover { background: var(--surface-hover); }
#party-settings-dialog .companion-identity-note { display: block; font-size: var(--ga-font-note); overflow-wrap: anywhere; }
#party-settings-dialog .companion-identity-note::before { content: none; }
#party-settings-dialog .party-blessing-card {
  grid-template-columns: minmax(0, 1fr) minmax(0, auto); margin-top: 0; padding: 8px 12px;
  border: 0; border-radius: 8px; background: var(--member-panel); overflow-wrap: anywhere;
}
#party-settings-dialog :is(.character-combat-control, .party-inline-roles) { border-color: var(--member-divider); }
#party-settings-dialog .character-combat-options { gap: 4px; padding: 4px; border-radius: 9px; background: var(--inset); }
#party-settings-dialog .character-combat-option {
  grid-template-columns: minmax(0, 1fr); align-content: start; min-height: 76px;
  padding: 8px; border: 0; border-radius: 6px; background: transparent;
  box-shadow: none; overflow-wrap: anywhere;
}
#party-settings-dialog .character-combat-option strong { font-size: var(--ga-font-body); }
#party-settings-dialog .character-combat-option > i {
  position: absolute; inset-block-start: 8px; inset-inline-end: 8px; display: grid; place-items: center;
  width: 18px; height: 18px; padding: 0; font-size: 0;
}
#party-settings-dialog .character-combat-option[aria-pressed="true"] { background: var(--member-accent-fill); box-shadow: inset 0 -2px var(--gold); }
#party-settings-dialog .character-combat-option[aria-pressed="true"] strong { padding-inline-end: 22px; }
#party-settings-dialog .character-combat-option:enabled:hover { background: var(--surface-hover); }
#party-settings-dialog .party-role-status { border: 0; border-radius: 9px; padding: 8px; background: var(--member-panel); }
#party-settings-dialog .party-role-status-heading { flex-wrap: wrap; gap: 4px 8px; }
#party-settings-dialog .party-role-status-heading > small { font-size: var(--ga-font-note); }
#party-settings-dialog .party-role-stat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
#party-settings-dialog .party-role-stat {
  grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: start;
  border: 0; background: transparent; text-align: center;
}
#party-settings-dialog .party-role-stat :is(small, strong) { white-space: normal; overflow-wrap: anywhere; }
#party-settings-dialog .party-role-stat small { font-size: var(--ga-font-note); }
#party-settings-dialog .party-role-stat strong { font-size: var(--ga-font-body); }
#party-settings-dialog .party-inline-role-choice {
  border-color: var(--member-divider); border-radius: 8px; background: var(--member-panel); overflow-wrap: anywhere;
}
#party-settings-dialog .party-inline-role-choice[aria-pressed="true"] {
  border-color: var(--member-divider); background: var(--member-accent-fill); box-shadow: inset 0 -2px var(--gold);
}
#party-settings-dialog .party-inline-role-choice[aria-busy="true"] { border-color: var(--gold); }
@media (max-width: 22.5rem) {
  #party-settings-dialog .party-role-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #party-settings-dialog .party-inline-role-choices { grid-template-columns: minmax(0, 1fr); }
}

/* Appearance picker common UI follows the screen theme; images keep identity colours. */
.character-picker-backdrop:has(>.character-picker-dialog) {
  background:radial-gradient(circle at 50% 30%,rgb(var(--accent-rgb) / 11%),transparent 35%),color-mix(in srgb,var(--surface-deep) 88%,transparent);
}
.character-picker-dialog { border-color:var(--line); background:radial-gradient(circle at 86% 0,rgb(var(--accent-rgb) / 13%),transparent 30%),linear-gradient(155deg,var(--surface-2),var(--surface-deep) 72%); }
.character-picker-dialog::before { background:linear-gradient(90deg,transparent,rgb(var(--accent-rgb) / 75%),transparent); }
.character-picker-dialog .character-picker-dialog-heading,
.character-picker-dialog .character-picker-count,
.character-picker-dialog .character-picker-description,
.character-picker-dialog .character-picker-dialog-actions .secondary-button { border-color:var(--line); }
.character-picker-dialog .character-picker-scroll { border-color:var(--line); background:radial-gradient(circle at 50% 0,rgb(var(--accent-rgb) / 8%),transparent 34%),var(--inset); }
.character-picker-dialog .character-option { border-color:var(--line); background:linear-gradient(155deg,var(--surface-2),var(--surface-deep)); }
.character-picker-dialog .character-option::before { background:linear-gradient(90deg,transparent,rgb(var(--accent-rgb) / 24%),transparent); }
.character-picker-dialog .character-option .character-option-number,
.character-picker-dialog .character-picker-dialog-actions>span { color:var(--muted); }
.character-picker-dialog .character-option-selected { border-color:var(--selected-border); background:var(--surface-deep); color:var(--selected-text) !important; box-shadow:0 0 10px rgb(var(--accent-rgb) / 16%); }
.character-picker-dialog .character-option-selected i,
.character-picker-dialog .character-picker-count span i,
.character-picker-dialog .character-picker-dialog-actions>span i { background:var(--gold-strong); box-shadow:0 0 7px rgb(var(--accent-rgb) / 75%); }
.character-picker-dialog .character-picker-count span { color:var(--gold-strong); }
.character-picker-dialog .character-option:is(.selected,[aria-pressed="true"],:has(input:checked)) {
  border-color:var(--selected-border); color:var(--selected-text);
  background:radial-gradient(circle at 50% 22%,rgb(var(--accent-rgb) / 20%),transparent 48%),linear-gradient(180deg,rgb(var(--accent-rgb) / 30%),var(--surface-deep));
  box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / 16%),0 0 16px rgb(var(--accent-rgb) / 14%);
}

/* The monster picker already uses screen tokens; keep its initial focus themed too. */
.monster-companions-dialog:focus-visible { outline:2px solid var(--gold-strong); outline-offset:-3px; }

/* Reviewed member settings descendants: common chrome, never identity or attributes. */
.party-settings-dialog .party-settings-heading-mark .abyss-mechanism-mark {
  --mechanism-glow:var(--accent-rgb);
  background:radial-gradient(circle,rgb(var(--accent-rgb) / 24%),rgb(var(--accent-rgb) / 10%) 52%,transparent 55%);
}
.party-settings-dialog .combat-role-effective em { color:var(--muted); }
.equipment-deck-shell .inventory-control-deck::before { background:linear-gradient(90deg,transparent,rgb(var(--accent-rgb) / 58%),rgb(var(--accent-rgb) / 42%),transparent); }
.equipment-deck-shell .inventory-part-tab { color:var(--muted); }
.equipment-deck-shell .inventory-part-tab.selected { color:var(--selected-text); }
.equipment-deck-shell .inventory-part-tab.selected .inventory-part-icon { filter:drop-shadow(0 0 5px rgb(var(--accent-rgb) / 50%)); }
.equipment-deck-shell .inventory-part-tab.selected::after { background:var(--gold-strong); box-shadow:0 0 8px rgb(var(--accent-rgb) / 70%); }
.equipment-deck-shell .inventory-part-tab:focus-visible { outline-color:var(--gold-strong); }
.equipment-deck-shell .hero-command-slot.empty { border-color:var(--line); }
:is(.party-settings-dialog,.magic-orb-screen,.orb-picker-dialog,.orb-command-dialog,.orb-review-dialog) .magic-orb.empty {
  background:radial-gradient(circle at 32% 25%,rgb(255 255 255 / 90%) 0%,var(--surface-2) 38%,var(--surface-deep) 100%);
}
/* The cabinet's empty slots use a dashed outline instead of a filled jewel. */
.magic-orb-screen .orb-slot .magic-orb.empty { background:none; }
.command-picker-backdrop:has(>#command-picker-dialog) {
  --abyss-modal-accent-rgb:var(--accent-rgb);
  background:radial-gradient(circle at 50% 34%,rgb(var(--accent-rgb) / 11%),transparent 34%),color-mix(in srgb,var(--surface-deep) 89%,transparent);
}
#command-picker-dialog {
  border-color:var(--line);
  background:radial-gradient(circle at 92% 0,rgb(var(--accent-rgb) / 12%),transparent 31%),linear-gradient(155deg,var(--surface-2),var(--surface-deep) 68%);
}
#command-picker-dialog .command-picker-close { border-color:var(--line); background:var(--inset); color:var(--muted); }
#command-picker-dialog .command-picker-option { border-color:var(--line); background:var(--inset); }
#command-picker-dialog .command-picker-option.selected {
  border-color:var(--selected-border); background:linear-gradient(145deg,var(--selected-start),var(--selected-end));
  box-shadow:inset 3px 0 var(--gold),0 0 14px rgb(var(--accent-rgb) / 7%);
}
#command-picker-dialog .command-picker-option:not(:disabled):hover,
#command-picker-dialog .command-picker-close:hover { border-color:var(--accent-border-strong); background:var(--surface-hover); }
#command-picker-dialog .command-picker-option-copy strong { color:var(--text); }
#command-picker-dialog .command-picker-option-copy b { color:var(--muted); }
#command-picker-dialog :is(.command-picker-option-icon,.command-picker-empty-icon) { border-color:var(--line); }
#command-picker-dialog .command-picker-option>i { border-color:var(--line); }
#command-picker-dialog .command-picker-option.selected>i { border-color:var(--selected-border); }
:is(#party-settings-dialog,#command-picker-dialog,.orb-picker-dialog,.orb-command-dialog,.orb-review-dialog):focus-visible {
  outline:2px solid var(--gold-strong); outline-offset:-3px;
}
