:root {
    --app-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --app-radius-sm: .375rem;
    --app-radius-md: .625rem;
    --app-radius-lg: .875rem;
    --app-label-size: .6875rem;
    --app-sidebar-width: 15rem;
    --app-topbar-height: 3.5rem;
    --app-progress-height: 3px;
    --app-brand-stripe-height: 4px;
    --app-shadow-progress: 0 0 .5rem rgba(var(--app-accent-rgb), .6);
    --app-focus-ring: 0 0 0 .25rem rgba(var(--app-accent-rgb), .35);
    --app-z-progress: 1090;
    --app-z-row-action: 2;
    --app-z-modal-base: 1055;
    --app-z-modal-step: 20;
    --app-z-confirm: 1500;
    --app-z-tooltip: 1600;
    --app-z-toast: 1700;
    /* Menu of the dark page theme: here, not in the dark block, because the nav carries data-bs-theme="dark" itself. */
    --app-sidebar-background: #0a1020;
    --app-sidebar-hover: #1a2644;
    --app-sidebar-border: #1f2a47;
    --app-sidebar-text: #e6ecf5;
    --app-sidebar-text-muted: #a6b3c9;
    --app-sidebar-text-faint: #8796b0;
    --app-sidebar-active: #24315a;
    --app-sidebar-marker: #f5b23e;
}

[data-bs-theme="dark"] {
    --app-bg: #0e1424;
    --app-surface: #161e33;
    --app-surface-raised: #1c2640;
    --app-border: #2a3655;
    --app-text: #e6ecf5;
    --app-text-muted: #a6b3c9;
    --app-text-faint: #8796b0;
    --app-accent: #4fb0ea;
    --app-accent-hover: #86c9f2;
    --app-logo-surface: transparent;
    --app-link: #6fc3f0;
    --app-link-hover: #a9ddf7;
    --app-link-rgb: 111, 195, 240;
    --app-link-hover-rgb: 169, 221, 247;
    --app-brand-gradient: linear-gradient(90deg, #3b4a85, #2ba3dd 55%, #34c77c);
    --app-slot-gradient-success: linear-gradient(90deg, #2ba3dd, #34c77c);
    --app-slot-gradient-warning: linear-gradient(90deg, #f5cf4a, #f5a030);
    --app-slot-gradient-danger: linear-gradient(90deg, #f5a030, #f06a6a);
    --app-text-rgb: 230, 236, 245;
    --app-text-muted-rgb: 166, 179, 201;
    --app-accent-rgb: 79, 176, 234;
    --app-accent-contrast: #111111;
    --app-success: #5fd197; --app-success-bg: rgba(95, 209, 151, .12); --app-success-border: rgba(95, 209, 151, .45); --app-success-hover: #86ddb0;
    --app-warning: #f0b955; --app-warning-bg: rgba(240, 185, 85, .12); --app-warning-border: rgba(240, 185, 85, .5); --app-warning-hover: #f4c97d;
    --app-info: #7cc0ee; --app-info-bg: rgba(124, 192, 238, .12); --app-info-border: rgba(124, 192, 238, .45); --app-info-hover: #a0d2f3;
    --app-danger: #f28b8b; --app-danger-bg: rgba(242, 139, 139, .12); --app-danger-border: rgba(242, 139, 139, .45); --app-danger-hover: #f6a6a6;
    --app-neutral: #b8c4d9; --app-neutral-hover: #cdd6e6; --app-neutral-bg: rgba(184, 196, 217, .1); --app-neutral-border: rgba(184, 196, 217, .35);
    --app-shadow-card: 0 1px 2px rgba(0, 0, 0, .4);
    --app-shadow-modal: 0 24px 64px rgba(0, 0, 0, .6);
}

[data-bs-theme="light"] {
    --app-bg: #f4f7fb;
    --app-surface: #ffffff;
    --app-surface-raised: #eef3f9;
    --app-border: #dce5ef;
    --app-text: #24305e;
    --app-text-muted: #475570;
    --app-text-faint: #5f7088;
    --app-accent: #1a6aa0;
    --app-accent-hover: #134f78;
    --app-logo-surface: #ffffff;
    --app-link: #1a6aa0;
    --app-link-hover: #24305e;
    --app-link-rgb: 26, 106, 160;
    --app-link-hover-rgb: 36, 48, 94;
    --app-sidebar-background: #1c2650;
    --app-sidebar-hover: #222c5c;
    --app-sidebar-border: #2c3870;
    --app-sidebar-text: #ffffff;
    --app-sidebar-text-muted: #c9d3e6;
    --app-sidebar-text-faint: #a3b2cc;
    --app-sidebar-active: #2e3a6e;
    --app-sidebar-marker: #f5a623;
    --app-brand-gradient: linear-gradient(90deg, #2e3a6e, #1a8fc8 55%, #25b36a);
    --app-slot-gradient-success: linear-gradient(90deg, #1a8fc8, #25b36a);
    --app-slot-gradient-warning: linear-gradient(90deg, #f2c100, #f08a12);
    --app-slot-gradient-danger: linear-gradient(90deg, #f08a12, #c8322f);
    --app-text-rgb: 36, 48, 94;
    --app-text-muted-rgb: 71, 85, 112;
    --app-accent-rgb: 26, 106, 160;
    --app-accent-contrast: #ffffff;
    --app-success: #1b6e47; --app-success-bg: rgba(27, 110, 71, .1); --app-success-border: rgba(27, 110, 71, .4); --app-success-hover: #155a3a;
    --app-warning: #8a5608; --app-warning-bg: rgba(138, 86, 8, .1); --app-warning-border: rgba(138, 86, 8, .4); --app-warning-hover: #714605;
    --app-info: #155a87; --app-info-bg: rgba(21, 90, 135, .1); --app-info-border: rgba(21, 90, 135, .4); --app-info-hover: #10476b;
    --app-danger: #b23535; --app-danger-bg: rgba(178, 53, 53, .1); --app-danger-border: rgba(178, 53, 53, .4); --app-danger-hover: #992b2b;
    --app-neutral: #566783; --app-neutral-hover: #46566f; --app-neutral-bg: rgba(86, 103, 131, .08); --app-neutral-border: rgba(86, 103, 131, .3);
    --app-shadow-card: 0 1px 2px rgba(36, 48, 94, .08);
    --app-shadow-modal: 0 24px 64px rgba(36, 48, 94, .25);
}
