/* ── MD3 Themes ────────────────────────────────────────── */

.light {
  --md-sys-color-primary: rgb(74 92 146);
  --md-sys-color-surface-tint: rgb(74 92 146);
  --md-sys-color-on-primary: rgb(255 255 255);
  --md-sys-color-primary-container: rgb(219 225 255);
  --md-sys-color-on-primary-container: rgb(50 69 120);
  --md-sys-color-secondary: rgb(12 103 128);
  --md-sys-color-on-secondary: rgb(255 255 255);
  --md-sys-color-secondary-container: rgb(186 234 255);
  --md-sys-color-on-secondary-container: rgb(0 77 98);
  --md-sys-color-tertiary: rgb(83 101 36);
  --md-sys-color-on-tertiary: rgb(255 255 255);
  --md-sys-color-tertiary-container: rgb(214 235 156);
  --md-sys-color-on-tertiary-container: rgb(60 76 14);
  --md-sys-color-error: rgb(186 26 26);
  --md-sys-color-on-error: rgb(255 255 255);
  --md-sys-color-error-container: rgb(255 218 214);
  --md-sys-color-on-error-container: rgb(147 0 10);
  --md-sys-color-background: rgb(250 248 255);
  --md-sys-color-on-background: rgb(26 27 33);
  --md-sys-color-surface: rgb(245 250 251);
  --md-sys-color-on-surface: rgb(23 29 30);
  --md-sys-color-surface-variant: rgb(237 225 207);
  --md-sys-color-on-surface-variant: rgb(78 70 57);
  --md-sys-color-outline: rgb(127 118 103);
  --md-sys-color-outline-variant: rgb(209 197 180);
  --md-sys-color-shadow: rgb(0 0 0);
  --md-sys-color-scrim: rgb(0 0 0);
  --md-sys-color-inverse-surface: rgb(43 49 51);
  --md-sys-color-inverse-on-surface: rgb(236 242 243);
  --md-sys-color-inverse-primary: rgb(179 197 255);
  --md-sys-color-primary-fixed: rgb(219 225 255);
  --md-sys-color-on-primary-fixed: rgb(0 23 74);
  --md-sys-color-primary-fixed-dim: rgb(179 197 255);
  --md-sys-color-on-primary-fixed-variant: rgb(50 69 120);
  --md-sys-color-secondary-fixed: rgb(186 234 255);
  --md-sys-color-on-secondary-fixed: rgb(0 31 41);
  --md-sys-color-secondary-fixed-dim: rgb(137 208 237);
  --md-sys-color-on-secondary-fixed-variant: rgb(0 77 98);
  --md-sys-color-tertiary-fixed: rgb(214 235 156);
  --md-sys-color-on-tertiary-fixed: rgb(22 31 0);
  --md-sys-color-tertiary-fixed-dim: rgb(186 207 130);
  --md-sys-color-on-tertiary-fixed-variant: rgb(60 76 14);
  --md-sys-color-surface-dim: rgb(213 219 220);
  --md-sys-color-surface-bright: rgb(245 250 251);
  --md-sys-color-surface-container-lowest: rgb(255 255 255);
  --md-sys-color-surface-container-low: rgb(239 245 246);
  --md-sys-color-surface-container: rgb(233 239 240);
  --md-sys-color-surface-container-high: rgb(227 233 234);
  --md-sys-color-surface-container-highest: rgb(222 227 229);
}

