/*
 * Theme Engine Phase 2 — canonical module adapters.
 *
 * These adapters map legacy module chrome onto the semantic token contract.
 * Classic keeps its Phase-1 declarations unchanged. Executive resolves all
 * shared chrome here; semantic financial/status/data-series colours are
 * intentionally excluded and remain owned by their modules.
 */

html[data-theme-preset="executive"] body,
html[data-theme-preset="executive"] main,
html[data-theme-preset="executive"] .content {
  background: var(--page-bg);
  color: var(--text-primary);
}

/* Header, page context, navigation and tab chrome. */
html[data-theme-preset="executive"] :is(.topbar,.global-header,.settings-heading,.enterprise-page-header,.dashboard-page-head,.data-operations-page-head,.branch-report-page-head,.comparison-page-head) {
  background: var(--header-bg);
  border-color: var(--border);
  color: var(--text-primary);
}
html[data-theme-preset="executive"] :is(.settings-tabs,.analytics-tabs,.analytics-primary-tabs,.analytics-phase-tabs,.reports-tabs,.forecasting-tabs,.cheques-new-view-tabs,.targets-performance-tabs,.import-tabs,.expense-view-segments,.operating-period-switch,.liq-segments,.scn-segments,.g3b-history-tabs,.import-center-reconcile-tabs) {
  background: var(--surface-subtle);
  border-color: var(--border);
  color: var(--text-secondary);
}
html[data-theme-preset="executive"] :is(.settings-tab,.analytics-tab,.analytics-phase-tab,.reports-tab,.forecasting-tab,.cheques-new-view-tabs button,.targets-performance-tab,.import-tab,.expense-view-segment,.operating-period-switch button,.liq-segments button,.scn-segments button,.g3b-history-tabs button,.import-center-reconcile-tab) {
  background: transparent;
  border-color: transparent;
  color: var(--text-secondary);
}
html[data-theme-preset="executive"] :is(.settings-tab,.analytics-tab,.analytics-phase-tab,.reports-tab,.forecasting-tab,.cheques-new-view-tabs button,.targets-performance-tab,.import-tab,.expense-view-segment,.operating-period-switch button,.liq-segments button,.scn-segments button,.g3b-history-tabs button,.import-center-reconcile-tab):is(:hover,.active,[aria-selected="true"]) {
  background: var(--surface);
  border-color: var(--accent-border);
  color: var(--accent);
  box-shadow: var(--shadow-card);
}

