:root,
[data-bs-theme="light"] {
  color-scheme: light;

  --md-sys-color-primary: #246b28;
  --md-sys-color-on-primary: #ffffff;
  --md-sys-color-primary-container: #c3f2b8;
  --md-sys-color-on-primary-container: #06210a;
  --md-sys-color-secondary: #775a00;
  --md-sys-color-on-secondary: #ffffff;
  --md-sys-color-secondary-container: #ffdf8b;
  --md-sys-color-on-secondary-container: #251a00;
  --md-sys-color-tertiary: #005bc0;
  --md-sys-color-on-tertiary: #ffffff;
  --md-sys-color-tertiary-container: #d7e4ff;
  --md-sys-color-on-tertiary-container: #001b3f;
  --md-sys-color-surface: #f7fbf3;
  --md-sys-color-surface-container: #eef3e9;
  --md-sys-color-on-surface: #191d17;
  --md-sys-color-on-surface-variant: #41483d;
  --md-sys-color-outline: #72796d;
  --md-sys-color-error: #ba1a1a;
  --md-sys-color-on-error: #ffffff;
  --md-sys-color-error-container: #ffdad6;
  --md-sys-color-on-error-container: #410002;

  --bs-primary: var(--md-sys-color-primary);
  --bs-primary-rgb: 36, 107, 40;
  --bs-primary-text-emphasis: #1b5420;
  --bs-primary-bg-subtle: var(--md-sys-color-primary-container);
  --bs-primary-border-subtle: #91ce88;
  --bs-secondary: var(--md-sys-color-secondary);
  --bs-secondary-rgb: 119, 90, 0;
  --bs-secondary-text-emphasis: var(--md-sys-color-on-secondary-container);
  --bs-secondary-bg-subtle: var(--md-sys-color-secondary-container);
  --bs-secondary-border-subtle: #d6b65b;
  --bs-success: var(--md-sys-color-primary);
  --bs-success-rgb: 36, 107, 40;
  --bs-success-text-emphasis: #1b5420;
  --bs-success-bg-subtle: var(--md-sys-color-primary-container);
  --bs-success-border-subtle: #91ce88;
  --bs-info: var(--md-sys-color-tertiary);
  --bs-info-rgb: 0, 91, 192;
  --bs-info-text-emphasis: var(--md-sys-color-on-tertiary-container);
  --bs-info-bg-subtle: var(--md-sys-color-tertiary-container);
  --bs-info-border-subtle: #a7c7f2;
  --bs-warning: var(--md-sys-color-secondary);
  --bs-warning-rgb: 119, 90, 0;
  --bs-warning-text-emphasis: var(--md-sys-color-on-secondary-container);
  --bs-warning-bg-subtle: var(--md-sys-color-secondary-container);
  --bs-warning-border-subtle: #d6b65b;
  --bs-danger: var(--md-sys-color-error);
  --bs-danger-rgb: 186, 26, 26;
  --bs-danger-text-emphasis: var(--md-sys-color-on-error-container);
  --bs-danger-bg-subtle: var(--md-sys-color-error-container);
  --bs-danger-border-subtle: #e6a6a1;
  --bs-light: var(--md-sys-color-surface);
  --bs-light-rgb: 247, 251, 243;
  --bs-dark: var(--md-sys-color-on-surface);
  --bs-dark-rgb: 25, 29, 23;

  --bs-body-color: var(--md-sys-color-on-surface);
  --bs-body-color-rgb: 25, 29, 23;
  --bs-body-bg: var(--md-sys-color-surface);
  --bs-body-bg-rgb: 247, 251, 243;
  --bs-emphasis-color: var(--md-sys-color-on-surface);
  --bs-secondary-color: #596054;
  --bs-tertiary-color: #72796d;
  --bs-secondary-bg: var(--md-sys-color-surface-container);
  --bs-tertiary-bg: #e6ece1;
  --bs-border-color: #d5ddcf;
  --bs-border-color-translucent: rgba(25, 29, 23, 0.14);
  --bs-link-color: var(--md-sys-color-tertiary);
  --bs-link-color-rgb: 0, 91, 192;
  --bs-link-hover-color: #00458f;
  --bs-link-hover-color-rgb: 0, 69, 143;
  --bs-focus-ring-color: rgba(36, 107, 40, 0.25);
  --bs-light-bg-subtle: var(--md-sys-color-surface-container);
  --bs-dark-bg-subtle: #e1e8dc;
}