.light-medium-contrast {
  --md-sys-color-primary: rgb(32 52 103);
  --md-sys-color-surface-tint: rgb(74 92 146);
  --md-sys-color-on-primary: rgb(255 255 255);
  --md-sys-color-primary-container: rgb(89 107 162);
  --md-sys-color-on-primary-container: rgb(255 255 255);
  --md-sys-color-secondary: rgb(0 59 76);
  --md-sys-color-on-secondary: rgb(255 255 255);
  --md-sys-color-secondary-container: rgb(39 117 144);
  --md-sys-color-on-secondary-container: rgb(255 255 255);
  --md-sys-color-tertiary: rgb(44 59 0);
  --md-sys-color-on-tertiary: rgb(255 255 255);
  --md-sys-color-tertiary-container: rgb(98 116 50);
  --md-sys-color-on-tertiary-container: rgb(255 255 255);
  --md-sys-color-error: rgb(116 0 6);
  --md-sys-color-on-error: rgb(255 255 255);
  --md-sys-color-error-container: rgb(207 44 39);
  --md-sys-color-on-error-container: rgb(255 255 255);
  --md-sys-color-background: rgb(250 248 255);
  --md-sys-color-on-background: rgb(26 27 33);
  --md-sys-color-surface: rgb(245 250 251);
  --md-sys-color-on-surface: rgb(12 18 19);
  --md-sys-color-surface-variant: rgb(237 225 207);
  --md-sys-color-on-surface-variant: rgb(60 53 41);
  --md-sys-color-outline: rgb(90 81 68);
  --md-sys-color-outline-variant: rgb(117 108 93);
  --md-sys-color-shadow: rgb(0 0 0);
  --md-sys-color-scrim: rgb(0 0 0);
  --md-sys-color-inverse-surface: rgb(43 49 51);
  --md-sys-color-inverse-on-surface: rgb(236 242 243);
  --md-sys-color-inverse-primary: rgb(179 197 255);
  --md-sys-color-primary-fixed: rgb(89 107 162);
  --md-sys-color-on-primary-fixed: rgb(255 255 255);
  --md-sys-color-primary-fixed-dim: rgb(64 83 136);
  --md-sys-color-on-primary-fixed-variant: rgb(255 255 255);
  --md-sys-color-secondary-fixed: rgb(39 117 144);
  --md-sys-color-on-secondary-fixed: rgb(255 255 255);
  --md-sys-color-secondary-fixed-dim: rgb(0 92 117);
  --md-sys-color-on-secondary-fixed-variant: rgb(255 255 255);
  --md-sys-color-tertiary-fixed: rgb(98 116 50);
  --md-sys-color-on-tertiary-fixed: rgb(255 255 255);
  --md-sys-color-tertiary-fixed-dim: rgb(74 91 28);
  --md-sys-color-on-tertiary-fixed-variant: rgb(255 255 255);
  --md-sys-color-surface-dim: rgb(194 199 201);
  --md-sys-color-surface-bright: rgb(245 250 251);
  --md-sys-color-surface-container-lowest: rgb(255 255 255);
  --md-sys-color-surface-container-low: rgb(239 245 246);
  --md-sys-color-surface-container: rgb(227 233 234);
  --md-sys-color-surface-container-high: rgb(216 222 223);
  --md-sys-color-surface-container-highest: rgb(205 211 212);
}

