/* =========================================================
   v3.135 semantic theme core
   This is the only layer that owns application colors.
   Layout CSS must use these variables and must not define theme palettes.
   ========================================================= */
body[data-theme="dark"]{
  --ui-bg:#0b1118;--ui-surface:#111a23;--ui-surface-2:#18232e;--ui-surface-3:#202d39;
  --ui-fg:#f1f5f8;--ui-muted:#a8b4bf;--ui-border:#334452;--ui-input:#0d161f;
  --ui-button:#24313d;--ui-button-fg:#f3f6f8;--ui-button-hover:#2d3c49;
  --ui-active:#7f2b34;--ui-active-fg:#fff7f7;--ui-accent:#d3a85b;--ui-link:#a9c9ea;
  --ui-danger:#b6404b;--ui-success:#3c8b61;--ui-shadow:rgba(0,0,0,.28);
}
body[data-theme="medium"]{
  --ui-bg:#20252b;--ui-surface:#2b3138;--ui-surface-2:#343b43;--ui-surface-3:#3c444d;
  --ui-fg:#f3f5f7;--ui-muted:#c0c7cf;--ui-border:#56616c;--ui-input:#252b31;
  --ui-button:#3a434c;--ui-button-fg:#f7f9fa;--ui-button-hover:#46515c;
  --ui-active:#8b343d;--ui-active-fg:#fff;--ui-accent:#e0b666;--ui-link:#b9d8f2;
  --ui-danger:#d45a65;--ui-success:#65ad83;--ui-shadow:rgba(0,0,0,.18);
}
body[data-theme="light"]{
  --ui-bg:#f2f5f7;--ui-surface:#ffffff;--ui-surface-2:#f4f7f9;--ui-surface-3:#e8edf1;
  --ui-fg:#202830;--ui-muted:#5e6974;--ui-border:#cbd4dc;--ui-input:#ffffff;
  --ui-button:#e8edf1;--ui-button-fg:#25303a;--ui-button-hover:#dbe3e9;
  --ui-active:#8d3039;--ui-active-fg:#ffffff;--ui-accent:#8a6127;--ui-link:#315f8c;
  --ui-danger:#a8323d;--ui-success:#2f7953;--ui-shadow:rgba(24,35,48,.08);
}
body[data-theme="pastel"]{
  --ui-bg:#f6f1f5;--ui-surface:#fffafd;--ui-surface-2:#f5edf3;--ui-surface-3:#e9f1ed;
  --ui-fg:#332e36;--ui-muted:#675f69;--ui-border:#d6cad3;--ui-input:#fffefe;
  --ui-button:#eadfe8;--ui-button-fg:#3a323c;--ui-button-hover:#dfd1dc;
  --ui-active:#9a3f5d;--ui-active-fg:#fff;--ui-accent:#765528;--ui-link:#465f7a;
  --ui-danger:#9b4054;--ui-success:#49785e;--ui-shadow:rgba(93,71,88,.10);
}

body[data-theme]{background:var(--ui-bg)!important;color:var(--ui-fg)!important}
body[data-theme] :is(h1,h2,h3,h4,h5,h6,strong,b,label,legend){color:var(--ui-fg)}
body[data-theme] :is(.muted,.sub,.hint,.help,.meta,.description,.subtitle,small){color:var(--ui-muted)!important}
body[data-theme] a:not(.btn):not(.danger):not(.delete-btn){color:var(--ui-link)}

/* canonical surfaces */
body[data-theme] :is(
  .panel,.card,.stat,.modal-card,.dashboard-card,.form-section,.settings-card,.manage-card,.summary-card,
  .admin-section,.admin-detail-panel,.admin-menu-card,.admin-user-card,.admin-account-card,.admin-backup-form,
  .board-card,.board-list-card,.board-empty-card,.board-click-card-inner,.board-manager-block,.board-system-row,.board-custom-row,
  .clan-search-box,.clan-member-card,.clan-member-summary>div,.member-profile-panel,.skill-selector,.selected-skill-box,
  .armor-slot-card,.weapon-slot-card,.equipment-preview,.profile-popup-equipment>div,.profile-popup-stats>div,
  .boss-register-panel,.boss-time-info-card,.boss-drop-panel,.boss-analysis-modal-card,.boss-participant-modal-card,
  .my-boss-summary,.clan-boss-summary,.boss-info-summary,.boss-info-card,.boss-analysis-card,.boss-click-row,.boss-select-label,.boss-time-cell,
  .attendance-panel,.attendance-member-card,.siege-entry-form,.siege-card,.siege-report-card,.siege-notice-box,
  .distribution-write-hint,.distribution-history-list>div,.my-distribution-summary,.distribution-compose-fields,.distribution-live-calc,
  .clan-item-stock-summary,.clan-item-stock-modal-card,.clan-item-stock-group,.clan-item-stock-item,
  .global-search-detail,.global-search-input-wrap,.gs-char-eq,.gs-drop-history-row,.access-log-list,.admin-log-tabs,
  .info-card,.kill-list-table,.clan-name-only-card
){background:var(--ui-surface)!important;color:var(--ui-fg)!important;border-color:var(--ui-border)!important;box-shadow:none}

