:root {
    --color-primary: #2563eb;
    --color-primary-hover: #1d4ed8;
    --color-primary-soft: #e8f0ff;
    --color-sidebar: #14213d;
    --color-sidebar-active: rgba(255, 255, 255, .14);
    --color-sidebar-text: #edf4ff;
    --color-page-bg: #f4f7fb;
    --color-card-bg: #ffffff;
    --color-border: #dce5ef;
    --color-text: #172033;
    --color-muted: #64748b;
    --color-success: #198754;
    --color-warning: #a56600;
    --color-danger: #be3f4b;
    --color-topbar-bg: rgba(255, 255, 255, .92);
    --color-surface-muted: #f8fafc;
    --color-surface-elevated: #eef3f8;
    --color-text-secondary: #3c4a60;
    --color-sidebar-muted: #aebdd5;
    --color-border-strong: #c7d4e3;
    --color-info: #2563eb;
    --color-success-soft: #dcf7e8;
    --color-warning-soft: #fff3cf;
    --color-danger-soft: #fee8e9;
    --color-info-soft: #e4efff;
    --color-input-bg: #ffffff;
    --color-input-border: #cbd7e4;
    --color-input-focus: #76a2ff;
    --color-table-header: #f4f7fb;
    --color-table-group-header: #e8eef6;
    --color-table-row-hover: #edf4ff;
    --color-overlay: rgba(15, 23, 42, .54);
    --color-shadow: rgba(15, 23, 42, .10);
    --color-scrollbar-thumb: #b5c4d6;

    /* Compatibility aliases for the existing Bootstrap and monitoring styles. */
    --app-bg: var(--color-page-bg);
    --surface: var(--color-card-bg);
    --surface-muted: var(--color-surface-muted);
    --surface-elevated: var(--color-surface-elevated);
    --sidebar-bg: var(--color-sidebar);
    --sidebar-text: var(--color-sidebar-text);
    --sidebar-muted: var(--color-sidebar-muted);
    --sidebar-active: var(--color-sidebar-active);
    --topbar-bg: var(--color-topbar-bg);
    --text-primary: var(--color-text);
    --text-secondary: var(--color-text-secondary);
    --text-muted: var(--color-muted);
    --muted: var(--color-muted);
    --border: var(--color-border);
    --border-strong: var(--color-border-strong);
    --primary: var(--color-primary);
    --primary-hover: var(--color-primary-hover);
    --primary-soft: var(--color-primary-soft);
    --success: var(--color-success);
    --success-soft: var(--color-success-soft);
    --warning: var(--color-warning);
    --warning-soft: var(--color-warning-soft);
    --danger: var(--color-danger);
    --danger-soft: var(--color-danger-soft);
    --info: var(--color-info);
    --info-soft: var(--color-info-soft);
    --input-bg: var(--color-input-bg);
    --input-border: var(--color-input-border);
    --input-focus: var(--color-input-focus);
    --table-header: var(--color-table-header);
    --table-group-header: var(--color-table-group-header);
    --table-row-hover: var(--color-table-row-hover);
    --overlay-bg: var(--color-overlay);
    --shadow-sm: 0 1px 3px color-mix(in srgb, var(--color-shadow) 60%, transparent), 0 1px 2px color-mix(in srgb, var(--color-shadow) 40%, transparent);
    --shadow-md: 0 10px 30px var(--color-shadow);
    --scrollbar-track: var(--color-surface-muted);
    --scrollbar-thumb: var(--color-scrollbar-thumb);
    --bs-body-bg: var(--color-page-bg);
    --bs-body-color: var(--color-text);
    --bs-border-color: var(--color-border);
}

:root,
[data-theme="light-blue"] {
    color-scheme: light;
    --color-primary: #2563eb; --color-primary-hover: #1d4ed8; --color-primary-soft: #e8f0ff;
    --color-sidebar: #14213d; --color-sidebar-active: rgba(255, 255, 255, .14); --color-sidebar-text: #edf4ff; --color-sidebar-muted: #aebdd5;
    --color-page-bg: #f4f7fb; --color-card-bg: #ffffff; --color-surface-muted: #f8fafc; --color-surface-elevated: #eef3f8; --color-topbar-bg: rgba(255, 255, 255, .92);
    --color-text: #172033; --color-text-secondary: #3c4a60; --color-muted: #64748b; --color-border: #dce5ef; --color-border-strong: #c7d4e3;
    --color-success: #198754; --color-success-soft: #dcf7e8; --color-warning: #a56600; --color-warning-soft: #fff3cf; --color-danger: #be3f4b; --color-danger-soft: #fee8e9;
    --color-info: #2563eb; --color-info-soft: #e4efff; --color-input-bg: #ffffff; --color-input-border: #cbd7e4; --color-input-focus: #76a2ff;
    --color-table-header: #f4f7fb; --color-table-group-header: #e8eef6; --color-table-row-hover: #edf4ff; --color-overlay: rgba(15, 23, 42, .54); --color-shadow: rgba(15, 23, 42, .10); --color-scrollbar-thumb: #b5c4d6;
}

