/* PayMidWare theme for Bootstrap 5.3 (Portal and Register). Bootstrap stays the layout and component library; this file points its variables at the
   --pmw-* tokens so every Bootstrap component picks up Lapis & Gold, in light and dark, without a per-page color. Load it after bootstrap.min.css and
   after pmw-tokens.css / pmw-fonts.css / pmw-theme.css.

   The RGB triplets Bootstrap derives its utilities from (bg-*, text-*, border-*, link-*) cannot be computed from a hex token in CSS, so they are written out
   in the three blocks directly below. They must match pmw-tokens.css (the test suite's PmwThemeTests checks the ones that map to a token). */

:root, [data-bs-theme="light"] {
  --bs-primary-rgb: 29, 59, 143;
  --bs-secondary-rgb: 74, 83, 104;
  --bs-success-rgb: 31, 122, 90;
  --bs-info-rgb: 169, 187, 245;
  --bs-warning-rgb: 217, 162, 63;
  --bs-danger-rgb: 180, 52, 58;
  --bs-light-rgb: 247, 244, 238;
  --bs-dark-rgb: 15, 22, 38;
  --bs-body-color-rgb: 15, 22, 38;
  --bs-body-bg-rgb: 247, 244, 238;
  --bs-emphasis-color-rgb: 15, 22, 38;
  --bs-secondary-color-rgb: 74, 83, 104;
  --bs-secondary-bg-rgb: 239, 234, 223;
  --bs-tertiary-bg-rgb: 243, 239, 230;
  --bs-link-color-rgb: 29, 59, 143;
  --bs-link-hover-color-rgb: 22, 46, 115;
  --bs-primary-text-emphasis: #1D3B8F;
  --bs-primary-bg-subtle: #E3E9FA;
  --bs-primary-border-subtle: #C3D0F4;
  --bs-secondary-text-emphasis: #3A4256;
  --bs-secondary-bg-subtle: #ECE8DE;
  --bs-secondary-border-subtle: #D9D2C2;
  --bs-success-text-emphasis: #17583F;
  --bs-success-bg-subtle: #E1F2EB;
  --bs-success-border-subtle: #B5DCCB;
  --bs-info-text-emphasis: #1D3B8F;
  --bs-info-bg-subtle: #E3E9FA;
  --bs-info-border-subtle: #C3D0F4;
  --bs-warning-text-emphasis: #6B4A10;
  --bs-warning-bg-subtle: #F8ECD3;
  --bs-warning-border-subtle: #EBD39B;
  --bs-danger-text-emphasis: #8C2428;
  --bs-danger-bg-subtle: #F8E4E5;
  --bs-danger-border-subtle: #E9B5B8;
  --bs-light-text-emphasis: #4A5368;
  --bs-light-bg-subtle: #F2EEE5;
  --bs-light-border-subtle: #E8E2D6;
  --bs-dark-text-emphasis: #0F1626;
  --bs-dark-bg-subtle: #D8D3C6;
  --bs-dark-border-subtle: #B9B2A2;
}

