/* Single source of truth for all CockpitRM themes. */
:root, html[data-theme="blue"] {
  --color-primary: #1668DC;
  --color-primary-hover: #0958D9;
  --color-primary-active: #003EB3;
  --color-page-bg: #F5F7FB;
  --color-content-bg: #FFFFFF;
  --color-card-bg: #FFFFFF;
  --color-sidebar-bg: #FFFFFF;
  --color-header-bg: #FFFFFF;
  --color-text-primary: #1D2939;
  --color-text-secondary: #475467;
  --color-text-tertiary: #667085;
  --color-text-disabled: #98A2B3;
  --color-border: #DDE3EA;
  --color-border-light: #EAECF0;
  --color-selected-bg: #E6F4FF;
  --color-hover-bg: #F0F7FF;
  --color-input-bg: #FFFFFF;
  --color-table-header: #F7F9FC;
  --color-table-row-hover: #F6FAFF;
  --color-primary-rgb: 22,104,220;
  color-scheme: light;
}
html[data-theme="indigo"] {
  --color-primary: #635BFF;
  --color-primary-hover: #5146E5;
  --color-primary-active: #4338CA;
  --color-page-bg: #F7F7FC;
  --color-content-bg: #FFFFFF;
  --color-card-bg: #FFFFFF;
  --color-sidebar-bg: #FFFFFF;
  --color-header-bg: #FFFFFF;
  --color-text-primary: #202038;
  --color-text-secondary: #52526A;
  --color-text-tertiary: #72728A;
  --color-text-disabled: #A0A0B5;
  --color-border: #DDDDEA;
  --color-border-light: #ECECF3;
  --color-selected-bg: #F0EFFF;
  --color-hover-bg: #F6F5FF;
  --color-input-bg: #FFFFFF;
  --color-table-header: #F8F7FC;
  --color-table-row-hover: #F7F6FF;
  --color-primary-rgb: 99,91,255;
  color-scheme: light;
}
html[data-theme="green"] {
  --color-primary: #047857;
  --color-primary-hover: #036B4E;
  --color-primary-active: #065F46;
  --color-page-bg: #F5F9F7;
  --color-content-bg: #FFFFFF;
  --color-card-bg: #FFFFFF;
  --color-sidebar-bg: #FFFFFF;
  --color-header-bg: #FFFFFF;
  --color-text-primary: #16352A;
  --color-text-secondary: #425F54;
  --color-text-tertiary: #668077;
  --color-text-disabled: #9AAF9F;
  --color-border: #D9E5DF;
  --color-border-light: #E8F0EC;
  --color-selected-bg: #E6F6EE;
  --color-hover-bg: #F1FAF5;
  --color-input-bg: #FFFFFF;
  --color-table-header: #F5F9F7;
  --color-table-row-hover: #F2FAF6;
  --color-primary-rgb: 4,120,87;
  color-scheme: light;
}
html[data-theme="graphite"] {
  --color-primary: #303030;
  --color-primary-hover: #1F1F1F;
  --color-primary-active: #111111;
  --color-page-bg: #F6F6F6;
  --color-content-bg: #FFFFFF;
  --color-card-bg: #FFFFFF;
  --color-sidebar-bg: #FFFFFF;
  --color-header-bg: #FFFFFF;
  --color-text-primary: #171717;
  --color-text-secondary: #4A4A4A;
  --color-text-tertiary: #737373;
  --color-text-disabled: #A3A3A3;
  --color-border: #DDDDDD;
  --color-border-light: #ECECEC;
  --color-selected-bg: #EFEFEF;
  --color-hover-bg: #F5F5F5;
  --color-input-bg: #FFFFFF;
  --color-table-header: #F7F7F7;
  --color-table-row-hover: #F5F5F5;
  --color-primary-rgb: 48,48,48;
  color-scheme: light;
}
html[data-theme="terracotta"] {
  --color-primary: #A64B32;
  --color-primary-hover: #913F2A;
  --color-primary-active: #7C3524;
  --color-page-bg: #FAF9F5;
  --color-content-bg: #FFFFFF;
  --color-card-bg: #FFFFFF;
  --color-sidebar-bg: #FCFBF8;
  --color-header-bg: #FFFFFF;
  --color-text-primary: #26221F;
  --color-text-secondary: #5E554F;
  --color-text-tertiary: #80756D;
  --color-text-disabled: #ABA29B;
  --color-border: #E5DED8;
  --color-border-light: #EFEAE5;
  --color-selected-bg: #F6E9E2;
  --color-hover-bg: #FBF3EF;
  --color-input-bg: #FFFFFF;
  --color-table-header: #FAF6F2;
  --color-table-row-hover: #FCF6F3;
  --color-primary-rgb: 166,75,50;
  color-scheme: light;
}
html[data-theme="dark"] {
  --color-primary: #3B82F6;
  --color-primary-hover: #60A5FA;
  --color-primary-active: #2563EB;
  --color-page-bg: #111315;
  --color-content-bg: #181A1D;
  --color-card-bg: #1F2226;
  --color-sidebar-bg: #16181B;
  --color-header-bg: #181A1D;
  --color-text-primary: #F3F4F6;
  --color-text-secondary: #D1D5DB;
  --color-text-tertiary: #9CA3AF;
  --color-text-disabled: #6B7280;
  --color-border: #34383E;
  --color-border-light: #2B2F34;
  --color-selected-bg: #23334A;
  --color-hover-bg: #24282D;
  --color-input-bg: #202328;
  --color-table-header: #202328;
  --color-table-row-hover: #24282D;
  --color-primary-rgb: 59,130,246;
  color-scheme: dark;
}