[data-theme="midnight-orange"] {
    color-scheme: dark;
    --color-primary: #f97316; --color-primary-hover: #fb923c; --color-primary-soft: #4a2b19;
    --color-sidebar: #070e1b; --color-sidebar-active: #3b2a22; --color-sidebar-text: #f8fafc; --color-sidebar-muted: #aebbd0;
    --color-page-bg: #0b1324; --color-card-bg: #14223a; --color-surface-muted: #1a2a45; --color-surface-elevated: #223552; --color-topbar-bg: rgba(20, 34, 58, .94);
    --color-text: #f8fafc; --color-text-secondary: #d8e0ec; --color-muted: #aebbd0; --color-border: #304463; --color-border-strong: #4a6389;
    --color-success: #4fc58a; --color-success-soft: #183f34; --color-warning: #f2c05d; --color-warning-soft: #4b3c1a; --color-danger: #f38b95; --color-danger-soft: #4d2934;
    --color-info: #7db4ff; --color-info-soft: #213e69; --color-input-bg: #101c31; --color-input-border: #405879; --color-input-focus: #fb923c;
    --color-table-header: #1b2d49; --color-table-group-header: #253a59; --color-table-row-hover: #213757; --color-overlay: rgba(2, 6, 14, .78); --color-shadow: rgba(0, 0, 0, .32); --color-scrollbar-thumb: #4b6385;
}

[data-theme="ocean"] {
    color-scheme: light;
    --color-primary: #087e8b; --color-primary-hover: #05636e; --color-primary-soft: #dff5f6;
    --color-sidebar: #073b4c; --color-sidebar-active: rgba(255, 255, 255, .16); --color-sidebar-text: #effcff; --color-sidebar-muted: #add1d8;
    --color-page-bg: #f1f9fa; --color-card-bg: #ffffff; --color-surface-muted: #f5fbfb; --color-surface-elevated: #e5f3f4; --color-topbar-bg: rgba(255, 255, 255, .92);
    --color-text: #13323a; --color-text-secondary: #34525a; --color-muted: #657d85; --color-border: #d2e4e7; --color-border-strong: #b7d1d6;
    --color-success: #168c68; --color-success-soft: #dcf5ea; --color-warning: #a86400; --color-warning-soft: #fff2d0; --color-danger: #be4651; --color-danger-soft: #fde9eb;
    --color-info: #087e8b; --color-info-soft: #dcf3f5; --color-input-bg: #ffffff; --color-input-border: #bed8dc; --color-input-focus: #4daab5;
    --color-table-header: #f0f8f9; --color-table-group-header: #e0eff1; --color-table-row-hover: #e8f5f6; --color-overlay: rgba(7, 59, 76, .54); --color-shadow: rgba(7, 59, 76, .10); --color-scrollbar-thumb: #a8c8ce;
}

[data-theme="emerald"] {
    color-scheme: light;
    --color-primary: #168b5a; --color-primary-hover: #0e6d45; --color-primary-soft: #ddf5e8;
    --color-sidebar: #123b32; --color-sidebar-active: rgba(255, 255, 255, .15); --color-sidebar-text: #effdf5; --color-sidebar-muted: #b1d4c5;
    --color-page-bg: #f3faf6; --color-card-bg: #ffffff; --color-surface-muted: #f6fbf8; --color-surface-elevated: #e7f4ec; --color-topbar-bg: rgba(255, 255, 255, .92);
    --color-text: #183b2c; --color-text-secondary: #365849; --color-muted: #6a8276; --color-border: #d6e8df; --color-border-strong: #bed8ca;
    --color-success: #168b5a; --color-success-soft: #dcf5e8; --color-warning: #a96800; --color-warning-soft: #fff2d3; --color-danger: #bd4654; --color-danger-soft: #fde9ec;
    --color-info: #167d8b; --color-info-soft: #dcf3f5; --color-input-bg: #ffffff; --color-input-border: #c3dccc; --color-input-focus: #5bb88b;
    --color-table-header: #f1f9f4; --color-table-group-header: #e3f1e8; --color-table-row-hover: #eaf6ee; --color-overlay: rgba(18, 59, 50, .54); --color-shadow: rgba(18, 59, 50, .10); --color-scrollbar-thumb: #adcbbb;
}