/* nested/secondary surfaces */
body[data-theme] :is(
  .clan-member-summary>div,.skill-chip-list,.profile-popup-skills span,.boss-time-row,.boss-summary-box,.boss-stat-card,
  .kill-list-tr,.kill-list-th,.admin-stats-grid>section,.siege-detail-stats>div,.siege-my-summary>div,.notice-check-item,
  .selected-skill-tag,.default-profile-option,.distribution-target-grid label,.siege-member-picker label
){background:var(--ui-surface-2)!important;color:var(--ui-fg)!important;border-color:var(--ui-border)!important}

/* forms and controls */
body[data-theme] :is(input,select,textarea){background:var(--ui-input)!important;color:var(--ui-fg)!important;border-color:var(--ui-border)!important;caret-color:var(--ui-fg)}
body[data-theme] :is(input,textarea)::placeholder{color:var(--ui-muted)!important;opacity:.92}
body[data-theme] :is(button,.btn,.board-edit-link,.tab-compose-open):not(.danger):not(.delete-btn):not(.active){background:var(--ui-button)!important;color:var(--ui-button-fg)!important;border-color:var(--ui-border)!important}
body[data-theme] :is(button,.btn,.board-edit-link,.tab-compose-open):not(.danger):not(.delete-btn):not(.active):hover{background:var(--ui-button-hover)!important}
body[data-theme] :is(.active,button.active,.btn.active,.board-tab.active,.info-top-tab.active){color:var(--ui-active-fg)!important}
body[data-theme] :is(.danger,.delete-btn){color:var(--ui-danger)!important;border-color:color-mix(in srgb,var(--ui-danger) 55%,var(--ui-border))!important}

/* tables and logs */
body[data-theme] :is(table,thead,tbody,tr,td,th,.kill-list-table,.kill-list-tr){border-color:var(--ui-border)!important;color:var(--ui-fg)!important}
body[data-theme] :is(thead th,.kill-list-th,.table-head,.board-head){background:var(--ui-surface-3)!important;color:var(--ui-fg)!important}
body[data-theme] :is(td,.kill-list-tr:not(.kill-list-th)>div){background:var(--ui-surface)!important;color:var(--ui-fg)!important}

/* relation cards: no theme can force white-on-white or black islands */
body[data-theme] .clan-name-only-card h3{color:var(--ui-fg)!important}
body[data-theme] .clan-relation-mark-empty{background:var(--ui-surface-3)!important;color:var(--ui-muted)!important;border-color:var(--ui-border)!important}
body[data-theme] .kill-list-tr :is(.kill-name,.kill-reason,div){color:var(--ui-fg)!important}

/* top chrome */
body[data-theme] :is(.topbar,.nav,.mobile-quick-dock,.mobile-bottom-nav,.user-id-dropdown){background:var(--ui-surface)!important;color:var(--ui-fg)!important;border-color:var(--ui-border)!important}
body[data-theme] :is(.topbar,.nav,.mobile-quick-dock,.mobile-bottom-nav) a{color:var(--ui-muted)!important}
body[data-theme] :is(.topbar,.nav,.mobile-quick-dock,.mobile-bottom-nav) a.active{color:var(--ui-fg)!important}
body[data-theme] :is(.brand,.brand b,.user-id-button){color:var(--ui-fg)!important}