.light-high-contrast {
  --md-sys-color-primary: rgb(21 41 92);
  --md-sys-color-surface-tint: rgb(74 92 146);
  --md-sys-color-on-primary: rgb(255 255 255);
  --md-sys-color-primary-container: rgb(52 71 123);
  --md-sys-color-on-primary-container: rgb(255 255 255);
  --md-sys-color-secondary: rgb(0 49 63);
  --md-sys-color-on-secondary: rgb(255 255 255);
  --md-sys-color-secondary-container: rgb(0 80 101);
  --md-sys-color-on-secondary-container: rgb(255 255 255);
  --md-sys-color-tertiary: rgb(36 48 0);
  --md-sys-color-on-tertiary: rgb(255 255 255);
  --md-sys-color-tertiary-container: rgb(63 79 16);
  --md-sys-color-on-tertiary-container: rgb(255 255 255);
  --md-sys-color-error: rgb(96 0 4);
  --md-sys-color-on-error: rgb(255 255 255);
  --md-sys-color-error-container: rgb(152 0 10);
  --md-sys-color-on-error-container: rgb(255 255 255);
  --md-sys-color-background: rgb(250 248 255);
  --md-sys-color-on-background: rgb(26 27 33);
  --md-sys-color-surface: rgb(245 250 251);
  --md-sys-color-on-surface: rgb(0 0 0);
  --md-sys-color-surface-variant: rgb(237 225 207);
  --md-sys-color-on-surface-variant: rgb(0 0 0);
  --md-sys-color-outline: rgb(50 43 31);
  --md-sys-color-outline-variant: rgb(80 72 59);
  --md-sys-color-shadow: rgb(0 0 0);
  --md-sys-color-scrim: rgb(0 0 0);
  --md-sys-color-inverse-surface: rgb(43 49 51);
  --md-sys-color-inverse-on-surface: rgb(255 255 255);
  --md-sys-color-inverse-primary: rgb(179 197 255);
  --md-sys-color-primary-fixed: rgb(52 71 123);
  --md-sys-color-on-primary-fixed: rgb(255 255 255);
  --md-sys-color-primary-fixed-dim: rgb(28 48 99);
  --md-sys-color-on-primary-fixed-variant: rgb(255 255 255);
  --md-sys-color-secondary-fixed: rgb(0 80 101);
  --md-sys-color-on-secondary-fixed: rgb(255 255 255);
  --md-sys-color-secondary-fixed-dim: rgb(0 56 72);
  --md-sys-color-on-secondary-fixed-variant: rgb(255 255 255);
  --md-sys-color-tertiary-fixed: rgb(63 79 16);
  --md-sys-color-on-tertiary-fixed: rgb(255 255 255);
  --md-sys-color-tertiary-fixed-dim: rgb(41 55 0);
  --md-sys-color-on-tertiary-fixed-variant: rgb(255 255 255);
  --md-sys-color-surface-dim: rgb(180 186 187);
  --md-sys-color-surface-bright: rgb(245 250 251);
  --md-sys-color-surface-container-lowest: rgb(255 255 255);
  --md-sys-color-surface-container-low: rgb(236 242 243);
  --md-sys-color-surface-container: rgb(222 227 229);
  --md-sys-color-surface-container-high: rgb(207 213 214);
  --md-sys-color-surface-container-highest: rgb(194 199 201);
}

.dark {
  --md-sys-color-primary: rgb(179 197 255);
  --md-sys-color-surface-tint: rgb(179 197 255);
  --md-sys-color-on-primary: rgb(26 46 96);
  --md-sys-color-primary-container: rgb(50 69 120);
  --md-sys-color-on-primary-container: rgb(219 225 255);
  --md-sys-color-secondary: rgb(137 208 237);
  --md-sys-color-on-secondary: rgb(0 53 69);
  --md-sys-color-secondary-container: rgb(0 77 98);
  --md-sys-color-on-secondary-container: rgb(186 234 255);
  --md-sys-color-tertiary: rgb(186 207 130);
  --md-sys-color-on-tertiary: rgb(39 53 0);
  --md-sys-color-tertiary-container: rgb(60 76 14);
  --md-sys-color-on-tertiary-container: rgb(214 235 156);
  --md-sys-color-error: rgb(255 180 171);
  --md-sys-color-on-error: rgb(105 0 5);
  --md-sys-color-error-container: rgb(147 0 10);
  --md-sys-color-on-error-container: rgb(255 218 214);
  --md-sys-color-background: rgb(18 19 24);
  --md-sys-color-on-background: rgb(227 226 233);
  --md-sys-color-surface: rgb(14 20 21);
  --md-sys-color-on-surface: rgb(222 227 229);
  --md-sys-color-surface-variant: rgb(78 70 57);
  --md-sys-color-on-surface-variant: rgb(209 197 180);
  --md-sys-color-outline: rgb(154 143 128);
  --md-sys-color-outline-variant: rgb(78 70 57);
  --md-sys-color-shadow: rgb(0 0 0);
  --md-sys-color-scrim: rgb(0 0 0);
  --md-sys-color-inverse-surface: rgb(222 227 229);
  --md-sys-color-inverse-on-surface: rgb(43 49 51);
  --md-sys-color-inverse-primary: rgb(74 92 146);
  --md-sys-color-primary-fixed: rgb(219 225 255);
  --md-sys-color-on-primary-fixed: rgb(0 23 74);
  --md-sys-color-primary-fixed-dim: rgb(179 197 255);
  --md-sys-color-on-primary-fixed-variant: rgb(50 69 120);
  --md-sys-color-secondary-fixed: rgb(186 234 255);
  --md-sys-color-on-secondary-fixed: rgb(0 31 41);
  --md-sys-color-secondary-fixed-dim: rgb(137 208 237);
  --md-sys-color-on-secondary-fixed-variant: rgb(0 77 98);
  --md-sys-color-tertiary-fixed: rgb(214 235 156);
  --md-sys-color-on-tertiary-fixed: rgb(22 31 0);
  --md-sys-color-tertiary-fixed-dim: rgb(186 207 130);
  --md-sys-color-on-tertiary-fixed-variant: rgb(60 76 14);
  --md-sys-color-surface-dim: rgb(14 20 21);
  --md-sys-color-surface-bright: rgb(52 58 59);
  --md-sys-color-surface-container-lowest: rgb(9 15 16);
  --md-sys-color-surface-container-low: rgb(23 29 30);
  --md-sys-color-surface-container: rgb(27 33 34);
  --md-sys-color-surface-container-high: rgb(37 43 44);
  --md-sys-color-surface-container-highest: rgb(48 54 55);
}

