:root {
  --theme-bg: #f2f6fc;
  --theme-surface: #fff;
  --theme-surface-muted: #f8f9fa;
  --theme-text: #1f2d3d;
  --theme-muted: #69707a;
  --theme-border: #d4dae3;
  --theme-header-start: #f8fbff;
  --theme-header-end: #e8efff;
  --theme-header-text: #172033;
  --theme-header-muted: #526079;
  --theme-header-border: rgba(37, 99, 235, 0.16);
}

html[data-theme="dark"] {
  --theme-bg: #111827;
  --theme-surface: #1f2937;
  --theme-surface-muted: #273449;
  --theme-text: #e5e7eb;
  --theme-muted: #b8c2d1;
  --theme-border: #435068;
  --theme-header-start: #17233a;
  --theme-header-end: #25204f;
  --theme-header-text: #fff;
  --theme-header-muted: #c6d4f2;
  --theme-header-border: rgba(147, 197, 253, 0.22);
}

body {
  background-color: var(--theme-bg);
  color: var(--theme-text);
  transition: background-color 0.2s ease, color 0.2s ease;
}

html[data-theme="dark"] body {
  background-color: var(--theme-bg) !important;
  color: var(--theme-text);
}

/* Shared headers used by the dashboard and routed application pages. */
header.bg-gradient-primary-to-secondary {
  background-color: var(--theme-header-start) !important;
  background-image: linear-gradient(135deg, var(--theme-header-start) 0%, var(--theme-header-end) 100%) !important;
  color: var(--theme-header-text) !important;
  border-bottom: 1px solid var(--theme-header-border);
  transition: background-color 0.2s ease, background-image 0.2s ease, color 0.2s ease;
}

header.bg-gradient-primary-to-secondary .page-header-title,
header.bg-gradient-primary-to-secondary .page-header-icon,
header.bg-gradient-primary-to-secondary h1,
header.bg-gradient-primary-to-secondary h2,
header.bg-gradient-primary-to-secondary h3,
header.bg-gradient-primary-to-secondary h4,
header.bg-gradient-primary-to-secondary h5,
header.bg-gradient-primary-to-secondary h6 {
  color: var(--theme-header-text) !important;
}

header.bg-gradient-primary-to-secondary .page-header-subtitle,
header.bg-gradient-primary-to-secondary p,
header.bg-gradient-primary-to-secondary .text-white-50,
header.bg-gradient-primary-to-secondary .text-muted {
  color: var(--theme-header-muted) !important;
}

html[data-theme="light"] header.bg-gradient-primary-to-secondary {
  box-shadow: inset 0 -1px 0 rgba(37, 99, 235, 0.08);
}

html[data-theme="dark"] header.bg-gradient-primary-to-secondary {
  box-shadow: 0 0.4rem 1.5rem rgba(0, 0, 0, 0.22);
}

.dashboard-welcome-header {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin: 1.5rem 1.5rem 2.25rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 1rem;
  background: linear-gradient(135deg, #0875f5 0%, #3447e8 48%, #6d21d8 100%);
  color: #fff;
  box-shadow: 0 1rem 2.5rem rgba(37, 74, 180, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.24);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.dashboard-welcome-header::before,
.dashboard-welcome-header::after {
  position: absolute;
  z-index: -1;
  width: 20rem;
  height: 20rem;
  content: "";
  border-radius: 50%;
  filter: blur(1px);
  pointer-events: none;
}

.dashboard-welcome-header::before {
  top: -13rem;
  left: -5rem;
  background: radial-gradient(circle, rgba(0, 97, 242, 0.16), transparent 70%);
}

.dashboard-welcome-header::after {
  right: -4rem;
  bottom: -14rem;
  background: radial-gradient(circle, rgba(105, 0, 199, 0.16), transparent 70%);
}

.dashboard-welcome-header .container-xl {
  position: relative;
  z-index: 2;
}

.dashboard-welcome-header h1 {
  color: inherit;
  margin-bottom: 0.85rem;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  text-shadow: 0 2px 8px rgba(12, 25, 67, 0.22);
}

.dashboard-welcome-header p {
  display: inline-block;
  padding: 0.5rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 2rem;
  background: rgba(15, 23, 42, 0.16);
  color: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(4px);
}

html[data-theme="dark"] .dashboard-welcome-header {
  background: linear-gradient(135deg, #14233d 0%, #1d3260 50%, #35205f 100%);
  color: #fff;
  border-color: rgba(147, 197, 253, 0.2);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .dashboard-welcome-header p {
  color: #c6d4f2;
}

@media (max-width: 767.98px) {
  .dashboard-welcome-header {
    margin: 0.75rem 0.75rem 1.5rem;
    border-radius: 0.75rem;
  }

  .dashboard-welcome-header p {
    border-radius: 0.75rem;
  }
}

.theme-toggle {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1090;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 5.25rem;
  padding: 0.6rem 0.85rem;
  border: 1px solid var(--theme-border);
  border-radius: 2rem;
  background: var(--theme-surface);
  color: var(--theme-text);
  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.2);
  font-weight: 600;
}

.theme-toggle:hover,
.theme-toggle:focus-visible {
  color: #fff;
  background: #0061f2;
  border-color: #0061f2;
}

.sidenav-theme-control {
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--theme-border);
  background: var(--theme-surface-muted);
}

.theme-toggle.theme-toggle-sidebar {
  position: static;
  width: 100%;
  min-width: 0;
  justify-content: center;
  padding: 0.55rem 0.75rem;
  box-shadow: none;
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .toast,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .accordion-item,
html[data-theme="dark"] .topnav,
html[data-theme="dark"] .navbar.bg-white,
html[data-theme="dark"] .navbar.bg-light,
html[data-theme="dark"] .footer-light,
html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-light {
  background-color: var(--theme-surface) !important;
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .sidenav-light {
  background-color: var(--theme-surface) !important;
  color: var(--theme-text);
}

html[data-theme="dark"] .topnav #sidebarToggle {
  color: #f8fafc !important;
}

html[data-theme="dark"] .topnav #sidebarToggle svg {
  color: inherit;
  stroke: currentColor;
}

html[data-theme="dark"] .topnav #sidebarToggle:hover,
html[data-theme="dark"] .topnav #sidebarToggle:focus-visible {
  color: #ffffff !important;
  background-color: rgba(255, 255, 255, 0.14);
}

.topnav .dropdown-notifications > #navbarDropdownAlerts {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
}