[data-theme="indigo"] {
    color-scheme: light;
    --color-primary: #4f46e5; --color-primary-hover: #3730a3; --color-primary-soft: #e9e8ff;
    --color-sidebar: #24205c; --color-sidebar-active: rgba(255, 255, 255, .16); --color-sidebar-text: #f4f4ff; --color-sidebar-muted: #c1c2ec;
    --color-page-bg: #f6f6ff; --color-card-bg: #ffffff; --color-surface-muted: #f8f8ff; --color-surface-elevated: #eeeeff; --color-topbar-bg: rgba(255, 255, 255, .92);
    --color-text: #29284a; --color-text-secondary: #4b4a6d; --color-muted: #747491; --color-border: #dfdff0; --color-border-strong: #c8c8e0;
    --color-success: #16845d; --color-success-soft: #ddf5e9; --color-warning: #a66300; --color-warning-soft: #fff2d1; --color-danger: #bd4653; --color-danger-soft: #fde9ec;
    --color-info: #4f46e5; --color-info-soft: #e9e8ff; --color-input-bg: #ffffff; --color-input-border: #cccae6; --color-input-focus: #8a84ee;
    --color-table-header: #f4f4fd; --color-table-group-header: #e8e8f7; --color-table-row-hover: #ededff; --color-overlay: rgba(36, 32, 92, .54); --color-shadow: rgba(36, 32, 92, .10); --color-scrollbar-thumb: #bdbcd5;
}

[data-theme="slate"] {
    color-scheme: light;
    --color-primary: #475569; --color-primary-hover: #334155; --color-primary-soft: #e8edf2;
    --color-sidebar: #1e293b; --color-sidebar-active: rgba(255, 255, 255, .14); --color-sidebar-text: #f1f5f9; --color-sidebar-muted: #b7c4d1;
    --color-page-bg: #f6f8fa; --color-card-bg: #ffffff; --color-surface-muted: #f8fafc; --color-surface-elevated: #edf1f5; --color-topbar-bg: rgba(255, 255, 255, .92);
    --color-text: #263442; --color-text-secondary: #475569; --color-muted: #74808c; --color-border: #dbe2e8; --color-border-strong: #c4ced8;
    --color-success: #23835c; --color-success-soft: #def3e8; --color-warning: #a56500; --color-warning-soft: #fff2d1; --color-danger: #ba4854; --color-danger-soft: #fde9ec;
    --color-info: #47657f; --color-info-soft: #e3edf4; --color-input-bg: #ffffff; --color-input-border: #c7d2dc; --color-input-focus: #8496a8;
    --color-table-header: #f3f6f8; --color-table-group-header: #e8edf1; --color-table-row-hover: #edf2f5; --color-overlay: rgba(30, 41, 59, .54); --color-shadow: rgba(30, 41, 59, .10); --color-scrollbar-thumb: #b4c0cb;
}

[data-theme="rose"] {
    color-scheme: light;
    --color-primary: #d14b72; --color-primary-hover: #ad3359; --color-primary-soft: #fde7ed;
    --color-sidebar: #541d32; --color-sidebar-active: rgba(255, 255, 255, .16); --color-sidebar-text: #fff4f7; --color-sidebar-muted: #efb9ca;
    --color-page-bg: #fff7f9; --color-card-bg: #ffffff; --color-surface-muted: #fff9fa; --color-surface-elevated: #fdeef2; --color-topbar-bg: rgba(255, 255, 255, .92);
    --color-text: #4b2837; --color-text-secondary: #6d4555; --color-muted: #8c6c79; --color-border: #f0dce3; --color-border-strong: #e5c5d0;
    --color-success: #16865e; --color-success-soft: #ddf5e9; --color-warning: #a66400; --color-warning-soft: #fff2d1; --color-danger: #c53d60; --color-danger-soft: #fde6ed;
    --color-info: #8572c8; --color-info-soft: #efebff; --color-input-bg: #ffffff; --color-input-border: #e5c9d4; --color-input-focus: #e78ba5;
    --color-table-header: #fff4f6; --color-table-group-header: #fce7ed; --color-table-row-hover: #fdefF3; --color-overlay: rgba(84, 29, 50, .54); --color-shadow: rgba(84, 29, 50, .10); --color-scrollbar-thumb: #dfb3c1;
}