.dark-medium-contrast {
  --md-sys-color-primary: rgb(210 219 255);
  --md-sys-color-surface-tint: rgb(179 197 255);
  --md-sys-color-on-primary: rgb(12 34 85);
  --md-sys-color-primary-container: rgb(125 143 200);
  --md-sys-color-on-primary-container: rgb(0 0 0);
  --md-sys-color-secondary: rgb(169 229 255);
  --md-sys-color-on-secondary: rgb(0 42 54);
  --md-sys-color-secondary-container: rgb(81 154 181);
  --md-sys-color-on-secondary-container: rgb(0 0 0);
  --md-sys-color-tertiary: rgb(208 229 150);
  --md-sys-color-on-tertiary: rgb(30 41 0);
  --md-sys-color-tertiary-container: rgb(133 152 82);
  --md-sys-color-on-tertiary-container: rgb(0 0 0);
  --md-sys-color-error: rgb(255 210 204);
  --md-sys-color-on-error: rgb(84 0 3);
  --md-sys-color-error-container: rgb(255 84 73);
  --md-sys-color-on-error-container: rgb(0 0 0);
  --md-sys-color-background: rgb(18 19 24);
  --md-sys-color-on-background: rgb(227 226 233);
  --md-sys-color-surface: rgb(14 20 21);
  --md-sys-color-on-surface: rgb(255 255 255);
  --md-sys-color-surface-variant: rgb(78 70 57);
  --md-sys-color-on-surface-variant: rgb(231 219 201);
  --md-sys-color-outline: rgb(188 176 160);
  --md-sys-color-outline-variant: rgb(153 143 127);
  --md-sys-color-shadow: rgb(0 0 0);
  --md-sys-color-scrim: rgb(0 0 0);
  --md-sys-color-inverse-surface: rgb(222 227 229);
  --md-sys-color-inverse-on-surface: rgb(37 43 44);
  --md-sys-color-inverse-primary: rgb(51 70 122);
  --md-sys-color-primary-fixed: rgb(219 225 255);
  --md-sys-color-on-primary-fixed: rgb(0 14 52);
  --md-sys-color-primary-fixed-dim: rgb(179 197 255);
  --md-sys-color-on-primary-fixed-variant: rgb(32 52 103);
  --md-sys-color-secondary-fixed: rgb(186 234 255);
  --md-sys-color-on-secondary-fixed: rgb(0 20 27);
  --md-sys-color-secondary-fixed-dim: rgb(137 208 237);
  --md-sys-color-on-secondary-fixed-variant: rgb(0 59 76);
  --md-sys-color-tertiary-fixed: rgb(214 235 156);
  --md-sys-color-on-tertiary-fixed: rgb(13 19 0);
  --md-sys-color-tertiary-fixed-dim: rgb(186 207 130);
  --md-sys-color-on-tertiary-fixed-variant: rgb(44 59 0);
  --md-sys-color-surface-dim: rgb(14 20 21);
  --md-sys-color-surface-bright: rgb(63 70 71);
  --md-sys-color-surface-container-lowest: rgb(4 8 9);
  --md-sys-color-surface-container-low: rgb(25 31 32);
  --md-sys-color-surface-container: rgb(35 41 42);
  --md-sys-color-surface-container-high: rgb(45 52 53);
  --md-sys-color-surface-container-highest: rgb(57 63 64);
}