[data-bs-theme="dark"] {
  color-scheme: dark;

  --md-sys-color-primary: #8cdd87;
  --md-sys-color-on-primary: #00390a;
  --md-sys-color-primary-container: #0f5220;
  --md-sys-color-on-primary-container: #b0f0b0;
  --md-sys-color-secondary: #f4c95d;
  --md-sys-color-on-secondary: #3f2e00;
  --md-sys-color-secondary-container: #5a4400;
  --md-sys-color-on-secondary-container: #ffe196;
  --md-sys-color-tertiary: #aac7ff;
  --md-sys-color-on-tertiary: #002f66;
  --md-sys-color-tertiary-container: #00458f;
  --md-sys-color-on-tertiary-container: #d7e4ff;
  --md-sys-color-surface: #121611;
  --md-sys-color-surface-container: #191d17;
  --md-sys-color-on-surface: #e2e8dc;
  --md-sys-color-on-surface-variant: #c1c9bb;
  --md-sys-color-outline: #8b9385;
  --md-sys-color-error: #ffb4ab;
  --md-sys-color-on-error: #690005;
  --md-sys-color-error-container: #93000a;
  --md-sys-color-on-error-container: #ffdad6;

  --bs-primary: var(--md-sys-color-primary);
  --bs-primary-rgb: 140, 221, 135;
  --bs-primary-text-emphasis: var(--md-sys-color-on-primary-container);
  --bs-primary-bg-subtle: var(--md-sys-color-primary-container);
  --bs-primary-border-subtle: #377c3b;
  --bs-secondary: var(--md-sys-color-secondary);
  --bs-secondary-rgb: 244, 201, 93;
  --bs-secondary-text-emphasis: var(--md-sys-color-on-secondary-container);
  --bs-secondary-bg-subtle: var(--md-sys-color-secondary-container);
  --bs-secondary-border-subtle: #806324;
  --bs-success: var(--md-sys-color-primary);
  --bs-success-rgb: 140, 221, 135;
  --bs-success-text-emphasis: var(--md-sys-color-on-primary-container);
  --bs-success-bg-subtle: var(--md-sys-color-primary-container);
  --bs-success-border-subtle: #377c3b;
  --bs-info: var(--md-sys-color-tertiary);
  --bs-info-rgb: 170, 199, 255;
  --bs-info-text-emphasis: var(--md-sys-color-on-tertiary-container);
  --bs-info-bg-subtle: var(--md-sys-color-tertiary-container);
  --bs-info-border-subtle: #4476b3;
  --bs-warning: var(--md-sys-color-secondary);
  --bs-warning-rgb: 244, 201, 93;
  --bs-warning-text-emphasis: var(--md-sys-color-on-secondary-container);
  --bs-warning-bg-subtle: var(--md-sys-color-secondary-container);
  --bs-warning-border-subtle: #806324;
  --bs-danger: var(--md-sys-color-error);
  --bs-danger-rgb: 255, 180, 171;
  --bs-danger-text-emphasis: var(--md-sys-color-on-error-container);
  --bs-danger-bg-subtle: var(--md-sys-color-error-container);
  --bs-danger-border-subtle: #c13e3d;
  --bs-light: var(--md-sys-color-surface-container);
  --bs-light-rgb: 25, 29, 23;
  --bs-dark: var(--md-sys-color-on-surface);
  --bs-dark-rgb: 226, 232, 220;

  --bs-body-color: var(--md-sys-color-on-surface);
  --bs-body-color-rgb: 226, 232, 220;
  --bs-body-bg: var(--md-sys-color-surface);
  --bs-body-bg-rgb: 18, 22, 17;
  --bs-emphasis-color: var(--md-sys-color-on-surface);
  --bs-secondary-color: #bdc5b7;
  --bs-tertiary-color: #9ba394;
  --bs-secondary-bg: var(--md-sys-color-surface-container);
  --bs-tertiary-bg: #20261d;
  --bs-border-color: #41483d;
  --bs-border-color-translucent: rgba(226, 232, 220, 0.16);
  --bs-link-color: var(--md-sys-color-tertiary);
  --bs-link-color-rgb: 170, 199, 255;
  --bs-link-hover-color: #d7e4ff;
  --bs-link-hover-color-rgb: 215, 228, 255;
  --bs-focus-ring-color: rgba(140, 221, 135, 0.35);
  --bs-light-bg-subtle: var(--md-sys-color-surface-container);
  --bs-dark-bg-subtle: #20261d;
}