[data-theme="dark"] {
    color-scheme: dark;
    --color-primary: #70a0ff; --color-primary-hover: #93b8ff; --color-primary-soft: #203b6b;
    --color-sidebar: #0d1626; --color-sidebar-active: #253857; --color-sidebar-text: #edf3fc; --color-sidebar-muted: #aebcd0;
    --color-page-bg: #111a29; --color-card-bg: #192538; --color-surface-muted: #202d42; --color-surface-elevated: #283750; --color-topbar-bg: rgba(25, 37, 56, .94);
    --color-text: #eff5ff; --color-text-secondary: #d0d9e7; --color-muted: #aab8cc; --color-border: #34445d; --color-border-strong: #4d6180;
    --color-success: #63c68e; --color-success-soft: #1c4134; --color-warning: #f0bd61; --color-warning-soft: #4a391b; --color-danger: #f0848d; --color-danger-soft: #4c2833;
    --color-info: #8bb2ff; --color-info-soft: #243e6d; --color-input-bg: #151f30; --color-input-border: #465a78; --color-input-focus: #86adff;
    --color-table-header: #243249; --color-table-group-header: #2c3d57; --color-table-row-hover: #293b57; --color-overlay: rgba(4, 10, 20, .76); --color-shadow: rgba(0, 0, 0, .28); --color-scrollbar-thumb: #4c607e;
}