/* Major shared surfaces. Status, warning and error components are excluded. */
html[data-theme-preset="executive"] :is(
  .panel,.kpi,.settings-card,.settings-section,.toggle-card,.formula-box,.backup-panel,.backup-row,
  .optional-dashboard-widget,.dashboard-evaluation-widget,.dashboard-period-picker-card,.dashboard-period-column,
  .system-status-item,.system-status-loading,.health-cards>div,
  .backup-action-card,.backup-status-grid>div,.backup-preview-grid>div,.full-backup-preview,.data-center-settings-box,.deleted-items-center,
  .analytics-filter-bar,.analytics-main-kpi,.analytics-chart-card,.analytics-secondary-panel,.analytics-ranking-card,.analytics-compact-table-card,.analytics-branch-summary,.analytics-branch-detail-row,.analytics-empty-state,
  .sales-explorer-workspace,.sales-explorer-toolbar,.sales-explorer-kpi,.sales-explorer-grid-panel,.sales-explorer-options,.sales-explorer-table-wrap,.sales-explorer-scope-picker,.sales-explorer-scope-list,.sales-explorer-empty,
  .report-card,.reports-tab-panel,.reports-preview-panel,.reports-shared-filter,.branch-report-toolbar,.branch-report-paper,.branch-report-section,.branch-report-card,.branch-report-comparison-card,.branch-report-risk-notes,.comparison-kpi,.ranking-panel,.comparison-chart-panel,
  .ceo-status,.ceo-snapshot-card,.ceo-panel,.ceo-branch-row,.ceo-leak-card,.ceo-forecast>div,.ceo-quick-actions button,
  .operating-forecast-toolbar,.operating-summary-card,.operating-panel,.operating-table-panel,.operating-coverage,.operating-target-note,
  .liq-shell,.liq-toolbar,.liq-summary-card,.liq-chart-card,.liq-critical,.liq-quality,.liq-table-card,.liq-period-section,
  .cheques-new-shell,.cheques-new-head,.cheques-new-toolbar,.cheques-new-card,.cheques-new-filters,.cheques-new-section,.cheques-new-outstanding,.cheques-new-detail-item,
  .scn-shell,.scn-toolbar,.scn-panel,.scn-controls,.scn-change-grid,.scn-overlay-grid,.scn-table-wrap,
  .targets-sheet,.targets-sheet-head,.targets-toolbar,.targets-analysis-grid,.targets-dimensions,.targets-empty,
  .data-center-panel,.manual-entry-page,.data-operations-panel,.data-operations-section,.data-operations-summary-card,.data-operations-branch-detail,.data-operations-mode-card,.data-operations-all-branches,.data-operations-period-card,.gate3-card,.gate3-operation-card,.gate3-change-card,.gate3-history-cards,.g3b-month-actions,.g3b-review-summary,
  .official-import-center,.import-center-stage,.import-center-metric,.import-center-table-wrap,.import-center-readiness,.import-center-zero-option,.import-center-decision-panel,
  .expense-detail-panel,.detail-summary>div,.expense-matrix-wrap,.detail-empty,
  .recurring-season-form,.season-calendar,
  .sortable-item,.check-list>label,.threshold-grid>label,
  .about-identity-card,.about-live-summary,.about-status-group,.about-status-row
) {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text-primary);
  box-shadow: var(--shadow-card);
}
html[data-theme-preset="executive"] :is(.donut:after,.dashboard-evaluation-ring:before) { background:var(--surface); border-color:var(--divider); }
html[data-theme-preset="executive"] :is(.ceo-page-head h2,.ceo-panel h3,.ceo-snapshot-card strong,.ceo-branch-row b,.ceo-forecast strong) { color:var(--text-primary); }
html[data-theme-preset="executive"] :is(.ceo-page-head p,.ceo-panel p,.ceo-snapshot-card span,.ceo-branch-row small,.ceo-forecast span,.ceo-leak-card footer) { color:var(--text-muted); }
html[data-theme-preset="executive"] :is(
  .filters,.settings-section,.analytics-filter-bar,.sales-explorer-toolbar,.sales-explorer-options,.sales-explorer-scope-list,
  .operating-forecast-toolbar,.liq-toolbar,.cheques-new-toolbar,.cheques-new-filters,.scn-toolbar,.targets-toolbar,
  .data-operations-contextbar,.data-operations-tabs,.data-operations-status-filters,.data-operations-strip-control,.gate3-history-filters,.g3b-head,.import-center-source-review,.import-center-mapping-review,
  .detail-filters,.branch-report-filters,.comparison-filters,.classification-filter-bar
) {
  background: var(--surface-subtle);
  border-color: var(--border);
  color: var(--text-primary);
}

/* Typography hierarchy: semantic red/green financial cells are not touched. */
html[data-theme-preset="executive"] :is(h1,h2,h3,h4,h5,.page-title,.enterprise-page-title,.settings-card-head,.panel-head,.branch-report-head,.cheques-new-head,.targets-sheet-head) {
  color: var(--text-primary);
}
html[data-theme-preset="executive"] :is(.muted,.helper-text,.settings-card-head p,.panel-head p,.analytics-chart-note,.analytics-comparison-helper,.sales-explorer-column-hint,.cheques-new-filter-help,.targets-source-note,.operating-coverage-note,.liq-quality p,.import-center-stage>p,.about-status-row small) {
  color: var(--text-muted);
}

/* Forms and neutral controls. */
html[data-theme-preset="executive"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea,.search-box,.period-picker,.sales-explorer-table-search) {
  background: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text-primary);
}
html[data-theme-preset="executive"] :is(input,select,textarea):disabled,
html[data-theme-preset="executive"] :is(input,select,textarea)[readonly] {
  background: var(--input-disabled-bg);
  color: var(--text-disabled);
}
html[data-theme-preset="executive"] :is(.secondary,.outline,.ghost,.icon-button,.text-button,.cheques-new-btn,.sales-explorer-toggle,.analytics-impact-toggle,.liq-scope-reset,.scn-inline) {
  background: var(--surface);
  border-color: var(--border-strong);
  color: var(--text-secondary);
}
html[data-theme-preset="executive"] :is(.secondary,.outline,.ghost,.icon-button,.text-button,.cheques-new-btn,.sales-explorer-toggle,.analytics-impact-toggle,.liq-scope-reset,.scn-inline):hover {
  background: var(--control-hover-bg);
  border-color: var(--accent-border);
  color: var(--accent);
}