[data-theme="dark"], [data-bs-theme="dark"] {
  --bs-primary-rgb: 58, 95, 208;
  --bs-secondary-rgb: 94, 106, 138;
  --bs-success-rgb: 31, 122, 90;
  --bs-info-rgb: 169, 187, 245;
  --bs-warning-rgb: 217, 162, 63;
  --bs-danger-rgb: 180, 52, 58;
  --bs-light-rgb: 24, 34, 56;
  --bs-dark-rgb: 15, 22, 38;
  --bs-body-color-rgb: 238, 241, 247;
  --bs-body-bg-rgb: 15, 22, 38;
  --bs-emphasis-color-rgb: 238, 241, 247;
  --bs-secondary-color-rgb: 163, 173, 194;
  --bs-secondary-bg-rgb: 30, 41, 66;
  --bs-tertiary-bg-rgb: 21, 30, 50;
  --bs-link-color-rgb: 107, 135, 232;
  --bs-link-hover-color-rgb: 169, 187, 245;
  --bs-primary-text-emphasis: #A9BBF5;
  --bs-primary-bg-subtle: #1E2B4F;
  --bs-primary-border-subtle: #2F457F;
  --bs-secondary-text-emphasis: #A3ADC2;
  --bs-secondary-bg-subtle: #202B44;
  --bs-secondary-border-subtle: #33405E;
  --bs-success-text-emphasis: #7ED6B5;
  --bs-success-bg-subtle: #12352A;
  --bs-success-border-subtle: #1F5A45;
  --bs-info-text-emphasis: #A9BBF5;
  --bs-info-bg-subtle: #1E2B4F;
  --bs-info-border-subtle: #2F457F;
  --bs-warning-text-emphasis: #E6B85C;
  --bs-warning-bg-subtle: #3A2D12;
  --bs-warning-border-subtle: #5A4518;
  --bs-danger-text-emphasis: #F4A3A7;
  --bs-danger-bg-subtle: #3B1B1E;
  --bs-danger-border-subtle: #6A2B30;
  --bs-light-text-emphasis: #EEF1F7;
  --bs-light-bg-subtle: #202B44;
  --bs-light-border-subtle: #33405E;
  --bs-dark-text-emphasis: #A3ADC2;
  --bs-dark-bg-subtle: #0B111D;
  --bs-dark-border-subtle: #26324D;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]):not([data-bs-theme]) {
    --bs-primary-rgb: 58, 95, 208;
    --bs-secondary-rgb: 94, 106, 138;
    --bs-success-rgb: 31, 122, 90;
    --bs-info-rgb: 169, 187, 245;
    --bs-warning-rgb: 217, 162, 63;
    --bs-danger-rgb: 180, 52, 58;
    --bs-light-rgb: 24, 34, 56;
    --bs-dark-rgb: 15, 22, 38;
    --bs-body-color-rgb: 238, 241, 247;
    --bs-body-bg-rgb: 15, 22, 38;
    --bs-emphasis-color-rgb: 238, 241, 247;
    --bs-secondary-color-rgb: 163, 173, 194;
    --bs-secondary-bg-rgb: 30, 41, 66;
    --bs-tertiary-bg-rgb: 21, 30, 50;
    --bs-link-color-rgb: 107, 135, 232;
    --bs-link-hover-color-rgb: 169, 187, 245;
    --bs-primary-text-emphasis: #A9BBF5;
    --bs-primary-bg-subtle: #1E2B4F;
    --bs-primary-border-subtle: #2F457F;
    --bs-secondary-text-emphasis: #A3ADC2;
    --bs-secondary-bg-subtle: #202B44;
    --bs-secondary-border-subtle: #33405E;
    --bs-success-text-emphasis: #7ED6B5;
    --bs-success-bg-subtle: #12352A;
    --bs-success-border-subtle: #1F5A45;
    --bs-info-text-emphasis: #A9BBF5;
    --bs-info-bg-subtle: #1E2B4F;
    --bs-info-border-subtle: #2F457F;
    --bs-warning-text-emphasis: #E6B85C;
    --bs-warning-bg-subtle: #3A2D12;
    --bs-warning-border-subtle: #5A4518;
    --bs-danger-text-emphasis: #F4A3A7;
    --bs-danger-bg-subtle: #3B1B1E;
    --bs-danger-border-subtle: #6A2B30;
    --bs-light-text-emphasis: #EEF1F7;
    --bs-light-bg-subtle: #202B44;
    --bs-light-border-subtle: #33405E;
    --bs-dark-text-emphasis: #A3ADC2;
    --bs-dark-bg-subtle: #0B111D;
    --bs-dark-border-subtle: #26324D;
  }
}