body {
  background: var(--md-sys-color-surface);
  color: var(--md-sys-color-on-surface);
}

.btn-neutral {
  color: var(--md-sys-color-on-surface);
  background: var(--md-sys-color-surface-container);
  border: 1px solid var(--md-sys-color-outline);
}
.btn-neutral:hover, .btn-neutral:focus-visible {
  color: var(--md-sys-color-on-surface);
  background: var(--md-sys-color-primary-container);
  border-color: var(--md-sys-color-primary);
}

.navbar.bg-primary {
  background-color: var(--md-sys-color-primary-container) !important;
  color: var(--md-sys-color-on-primary-container);
  --bs-navbar-color: var(--md-sys-color-on-primary-container);
  --bs-navbar-hover-color: var(--md-sys-color-primary);
  --bs-navbar-disabled-color: color-mix(in srgb, var(--md-sys-color-on-primary-container) 45%, transparent);
  --bs-navbar-active-color: var(--md-sys-color-primary);
  --bs-navbar-brand-color: var(--md-sys-color-on-primary-container);
  --bs-navbar-brand-hover-color: var(--md-sys-color-primary);
  --bs-navbar-toggler-border-color: color-mix(in srgb, var(--md-sys-color-on-primary-container) 35%, transparent);
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%2306210A' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-ineb {
  min-height: 4rem;
  padding-block: .45rem;
  box-shadow: 0 2px 10px color-mix(in srgb, var(--md-sys-color-on-surface) 12%, transparent);
  position: relative;
  z-index: 1030;
}
.navbar-ineb .navbar-brand { white-space: nowrap; letter-spacing: -.02em; }
.navbar-ineb .navbar-nav { gap: .2rem; }
.navbar-ineb .nav-link {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  padding: .55rem .7rem !important;
  border-radius: .75rem;
  font-weight: 600;
  white-space: nowrap;
  transition: background-color .15s ease, color .15s ease;
}
.navbar-ineb .nav-link:hover,
.navbar-ineb .nav-link:focus-visible,
.navbar-ineb .nav-link.show {
  color: var(--md-sys-color-on-primary-container);
  background: color-mix(in srgb, var(--md-sys-color-primary) 13%, transparent);
}
.navbar-ineb .nav-link:focus-visible,
.navbar-ineb .navbar-brand:focus-visible,
.navbar-ineb .navbar-toggler:focus-visible {
  outline: 3px solid var(--md-sys-color-tertiary);
  outline-offset: 2px;
  box-shadow: none;
}
.navbar-ineb .dropdown-menu {
  min-width: 14rem;
  max-width: min(22rem, calc(100vw - 1.5rem));
  max-height: min(75vh, 34rem);
  overflow-y: auto;
  padding: .45rem;
  border: 1px solid var(--bs-border-color);
  border-radius: .9rem;
  box-shadow: 0 .7rem 1.8rem color-mix(in srgb, #000 18%, transparent);
}
.navbar-ineb .dropdown-item { min-height: 2.6rem; display: flex; align-items: center; border-radius: .55rem; white-space: normal; }
.navbar-ineb .dropdown-header { padding: .65rem .7rem .35rem; font-weight: 700; }
.navbar-ineb .navbar-toggler { min-width: 2.75rem; min-height: 2.75rem; border-radius: .7rem; }
.navbar-ineb .navbar-tools { gap: .25rem; }
.navbar-ineb .theme-toggle { min-height: 2.5rem; }

@media (max-width: 1199.98px) and (min-width: 992px) {
  .navbar-ineb .container-fluid { flex-wrap: wrap; }
  .navbar-ineb .navbar-brand { font-size: 1rem; }
  .navbar-ineb .nav-link { padding-inline: .5rem !important; font-size: .92rem; }
}
@media (max-width: 991.98px) {
  .navbar-ineb .navbar-collapse.show {
    display: block;
    position: fixed;
    inset: 3.5rem 0 0;
    height: calc(100dvh - 3.5rem);
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0 1rem 1.25rem;
    background: var(--md-sys-color-surface);
    color: var(--md-sys-color-on-surface);
    box-shadow: 0 .8rem 2rem color-mix(in srgb, #000 22%, transparent);
    border-top: 1px solid var(--bs-border-color);
  }
  .navbar-ineb .mobile-nav-heading { display: grid; gap: .15rem; padding: 1.15rem .35rem .85rem; border-bottom: 1px solid var(--bs-border-color); }
  .navbar-ineb .mobile-nav-heading strong { font-size: 1.25rem; }
  .navbar-ineb .mobile-nav-heading .small { color: var(--md-sys-color-outline); }
  .navbar-ineb .mobile-nav-eyebrow { color: var(--md-sys-color-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .navbar-ineb .navbar-nav { display: flex; gap: 0; padding: .45rem 0; }
  .navbar-ineb .navbar-nav > .nav-item { border-bottom: 1px solid var(--bs-border-color); }
  .navbar-ineb .navbar-nav > .nav-item > .nav-link { width: 100%; min-height: 3.25rem; padding-inline: .85rem !important; border-radius: .75rem; color: var(--md-sys-color-on-surface); }
  .navbar-ineb .navbar-nav > .nav-item > .nav-link:hover,
  .navbar-ineb .navbar-nav > .nav-item > .nav-link:focus-visible,
  .navbar-ineb .navbar-nav > .nav-item > .nav-link.show { color: var(--md-sys-color-on-primary-container); background: var(--md-sys-color-primary-container); }
  .navbar-ineb .navbar-nav > .nav-item.dropdown > .nav-link { justify-content: flex-start; }
  .navbar-ineb .navbar-nav > .nav-item.dropdown > .nav-link::after { margin-left: auto; }
  .navbar-ineb .dropdown-menu,
  .navbar-ineb .navbar-tools .dropdown-menu {
    position: static !important;
    transform: none !important;
    width: 100%;
    max-width: none;
    max-height: none;
    margin: 0 0 .6rem !important;
    padding: .3rem .35rem .5rem .8rem;
    border: 0;
    border-left: 3px solid var(--md-sys-color-secondary);
    border-radius: 0 .7rem .7rem 0;
    background: var(--md-sys-color-surface-container);
    box-shadow: none;
  }
  .navbar-ineb .dropdown-item { min-height: 3rem; padding: .65rem .75rem; }
  .navbar-ineb .navbar-tools { display: flex; flex-direction: column; align-items: stretch; gap: .45rem; border-top: 0; padding-top: .75rem; }
  .navbar-ineb .navbar-tools > .nav-item { width: 100%; }
  .navbar-ineb .navbar-tools > .nav-item > .nav-link { width: 100%; min-height: 3rem; justify-content: flex-start; color: var(--md-sys-color-on-surface); }
  .navbar-ineb .navbar-tools .theme-toggle { min-width: 3rem; min-height: 3rem; color: var(--md-sys-color-on-surface); border-color: var(--bs-border-color); }
  .navbar-ineb .navbar-tools .dropdown-menu { margin-top: .2rem !important; }
}
@media (max-width: 575.98px) {
  .navbar-ineb .container-fluid { padding-inline: .8rem; }
  .navbar-ineb .navbar-brand { max-width: calc(100% - 4.5rem); overflow: hidden; text-overflow: ellipsis; font-size: .98rem; }
  .navbar-ineb .navbar-collapse.show { padding-inline: .85rem; }
}

[data-bs-theme="dark"] .navbar.bg-primary {
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23B0F0B0' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.btn-primary,
.btn-success {
  --bs-btn-color: var(--md-sys-color-on-primary);
  --bs-btn-bg: var(--md-sys-color-primary);
  --bs-btn-border-color: var(--md-sys-color-primary);
  --bs-btn-hover-color: var(--md-sys-color-on-primary);
  --bs-btn-hover-bg: color-mix(in srgb, var(--md-sys-color-primary) 86%, var(--md-sys-color-on-surface));
  --bs-btn-hover-border-color: color-mix(in srgb, var(--md-sys-color-primary) 86%, var(--md-sys-color-on-surface));
  --bs-btn-active-color: var(--md-sys-color-on-primary);
  --bs-btn-active-bg: color-mix(in srgb, var(--md-sys-color-primary) 78%, var(--md-sys-color-on-surface));
  --bs-btn-active-border-color: color-mix(in srgb, var(--md-sys-color-primary) 78%, var(--md-sys-color-on-surface));
  --bs-btn-disabled-color: var(--md-sys-color-on-primary);
  --bs-btn-disabled-bg: var(--md-sys-color-primary);
  --bs-btn-disabled-border-color: var(--md-sys-color-primary);
}

.btn-secondary,
.btn-warning {
  --bs-btn-color: var(--md-sys-color-on-secondary);
  --bs-btn-bg: var(--md-sys-color-secondary);
  --bs-btn-border-color: var(--md-sys-color-secondary);
  --bs-btn-hover-color: var(--md-sys-color-on-secondary);
  --bs-btn-hover-bg: color-mix(in srgb, var(--md-sys-color-secondary) 86%, var(--md-sys-color-on-surface));
  --bs-btn-hover-border-color: color-mix(in srgb, var(--md-sys-color-secondary) 86%, var(--md-sys-color-on-surface));
  --bs-btn-active-color: var(--md-sys-color-on-secondary);
  --bs-btn-active-bg: color-mix(in srgb, var(--md-sys-color-secondary) 78%, var(--md-sys-color-on-surface));
  --bs-btn-active-border-color: color-mix(in srgb, var(--md-sys-color-secondary) 78%, var(--md-sys-color-on-surface));
  --bs-btn-disabled-color: var(--md-sys-color-on-secondary);
}

.btn-info {
  --bs-btn-color: var(--md-sys-color-on-tertiary);
  --bs-btn-bg: var(--md-sys-color-tertiary);
  --bs-btn-border-color: var(--md-sys-color-tertiary);
  --bs-btn-hover-color: var(--md-sys-color-on-tertiary);
  --bs-btn-hover-bg: color-mix(in srgb, var(--md-sys-color-tertiary) 86%, var(--md-sys-color-on-surface));
  --bs-btn-hover-border-color: color-mix(in srgb, var(--md-sys-color-tertiary) 86%, var(--md-sys-color-on-surface));
  --bs-btn-active-color: var(--md-sys-color-on-tertiary);
}

.btn-danger {
  --bs-btn-color: var(--md-sys-color-on-error);
  --bs-btn-bg: var(--md-sys-color-error);
  --bs-btn-border-color: var(--md-sys-color-error);
  --bs-btn-hover-color: var(--md-sys-color-on-error);
  --bs-btn-hover-bg: color-mix(in srgb, var(--md-sys-color-error) 86%, var(--md-sys-color-on-surface));
  --bs-btn-hover-border-color: color-mix(in srgb, var(--md-sys-color-error) 86%, var(--md-sys-color-on-surface));
  --bs-btn-active-color: var(--md-sys-color-on-error);
}

.btn-outline-primary,
.btn-outline-success {
  --bs-btn-color: var(--md-sys-color-primary);
  --bs-btn-border-color: var(--md-sys-color-primary);
  --bs-btn-hover-color: var(--md-sys-color-on-primary);
  --bs-btn-hover-bg: var(--md-sys-color-primary);
  --bs-btn-hover-border-color: var(--md-sys-color-primary);
  --bs-btn-active-color: var(--md-sys-color-on-primary);
  --bs-btn-active-bg: var(--md-sys-color-primary);
  --bs-btn-active-border-color: var(--md-sys-color-primary);
}

.btn-outline-secondary,
.btn-outline-warning {
  --bs-btn-color: var(--md-sys-color-secondary);
  --bs-btn-border-color: var(--md-sys-color-secondary);
  --bs-btn-hover-color: var(--md-sys-color-on-secondary);
  --bs-btn-hover-bg: var(--md-sys-color-secondary);
  --bs-btn-hover-border-color: var(--md-sys-color-secondary);
  --bs-btn-active-color: var(--md-sys-color-on-secondary);
  --bs-btn-active-bg: var(--md-sys-color-secondary);
}

.btn-outline-info {
  --bs-btn-color: var(--md-sys-color-tertiary);
  --bs-btn-border-color: var(--md-sys-color-tertiary);
  --bs-btn-hover-color: var(--md-sys-color-on-tertiary);
  --bs-btn-hover-bg: var(--md-sys-color-tertiary);
  --bs-btn-hover-border-color: var(--md-sys-color-tertiary);
}

.btn-outline-danger {
  --bs-btn-color: var(--md-sys-color-error);
  --bs-btn-border-color: var(--md-sys-color-error);
  --bs-btn-hover-color: var(--md-sys-color-on-error);
  --bs-btn-hover-bg: var(--md-sys-color-error);
  --bs-btn-hover-border-color: var(--md-sys-color-error);
}

.btn-outline-primary:focus-visible,
.btn-outline-secondary:focus-visible,
.btn-outline-info:focus-visible,
.btn-outline-danger:focus-visible,
.theme-toggle:focus-visible {
  box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color);
}

.alert-primary,
.alert-success {
  --bs-alert-color: var(--md-sys-color-on-primary-container);
  --bs-alert-bg: var(--md-sys-color-primary-container);
  --bs-alert-border-color: var(--bs-primary-border-subtle);
}

.alert-secondary,
.alert-warning {
  --bs-alert-color: var(--md-sys-color-on-secondary-container);
  --bs-alert-bg: var(--md-sys-color-secondary-container);
  --bs-alert-border-color: var(--bs-secondary-border-subtle);
}

.alert-info {
  --bs-alert-color: var(--md-sys-color-on-tertiary-container);
  --bs-alert-bg: var(--md-sys-color-tertiary-container);
  --bs-alert-border-color: var(--bs-info-border-subtle);
}

.alert-danger {
  --bs-alert-color: var(--md-sys-color-on-error-container);
  --bs-alert-bg: var(--md-sys-color-error-container);
  --bs-alert-border-color: var(--bs-danger-border-subtle);
}

.text-primary,
.text-success { color: var(--md-sys-color-primary) !important; }
.text-secondary,
.text-warning,
.text-warning-emphasis { color: var(--md-sys-color-secondary) !important; }
.text-info { color: var(--md-sys-color-tertiary) !important; }
.text-danger,
.text-danger-emphasis { color: var(--md-sys-color-error) !important; }

.bg-primary,
.bg-success { background-color: var(--md-sys-color-primary) !important; }
.bg-secondary,
.bg-warning { background-color: var(--md-sys-color-secondary) !important; }
.bg-info { background-color: var(--md-sys-color-tertiary) !important; }
.bg-danger { background-color: var(--md-sys-color-error) !important; }
.bg-light { background-color: var(--md-sys-color-surface-container) !important; }
.bg-light-subtle { background-color: var(--md-sys-color-surface-container) !important; }

.text-bg-primary,
.text-bg-success {
  color: var(--md-sys-color-on-primary-container) !important;
  background-color: var(--md-sys-color-primary-container) !important;
}
.text-bg-secondary,
.text-bg-warning {
  color: var(--md-sys-color-on-secondary-container) !important;
  background-color: var(--md-sys-color-secondary-container) !important;
}
.text-bg-info {
  color: var(--md-sys-color-on-tertiary-container) !important;
  background-color: var(--md-sys-color-tertiary-container) !important;
}
.text-bg-danger {
  color: var(--md-sys-color-on-error-container) !important;
  background-color: var(--md-sys-color-error-container) !important;
}
.bg-warning.text-dark,
.bg-info.text-dark,
.bg-primary.text-white,
.bg-success.text-white {
  color: var(--md-sys-color-on-primary-container) !important;
}
.bg-warning.text-dark { color: var(--md-sys-color-on-secondary-container) !important; }
.bg-info.text-dark { color: var(--md-sys-color-on-tertiary-container) !important; }
.bg-primary.text-white,
.bg-success.text-white { color: var(--md-sys-color-on-primary) !important; }

.table {
  --bs-table-color: var(--md-sys-color-on-surface);
  --bs-table-bg: var(--md-sys-color-surface);
  --bs-table-border-color: var(--bs-border-color);
  --bs-table-striped-color: var(--md-sys-color-on-surface);
  --bs-table-striped-bg: var(--md-sys-color-surface-container);
  --bs-table-hover-color: var(--md-sys-color-on-surface);
  --bs-table-hover-bg: var(--md-sys-color-surface-container);
}

.table-dark,
.table-light {
  --bs-table-color: var(--md-sys-color-on-surface);
  --bs-table-bg: var(--md-sys-color-surface-container);
  --bs-table-border-color: var(--bs-border-color);
  --bs-table-striped-bg: var(--md-sys-color-surface);
  --bs-table-hover-bg: var(--md-sys-color-surface-container);
  --bs-table-hover-color: var(--md-sys-color-on-surface);
}

.table > :not(caption) > * > * { box-shadow: none; }
.table-hover > tbody > tr:hover > * { color: var(--md-sys-color-on-surface); }
.card,
.list-group-item,
.dropdown-menu,
.modal-content,
.offcanvas,
.accordion-item {
  color: var(--md-sys-color-on-surface);
  background-color: var(--md-sys-color-surface);
  border-color: var(--bs-border-color);
}
.card-header,
.card-footer,
.dropdown-header { background-color: var(--md-sys-color-surface-container); }
.dropdown-item { color: var(--md-sys-color-on-surface); }
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active { color: var(--md-sys-color-on-primary-container); background: var(--md-sys-color-primary-container); }
.dropdown-divider { border-color: var(--bs-border-color); }

.form-control,
.form-select,
.input-group-text {
  color: var(--md-sys-color-on-surface);
  background-color: var(--md-sys-color-surface);
  border-color: var(--bs-border-color);
}
.form-control::placeholder { color: var(--md-sys-color-outline); opacity: 1; }
.form-control:focus,
.form-select:focus {
  border-color: var(--md-sys-color-primary);
  box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color);
}
.form-check-input:checked { background-color: var(--md-sys-color-primary); border-color: var(--md-sys-color-primary); }
.form-check-input:focus { border-color: var(--md-sys-color-primary); box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color); }
.is-invalid,
.was-validated .form-control:invalid,
.was-validated .form-select:invalid { border-color: var(--md-sys-color-error); }
.invalid-feedback,
.form-control.is-invalid,
.form-select.is-invalid { color: var(--md-sys-color-error); }

.page-link { color: var(--md-sys-color-tertiary); background: var(--md-sys-color-surface); border-color: var(--bs-border-color); }
.page-link:hover { color: var(--md-sys-color-on-tertiary-container); background: var(--md-sys-color-tertiary-container); border-color: var(--bs-border-color); }
.active > .page-link,
.page-link.active { color: var(--md-sys-color-on-primary); background: var(--md-sys-color-primary); border-color: var(--md-sys-color-primary); }
.progress { background: var(--md-sys-color-surface-container); }
.progress-bar { background: var(--md-sys-color-primary); }
.border-primary { border-color: var(--md-sys-color-primary) !important; }
.border-secondary { border-color: var(--md-sys-color-secondary) !important; }
.border-info { border-color: var(--md-sys-color-tertiary) !important; }
.border-danger { border-color: var(--md-sys-color-error) !important; }

.theme-toggle {
  min-width: 2.5rem;
  border-color: var(--md-sys-color-primary);
  color: var(--md-sys-color-primary);
}
.navbar.bg-primary .theme-toggle {
  border-color: var(--md-sys-color-on-primary-container);
  color: var(--md-sys-color-on-primary-container);
}
.navbar.bg-primary .theme-toggle:hover {
  color: var(--md-sys-color-on-primary);
  background: var(--md-sys-color-primary);
}

@media print {
  body { color: #191d17 !important; background: #ffffff !important; }
  .card, .list-group-item, .table { color: #191d17 !important; background: #ffffff !important; }
}