html[data-theme="dark"] .topnav .dropdown-notifications > #navbarDropdownAlerts {
  color: #f8fafc !important;
  background-color: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

html[data-theme="dark"] .topnav .dropdown-notifications > #navbarDropdownAlerts:hover,
html[data-theme="dark"] .topnav .dropdown-notifications > #navbarDropdownAlerts:focus-visible,
html[data-theme="dark"] .topnav .dropdown-notifications.show > #navbarDropdownAlerts {
  color: #ffffff !important;
  background-color: rgba(96, 165, 250, 0.22);
  border-color: rgba(147, 197, 253, 0.48);
  outline: none;
}

html[data-theme="dark"] .topnav #topbarNotificationBell:not(.text-danger) {
  color: inherit !important;
}

html[data-theme="dark"] .sidenav-light .nav-link,
html[data-theme="dark"] .navbar-light .navbar-brand,
html[data-theme="dark"] .navbar-light .navbar-nav .nav-link,
html[data-theme="dark"] .dropdown-item,
html[data-theme="dark"] .card-title,
html[data-theme="dark"] .card-header,
html[data-theme="dark"] .modal-title,
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] .text-gray-900,
html[data-theme="dark"] .text-dark {
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .text-gray-500,
html[data-theme="dark"] .sidenav-menu-heading {
  color: var(--theme-muted) !important;
}

html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .input-group-text,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select {
  background-color: var(--theme-surface-muted);
  border-color: var(--theme-border);
  color: var(--theme-text);
}

html[data-theme="dark"] .form-control::placeholder,
html[data-theme="dark"] textarea::placeholder {
  color: var(--theme-muted);
}

html[data-theme="dark"] .table {
  --bs-table-bg: transparent;
  --bs-table-striped-bg: rgba(255, 255, 255, 0.04);
  --bs-table-hover-bg: rgba(255, 255, 255, 0.075);
  --bs-table-color: var(--theme-text);
  color: var(--theme-text);
  border-color: var(--theme-border);
}

html[data-theme="dark"] .card-header:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info),
html[data-theme="dark"] .card-footer:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info) {
  background-color: #172235 !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .dropdown-header,
html[data-theme="dark"] .dropdown-user-details-name {
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .dropdown-user-details-email,
html[data-theme="dark"] .dropdown-user-details-id,
html[data-theme="dark"] .dropdown-menu .small {
  color: var(--theme-muted) !important;
}

/* Bootstrap compatibility layer for legacy modules that use fixed light utilities. */
html[data-theme="dark"] .card-body,
html[data-theme="dark"] .modal-body,
html[data-theme="dark"] .modal-footer,
html[data-theme="dark"] .tab-content {
  color: var(--theme-text);
}

html[data-theme="dark"] .card-header.bg-white,
html[data-theme="dark"] .card-footer.bg-white,
html[data-theme="dark"] .table-light,
html[data-theme="dark"] .table-light > th,
html[data-theme="dark"] .table-light > td,
html[data-theme="dark"] .table-light > tr > th,
html[data-theme="dark"] .table-light > tr > td,
html[data-theme="dark"] thead.table-light,
html[data-theme="dark"] tfoot.table-light {
  --bs-table-bg: #172235;
  --bs-table-color: #dbe5f2;
  --bs-table-border-color: var(--theme-border);
  background: #172235 !important;
  border-color: var(--theme-border) !important;
  color: #dbe5f2 !important;
}

html[data-theme="dark"] .table-primary,
html[data-theme="dark"] .table-primary > th,
html[data-theme="dark"] .table-primary > td,
html[data-theme="dark"] .table-primary > tr > th,
html[data-theme="dark"] .table-primary > tr > td {
  --bs-table-bg: #1b3a61;
  --bs-table-color: #f1f6fc;
  --bs-table-border-color: #496789;
  background: #1b3a61 !important;
  color: #f1f6fc !important;
}

html[data-theme="dark"] .bg-light:not(.badge),
html[data-theme="dark"] .form-control.bg-light,
html[data-theme="dark"] .form-select.bg-light {
  background-color: var(--theme-surface-muted) !important;
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .badge.bg-light {
  background: #e7eef8 !important;
  border-color: #c6d2e1 !important;
  color: #243750 !important;
}

html[data-theme="dark"] .alert-info {
  background: #12354a;
  border-color: #28627d;
  color: #c5efff;
}

html[data-theme="dark"] .alert-info .alert-heading,
html[data-theme="dark"] .alert-info h1,
html[data-theme="dark"] .alert-info h2,
html[data-theme="dark"] .alert-info h3,
html[data-theme="dark"] .alert-info h4,
html[data-theme="dark"] .alert-info h5,
html[data-theme="dark"] .alert-info h6 {
  color: #e1f7ff !important;
}

html[data-theme="dark"] .alert-warning {
  background: #463713;
  border-color: #745b22;
  color: #ffe39a;
}

html[data-theme="dark"] .alert-danger {
  background: #48252e;
  border-color: #7a3947;
  color: #ffc3ca;
}

html[data-theme="dark"] .alert-success {
  background: #163b2b;
  border-color: #2f6b4c;
  color: #a7efc4;
}

html[data-theme="dark"] .nav-tabs {
  border-color: var(--theme-border);
}

html[data-theme="dark"] .nav-tabs .nav-link {
  color: #aebdd0;
}

html[data-theme="dark"] .nav-tabs .nav-link:hover,
html[data-theme="dark"] .nav-tabs .nav-link:focus {
  background: #273449;
  border-color: var(--theme-border);
  color: #fff;
}

html[data-theme="dark"] .nav-tabs .nav-link.active,
html[data-theme="dark"] .nav-tabs .nav-item.show .nav-link {
  background: #edf3fb;
  border-color: var(--theme-border) var(--theme-border) #edf3fb;
  color: #172033 !important;
}

html[data-theme="dark"] .form-check.border,
html[data-theme="dark"] .border,
html[data-theme="dark"] hr {
  border-color: var(--theme-border) !important;
}

html[data-theme="dark"] .form-check.border,
html[data-theme="dark"] .rounded.border {
  background-color: #202c3e;
  color: var(--theme-text);
}

html[data-theme="dark"] .form-control:disabled,
html[data-theme="dark"] .form-control[readonly],
html[data-theme="dark"] .form-select:disabled {
  background-color: #1a2535;
  color: #b9c5d5;
  opacity: 1;
}

html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus {
  background-color: #2b3a50;
  border-color: #71a7ff;
  box-shadow: 0 0 0 .2rem rgba(113, 167, 255, .18);
  color: #fff;
}

html[data-theme="dark"] .form-control[type="file"]::file-selector-button {
  background: #e7eef8;
  border-color: #c6d2e1;
  color: #172033;
}

html[data-theme="dark"] .btn-outline-dark {
  border-color: #91a0b5;
  color: #d8e2ee;
}

html[data-theme="dark"] .btn-outline-dark:hover,
html[data-theme="dark"] .btn-outline-dark:focus {
  background: #d8e2ee;
  color: #172033;
}

html[data-theme="dark"] .pagination .page-link {
  background: #202c3e;
  border-color: var(--theme-border);
  color: #bcd6ff;
}

html[data-theme="dark"] .pagination .page-item.active .page-link {
  background: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
}

html[data-theme="dark"] .pagination .page-item.disabled .page-link {
  background: #172235;
  color: #6f7d90;
}

/* Student academic records use purpose-built text colors that need dark variants. */
html[data-theme="dark"] .grade-summary span {
  background: #25364b;
  border-color: #496078;
  color: #e1eaf5;
}

html[data-theme="dark"] .grade-table thead th {
  background: #172235;
  border-color: var(--theme-border);
  color: #bcc9da;
}

html[data-theme="dark"] .grade-table tbody td,
html[data-theme="dark"] .grade-code,
html[data-theme="dark"] .grade-value,
html[data-theme="dark"] .grade-date {
  border-color: var(--theme-border);
  color: #e5edf7;
}

html[data-theme="dark"] .grade-description,
html[data-theme="dark"] .grade-scale,
html[data-theme="dark"] .grade-table-note {
  color: #aebdd0;
}

html[data-theme="dark"] .grade-table tbody tr:hover,
html[data-theme="dark"] .grade-table tbody tr:hover td {
  background: #25344a;
}

html[data-theme="dark"] .grade-table-note {
  background: #172235;
  border-color: var(--theme-border);
}

html[data-theme="dark"] .enrollment-migration-warning {
  background: #463713;
  border-color: #745b22;
  color: #ffe39a;
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .card-header,
html[data-theme="dark"] .card-footer {
  border-color: var(--theme-border);
}

html[data-theme="dark"] .dropdown-item:hover,
html[data-theme="dark"] .dropdown-item:focus,
html[data-theme="dark"] .sidenav-light .nav-link:hover {
  background-color: var(--theme-surface-muted);
  color: #fff !important;
}

@media (max-width: 575.98px) {
  .theme-toggle {
    right: 0.75rem;
    bottom: 0.75rem;
  }
}

/* Shared navigation sidebar for every authenticated role. */
.portal-sidenav{--sidebar-bg:#f8fafc;--sidebar-panel:#fff;--sidebar-text:#334155;--sidebar-muted:#8592a6;--sidebar-border:#e4eaf1;--sidebar-hover:#edf4ff;--sidebar-active:#e3efff;--sidebar-primary:#0061f2;background:var(--sidebar-bg)!important;border-right:1px solid var(--sidebar-border);color:var(--sidebar-text);box-shadow:6px 0 24px rgba(15,23,42,.06)!important}.portal-sidenav .sidenav-menu{scrollbar-color:#cbd5e1 transparent;scrollbar-width:thin}.portal-sidebar-brand{align-items:center;border-bottom:1px solid var(--sidebar-border);display:flex;gap:12px;margin:0 12px;padding:18px 10px 16px;text-decoration:none}.portal-sidebar-logo{background:#fff;border:1px solid var(--sidebar-border);border-radius:12px;height:48px;object-fit:contain;padding:4px;width:48px}.portal-sidebar-brand span{display:flex;flex-direction:column;min-width:0}.portal-sidebar-brand b{color:var(--sidebar-text);font-size:.91rem;letter-spacing:.01em}.portal-sidebar-brand small{color:var(--sidebar-muted);font-size:.66rem;margin-top:1px}.portal-sidenav .sidenav-menu .nav .sidenav-menu-heading{color:var(--sidebar-muted)!important;font-size:.62rem;font-weight:800;letter-spacing:.13em;margin:0 12px;padding:22px 8px 8px}.portal-sidenav .sidenav-menu .nav>.nav-link{border:1px solid transparent;border-radius:10px;color:var(--sidebar-text)!important;font-size:.82rem;line-height:1.15;margin:2px 10px;min-height:43px;padding:10px 12px;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.portal-sidenav .sidenav-menu .nav>.nav-link:hover{background:var(--sidebar-hover);border-color:rgba(0,97,242,.08);color:var(--sidebar-primary)!important;transform:translateX(2px)}.portal-sidenav .sidenav-menu .nav>.nav-link.active{background:var(--sidebar-active);border-color:rgba(0,97,242,.12);box-shadow:inset 3px 0 0 var(--sidebar-primary);color:var(--sidebar-primary)!important;font-weight:750}.portal-sidenav .nav-link-icon{align-items:center;color:var(--sidebar-muted)!important;display:flex!important;flex:0 0 25px;justify-content:center;padding:0!important}.portal-sidenav .nav-link-icon svg{height:17px!important;width:17px!important}.portal-sidenav .nav-link:hover .nav-link-icon,.portal-sidenav .nav-link.active .nav-link-icon{color:var(--sidebar-primary)!important}.portal-sidenav .sidenav-collapse-arrow{color:var(--sidebar-muted)!important;margin-left:auto}.portal-sidenav .sidenav-menu-nested{border-left:1px solid var(--sidebar-border)!important;margin:4px 12px 5px 28px!important;padding-left:6px!important}.portal-sidenav .sidenav-menu-nested .nav-link{border-radius:8px;color:var(--sidebar-muted)!important;font-size:.77rem;margin:1px 0;padding:8px 10px}.portal-sidenav .sidenav-menu-nested .nav-link:hover,.portal-sidenav .sidenav-menu-nested .nav-link.active{background:var(--sidebar-hover);color:var(--sidebar-primary)!important}.portal-sidenav .sidenav-theme-control{background:var(--sidebar-panel);border-color:var(--sidebar-border);padding:10px 12px}.portal-sidenav .theme-toggle-sidebar{background:var(--sidebar-bg);border-color:var(--sidebar-border);color:var(--sidebar-text);font-size:.78rem;min-height:40px}.portal-sidenav .sidenav-footer{background:var(--sidebar-panel)!important;border-top:1px solid var(--sidebar-border);gap:10px;height:auto;min-height:72px;padding:12px}.portal-sidebar-avatar{align-items:center;background:linear-gradient(135deg,#0061f2,#6d3ce7);border-radius:11px;color:#fff;display:flex;flex:0 0 40px;font-size:.78rem;font-weight:800;height:40px;justify-content:center}.portal-sidenav .sidenav-footer-content{min-width:0}.portal-sidenav .sidenav-footer-title{color:var(--sidebar-text);font-size:.76rem;font-weight:750!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-sidenav .sidenav-footer-subtitle{color:var(--sidebar-muted)!important;font-size:.65rem!important;margin-top:2px;text-transform:capitalize}
.portal-sidenav{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden}.portal-sidenav .sidenav-menu{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}.portal-sidenav .sidenav-theme-control,.portal-sidenav .sidenav-footer{flex-shrink:0}
html[data-theme="dark"] .portal-sidenav{--sidebar-bg:#111c2d;--sidebar-panel:#0d1726;--sidebar-text:#e7edf6;--sidebar-muted:#8f9db2;--sidebar-border:#26354a;--sidebar-hover:#182b45;--sidebar-active:#1b3558;--sidebar-primary:#66a3ff;background:var(--sidebar-bg)!important}html[data-theme="dark"] .portal-sidebar-logo{background:#f8fafc}html[data-theme="dark"] .portal-sidenav .theme-toggle-sidebar:hover{background:#1d4f8c;border-color:#3977c2;color:#fff}
@media(max-width:991.98px){.portal-sidenav{box-shadow:12px 0 36px rgba(0,0,0,.22)!important}.portal-sidebar-brand{padding-top:14px}}

.student-verification-card{background:#fff;border:1px solid #dce5f1;border-radius:18px;box-shadow:0 18px 45px rgba(30,55,90,.10);margin:0 auto;max-width:1050px;overflow:hidden}.student-verification-brand{align-items:center;background:linear-gradient(135deg,#081f46,#0061f2);color:#fff;display:flex;gap:12px;padding:18px 24px}.student-verification-brand img{background:#fff;border-radius:10px;height:46px;object-fit:contain;padding:3px;width:46px}.student-verification-brand div{display:flex;flex-direction:column}.student-verification-brand span{font-size:.86rem;font-weight:800;letter-spacing:.07em}.student-verification-brand small{color:rgba(255,255,255,.72);font-size:.7rem}.student-verification-content{align-items:flex-start;display:flex;gap:20px;padding:30px 30px 22px}.student-verification-icon{align-items:center;background:#eaf2ff;border-radius:14px;color:#0061f2;display:flex;flex:0 0 54px;font-size:1.35rem;height:54px;justify-content:center}.student-verification-eyebrow{color:#0061f2;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.student-verification-copy h1{color:#172033;font-size:1.55rem;font-weight:750;letter-spacing:-.02em;margin:4px 0 8px}.student-verification-copy p{color:#667085;line-height:1.65;margin:0;max-width:760px}.student-verification-steps{display:grid;gap:14px;grid-template-columns:repeat(3,1fr);padding:0 30px 28px}.student-verification-steps>div{align-items:flex-start;background:#f7f9fc;border:1px solid #e5eaf1;border-radius:12px;display:flex;gap:12px;padding:16px}.student-verification-steps>div>span{align-items:center;background:#0061f2;border-radius:9px;color:#fff;display:flex;flex:0 0 32px;font-size:.8rem;font-weight:800;height:32px;justify-content:center}.student-verification-steps p{display:flex;flex-direction:column;font-size:.84rem;margin:0}.student-verification-steps b{color:#26364d}.student-verification-steps small{color:#7b8799;line-height:1.45;margin-top:4px}.student-verification-help{align-items:center;background:#fff8e7;border-top:1px solid #f4dfad;color:#805b05;display:flex;gap:10px;font-size:.82rem;padding:14px 30px}.student-verification-help i{color:#d99500}.student-verification-help b{color:inherit}
html[data-theme="dark"] .student-verification-card{background:#172033;border-color:#29354a}.student-verification-copy h1{color:#172033}html[data-theme="dark"] .student-verification-copy h1{color:#eef3fb}html[data-theme="dark"] .student-verification-copy p{color:#a8b5c8}html[data-theme="dark"] .student-verification-steps>div{background:#111a2b;border-color:#29354a}html[data-theme="dark"] .student-verification-steps b{color:#e7edf7}html[data-theme="dark"] .student-verification-help{background:#2b2518;border-color:#53451f;color:#f1cd73}
@media(max-width:767.98px){.student-verification-content{padding:24px 20px 18px}.student-verification-copy h1{font-size:1.3rem}.student-verification-steps{grid-template-columns:1fr;padding:0 20px 22px}.student-verification-brand,.student-verification-help{padding-left:20px;padding-right:20px}}
.student-verification-services{border-top:1px solid #e8edf4;padding:22px 30px 26px}.student-verification-services-heading{display:flex;flex-direction:column;margin-bottom:13px}.student-verification-services-heading span{color:#26364d;font-size:.9rem;font-weight:750}.student-verification-services-heading small{color:#7b8799;margin-top:3px}.student-verification-service-links{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.student-verification-service-links a{align-items:center;background:#f7faff;border:1px solid #dce7f8;border-radius:12px;color:#26364d;display:flex;gap:13px;padding:15px;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.student-verification-service-links a:hover{border-color:#8bb8fa;box-shadow:0 8px 20px rgba(0,97,242,.10);color:#0057d9;transform:translateY(-1px)}.student-verification-service-links>a>i:first-child{align-items:center;background:#e7f1ff;border-radius:9px;color:#0061f2;display:flex;flex:0 0 38px;height:38px;justify-content:center}.student-verification-service-links>a>i:last-child{color:#8ba0bb;font-size:.8rem;margin-left:auto}.student-verification-service-links span{display:flex;flex:1;flex-direction:column}.student-verification-service-links b{font-size:.82rem}.student-verification-service-links small{color:#7b8799;font-size:.72rem;line-height:1.35;margin-top:3px}html[data-theme="dark"] .student-verification-services{border-color:#29354a}html[data-theme="dark"] .student-verification-services-heading span{color:#e7edf7}html[data-theme="dark"] .student-verification-service-links a{background:#111a2b;border-color:#29354a;color:#e7edf7}@media(max-width:767.98px){.student-verification-services{padding:20px}.student-verification-service-links{grid-template-columns:1fr}}
.student-dashboard-unverified{background:#fff;border:1px solid #dce5f1;border-radius:16px;box-shadow:0 10px 28px rgba(30,55,90,.08);overflow:hidden}.student-dashboard-unverified .student-verification-services{border-top:0}html[data-theme="dark"] .student-dashboard-unverified{background:#172033;border-color:#29354a}

/* Distinct, polished module icons across every portal sidebar. */
.portal-sidenav .nav-link-icon{background:rgba(100,116,139,.08);border:1px solid rgba(100,116,139,.08);border-radius:8px;flex-basis:30px;height:30px;margin-right:2px;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.portal-sidenav .nav-link-icon svg{height:16px!important;stroke-width:2.2;width:16px!important}
.portal-sidenav .nav-link-icon .svg-inline--fa{height:15px;width:15px}
.portal-sidenav .sidebar-link-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.portal-sidenav .sidebar-transaction-badge{align-items:center;background:#dc3545;border:2px solid var(--sidebar-bg);border-radius:999px;color:#fff;display:inline-flex;flex:0 0 auto;font-size:.65rem;font-weight:800;justify-content:center;line-height:1;margin-left:auto;min-height:21px;min-width:21px;padding:2px 6px}.portal-sidenav .sidebar-transaction-badge+.sidenav-collapse-arrow{margin-left:4px}.portal-sidenav .sidenav-menu-nested .nav-link{align-items:center;display:flex}.portal-sidenav .sidenav-menu-nested .sidebar-transaction-badge{border-width:1px;margin-left:auto;min-height:19px;min-width:19px}
.portal-sidenav .nav-link:hover .nav-link-icon,.portal-sidenav .nav-link.active .nav-link-icon{background:rgba(0,97,242,.1);border-color:rgba(0,97,242,.12);transform:scale(1.04)}
.dashboard-work-card{border:1px solid #dfe6f0;border-radius:14px;box-shadow:0 8px 26px rgba(15,23,42,.07);margin-bottom:22px;overflow:hidden}.dashboard-work-header{align-items:center;background:#fff;border-bottom:1px solid #e7edf4;display:flex;justify-content:space-between;padding:15px 18px}.dashboard-work-header>div{align-items:center;display:flex;gap:12px}.dashboard-work-header>div>span:last-child{display:flex;flex-direction:column}.dashboard-work-header b{color:#1e293b;font-size:.87rem;letter-spacing:.01em}.dashboard-work-header small{color:#8491a5;font-size:.7rem;margin-top:2px}.dashboard-work-icon{align-items:center;border-radius:10px;display:flex;flex:0 0 38px;height:38px;justify-content:center}.dashboard-work-header>.badge{font-size:.7rem;min-width:28px;padding:6px 9px}.dashboard-work-table{font-size:.76rem;min-width:820px}.dashboard-work-table thead th{background:#f7f9fc;border-bottom:1px solid #dfe6ef;color:#65748a;font-size:.64rem;font-weight:800;letter-spacing:.06em;padding:10px 12px;text-transform:uppercase;white-space:nowrap}.dashboard-work-table tbody td{border-color:#edf1f5;color:#405069;padding:10px 12px;vertical-align:middle}.dashboard-work-table tbody tr:hover td{background:#f8fbff}.dashboard-work-table th:first-child,.dashboard-work-table td:first-child{text-align:center;width:42px}.dashboard-work-table th:last-child,.dashboard-work-table td:last-child{text-align:center;white-space:nowrap;width:120px}.dashboard-reference{background:#eef3f9;border-radius:6px;color:#34445b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;padding:4px 7px}.dashboard-description{max-width:360px}.dashboard-empty{align-items:center;color:#8a98aa;display:flex;flex-direction:column;gap:4px;justify-content:center;padding:32px 16px;text-align:center}.dashboard-empty>svg{color:#35a66f;font-size:1.35rem;margin-bottom:4px}.dashboard-empty b{color:#536176;font-size:.82rem}.dashboard-empty span{font-size:.7rem}.bg-primary-soft{background:#e8f1ff}.bg-info-soft{background:#e4f8fb}.bg-danger-soft{background:#ffebee}html[data-theme="dark"] .dashboard-work-card,html[data-theme="dark"] .dashboard-work-header{background:#111a2b;border-color:#29364a}html[data-theme="dark"] .dashboard-work-header b{color:#e8eef7}html[data-theme="dark"] .dashboard-work-table thead th{background:#0e1828;border-color:#29364a;color:#91a0b5}html[data-theme="dark"] .dashboard-work-table tbody td{border-color:#243146;color:#c7d1df}html[data-theme="dark"] .dashboard-work-table tbody tr:hover td{background:#162337}html[data-theme="dark"] .dashboard-reference{background:#1c2a3f;color:#cdd8e7}html[data-theme="dark"] .dashboard-empty b{color:#c4cfdd}
@media(max-width:767.98px){.dashboard-work-header{align-items:flex-start;padding:13px 14px}.dashboard-work-header small{max-width:240px}.dashboard-work-icon{flex-basis:34px;height:34px}.dashboard-work-table{font-size:.72rem}}
.dashboard-calendar-card{border:1px solid #dfe6ef;border-radius:15px;box-shadow:0 10px 32px rgba(15,23,42,.08);overflow:hidden}.dashboard-calendar-toolbar{align-items:center;background:#fff;border-bottom:1px solid #e5ebf2;display:flex;gap:20px;justify-content:space-between;padding:14px 18px}.dashboard-calendar-heading{align-items:center;display:flex;gap:12px}.dashboard-calendar-heading>span:last-child{display:flex;flex-direction:column}.dashboard-calendar-heading b{color:#1e293b;font-size:.9rem}.dashboard-calendar-heading small{color:#8491a5;font-size:.7rem;margin-top:2px}.dashboard-calendar-actions,.dashboard-calendar-filter{align-items:center;display:flex;gap:8px}.dashboard-calendar-filter select{min-width:118px}.dashboard-calendar-filter input{width:92px}.dashboard-calendar-actions .btn,.dashboard-calendar-filter .form-control,.dashboard-calendar-filter .form-select{border-radius:8px;min-height:34px}.dashboard-calendar-full{align-items:center;display:flex;gap:7px}.dashboard-calendar-body{padding:18px}.dashboard-calendar-scroll{border:1px solid #dfe6ef;border-radius:11px;overflow:auto}.dashboard-calendar-table{border-collapse:separate;border-spacing:0;min-width:900px;table-layout:fixed}.dashboard-calendar-table caption{background:#f8fafc;border-bottom:1px solid #dfe6ef;color:#25364d;caption-side:top;font-size:1rem;font-weight:800;padding:13px;text-align:center}.dashboard-calendar-table thead th{background:#f3f6fa;border-bottom:1px solid #dfe6ef;border-right:1px solid #e5ebf2;color:#66758a;font-size:.68rem;font-weight:800;letter-spacing:.06em;padding:10px;text-align:center;text-transform:uppercase}.dashboard-calendar-table thead th:last-child{border-right:0}.dashboard-calendar-table td{border-bottom:1px solid #e5ebf2;border-right:1px solid #e5ebf2;height:112px;padding:8px;position:relative;vertical-align:top}.dashboard-calendar-table td:last-child{border-right:0}.dashboard-calendar-table tbody tr:last-child td{border-bottom:0}.calendar-day-number{align-items:center;color:#536176;display:inline-flex;font-size:.78rem;font-weight:700;height:25px;justify-content:center;line-height:1;width:25px}.calendar-weekend,.calendar-empty-day{background:#fafbfc}.calendar-weekend .calendar-day-number,.calendar-weekend-heading{color:#9a6670!important}.calendar-today{background:#eef5ff!important;box-shadow:inset 0 0 0 2px rgba(0,97,242,.22)}.calendar-today .calendar-day-number{background:#0061f2;border-radius:50%;color:#fff}.calendar-today-label{color:#0061f2;font-size:.61rem;font-weight:800;letter-spacing:.07em;margin-left:4px;text-transform:uppercase}.calendar-events{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.calendar-events>a{text-decoration:none}.calendar-events .badge{align-items:center;border-radius:6px!important;display:inline-flex;font-size:.6rem;font-weight:750;gap:3px;letter-spacing:.02em;padding:5px 7px;transition:transform .15s ease,box-shadow .15s ease}.calendar-events a:hover .badge{box-shadow:0 4px 10px rgba(15,23,42,.16);transform:translateY(-1px)}.calendar-holiday{background:#fff4f4!important}.calendar-holiday-label{align-items:center;color:#d14343;display:flex;font-size:.7rem;font-weight:800;gap:5px;margin:17px auto 0;justify-content:center;text-transform:uppercase}.dashboard-calendar-legend{align-items:center;color:#68778b;display:flex;flex-wrap:wrap;font-size:.66rem;gap:14px;margin-top:13px}.dashboard-calendar-legend span{align-items:center;display:flex;gap:5px}.legend-dot{border-radius:50%;display:inline-block;height:8px;width:8px}html[data-theme="dark"] .dashboard-calendar-card,html[data-theme="dark"] .dashboard-calendar-toolbar{background:#111a2b;border-color:#29364a}html[data-theme="dark"] .dashboard-calendar-heading b{color:#e8eef7}html[data-theme="dark"] .dashboard-calendar-scroll{border-color:#29364a}html[data-theme="dark"] .dashboard-calendar-table caption,html[data-theme="dark"] .dashboard-calendar-table thead th{background:#0e1828;border-color:#29364a;color:#a2aec0}html[data-theme="dark"] .dashboard-calendar-table td{border-color:#263348}html[data-theme="dark"] .calendar-day-number{color:#c6d0dd}html[data-theme="dark"] .calendar-weekend,html[data-theme="dark"] .calendar-empty-day{background:#0f1929}html[data-theme="dark"] .calendar-today{background:#142b4b!important}html[data-theme="dark"] .calendar-holiday{background:#321c25!important}html[data-theme="dark"] .dashboard-calendar-legend{color:#9caabe}
@media(max-width:991.98px){.dashboard-calendar-toolbar{align-items:flex-start;flex-direction:column}.dashboard-calendar-actions{justify-content:space-between;width:100%}}@media(max-width:575.98px){.dashboard-calendar-body{padding:10px}.dashboard-calendar-actions{align-items:stretch;flex-wrap:wrap}.dashboard-calendar-filter{display:grid;grid-template-columns:1fr 90px;order:3;width:100%}.dashboard-calendar-filter select,.dashboard-calendar-filter input{width:100%}.dashboard-calendar-full span{display:none}.dashboard-calendar-table td{height:96px}.dashboard-calendar-heading small{max-width:260px}}

/* Registrar OBT and BS Enrollment lists and review tables. */
.registrar-enrollment-page .gridtable {
  border-collapse: separate;
  border-spacing: 0;
  color: var(--theme-text);
  font-family: inherit;
  font-size: .82rem;
  min-width: 720px;
  width: 100%;
}

.registrar-enrollment-page .gridtable th,
.registrar-enrollment-page .gridtable td {
  border-color: var(--theme-border);
  border-style: solid;
  border-width: 0 1px 1px 0;
  padding: .85rem 1rem;
  vertical-align: middle;
}

.registrar-enrollment-page .gridtable tr:first-child th {
  border-top-width: 1px;
}

.registrar-enrollment-page .gridtable th:first-child,
.registrar-enrollment-page .gridtable td:first-child {
  border-left-width: 1px;
}

.registrar-enrollment-page .gridtable th {
  background: var(--theme-surface-muted);
  color: var(--theme-muted);
  font-size: .72rem;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.registrar-enrollment-page .gridtable td {
  background: var(--theme-surface);
  color: var(--theme-text);
}

.registrar-enrollment-page .registrar-detail-grid {
  overflow-x: auto;
}

.registrar-enrollment-page .registrar-requirements-workspace {
  background: var(--theme-surface);
  border-top: 1px solid var(--theme-border);
}

.registrar-enrollment-page .registrar-bs-flat-upload-table {
  color: var(--theme-text);
  min-width: 860px;
}

.registrar-enrollment-page .registrar-bs-flat-upload-table thead th {
  background: var(--theme-surface-muted);
  color: var(--theme-muted);
  font-size: .74rem;
  letter-spacing: .035em;
  padding: .7rem .75rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.registrar-enrollment-page .registrar-bs-flat-upload-table td {
  border-color: var(--theme-border);
  color: var(--theme-text);
  padding: .75rem;
  vertical-align: middle;
}

.registrar-enrollment-page .registrar-bs-requirement-row[hidden] {
  display: none;
}

.registrar-enrollment-page .registrar-bs-file-name {
  display: block;
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.registrar-enrollment-page .registrar-bs-table-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.registrar-enrollment-page .registrar-bs-empty-row {
  color: var(--theme-muted) !important;
  padding: 2rem 1rem !important;
  text-align: center;
}

.registrar-enrollment-page .registrar-bs-empty-row i {
  font-size: 1.35rem;
}

html[data-theme="dark"] .registrar-enrollment-page .card-footer {
  background: var(--theme-surface-muted) !important;
  border-color: var(--theme-border) !important;
}

html[data-theme="dark"] .registrar-enrollment-page .registrar-requirements-workspace,
html[data-theme="dark"] .registrar-enrollment-page .registrar-bs-flat-upload-table {
  background: var(--theme-surface) !important;
}

/* BS Application: consistent contrast across the five-step workflow. */
html[data-theme="dark"] .bs-page {
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .bs-page .bs-card,
html[data-theme="dark"] .bs-page .bs-status-card,
html[data-theme="dark"] .bs-page .bs-step-card,
html[data-theme="dark"] .bs-page .bs-step1-card,
html[data-theme="dark"] .bs-page .bs-step2-card,
html[data-theme="dark"] .bs-page .bs-step3-card,
html[data-theme="dark"] .bs-page .bs-step4-card,
html[data-theme="dark"] .bs-page .bs-step5-card {
  background: var(--theme-surface) !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .22);
}

html[data-theme="dark"] .bs-page .card-header,
html[data-theme="dark"] .bs-page .bs-step3-section-header {
  background: var(--theme-surface) !important;
  border-color: var(--theme-border) !important;
}

html[data-theme="dark"] .bs-page .bs-eyebrow,
html[data-theme="dark"] .bs-page .bs-details-toggle,
html[data-theme="dark"] .bs-page .bs-student-details-toggle {
  color: #7dd3fc !important;
}

html[data-theme="dark"] .bs-page .bs-muted,
html[data-theme="dark"] .bs-page .bs-step3-help,
html[data-theme="dark"] .bs-page .bs-step3-section-header p,
html[data-theme="dark"] .bs-page .bs-step4-help,
html[data-theme="dark"] .bs-page .bs-step5-help,
html[data-theme="dark"] .bs-page .bs-requirement-meta,
html[data-theme="dark"] .bs-page .bs-detail-label,
html[data-theme="dark"] .bs-page .bs-vessel-detail-label,
html[data-theme="dark"] .bs-page .bs-step4-detail-label,
html[data-theme="dark"] .bs-page .bs-step5-current-label,
html[data-theme="dark"] .bs-page .bs-flat-upload-table .bs-empty-row,
html[data-theme="dark"] .bs-page .bs-step4-empty {
  color: var(--theme-muted) !important;
}

html[data-theme="dark"] .bs-page .bs-step-tabs {
  background: var(--theme-surface) !important;
  border-color: var(--theme-border) !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
}

html[data-theme="dark"] .bs-page .bs-step-tab {
  border-color: var(--theme-border) !important;
}

html[data-theme="dark"] .bs-page .bs-step-tab.status-complete {
  background: #173b32 !important;
  color: #86efac !important;
}

html[data-theme="dark"] .bs-page .bs-step-tab.status-pending {
  background: #3d3219 !important;
  color: #fde68a !important;
}

html[data-theme="dark"] .bs-page .bs-step-tab.status-locked {
  background: #263244 !important;
  color: #a8b5c8 !important;
}

html[data-theme="dark"] .bs-page .bs-step-tab:hover,
html[data-theme="dark"] .bs-page .bs-step-tab.active {
  filter: brightness(1.13);
}

html[data-theme="dark"] .bs-page .bs-student-details-heading,
html[data-theme="dark"] .bs-page .bs-step1-actions,
html[data-theme="dark"] .bs-page .bs-step2-section,
html[data-theme="dark"] .bs-page .bs-step3-section,
html[data-theme="dark"] .bs-page .bs-step5-section {
  border-color: var(--theme-border) !important;
}

html[data-theme="dark"] .bs-page .bs-student-detail,
html[data-theme="dark"] .bs-page .bs-stat-card,
html[data-theme="dark"] .bs-page .bs-step2-appointment,
html[data-theme="dark"] .bs-page .bs-consolidated-upload,
html[data-theme="dark"] .bs-page .bs-journal-card,
html[data-theme="dark"] .bs-page .bs-vessel-entry-card,
html[data-theme="dark"] .bs-page .bs-assessment-item,
html[data-theme="dark"] .bs-page .bs-empty-state,
html[data-theme="dark"] .bs-page .bs-step4-upload-form,
html[data-theme="dark"] .bs-page .bs-step5-overview,
html[data-theme="dark"] .bs-page .bs-step5-empty {
  background: var(--theme-surface-muted) !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .bs-page .bs-student-detail-value,
html[data-theme="dark"] .bs-page .bs-stat-value,
html[data-theme="dark"] .bs-page .bs-requirement-title,
html[data-theme="dark"] .bs-page .bs-vessel-detail-value,
html[data-theme="dark"] .bs-page .bs-step2-section h4,
html[data-theme="dark"] .bs-page .bs-assessment-item legend,
html[data-theme="dark"] .bs-page .bs-step4-section-title,
html[data-theme="dark"] .bs-page .bs-step4-detail-value,
html[data-theme="dark"] .bs-page .bs-step5-current-value,
html[data-theme="dark"] .bs-page .bs-step5-section-title {
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .bs-page .bs-step1-card .form-label,
html[data-theme="dark"] .bs-page .bs-step3-page .form-label,
html[data-theme="dark"] .bs-page .bs-consolidated-upload .form-label,
html[data-theme="dark"] .bs-page .bs-journal-form .form-label,
html[data-theme="dark"] .bs-page .bs-vessel-entry-card label,
html[data-theme="dark"] .bs-page .bs-vessel-entry-card h4,
html[data-theme="dark"] .bs-page .bs-step4-detail-form .form-label,
html[data-theme="dark"] .bs-page .bs-step4-upload-form .form-label {
  color: #d7e0ec !important;
}

html[data-theme="dark"] .bs-page .bs-requirements-table > tbody > .bs-requirement-row,
html[data-theme="dark"] .bs-page .bs-vessel-overview,
html[data-theme="dark"] .bs-page .bs-vessel-detail,
html[data-theme="dark"] .bs-page .bs-step4-detail {
  background: var(--theme-surface) !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .bs-page .bs-requirement-main,
html[data-theme="dark"] .bs-page .bs-vessel-tab-pane,
html[data-theme="dark"] .bs-page .bs-vessel-tabs,
html[data-theme="dark"] .bs-page .bs-vessel-detail-grid,
html[data-theme="dark"] .bs-page .bs-step4-detail-grid {
  border-color: var(--theme-border) !important;
}

html[data-theme="dark"] .bs-page .bs-vessel-overview-header {
  background: linear-gradient(135deg, #172a43, #273449) !important;
  border-color: var(--theme-border) !important;
}

html[data-theme="dark"] .bs-page .bs-vessel-tabs .nav-link {
  color: #b8c2d1 !important;
}

html[data-theme="dark"] .bs-page .bs-vessel-tabs .nav-link.active {
  background: var(--theme-surface) !important;
  border-color: var(--theme-border) var(--theme-border) var(--theme-surface) !important;
  color: #7dd3fc !important;
}

html[data-theme="dark"] .bs-page .bs-upload-guidance,
html[data-theme="dark"] .bs-page .bs-step4-guidance {
  background: #122d42 !important;
  border-color: #245273 !important;
  color: #bae6fd !important;
}

html[data-theme="dark"] .bs-page .bs-step2-icon,
html[data-theme="dark"] .bs-page .bs-step3-icon,
html[data-theme="dark"] .bs-page .bs-step4-summary .card-icon-aside.bg-success,
html[data-theme="dark"] .bs-page .bs-step5-icon {
  background: #173b32 !important;
  color: #86efac !important;
}

html[data-theme="dark"] .bs-page .bs-step2-icon.is-pending,
html[data-theme="dark"] .bs-page .bs-step3-icon.is-pending,
html[data-theme="dark"] .bs-page .bs-step4-summary .card-icon-aside.bg-warning,
html[data-theme="dark"] .bs-page .bs-step5-icon.is-pending {
  background: #3d3219 !important;
  color: #fde68a !important;
}

html[data-theme="dark"] .bs-page .bs-flat-upload-table thead th,
html[data-theme="dark"] .bs-page .bs-step3-table thead th,
html[data-theme="dark"] .bs-page .bs-step4-table thead th,
html[data-theme="dark"] .bs-page .bs-step5-table thead th,
html[data-theme="dark"] .bs-page table th {
  background: #172235 !important;
  color: #c8d3e1 !important;
}

html[data-theme="dark"] .bs-page .bs-flat-upload-table td,
html[data-theme="dark"] .bs-page .bs-step3-table td,
html[data-theme="dark"] .bs-page .bs-step4-table td,
html[data-theme="dark"] .bs-page .bs-step5-table td {
  color: var(--theme-text) !important;
}

/* Bootstrap assigns separate text colors to striped and hovered rows. */
html[data-theme="dark"] .bs-page .bs-step3-table {
  --bs-table-striped-color: var(--theme-text);
  --bs-table-hover-color: var(--theme-text);
  --bs-table-active-color: var(--theme-text);
}

html[data-theme="dark"] .bs-page .bs-step3-page .form-select {
  color-scheme: dark;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c8d3e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

html[data-theme="dark"] .bs-page .bs-step3-page .btn-outline-primary {
  color: #93c5fd;
  border-color: #60a5fa;
}

html[data-theme="dark"] .bs-page .bs-step3-page .btn-outline-primary:hover,
html[data-theme="dark"] .bs-page .bs-step3-page .btn-outline-primary:focus-visible {
  background-color: #1e40af;
  color: #fff;
}

html[data-theme="dark"] .bs-page .bs-result-competent {
  background: #173b32 !important;
  color: #86efac !important;
}

html[data-theme="dark"] .bs-page .bs-result-not-competent {
  background: #48212a !important;
  color: #fca5a5 !important;
}

html[data-theme="dark"] .bs-page .bs-result-neutral {
  background: #334155 !important;
  color: #e2e8f0 !important;
}

html[data-theme="dark"] .bs-page .bs-prerequisite-notice {
  background: #152a45 !important;
  border-color: #35618f !important;
  border-left-color: #60a5fa !important;
  color: var(--theme-text) !important;
}

html[data-theme="dark"] .bs-page .bs-prerequisite-icon {
  background: #1d3b63 !important;
  color: #93c5fd !important;
}

html[data-theme="dark"] .bs-page .bs-prerequisite-content h2 {
  color: #f8fafc !important;
}

html[data-theme="dark"] .bs-page .bs-prerequisite-content p {
  color: #c4cfdd !important;
}

/* Shared workflow navigation for BS Application and OBT Enrollment. */
.workflow-back-button {
  align-items: center;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
  color: #075985;
  display: inline-flex;
  font-size: 0.85rem;
  font-weight: 700;
  gap: 0.55rem;
  line-height: 1;
  min-height: 42px;
  padding: 0.55rem 0.85rem;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
}

.workflow-back-button > svg,
.workflow-back-button > i {
  align-items: center;
  background: #e0f2fe;
  border-radius: 8px;
  color: #0369a1;
  display: inline-flex;
  flex: 0 0 28px;
  height: 28px;
  justify-content: center;
  padding: 6px;
  width: 28px;
}

.workflow-back-button > svg {
  stroke-width: 2.4;
}

.workflow-back-button:hover {
  background: #f0f9ff;
  border-color: #7dd3fc;
  box-shadow: 0 7px 18px rgba(2, 132, 199, 0.16);
  color: #075985;
  transform: translateY(-1px);
}

.workflow-back-button:active {
  box-shadow: 0 3px 8px rgba(15, 23, 42, 0.1);
  transform: translateY(0);
}

.workflow-back-button:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.3);
  outline-offset: 3px;
}

html[data-theme="dark"] .workflow-back-button {
  background: linear-gradient(180deg, #1e293b 0%, #172235 100%);
  border-color: #3b4a60;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.25);
  color: #dbeafe;
}

html[data-theme="dark"] .workflow-back-button > svg,
html[data-theme="dark"] .workflow-back-button > i {
  background: #123451;
  color: #7dd3fc;
}

html[data-theme="dark"] .workflow-back-button:hover {
  background: #20324a;
  border-color: #38bdf8;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.32);
  color: #f0f9ff;
}

@media (prefers-reduced-motion: reduce) {
  .workflow-back-button {
    transition: none;
  }
}

@media print {
  .theme-toggle {
    display: none !important;
  }
}