/* Variables that already resolve through the tokens, so they follow the theme on their own. */
:root, [data-bs-theme="light"], [data-bs-theme="dark"] {
  --bs-body-font-family: var(--pmw-font-body);
  --bs-font-monospace: var(--pmw-font-mono);
  --bs-body-font-size: 1rem;
  --bs-body-color: var(--pmw-text);
  --bs-body-bg: var(--pmw-bg);
  --bs-emphasis-color: var(--pmw-text);
  --bs-secondary-color: var(--pmw-muted);
  --bs-secondary-bg: color-mix(in srgb, var(--pmw-bg) 82%, var(--pmw-border));
  --bs-tertiary-color: var(--pmw-muted);
  --bs-tertiary-bg: color-mix(in srgb, var(--pmw-bg) 60%, var(--pmw-surface));
  --bs-heading-color: var(--pmw-text);
  --bs-link-color: var(--pmw-primary);
  --bs-link-hover-color: var(--pmw-primary-hover);
  --bs-code-color: var(--pmw-text);
  --bs-highlight-bg: var(--pmw-accent-tint);
  --bs-border-color: var(--pmw-border);
  --bs-border-color-translucent: var(--pmw-border);
  --bs-border-radius: var(--pmw-radius-sm);
  --bs-border-radius-sm: 4px;
  --bs-border-radius-lg: var(--pmw-radius);
  --bs-border-radius-xl: var(--pmw-radius-lg);
  --bs-primary: var(--pmw-fill-primary);
  --bs-success: #1F7A5A;
  --bs-danger: #B4343A;
  --bs-warning: var(--pmw-accent);
  --bs-form-valid-color: var(--pmw-success);
  --bs-form-valid-border-color: var(--pmw-success);
  --bs-form-invalid-color: var(--pmw-danger);
  --bs-form-invalid-border-color: var(--pmw-danger);
  --bs-focus-ring-color: var(--pmw-focus);
  --pmw-hover-mix: #000;
}
[data-theme="dark"], [data-bs-theme="dark"] { --pmw-hover-mix: #fff; }
@media (prefers-color-scheme: dark) { :root:not([data-theme]):not([data-bs-theme]) { --pmw-hover-mix: #fff; } }

/* Text colors that sit on the page background rather than on a filled badge need the lighter dark-mode tokens. */
.text-primary { color: var(--pmw-primary) !important; }
.text-success { color: var(--pmw-success) !important; }
.text-danger { color: var(--pmw-danger) !important; }
.text-warning { color: var(--pmw-warning) !important; }
.text-muted, .text-body-secondary { color: var(--pmw-muted) !important; }
.bg-body { background-color: var(--pmw-bg) !important; }
.bg-white { background-color: var(--pmw-surface) !important; }

/* Buttons */
.btn { --bs-btn-border-radius: var(--pmw-radius-sm); --bs-btn-font-weight: 500; --bs-btn-focus-box-shadow: 0 0 0 .25rem var(--pmw-focus); }
.btn-primary {
  --bs-btn-color: var(--pmw-on-primary); --bs-btn-bg: var(--pmw-primary); --bs-btn-border-color: var(--pmw-primary);
  --bs-btn-hover-color: var(--pmw-on-primary); --bs-btn-hover-bg: color-mix(in srgb, var(--pmw-primary) 88%, var(--pmw-hover-mix)); --bs-btn-hover-border-color: color-mix(in srgb, var(--pmw-primary) 88%, var(--pmw-hover-mix));
  --bs-btn-active-color: var(--pmw-on-primary); --bs-btn-active-bg: color-mix(in srgb, var(--pmw-primary) 80%, var(--pmw-hover-mix)); --bs-btn-active-border-color: color-mix(in srgb, var(--pmw-primary) 80%, var(--pmw-hover-mix));
  --bs-btn-disabled-color: var(--pmw-on-primary); --bs-btn-disabled-bg: var(--pmw-primary); --bs-btn-disabled-border-color: var(--pmw-primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--pmw-primary); --bs-btn-border-color: var(--pmw-primary);
  --bs-btn-hover-color: var(--pmw-on-primary); --bs-btn-hover-bg: var(--pmw-primary); --bs-btn-hover-border-color: var(--pmw-primary);
  --bs-btn-active-color: var(--pmw-on-primary); --bs-btn-active-bg: var(--pmw-primary); --bs-btn-active-border-color: var(--pmw-primary);
  --bs-btn-disabled-color: var(--pmw-primary); --bs-btn-disabled-border-color: var(--pmw-primary);
}
.btn-secondary {
  --bs-btn-color: #fff; --bs-btn-bg: rgb(var(--bs-secondary-rgb)); --bs-btn-border-color: rgb(var(--bs-secondary-rgb));
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: color-mix(in srgb, rgb(var(--bs-secondary-rgb)) 88%, var(--pmw-hover-mix)); --bs-btn-hover-border-color: color-mix(in srgb, rgb(var(--bs-secondary-rgb)) 88%, var(--pmw-hover-mix));
  --bs-btn-active-color: #fff; --bs-btn-active-bg: color-mix(in srgb, rgb(var(--bs-secondary-rgb)) 80%, var(--pmw-hover-mix)); --bs-btn-active-border-color: color-mix(in srgb, rgb(var(--bs-secondary-rgb)) 80%, var(--pmw-hover-mix));
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: rgb(var(--bs-secondary-rgb)); --bs-btn-disabled-border-color: rgb(var(--bs-secondary-rgb));
}
.btn-outline-secondary {
  --bs-btn-color: var(--pmw-muted); --bs-btn-border-color: var(--pmw-input-border);
  --bs-btn-hover-color: var(--pmw-text); --bs-btn-hover-bg: var(--pmw-tint); --bs-btn-hover-border-color: var(--pmw-muted);
  --bs-btn-active-color: var(--pmw-text); --bs-btn-active-bg: var(--pmw-tint); --bs-btn-active-border-color: var(--pmw-muted);
  --bs-btn-disabled-color: var(--pmw-muted); --bs-btn-disabled-border-color: var(--pmw-input-border);
}
.btn-success {
  --bs-btn-color: #fff; --bs-btn-bg: #1F7A5A; --bs-btn-border-color: #1F7A5A;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #186147; --bs-btn-hover-border-color: #186147;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #124B37; --bs-btn-active-border-color: #124B37;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #1F7A5A; --bs-btn-disabled-border-color: #1F7A5A;
}
.btn-outline-success {
  --bs-btn-color: var(--pmw-success); --bs-btn-border-color: var(--pmw-success);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1F7A5A; --bs-btn-hover-border-color: #1F7A5A;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #1F7A5A; --bs-btn-active-border-color: #1F7A5A;
  --bs-btn-disabled-color: var(--pmw-success); --bs-btn-disabled-border-color: var(--pmw-success);
}
.btn-danger {
  --bs-btn-color: #fff; --bs-btn-bg: #B4343A; --bs-btn-border-color: #B4343A;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #932A2F; --bs-btn-hover-border-color: #932A2F;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #7A2327; --bs-btn-active-border-color: #7A2327;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #B4343A; --bs-btn-disabled-border-color: #B4343A;
}
.btn-outline-danger {
  --bs-btn-color: var(--pmw-danger); --bs-btn-border-color: var(--pmw-danger);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #B4343A; --bs-btn-hover-border-color: #B4343A;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #B4343A; --bs-btn-active-border-color: #B4343A;
  --bs-btn-disabled-color: var(--pmw-danger); --bs-btn-disabled-border-color: var(--pmw-danger);
}
.btn-warning {
  --bs-btn-color: #0F1626; --bs-btn-bg: var(--pmw-accent); --bs-btn-border-color: var(--pmw-accent);
  --bs-btn-hover-color: #0F1626; --bs-btn-hover-bg: color-mix(in srgb, var(--pmw-accent) 88%, #000); --bs-btn-hover-border-color: color-mix(in srgb, var(--pmw-accent) 88%, #000);
  --bs-btn-active-color: #0F1626; --bs-btn-active-bg: color-mix(in srgb, var(--pmw-accent) 78%, #000); --bs-btn-active-border-color: color-mix(in srgb, var(--pmw-accent) 78%, #000);
  --bs-btn-disabled-color: #0F1626; --bs-btn-disabled-bg: var(--pmw-accent); --bs-btn-disabled-border-color: var(--pmw-accent);
}
.btn-outline-warning {
  --bs-btn-color: var(--pmw-accent-ink); --bs-btn-border-color: var(--pmw-accent);
  --bs-btn-hover-color: #0F1626; --bs-btn-hover-bg: var(--pmw-accent); --bs-btn-hover-border-color: var(--pmw-accent);
  --bs-btn-active-color: #0F1626; --bs-btn-active-bg: var(--pmw-accent); --bs-btn-active-border-color: var(--pmw-accent);
  --bs-btn-disabled-color: var(--pmw-accent-ink); --bs-btn-disabled-border-color: var(--pmw-accent);
}
.btn-info {
  --bs-btn-color: #0F1626; --bs-btn-bg: rgb(var(--bs-info-rgb)); --bs-btn-border-color: rgb(var(--bs-info-rgb));
  --bs-btn-hover-color: #0F1626; --bs-btn-hover-bg: color-mix(in srgb, rgb(var(--bs-info-rgb)) 88%, #000); --bs-btn-hover-border-color: color-mix(in srgb, rgb(var(--bs-info-rgb)) 88%, #000);
  --bs-btn-active-color: #0F1626; --bs-btn-active-bg: color-mix(in srgb, rgb(var(--bs-info-rgb)) 78%, #000); --bs-btn-active-border-color: color-mix(in srgb, rgb(var(--bs-info-rgb)) 78%, #000);
  --bs-btn-disabled-color: #0F1626; --bs-btn-disabled-bg: rgb(var(--bs-info-rgb)); --bs-btn-disabled-border-color: rgb(var(--bs-info-rgb));
}
.btn-outline-info {
  --bs-btn-color: var(--pmw-primary); --bs-btn-border-color: var(--pmw-primary-2);
  --bs-btn-hover-color: #0F1626; --bs-btn-hover-bg: rgb(var(--bs-info-rgb)); --bs-btn-hover-border-color: rgb(var(--bs-info-rgb));
  --bs-btn-active-color: #0F1626; --bs-btn-active-bg: rgb(var(--bs-info-rgb)); --bs-btn-active-border-color: rgb(var(--bs-info-rgb));
  --bs-btn-disabled-color: var(--pmw-primary); --bs-btn-disabled-border-color: var(--pmw-primary-2);
}
.btn-light {
  --bs-btn-color: var(--pmw-text); --bs-btn-bg: var(--pmw-surface); --bs-btn-border-color: var(--pmw-border);
  --bs-btn-hover-color: var(--pmw-text); --bs-btn-hover-bg: var(--pmw-tint); --bs-btn-hover-border-color: var(--pmw-border);
  --bs-btn-active-color: var(--pmw-text); --bs-btn-active-bg: var(--pmw-tint); --bs-btn-active-border-color: var(--pmw-border);
  --bs-btn-disabled-color: var(--pmw-muted); --bs-btn-disabled-bg: var(--pmw-surface); --bs-btn-disabled-border-color: var(--pmw-border);
}
.btn-dark {
  --bs-btn-color: var(--pmw-bg); --bs-btn-bg: var(--pmw-text); --bs-btn-border-color: var(--pmw-text);
  --bs-btn-hover-color: var(--pmw-bg); --bs-btn-hover-bg: color-mix(in srgb, var(--pmw-text) 85%, var(--pmw-bg)); --bs-btn-hover-border-color: color-mix(in srgb, var(--pmw-text) 85%, var(--pmw-bg));
  --bs-btn-active-color: var(--pmw-bg); --bs-btn-active-bg: color-mix(in srgb, var(--pmw-text) 75%, var(--pmw-bg)); --bs-btn-active-border-color: color-mix(in srgb, var(--pmw-text) 75%, var(--pmw-bg));
  --bs-btn-disabled-color: var(--pmw-bg); --bs-btn-disabled-bg: var(--pmw-text); --bs-btn-disabled-border-color: var(--pmw-text);
}
.btn-outline-dark {
  --bs-btn-color: var(--pmw-text); --bs-btn-border-color: var(--pmw-text);
  --bs-btn-hover-color: var(--pmw-bg); --bs-btn-hover-bg: var(--pmw-text); --bs-btn-hover-border-color: var(--pmw-text);
  --bs-btn-active-color: var(--pmw-bg); --bs-btn-active-bg: var(--pmw-text); --bs-btn-active-border-color: var(--pmw-text);
  --bs-btn-disabled-color: var(--pmw-muted); --bs-btn-disabled-border-color: var(--pmw-muted);
}
.btn-outline-light { --bs-btn-color: #fff; --bs-btn-border-color: rgba(255, 255, 255, .6); --bs-btn-hover-color: #0F1626; --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff; --bs-btn-active-color: #0F1626; --bs-btn-active-bg: #fff; --bs-btn-active-border-color: #fff; }
.btn-link { --bs-btn-color: var(--pmw-primary); --bs-btn-hover-color: var(--pmw-primary-hover); --bs-btn-active-color: var(--pmw-primary-hover); }

/* Forms */
.form-control, .form-select, .input-group-text {
  background-color: var(--pmw-surface); color: var(--pmw-text); border-color: var(--pmw-input-border);
}
.form-control::placeholder { color: var(--pmw-muted); opacity: .75; }
.form-control:focus, .form-select:focus {
  background-color: var(--pmw-surface); color: var(--pmw-text); border-color: var(--pmw-primary);
  box-shadow: 0 0 0 .25rem var(--pmw-focus);
}
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: var(--bs-secondary-bg); color: var(--pmw-muted); }
.input-group-text { background-color: var(--bs-secondary-bg); }
.form-check-input { background-color: var(--pmw-surface); border-color: var(--pmw-input-border); }
.form-check-input:checked, .form-check-input[type="checkbox"]:indeterminate { background-color: var(--pmw-primary); border-color: var(--pmw-primary); }
.form-check-input:focus { border-color: var(--pmw-primary); box-shadow: 0 0 0 .25rem var(--pmw-focus); }
.form-switch .form-check-input:not(:checked):not(:focus) { background-color: var(--pmw-surface); }
.form-label, .col-form-label { font-weight: 500; }
.form-text { color: var(--pmw-muted); }
.invalid-feedback, .text-danger.field-validation-error, .field-validation-error { color: var(--pmw-danger); }
.form-control.input-validation-error, .form-select.input-validation-error { border-color: var(--pmw-danger); }
.form-control.is-invalid, .was-validated .form-control:invalid { border-color: var(--pmw-danger); }
.form-control.is-valid, .was-validated .form-control:valid { border-color: var(--pmw-success); }
.validation-summary-errors, .text-danger.validation-summary-errors { color: var(--pmw-danger); }
.rich-text-editor, [data-rich-text-editor] { background: var(--pmw-surface); color: var(--pmw-text); border-color: var(--pmw-input-border); }

/* Navbar: ink in light mode, the surface color in dark mode, with the reversed lockup on both. */
.navbar.bg-dark, .bg-dark.navbar { background-color: var(--pmw-nav-bg) !important; border-bottom: 1px solid var(--pmw-border) !important; box-shadow: none !important; }
.navbar-dark, .navbar[data-bs-theme="dark"] {
  --bs-navbar-color: rgba(238, 241, 247, .78); --bs-navbar-hover-color: #fff; --bs-navbar-disabled-color: rgba(238, 241, 247, .4);
  --bs-navbar-active-color: #fff; --bs-navbar-brand-color: #fff; --bs-navbar-brand-hover-color: #fff;
}
.navbar .nav-link { border-radius: var(--pmw-radius-sm); }
.navbar .nav-link:hover, .navbar .nav-link:focus { color: #fff !important; }
/* The navbar is dark in both themes, but Bootstrap's own "light" color flips to a dark value in dark mode, so the pages' text-light links need a fixed light color. */
.navbar .text-light, .navbar .navbar-text { color: rgba(238, 241, 247, .85) !important; }
.navbar .text-light:hover, .navbar .text-light:focus, .navbar .text-light.show { color: #fff !important; }
.navbar .nav-link.active { box-shadow: inset 0 -2px 0 var(--pmw-accent); }
.navbar .pmw-theme-toggle { color: rgba(238, 241, 247, .85); border-color: rgba(238, 241, 247, .35); }
.navbar .pmw-theme-toggle:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.navbar .pmw-nav-button { color: rgba(238, 241, 247, .85); border-color: rgba(238, 241, 247, .35); }
.navbar .pmw-nav-button:hover, .navbar .pmw-nav-button:focus-visible { background: rgba(255, 255, 255, .1); color: #fff; }
.navbar-brand img { display: block; }
.navbar-brand .pmw-logo-light { display: none !important; }
.navbar-brand .pmw-logo-dark { display: block !important; }

/* Dropdowns */
.dropdown-menu {
  --bs-dropdown-bg: var(--pmw-surface); --bs-dropdown-color: var(--pmw-text); --bs-dropdown-border-color: var(--pmw-border);
  --bs-dropdown-border-radius: var(--pmw-radius); --bs-dropdown-divider-bg: var(--pmw-border);
  --bs-dropdown-link-color: var(--pmw-text); --bs-dropdown-link-hover-color: var(--pmw-text); --bs-dropdown-link-hover-bg: var(--pmw-tint);
  --bs-dropdown-link-active-color: var(--pmw-on-primary); --bs-dropdown-link-active-bg: var(--pmw-primary);
  box-shadow: var(--pmw-shadow);
}
.dropdown-menu .text-dark, .dropdown-menu .nav-link { color: var(--pmw-text) !important; }
.dropdown-menu .nav-link:hover { background: var(--pmw-tint); }

/* Cards, lists, tables */
.card {
  --bs-card-bg: var(--pmw-surface); --bs-card-border-color: var(--pmw-border); --bs-card-border-radius: var(--pmw-radius);
  --bs-card-inner-border-radius: calc(var(--pmw-radius) - 1px); --bs-card-cap-bg: color-mix(in srgb, var(--pmw-surface) 70%, var(--pmw-bg)); --bs-card-color: var(--pmw-text);
}
.list-group {
  --bs-list-group-bg: var(--pmw-surface); --bs-list-group-color: var(--pmw-text); --bs-list-group-border-color: var(--pmw-border);
  --bs-list-group-action-hover-bg: var(--pmw-tint); --bs-list-group-action-hover-color: var(--pmw-text);
  --bs-list-group-active-bg: var(--pmw-primary); --bs-list-group-active-color: var(--pmw-on-primary); --bs-list-group-active-border-color: var(--pmw-primary);
}
.table {
  --bs-table-color: var(--pmw-text); --bs-table-bg: transparent; --bs-table-border-color: var(--pmw-border);
  --bs-table-striped-color: var(--pmw-text); --bs-table-striped-bg: color-mix(in srgb, var(--pmw-text) 4%, transparent);
  --bs-table-hover-color: var(--pmw-text); --bs-table-hover-bg: var(--pmw-tint); --bs-table-active-color: var(--pmw-text); --bs-table-active-bg: var(--pmw-tint);
}
.table > thead > tr > th, .table > :not(caption) > * > th { font-family: var(--pmw-font-display); font-weight: 600; font-size: .86rem; color: var(--pmw-muted); }
.table-light { --bs-table-color: var(--pmw-text); --bs-table-bg: var(--pmw-tint); --bs-table-border-color: var(--pmw-border); }
.table-danger { --bs-table-color: var(--pmw-text); --bs-table-bg: var(--pmw-danger-tint); --bs-table-border-color: var(--pmw-border); }
.table-warning { --bs-table-color: var(--pmw-text); --bs-table-bg: var(--pmw-accent-tint); --bs-table-border-color: var(--pmw-border); }
.table-success { --bs-table-color: var(--pmw-text); --bs-table-bg: var(--pmw-success-tint); --bs-table-border-color: var(--pmw-border); }
.table-secondary, .table-info { --bs-table-color: var(--pmw-text); --bs-table-bg: var(--pmw-tint); --bs-table-border-color: var(--pmw-border); }
.table-responsive { border-radius: var(--pmw-radius); }

/* Alerts and badges use the subtle/emphasis variables above; the only extra is the left edge that marks the kind at a glance. */
.alert { border-radius: var(--pmw-radius); }
.badge { font-family: var(--pmw-font-body); font-weight: 600; letter-spacing: .01em; }
.badge.bg-secondary, .badge.text-bg-secondary { color: #fff !important; }
.badge.text-bg-light, .badge.bg-light { color: var(--pmw-text) !important; background-color: var(--pmw-tint) !important; }
.badge.bg-warning, .badge.text-bg-warning, .badge.bg-info, .badge.text-bg-info { color: #0F1626 !important; }
.bg-primary { background-color: var(--pmw-fill-primary) !important; }
.border { border-color: var(--pmw-border) !important; }
.bg-light { background-color: color-mix(in srgb, var(--pmw-bg) 55%, var(--pmw-surface)) !important; color: var(--pmw-text); }

/* Navigation */
.nav-pills { --bs-nav-pills-link-active-color: var(--pmw-on-primary); --bs-nav-pills-link-active-bg: var(--pmw-primary); --bs-nav-link-color: var(--pmw-primary); --bs-nav-link-hover-color: var(--pmw-primary-hover); }
.nav-tabs { --bs-nav-tabs-border-color: var(--pmw-border); --bs-nav-tabs-link-hover-border-color: var(--pmw-border); --bs-nav-tabs-link-active-bg: var(--pmw-surface); --bs-nav-tabs-link-active-color: var(--pmw-text); --bs-nav-tabs-link-active-border-color: var(--pmw-border) var(--pmw-border) var(--pmw-surface); --bs-nav-link-color: var(--pmw-muted); --bs-nav-link-hover-color: var(--pmw-text); }
.nav-tabs .nav-link.active { box-shadow: inset 0 2px 0 var(--pmw-accent); }
.nav-link { color: var(--bs-nav-link-color); }
.pagination {
  --bs-pagination-color: var(--pmw-primary); --bs-pagination-bg: var(--pmw-surface); --bs-pagination-border-color: var(--pmw-border);
  --bs-pagination-hover-color: var(--pmw-primary-hover); --bs-pagination-hover-bg: var(--pmw-tint); --bs-pagination-hover-border-color: var(--pmw-border);
  --bs-pagination-focus-color: var(--pmw-primary-hover); --bs-pagination-focus-bg: var(--pmw-tint); --bs-pagination-focus-box-shadow: 0 0 0 .25rem var(--pmw-focus);
  --bs-pagination-active-color: var(--pmw-on-primary); --bs-pagination-active-bg: var(--pmw-primary); --bs-pagination-active-border-color: var(--pmw-primary);
  --bs-pagination-disabled-color: var(--pmw-muted); --bs-pagination-disabled-bg: var(--pmw-surface); --bs-pagination-disabled-border-color: var(--pmw-border);
}
.breadcrumb { --bs-breadcrumb-divider-color: var(--pmw-muted); --bs-breadcrumb-item-active-color: var(--pmw-muted); }
.accordion { --bs-accordion-bg: var(--pmw-surface); --bs-accordion-color: var(--pmw-text); --bs-accordion-border-color: var(--pmw-border); --bs-accordion-btn-bg: var(--pmw-surface); --bs-accordion-btn-color: var(--pmw-text); --bs-accordion-active-bg: var(--pmw-tint); --bs-accordion-active-color: var(--pmw-text); }
.modal { --bs-modal-bg: var(--pmw-surface); --bs-modal-color: var(--pmw-text); --bs-modal-border-color: var(--pmw-border); --bs-modal-header-border-color: var(--pmw-border); --bs-modal-footer-border-color: var(--pmw-border); --bs-modal-border-radius: var(--pmw-radius-lg); }
.progress { --bs-progress-bg: var(--bs-secondary-bg); --bs-progress-bar-bg: var(--pmw-primary); }
.toast { --bs-toast-bg: var(--pmw-surface); --bs-toast-color: var(--pmw-text); --bs-toast-border-color: var(--pmw-border); }
.popover, .tooltip { --bs-popover-bg: var(--pmw-surface); --bs-popover-border-color: var(--pmw-border); --bs-popover-body-color: var(--pmw-text); }
.offcanvas { --bs-offcanvas-bg: var(--pmw-surface); --bs-offcanvas-color: var(--pmw-text); }
.shadow-sm, .box-shadow { box-shadow: var(--pmw-shadow) !important; }

/* Anything a page paints white by hand (rich text editors, QR code backdrops) follows the surface color instead. */
.pmw-surface { background: var(--pmw-surface); color: var(--pmw-text); }
.pmw-qr { background: #fff; padding: .5rem; border-radius: var(--pmw-radius-sm); }