/* Financial tables and their sticky/floating chrome. */
html[data-theme-preset="executive"] :is(.table-wrap,.analytics-table-wrap,.branch-report-table-wrap,.reports-preview-table-wrap,.review-table-wrap,.expense-matrix-wrap,.ranking-table-wrap,.sales-explorer-table-wrap,.cheques-new-table-wrap,.cheques-new-outstanding-table-wrap,.targets-table-wrap,.data-operations-table-wrap,.gate3-history-table,.g3b-table,.import-center-table-wrap,.settings-table-wrap,.operating-table-scroll) {
  background: var(--surface);
  border-color: var(--border);
}
html[data-theme-preset="executive"] :is(table,.data-table,.expense-matrix,.sales-explorer-table,.cheques-new-table,.targets-table) :is(thead th) {
  background: var(--table-header-bg) !important;
  border-color: var(--table-border) !important;
  color: var(--text-secondary) !important;
}
html[data-theme-preset="executive"] :is(table,.data-table,.expense-matrix,.sales-explorer-table,.cheques-new-table,.targets-table) tbody tr:not(:is(
  .liq-sales-group-row,.liq-sales-child-row,.liq-expense-group-row,.liq-expense-child-row,.liq-cheque-group-row,.liq-cheque-child-row,
  .targets-row-dirty,.targets-row-locked,.loss-row,.expense-spike-row
))>td {
  background: var(--surface);
  border-color: var(--table-border);
}
html[data-theme-preset="executive"] :is(table,.data-table,.expense-matrix,.sales-explorer-table,.cheques-new-table,.targets-table) tbody tr:nth-child(even):not(:is(
  .liq-sales-group-row,.liq-sales-child-row,.liq-expense-group-row,.liq-expense-child-row,.liq-cheque-group-row,.liq-cheque-child-row,
  .targets-row-dirty,.targets-row-locked,.loss-row,.expense-spike-row
))>td {
  background: var(--surface-subtle);
}
html[data-theme-preset="executive"] :is(table,.data-table,.expense-matrix,.sales-explorer-table,.cheques-new-table,.targets-table) tbody tr:hover:not(:is(
  .liq-sales-group-row,.liq-sales-child-row,.liq-expense-group-row,.liq-expense-child-row,.liq-cheque-group-row,.liq-cheque-child-row,
  .targets-row-dirty,.targets-row-locked,.loss-row,.expense-spike-row
))>td {
  background: var(--table-row-hover);
}
html[data-theme-preset="executive"] :is(.subtotal,.sales-explorer-subtotal,.analytics-secondary-strip) { background: var(--table-subtotal-bg); border-color: var(--border); }
html[data-theme-preset="executive"] :is(tfoot td,.total-row,.grand-total) { background: var(--table-total-bg); border-color: var(--border-strong); color: var(--text-primary); }
html[data-theme-preset="executive"] .expense-matrix .category-cell { background:var(--table-sticky-bg)!important; color:var(--text-secondary)!important; border-color:var(--table-border)!important; }
html[data-theme-preset="executive"] :is(.page-scroll-sticky-header,.page-scroll-sticky-header>table,.page-scroll-sticky-header>table>thead,.page-scroll-sticky-header th) {
  background: var(--table-sticky-bg) !important;
  border-color: var(--table-border) !important;
  color: var(--text-secondary) !important;
}
html[data-theme-preset="executive"] .page-scroll-floating-rail {
  background: var(--surface-subtle);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-card);
}