.dark-high-contrast {
  --md-sys-color-primary: rgb(237 239 255);
  --md-sys-color-surface-tint: rgb(179 197 255);
  --md-sys-color-on-primary: rgb(0 0 0);
  --md-sys-color-primary-container: rgb(175 193 253);
  --md-sys-color-on-primary-container: rgb(0 9 39);
  --md-sys-color-secondary: rgb(221 244 255);
  --md-sys-color-on-secondary: rgb(0 0 0);
  --md-sys-color-secondary-container: rgb(133 204 233);
  --md-sys-color-on-secondary-container: rgb(0 13 19);
  --md-sys-color-tertiary: rgb(227 249 168);
  --md-sys-color-on-tertiary: rgb(0 0 0);
  --md-sys-color-tertiary-container: rgb(182 203 127);
  --md-sys-color-on-tertiary-container: rgb(8 13 0);
  --md-sys-color-error: rgb(255 236 233);
  --md-sys-color-on-error: rgb(0 0 0);
  --md-sys-color-error-container: rgb(255 174 164);
  --md-sys-color-on-error-container: rgb(34 0 1);
  --md-sys-color-background: rgb(18 19 24);
  --md-sys-color-on-background: rgb(227 226 233);
  --md-sys-color-surface: rgb(14 20 21);
  --md-sys-color-on-surface: rgb(255 255 255);
  --md-sys-color-surface-variant: rgb(78 70 57);
  --md-sys-color-on-surface-variant: rgb(255 255 255);
  --md-sys-color-outline: rgb(251 238 220);
  --md-sys-color-outline-variant: rgb(205 193 176);
  --md-sys-color-shadow: rgb(0 0 0);
  --md-sys-color-scrim: rgb(0 0 0);
  --md-sys-color-inverse-surface: rgb(222 227 229);
  --md-sys-color-inverse-on-surface: rgb(0 0 0);
  --md-sys-color-inverse-primary: rgb(51 70 122);
  --md-sys-color-primary-fixed: rgb(219 225 255);
  --md-sys-color-on-primary-fixed: rgb(0 0 0);
  --md-sys-color-primary-fixed-dim: rgb(179 197 255);
  --md-sys-color-on-primary-fixed-variant: rgb(0 14 52);
  --md-sys-color-secondary-fixed: rgb(186 234 255);
  --md-sys-color-on-secondary-fixed: rgb(0 0 0);
  --md-sys-color-secondary-fixed-dim: rgb(137 208 237);
  --md-sys-color-on-secondary-fixed-variant: rgb(0 20 27);
  --md-sys-color-tertiary-fixed: rgb(214 235 156);
  --md-sys-color-on-tertiary-fixed: rgb(0 0 0);
  --md-sys-color-tertiary-fixed-dim: rgb(186 207 130);
  --md-sys-color-on-tertiary-fixed-variant: rgb(13 19 0);
  --md-sys-color-surface-dim: rgb(14 20 21);
  --md-sys-color-surface-bright: rgb(75 81 82);
  --md-sys-color-surface-container-lowest: rgb(0 0 0);
  --md-sys-color-surface-container-low: rgb(27 33 34);
  --md-sys-color-surface-container: rgb(43 49 51);
  --md-sys-color-surface-container-high: rgb(54 60 62);
  --md-sys-color-surface-container-highest: rgb(66 72 73);
}

/* ── Bootstrap overrides ───────────────────────────────── */

:root,
[data-bs-theme="light"] {
  --bs-primary:              rgb(74, 92, 146);
  --bs-primary-rgb:          74, 92, 146;
  --bs-secondary:            rgb(12, 103, 128);
  --bs-secondary-rgb:        12, 103, 128;
  --bs-success:              rgb(83, 101, 36);
  --bs-success-rgb:          83, 101, 36;
  --bs-danger:               rgb(186, 26, 26);
  --bs-danger-rgb:           186, 26, 26;
  --bs-danger-bg-subtle:     rgb(255, 218, 214);
  --bs-danger-border-subtle: rgb(186, 26, 26);
  --bs-body-bg:              rgb(250, 248, 255);
  --bs-body-color:           rgb(26, 27, 33);
  --bs-border-color:         rgb(209, 197, 180);
  --bs-card-bg:              rgb(239, 245, 246);
  --bs-link-color:           rgb(74, 92, 146);
  --bs-link-hover-color:     rgb(50, 69, 120);
  --bs-focus-ring-color:     rgba(74, 92, 146, 0.25);
}