/* pastel remains visibly pastel instead of collapsing into light */
body[data-theme="pastel"]{background:linear-gradient(145deg,#f6f1f5,#eef5f2) fixed!important}
body[data-theme="pastel"] :is(.topbar,.mobile-bottom-nav,.panel,.card,.board-list-card,.clan-member-card,.clan-name-only-card){box-shadow:0 3px 14px var(--ui-shadow)}

/* =========================================================
   v3.139 contrast-pair contract
   Components with intentionally strong/dark fills MUST use a paired
   foreground token. Never pair --ui-fg with a strong background.
   ========================================================= */
body[data-theme="dark"]{--ui-strong-bg:#26303b;--ui-strong-fg:#f4f7fa;--ui-counter-bg:#1a222c;--ui-counter-fg:#f4f7fa}
body[data-theme="medium"]{--ui-strong-bg:#46515c;--ui-strong-fg:#ffffff;--ui-counter-bg:#3b4650;--ui-counter-fg:#ffffff}
body[data-theme="light"]{--ui-strong-bg:#33414f;--ui-strong-fg:#ffffff;--ui-counter-bg:#24313d;--ui-counter-fg:#ffffff}
body[data-theme="pastel"]{--ui-strong-bg:#5c4858;--ui-strong-fg:#ffffff;--ui-counter-bg:#51414f;--ui-counter-fg:#ffffff}

body[data-theme] .clan-result-count{
  background:var(--ui-counter-bg)!important;
  color:var(--ui-counter-fg)!important;
  border-color:color-mix(in srgb,var(--ui-counter-bg) 72%,var(--ui-border))!important;
}
body[data-theme] .clan-result-count :is(span,strong,b,em,small){color:var(--ui-counter-fg)!important}

body[data-theme] :is(
  .clan-member-summary .skill-chip-list i,
  .selected-skill-tag,
  .status-badge.active,
  .rank-badge.active,
  .approval-badge.approved,
  .admin-role-badge
){background:var(--ui-strong-bg)!important;color:var(--ui-strong-fg)!important;border-color:color-mix(in srgb,var(--ui-strong-bg) 70%,var(--ui-border))!important}
body[data-theme] :is(
  .clan-member-summary .skill-chip-list i,
  .selected-skill-tag,
  .status-badge.active,
  .rank-badge.active,
  .approval-badge.approved,
  .admin-role-badge
) :is(span,strong,b,em,small){color:var(--ui-strong-fg)!important}

/* Bright themes: neutral legacy islands are semantic surfaces, never black. */
body[data-theme="light"] :is(.member-stat-pair,.boss-member-rate-header,.boss-info-mode-tabs a,.site-manage-tabs a,.boss-calendar-button,.boss-time-batch-row),
body[data-theme="pastel"] :is(.member-stat-pair,.boss-member-rate-header,.boss-info-mode-tabs a,.site-manage-tabs a,.boss-calendar-button,.boss-time-batch-row){
  background:var(--ui-surface-2)!important;color:var(--ui-fg)!important;border-color:var(--ui-border)!important;
}


/* =========================================================
   v6.12 PC audit pass: compact navigation + theme-safe legacy controls
   ========================================================= */
@media (min-width:900px){
  .desktop-nav-v612{display:flex;align-items:stretch;gap:2px;padding-inline:12px;overflow:visible}
  .desktop-nav-v612>a,.desktop-nav-v612>details>summary{min-height:48px;padding:0 15px;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-weight:850}
  .desktop-nav-v612 .desktop-all-menu-v611{margin-left:auto}
  .desktop-group-menu-v612{position:relative}
  .desktop-group-menu-v612>summary{list-style:none;cursor:pointer;color:var(--ui-muted);border-left:1px solid transparent;border-right:1px solid transparent}
  .desktop-group-menu-v612>summary::-webkit-details-marker{display:none}
  .desktop-group-menu-v612>summary::after{content:'▾';font-size:10px;margin-left:7px}
  .desktop-group-menu-v612[open]>summary,.desktop-group-menu-v612>summary.active{background:var(--ui-active)!important;color:var(--ui-active-fg)!important}
  .desktop-group-panel-v612{position:absolute;z-index:910;left:0;top:calc(100% + 7px);width:340px;padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:7px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:14px;box-shadow:0 18px 55px var(--ui-shadow)}
  .desktop-group-panel-v612 a{display:grid!important;justify-content:start!important;gap:3px;min-height:64px!important;padding:10px 12px!important;border:1px solid var(--ui-border)!important;border-radius:10px;background:var(--ui-surface-2)!important;color:var(--ui-fg)!important;text-decoration:none}
  .desktop-group-panel-v612 a small{font-size:11px}
  .desktop-all-menu-panel-v611{max-height:min(620px,calc(100vh - 120px));overflow:auto}
  .container{max-width:1320px}
}
/* Inline legacy admin controls must obey the same semantic palette in all four themes. */
body[data-theme] :is(.profile-mode-choice-v372,.excel-export-sheet-list-v379 span,.excel-export-check-grid-v380 label,.bottom-tab-choice-v381){background:var(--ui-surface-2)!important;color:var(--ui-fg)!important;border-color:var(--ui-border)!important}
body[data-theme] .excel-export-tools-v380 button{background:var(--ui-button)!important;color:var(--ui-button-fg)!important;border-color:var(--ui-border)!important}
body[data-theme] :is(.bottom-tab-choice-v381:has(input:checked),.excel-export-check-grid-v380 label:has(input:checked)){background:color-mix(in srgb,var(--ui-active) 14%,var(--ui-surface))!important;border-color:var(--ui-active)!important}
body[data-theme] .bottom-tab-choice-v381 .tab-check-v384{background:var(--ui-surface-3)!important;border-color:var(--ui-border)!important}
body[data-theme] .bottom-tab-choice-v381:has(input:checked) .tab-check-v384{background:var(--ui-active)!important;color:var(--ui-active-fg)!important;border-color:var(--ui-active)!important}
body[data-theme] .excel-export-btn-v379{background:var(--ui-active)!important;color:var(--ui-active-fg)!important;border:1px solid var(--ui-active)!important}