/* Overlays. Dynamic content is covered by root-driven selectors. */
html[data-theme-preset="executive"] :is(.modal,.gate3-modal,.g3b-modal,.cheques-new-drawer-backdrop,.import-center-cancel-backdrop) {
  background: var(--backdrop-bg);
}
html[data-theme-preset="executive"] :is(dialog,.modal-card,.dialog-card,.drawer,.operating-forecast-drawer,.cheques-new-dialog,.cheques-new-batch-dialog,.cheques-due-review-dialog,.cheques-new-drawer,.scn-drawer,.gate3-modal-card,.g3b-modal-card,.import-center-cancel-dialog,.sales-classification-dialog,.popover,.score-popover) {
  background: var(--modal-bg);
  border-color: var(--border);
  color: var(--text-primary);
  box-shadow: var(--shadow-floating);
}
html[data-theme-preset="executive"] dialog::backdrop { background:var(--backdrop-bg); }
html[data-theme-preset="executive"] :is(.modal-card,.dialog-card,.operating-forecast-drawer,.cheques-new-dialog,.cheques-new-batch-dialog,.cheques-due-review-dialog,.cheques-new-drawer,.scn-drawer,.gate3-modal-card,.g3b-modal-card,.import-center-cancel-dialog) :is(header,footer,.drawer-head,.cheques-new-drawer-head,.operating-drawer-head) {
  background: var(--surface-subtle);
  border-color: var(--border);
}
html[data-theme-preset="executive"] :is(.chart-data-tooltip,.tooltip,.sidebar-nav-tooltip) {
  background: var(--tooltip-bg);
  border-color: color-mix(in srgb,var(--tooltip-text) 18%,transparent);
  color: var(--tooltip-text);
  box-shadow: var(--shadow-floating);
}

/* Accent consumers. Manual Accent is global for shared interaction chrome. */
:is(html[data-theme-preset="executive"],html[data-theme-manual-accent="true"]) :is(
  .primary,[data-appearance="primary"],.analytics-row-toggle,.sales-explorer-primary-actions button,.cheques-new-btn.primary,
  .operating-source-actions .primary,.liq-actions .primary,.scn-actions .primary,.targets-toolbar-actions .primary,
  .gate3-operation-card .primary,.import-center-stage button.primary
) {
  background: linear-gradient(135deg,var(--accent),var(--accent-active));
  border-color: var(--accent);
  color: var(--text-on-accent);
}
:is(html[data-theme-preset="executive"],html[data-theme-manual-accent="true"]) :is(.dashboard-period-month,.dashboard-period-quick-ranges button,.data-operations-period-years button,.data-operations-period-months>button):is(.active,[aria-pressed="true"]) {
  background:var(--accent);
  border-color:var(--accent);
  color:var(--text-on-accent);
}
:is(html[data-theme-preset="executive"],html[data-theme-manual-accent="true"]) :is(a.link,.text-button,.analytics-row-toggle,.sales-explorer-column-actions button,.liq-source-link,.targets-forecast-link,.import-center-category-details>summary) {
  color: var(--accent);
}
:is(html[data-theme-preset="executive"],html[data-theme-manual-accent="true"]) :is(.settings-tab,.analytics-tab,.analytics-phase-tab,.reports-tab,.forecasting-tab,.cheques-new-view-tabs button,.targets-performance-tab,.import-tab,.expense-view-segment,.operating-period-switch button,.liq-segments button,.scn-segments button,.g3b-history-tabs button,.import-center-reconcile-tab):is(.active,[aria-selected="true"]) {
  border-color: var(--accent-border);
  color: var(--accent);
}

/* Module-specific semantic exclusions: these selectors intentionally retain
 * their current colours and must never be derived from brand Accent. */
:is(.success,.warning,.danger,.error,.info,.negative,.positive,.good,.bad,.actual,.forecast,.committed,.confirmed,.reconstruction,.phase-reconstruction,.funding-gap,.cheques-new-status,.targets-status,.liq-status,.import-center-status,.gate3-status,.g3b-status) {
  --theme-semantic-owner: module;
}

@media (max-width:600px) {
  html[data-theme-preset="executive"] :is(dialog,.modal-card,.dialog-card,.cheques-new-dialog,.cheques-new-batch-dialog,.cheques-due-review-dialog,.gate3-modal-card,.g3b-modal-card,.import-center-cancel-dialog) {
    max-width:calc(100vw - 20px);
  }
}