[data-bs-theme="dark"] {
  --bs-primary:              rgb(179, 197, 255);
  --bs-primary-rgb:          179, 197, 255;
  --bs-secondary:            rgb(137, 208, 237);
  --bs-secondary-rgb:        137, 208, 237;
  --bs-success:              rgb(186, 207, 130);
  --bs-success-rgb:          186, 207, 130;
  --bs-danger:               rgb(255, 180, 171);
  --bs-danger-rgb:           255, 180, 171;
  --bs-danger-bg-subtle:     rgb(147, 0, 10);
  --bs-danger-border-subtle: rgb(255, 180, 171);
  --bs-body-bg:              rgb(18, 19, 24);
  --bs-body-color:           rgb(227, 226, 233);
  --bs-border-color:         rgb(78, 70, 57);
  --bs-card-bg:              rgb(23, 29, 30);
  --bs-link-color:           rgb(179, 197, 255);
  --bs-link-hover-color:     rgb(219, 225, 255);
  --bs-focus-ring-color:     rgba(179, 197, 255, 0.25);
}

/* ── Base styles ───────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  background: var(--md-sys-color-background);
  color: var(--md-sys-color-on-background);
}

/* ── Button overrides ──────────────────────────────────── */

.btn-primary {
  --bs-btn-bg:           rgb(74, 92, 146);
  --bs-btn-border-color: rgb(74, 92, 146);
  --bs-btn-color:        rgb(255, 255, 255);
  --bs-btn-hover-bg:           rgb(50, 69, 120);
  --bs-btn-hover-border-color: rgb(50, 69, 120);
  --bs-btn-hover-color:        rgb(255, 255, 255);
  --bs-btn-active-bg:          rgb(50, 69, 120);
}

.btn-secondary {
  --bs-btn-bg:           rgb(12, 103, 128);
  --bs-btn-border-color: rgb(12, 103, 128);
  --bs-btn-color:        rgb(255, 255, 255);
  --bs-btn-hover-bg:           rgb(0, 77, 98);
  --bs-btn-hover-border-color: rgb(0, 77, 98);
  --bs-btn-hover-color:        rgb(255, 255, 255);
  --bs-btn-active-bg:          rgb(0, 77, 98);
}

.btn-success {
  --bs-btn-bg:           var(--md-sys-color-tertiary);
  --bs-btn-border-color: var(--md-sys-color-tertiary);
  --bs-btn-color:        var(--md-sys-color-on-tertiary);
  --bs-btn-hover-bg:           var(--md-sys-color-on-tertiary-container);
  --bs-btn-hover-border-color: var(--md-sys-color-on-tertiary-container);
  --bs-btn-hover-color:        rgb(255, 255, 255);
  --bs-btn-active-bg:          var(--md-sys-color-on-tertiary-container);
}

.btn-danger {
  --bs-btn-bg:           var(--md-sys-color-error);
  --bs-btn-border-color: var(--md-sys-color-error);
  --bs-btn-color:        var(--md-sys-color-on-error);
  --bs-btn-hover-bg:           var(--md-sys-color-on-error-container);
  --bs-btn-hover-border-color: var(--md-sys-color-on-error-container);
  --bs-btn-hover-color:        rgb(255, 255, 255);
  --bs-btn-active-bg:          var(--md-sys-color-on-error-container);
}

/* ── Badge overrides ───────────────────────────────────── */

.badge.bg-primary   { background-color: rgb(74, 92, 146)  !important; }
.badge.bg-secondary { background-color: rgb(12, 103, 128) !important; }
.badge.bg-success   { background-color: rgb(83, 101, 36)  !important; }
.badge.bg-danger    { background-color: rgb(186, 26, 26)  !important; }

/* ── Alert overrides ───────────────────────────────────── */