/* Enterprise v2 presets. Shared semantic tokens keep every component themeable. */
[data-theme="corporate-blue"] { color-scheme: light; --color-primary:#155eef; --color-primary-hover:#004eeb; --color-primary-soft:#e7efff; --color-sidebar:#102a56; --color-sidebar-text:#f3f7ff; --color-sidebar-muted:#b8c8e4; --color-sidebar-active:#24467b; --color-topbar-bg:rgba(255,255,255,.94); --color-page-bg:#f5f8ff; --color-card-bg:#fff; --color-text:#172b4d; --color-muted:#697a99; --color-border:#d9e2f2; --color-success:#16824f; --color-warning:#a66300; --color-danger:#c43e4d; --color-info:#155eef; }
[data-theme="royal-purple"] { color-scheme: light; --color-primary:#7047d7; --color-primary-hover:#5730b8; --color-primary-soft:#f0eaff; --color-sidebar:#30205d; --color-sidebar-text:#f8f5ff; --color-sidebar-muted:#c8bee6; --color-sidebar-active:#4a357c; --color-topbar-bg:rgba(255,255,255,.94); --color-page-bg:#f9f7ff; --color-card-bg:#fff; --color-text:#35294f; --color-muted:#7c7192; --color-border:#e4dcf3; --color-success:#21805c; --color-warning:#a66300; --color-danger:#bd4653; --color-info:#7047d7; }
[data-theme="crimson"] { color-scheme: light; --color-primary:#c73757; --color-primary-hover:#a62043; --color-primary-soft:#ffebf0; --color-sidebar:#55172a; --color-sidebar-text:#fff5f7; --color-sidebar-muted:#efb6c4; --color-sidebar-active:#79283e; --color-topbar-bg:rgba(255,255,255,.94); --color-page-bg:#fff7f8; --color-card-bg:#fff; --color-text:#4e2631; --color-muted:#8b6a73; --color-border:#f0dce1; --color-success:#18815a; --color-warning:#a66300; --color-danger:#c73757; --color-info:#8c65c7; }
[data-theme="sunset-orange"] { color-scheme: light; --color-primary:#e66a18; --color-primary-hover:#bd4f09; --color-primary-soft:#fff0e5; --color-sidebar:#572818; --color-sidebar-text:#fff7f2; --color-sidebar-muted:#efc1aa; --color-sidebar-active:#7b4128; --color-topbar-bg:rgba(255,255,255,.94); --color-page-bg:#fff9f5; --color-card-bg:#fff; --color-text:#4e3021; --color-muted:#8b7161; --color-border:#f0dfd3; --color-success:#20805a; --color-warning:#a65e00; --color-danger:#bd4653; --color-info:#c55f1c; }
[data-theme="midnight"] { color-scheme: dark; --color-primary:#8da8ff; --color-primary-hover:#aec0ff; --color-primary-soft:#263d78; --color-sidebar:#0a1020; --color-sidebar-text:#edf2ff; --color-sidebar-muted:#acb9d5; --color-sidebar-active:#202e50; --color-topbar-bg:rgba(20,29,50,.94); --color-page-bg:#10172a; --color-card-bg:#18223a; --color-surface-muted:#202d48; --color-surface-elevated:#293956; --color-text:#eff3ff; --color-text-secondary:#d5def0; --color-muted:#aab7cf; --color-border:#344566; --color-border-strong:#506786; --color-success:#60c993; --color-success-soft:#183f33; --color-warning:#f0bd61; --color-warning-soft:#493919; --color-danger:#f0848d; --color-danger-soft:#4c2935; --color-info:#8da8ff; --color-info-soft:#233e70; --color-input-bg:#152038; --color-input-border:#4a6081; --color-input-focus:#a9c0ff; --color-table-header:#263955; --color-table-group-header:#304665; --color-table-row-hover:#2b4161; --color-overlay:rgba(3,8,18,.78); --color-shadow:rgba(0,0,0,.34); --color-scrollbar-thumb:#536987; }
[data-theme="forest"] { color-scheme: light; --color-primary:#25765a; --color-primary-hover:#175a42; --color-primary-soft:#e1f3e9; --color-sidebar:#163c31; --color-sidebar-text:#f0fff7; --color-sidebar-muted:#b8d7c7; --color-sidebar-active:#28594a; --color-topbar-bg:rgba(255,255,255,.94); --color-page-bg:#f4faf6; --color-card-bg:#fff; --color-text:#243d32; --color-muted:#6d8377; --color-border:#d6e8df; --color-success:#25765a; --color-warning:#a66300; --color-danger:#bd4653; --color-info:#277e86; }
[data-theme="aqua"] { color-scheme: light; --color-primary:#057f95; --color-primary-hover:#046477; --color-primary-soft:#dff6f9; --color-sidebar:#073d4b; --color-sidebar-text:#effdff; --color-sidebar-muted:#afd4db; --color-sidebar-active:#1b5d6c; --color-topbar-bg:rgba(255,255,255,.94); --color-page-bg:#f1fafb; --color-card-bg:#fff; --color-text:#183b43; --color-muted:#68828a; --color-border:#d3e7ea; --color-success:#21805c; --color-warning:#a66300; --color-danger:#bd4653; --color-info:#057f95; }
[data-theme="dark-enterprise"] { color-scheme: dark; --color-primary:#5c94ff; --color-primary-hover:#87b1ff; --color-primary-soft:#213e79; --color-sidebar:#111827; --color-sidebar-text:#f3f6fc; --color-sidebar-muted:#b5c0d3; --color-sidebar-active:#28354a; --color-topbar-bg:rgba(31,41,55,.94); --color-page-bg:#18212f; --color-card-bg:#202c3e; --color-surface-muted:#29384d; --color-surface-elevated:#34445a; --color-text:#f1f5fb; --color-text-secondary:#d7e0ed; --color-muted:#b2bfd1; --color-border:#3d4d65; --color-border-strong:#566984; --color-success:#63c68e; --color-success-soft:#193f33; --color-warning:#efbd61; --color-warning-soft:#4a391a; --color-danger:#f0848d; --color-danger-soft:#4c2935; --color-info:#7ca8ff; --color-info-soft:#223e70; --color-input-bg:#172235; --color-input-border:#4c6180; --color-input-focus:#8db6ff; --color-table-header:#2a3a50; --color-table-group-header:#354860; --color-table-row-hover:#30445e; --color-overlay:rgba(3,8,18,.78); --color-shadow:rgba(0,0,0,.34); --color-scrollbar-thumb:#536987; }

html { background: var(--app-bg); }
body { background: var(--app-bg); color: var(--text-primary); }

@media (prefers-reduced-motion: no-preference) {
    body, .card, .topbar, .sidebar, .form-control, .form-select, .btn, .table > :not(caption) > * > *, .item-modal-content, dialog { transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease; }
}