:root {
 --color-on-primary:#FFFFFF; --color-success:#16A34A; --color-success-bg:#F0FDF4;
 --color-warning:#D97706; --color-warning-bg:#FFFBEB; --color-danger:#DC2626; --color-danger-bg:#FEF2F2;
 --color-info:#2563EB; --color-info-bg:#EFF6FF;
 --shadow-card:0 1px 3px rgba(0,0,0,.04);
 --color-overlay:rgba(0,0,0,.4);
 --color-floating-bg:var(--color-card-bg); --color-link:var(--color-primary);
}
html[data-theme="graphite"] { --color-link:var(--color-info); }
html[data-theme="dark"] {
 --color-success-bg:#193025; --color-warning-bg:#352A1B; --color-danger-bg:#362124; --color-info-bg:#1D2C43;
 --color-floating-bg:#25282D; --shadow-card:0 2px 8px rgba(0,0,0,.28);
}

:root {
 --pm-canvas:var(--color-page-bg);
 --pm-surface:var(--color-content-bg);
 --pm-subtle:var(--color-table-header);
 --pm-border:var(--color-border-light);
 --pm-border-strong:var(--color-border);
 --pm-text:var(--color-text-primary);
 --pm-secondary:var(--color-text-secondary);
 --pm-muted:var(--color-text-tertiary);
 --pm-primary:var(--color-primary);
 --pm-primary-hover:var(--color-primary-hover);
 --pm-primary-soft:var(--color-selected-bg);
 --pm-danger:var(--color-danger);
 --pm-warning:var(--color-warning);
 --pm-success:var(--color-success);
 --bg-color:var(--color-content-bg);
 --bg-primary:var(--color-content-bg);
 --bg-secondary:var(--color-table-header);
 --bg-alt:var(--color-table-header);
 --bg-table-header:var(--color-table-header);
 --bg-info-light:var(--color-info-bg);
 --bg-success-light:var(--color-success-bg);
 --bg-warning-light:var(--color-warning-bg);
 --bg-danger-light:var(--color-danger-bg);
 --border-color:var(--color-border);
 --primary-color:var(--color-primary);
 --text-color:var(--color-text-primary);
 --text-primary:var(--color-text-primary);
 --text-secondary:var(--color-text-secondary);
 --text-muted:var(--color-text-tertiary);
 --text-danger:var(--color-danger);
 --text-success:var(--color-success);
 --text-warning:var(--color-warning);
 --text-info:var(--color-info);
 --card-bg:var(--color-card-bg);
 --bg-hover:var(--color-hover-bg);
 --danger-color:var(--color-danger);
 --warning-color:var(--color-warning);
 --page-bg:var(--color-page-bg);
 --body-color:var(--color-text-primary);
 --header-bg:var(--color-header-bg);
 --primary-rgb:var(--color-primary-rgb); --pm-control:32px; --pm-width:1400px;
 --pm-menu-shadow:var(--shadow-card); --shadow-sm:var(--shadow-card); --shadow-md:var(--shadow-card); --shadow-lg:var(--shadow-card);
}
[data-theme-choice="blue"] { --swatch-primary:#1668DC; --swatch-secondary:#E6F4FF; --swatch-page:#F5F7FB; }
[data-theme-choice="indigo"] { --swatch-primary:#635BFF; --swatch-secondary:#F0EFFF; --swatch-page:#F7F7FC; }
[data-theme-choice="green"] { --swatch-primary:#047857; --swatch-secondary:#E6F6EE; --swatch-page:#F5F9F7; }
[data-theme-choice="graphite"] { --swatch-primary:#303030; --swatch-secondary:#EFEFEF; --swatch-page:#F6F6F6; }
[data-theme-choice="terracotta"] { --swatch-primary:#A64B32; --swatch-secondary:#F6E9E2; --swatch-page:#FAF9F5; }
[data-theme-choice="dark"] { --swatch-primary:#3B82F6; --swatch-secondary:#23334A; --swatch-page:#111315; }
/* Shared component colors; dimensions and information structure remain in existing styles. */
body { background:var(--color-page-bg); color:var(--color-text-primary); }
.app-header { background:var(--color-header-bg)!important; backdrop-filter:none; }
.content > .card { background:var(--color-content-bg); }
.app-side-nav { background:var(--color-sidebar-bg)!important; }
.app-side-navigation > :is(a,button,details) { background:transparent!important; color:var(--color-text-secondary)!important; }
.app-side-navigation > :is(a,button,details):hover { background:var(--color-hover-bg)!important; }
.app-side-navigation > .is-active { background:var(--color-selected-bg)!important; color:var(--color-primary)!important; }
a { color:var(--color-link); }
input,select,textarea { background-color:var(--color-input-bg); color:var(--color-text-primary); border-color:var(--color-border); accent-color:var(--color-primary); }
input:focus,select:focus,textarea:focus { border-color:var(--color-primary); box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 15%,transparent); }
input::placeholder,textarea::placeholder { color:var(--color-text-disabled); }
input:disabled,select:disabled,textarea:disabled { color:var(--color-text-disabled); }
.button { background-image:none!important; box-shadow:none!important; }
.button:not(.button-secondary):not(.button-danger):not(.button-excel) { background-color:var(--color-primary); color:var(--color-on-primary); }
.button:not(.button-secondary):not(.button-danger):not(.button-excel):hover { background-color:var(--color-primary-hover); }
.button:not(.button-secondary):not(.button-danger):not(.button-excel):active { background-color:var(--color-primary-active); }
.button-secondary { background:var(--color-card-bg); color:var(--color-text-secondary); border-color:var(--color-border); }
.button-danger { background:var(--color-danger-bg); color:var(--color-danger); border-color:var(--color-danger); }
.button-excel { background:var(--color-success); color:var(--color-on-primary); }
.content table { background:var(--color-content-bg); color:var(--color-text-primary); }
.content table thead th { background:var(--color-table-header); color:var(--color-text-secondary); border-bottom-color:var(--color-border-light); }
.content table tbody td { border-color:var(--color-border-light); }
.content table tbody tr:hover { background:var(--color-table-row-hover); }
.content table tbody tr:has(input[type="checkbox"]:checked) { background:var(--color-selected-bg); }
dialog,.modal-content,.preview-panel,.quick-preview-panel,.app-nav-dropdown-menu,.dropdown-menu,.toast { background:var(--color-floating-bg); color:var(--color-text-primary); border-color:var(--color-border); box-shadow:var(--shadow-card); }
dialog::backdrop { background:var(--color-overlay); }
.CodeMirror,.editor-toolbar,.editor-preview,.editor-preview-side { background:var(--color-input-bg); color:var(--color-text-primary); border-color:var(--color-border); }
.CodeMirror-cursor { border-left-color:var(--color-text-primary); }
.editor-toolbar button { color:var(--color-text-secondary)!important; }
.editor-toolbar button:hover,.editor-toolbar button.active { background:var(--color-hover-bg); border-color:var(--color-border); }
.card,.system-module-card,.system-status-card,.system-portfolio-card,.system-activity-card { border-color:var(--color-border-light); box-shadow:var(--shadow-card); }
.system-dashboard-hero,.system-dashboard-process,.system-module-card,.system-dashboard-focus-card,.system-governance-card { background:var(--color-card-bg)!important; background-image:none!important; }
.system-dashboard-hero { background:var(--color-selected-bg)!important; }
.system-attention-strip { background:var(--color-warning-bg)!important; }
.theme-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.theme-choice { display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:14px; border:1px solid var(--color-border); border-radius:8px; background:var(--color-card-bg); color:var(--color-text-primary); cursor:pointer; box-shadow:var(--shadow-card); }
.theme-choice small { color:var(--color-text-tertiary); }
.theme-choice:hover { border-color:var(--color-primary); }
.theme-choice[aria-pressed="true"] { border-color:var(--color-primary); outline:1px solid var(--color-primary); background:var(--color-selected-bg); }
.theme-choice:focus-visible { outline:2px solid var(--color-primary); outline-offset:3px; }
.theme-swatches { display:flex; gap:6px; }
.theme-swatch { width:36px; height:24px; border-radius:4px; border:1px solid var(--color-border); }
.theme-swatch-primary { background:var(--swatch-primary); }
.theme-swatch-secondary { background:var(--swatch-secondary); }
.theme-swatch-page { background:var(--swatch-page); }
.theme-choice-status { color:var(--color-text-secondary); font-size:12px; }
.theme-choice[aria-pressed="true"] .theme-choice-status { color:var(--color-primary); font-weight:600; }
@media(max-width:800px) { .theme-choices { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media print { html { --color-page-bg:#FFFFFF; --color-content-bg:#FFFFFF; --color-card-bg:#FFFFFF; --color-text-primary:#1D2939; --color-text-secondary:#475467; --color-text-tertiary:#667085; } }
/* Text hierarchy takes precedence over retired dark-mode exceptions. */
.page-heading-copy :is(h1,h2,h3),.content :is(h1,h2,h3,h4),.detail-info-item strong,.popover-title { color:var(--color-text-primary)!important; }
.app-side-navigation { background:var(--color-sidebar-bg)!important; }
html[data-density] { --pm-control:32px; }
.report-detail-summary,.report-main-section { box-shadow:none!important; }

:root {
 --color-category-0:#64748B; --color-category-0-bg:color-mix(in srgb,var(--color-category-0) 7%,var(--color-content-bg));
 --color-category-1:#1668DC; --color-category-1-bg:color-mix(in srgb,var(--color-category-1) 7%,var(--color-content-bg));
 --color-category-2:#16A34A; --color-category-2-bg:color-mix(in srgb,var(--color-category-2) 7%,var(--color-content-bg));
 --color-category-3:#0891B2; --color-category-3-bg:color-mix(in srgb,var(--color-category-3) 7%,var(--color-content-bg));
 --color-category-4:#DC2626; --color-category-4-bg:color-mix(in srgb,var(--color-category-4) 7%,var(--color-content-bg));
 --color-category-5:#D97706; --color-category-5-bg:color-mix(in srgb,var(--color-category-5) 7%,var(--color-content-bg));
 --color-category-6:#9333EA; --color-category-6-bg:color-mix(in srgb,var(--color-category-6) 7%,var(--color-content-bg));
 --color-category-7:#475467; --color-category-7-bg:color-mix(in srgb,var(--color-category-7) 7%,var(--color-content-bg));
 --color-category-8:#0D9488; --color-category-8-bg:color-mix(in srgb,var(--color-category-8) 7%,var(--color-content-bg));
 --color-category-9:#635BFF; --color-category-9-bg:color-mix(in srgb,var(--color-category-9) 7%,var(--color-content-bg));
 --color-category-10:#DB2777; --color-category-10-bg:color-mix(in srgb,var(--color-category-10) 7%,var(--color-content-bg));
 --color-category-11:#047857; --color-category-11-bg:color-mix(in srgb,var(--color-category-11) 7%,var(--color-content-bg));
}

html[data-theme] .content .page-heading-copy :is(h1,h2,h3),
html[data-theme] .content :is(h1,h2,h3,h4),
html[data-theme] .detail-info-item strong { color:var(--color-text-primary)!important; }
html[data-theme] .app-side-navigation > a.is-active,
html[data-theme] .app-side-navigation > .app-side-group.is-active > summary { background:var(--color-selected-bg)!important; color:var(--color-primary)!important; }

html[data-theme] .content > .card { background-color:var(--color-content-bg)!important; }
html[data-theme] .content label { color:var(--color-text-secondary); }
html[data-theme] .content .data-table tbody tr:hover { background:var(--color-table-row-hover); }
html[data-theme] .content .data-table tbody tr:has(input[type="checkbox"]:checked) { background:var(--color-selected-bg); }
html[data-theme] .project-tab-panel { background:var(--color-content-bg); border-color:var(--color-border); }
html[data-theme] .card-tabs { background:transparent; }

/* Explicit surfaces also cover legacy modal/editor rules with higher specificity. */
html[data-theme] :is(dialog,.modal-content,.quick-preview-panel,.dropdown-menu) { background-color:var(--color-floating-bg)!important; color:var(--color-text-primary)!important; }
html[data-theme] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]),select,textarea,.CodeMirror,.editor-toolbar,.editor-preview,.editor-preview-side) { background-color:var(--color-input-bg)!important; color:var(--color-text-primary)!important; }
@media print {
 html[data-theme] { --color-page-bg:#FFFFFF; --color-content-bg:#FFFFFF; --color-card-bg:#FFFFFF; --color-input-bg:#FFFFFF; --color-floating-bg:#FFFFFF; --color-table-header:#F7F9FC; --color-text-primary:#1D2939; --color-text-secondary:#475467; --color-text-tertiary:#667085; --color-border:#DDE3EA; --color-border-light:#EAECF0; color-scheme:light; }
}
html[data-theme] .system-module-card { color:var(--color-text-secondary); }
html[data-theme] .system-module-heading p,
html[data-theme] .system-module-label,
html[data-theme] .system-module-facts span { color:var(--color-text-secondary); }
html[data-theme] .system-dashboard-section-heading { background:var(--color-hover-bg); background-image:none; }