.alert-primary {
  --bs-alert-color:        rgb(50, 69, 120);
  --bs-alert-bg:           rgb(219, 225, 255);
  --bs-alert-border-color: rgb(74, 92, 146);
}

.alert-success {
  --bs-alert-color:        rgb(60, 76, 14);
  --bs-alert-bg:           rgb(214, 235, 156);
  --bs-alert-border-color: rgb(83, 101, 36);
}

.alert-danger {
  --bs-alert-color:        rgb(147, 0, 10);
  --bs-alert-bg:           rgb(255, 218, 214);
  --bs-alert-border-color: rgb(186, 26, 26);
}

/* ── Nav/tabs ──────────────────────────────────────────── */

.nav-link.active, .nav-pills .nav-link.active {
  background-color: rgb(74, 92, 146);
}

/* ── Password toggle ───────────────────────────────────── */

::-ms-reveal{display:none}button#toggle-password{position:absolute;top:3px;right:4px;z-index:9;width:28px;height:30px;background:0;border:0}button#toggle-password:active,button#toggle-password:focus,button#toggle-password:hover{cursor:pointer}button#toggle-password:focus{outline:0!important}.input-password{padding-right:calc(1.5em + .75rem);background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.input-password[type=text]:valid{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z'/%3E%3Cpath d='M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299l.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z'/%3E%3Cpath d='M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709z'/%3E%3Cpath fill-rule='evenodd' d='M13.646 14.354l-12-12 .708-.708 12 12-.708.708z'/%3E%3C/svg%3E")!important}.input-password[type=password]:valid{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.134 13.134 0 0 0 1.66 2.043C4.12 11.332 5.88 12.5 8 12.5c2.12 0 3.879-1.168 5.168-2.457A13.134 13.134 0 0 0 14.828 8a13.133 13.133 0 0 0-1.66-2.043C11.879 4.668 10.119 3.5 8 3.5c-2.12 0-3.879 1.168-5.168 2.457A13.133 13.133 0 0 0 1.172 8z'/%3E%3Cpath fill-rule='evenodd' d='M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z'/%3E%3C/svg%3E")!important}[data-bs-theme=dark] .input-password[type=text]:valid{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='%23adb5bd' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z'/%3E%3Cpath d='M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299l.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z'/%3E%3Cpath d='M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709z'/%3E%3Cpath fill-rule='evenodd' d='M13.646 14.354l-12-12 .708-.708 12 12-.708.708z'/%3E%3C/svg%3E")!important}[data-bs-theme=dark] .input-password[type=password]:valid{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='%23adb5bd' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.134 13.134 0 0 0 1.66 2.043C4.12 11.332 5.88 12.5 8 12.5c2.12 0 3.879-1.168 5.168-2.457A13.134 13.134 0 0 0 14.828 8a13.133 13.133 0 0 0-1.66-2.043C11.879 4.668 10.119 3.5 8 3.5c-2.12 0-3.879 1.168-5.168 2.457A13.133 13.133 0 0 0 1.172 8z'/%3E%3Cpath fill-rule='evenodd' d='M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z'/%3E%3C/svg%3E")!important}

/* ── Card grids ────────────────────────────────────────── */

.group-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, min(100%, calc(25% - 1rem))));
  gap: 1rem;
}

.card-bar {
  width: 4px;
  border-radius: 4px;
  flex-shrink: 0;
}

.card-bar-primary   { background: var(--md-sys-color-primary); }
.card-bar-secondary { background: var(--md-sys-color-secondary); }
.card-bar-success   { background: var(--md-sys-color-tertiary); }
.card-bar-error     { background: var(--md-sys-color-error); }

/* Smooth transitions on common elements */
* {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Card hover lift */
.card {
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.card[style*="cursor: pointer"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* Page fade in */
#page-dashboard, #page-login {
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Tab content fade */
[id^="tab-"], [id^="encounters-subtab-"], [id^="referrals-subtab-"] {
  animation: fadeIn 0.2s ease;
}

/* Button press */
.btn {
  transition: transform 0.1s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.btn:active {
  transform: scale(0.97);
}
@keyframes cardSlideIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.card {
  animation: cardSlideIn 0.25s ease both;
}