:root{
  --primary-color: dodgerblue;
  --secondary-color: orange;
  --bg: #f4f6f9;
  --surface: #ffffff;
  --surface-alt: #f8fafc;
  --border: #e5e7eb;
  --text: #111827;
  --text-secondary: #374151;
  --muted: #6b7280;
  --focus: rgba(30,144,255,.35);
  --input-bg: #ffffff;
  --input-border: #ced4da;
  --table-striped-bg: rgba(0,0,0,.02);
  --table-hover-bg: rgba(0,0,0,.04);
  --table-header-bg: #f8fafc;
  --card-shadow: 0 .5rem 1rem rgba(0,0,0,.05);
  --modal-bg: #ffffff;
  --dropdown-bg: #ffffff;
  --code-bg: #f1f3f5;
  --alert-info-bg: #cff4fc;
  --alert-info-border: #b6effb;
  --alert-info-text: #055160;
  --alert-success-bg: #d1e7dd;
  --alert-success-border: #badbcc;
  --alert-success-text: #0f5132;
  --alert-warning-bg: #fff3cd;
  --alert-warning-border: #ffecb5;
  --alert-warning-text: #664d03;
  --alert-danger-bg: #f8d7da;
  --alert-danger-border: #f5c2c7;
  --alert-danger-text: #842029;
  --alert-secondary-bg: #e2e3e5;
  --alert-secondary-border: #d3d6d8;
  --alert-secondary-text: #41464b;
}

[data-theme="dark"]{
  --bg: #0f172a;
  --surface: #1e293b;
  --surface-alt: #293548;
  --border: #334155;
  --text: #e2e8f0;
  --text-secondary: #cbd5e1;
  --muted: #94a3b8;
  --focus: rgba(56,189,248,.45);
  --input-bg: #1e293b;
  --input-border: #475569;
  --table-striped-bg: rgba(255,255,255,.02);
  --table-hover-bg: rgba(255,255,255,.05);
  --table-header-bg: #293548;
  --card-shadow: 0 .5rem 1rem rgba(0,0,0,.3);
  --modal-bg: #1e293b;
  --dropdown-bg: #1e293b;
  --code-bg: #293548;
  --alert-info-bg: #0c2d48;
  --alert-info-border: #0d3f5e;
  --alert-info-text: #7dd3fc;
  --alert-success-bg: #0d3320;
  --alert-success-border: #14532d;
  --alert-success-text: #86efac;
  --alert-warning-bg: #3d2f00;
  --alert-warning-border: #5c4700;
  --alert-warning-text: #fde68a;
  --alert-danger-bg: #3b1219;
  --alert-danger-border: #581c25;
  --alert-danger-text: #fca5a5;
  --alert-secondary-bg: #293548;
  --alert-secondary-border: #3d4f65;
  --alert-secondary-text: #cbd5e1;
}

body{
  background: var(--bg);
  color: var(--text);
  font-family:"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ──────────────────────────────
   Bootstrap Component Overrides
   ────────────────────────────── */

/* Tables */
[data-theme="dark"] .table{
  --bs-table-bg: var(--surface);
  --bs-table-color: var(--text);
  --bs-table-border-color: var(--border);
  --bs-table-striped-bg: var(--table-striped-bg);
  --bs-table-striped-color: var(--text);
  --bs-table-hover-bg: var(--table-hover-bg);
  --bs-table-hover-color: var(--text);
  color: var(--text);
  border-color: var(--border);
}
[data-theme="dark"] .table > thead{
  color: var(--text);
}
[data-theme="dark"] .table > thead th,
[data-theme="dark"] .table thead th{
  background-color: var(--table-header-bg) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .table > :not(caption) > * > *{
  background-color: var(--surface);
  color: var(--text);
  border-bottom-color: var(--border);
}
[data-theme="dark"] .table-bordered > :not(caption) > *{
  border-color: var(--border);
}
[data-theme="dark"] .table-bordered > :not(caption) > * > *{
  border-color: var(--border);
}
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > *{
  background-color: var(--table-striped-bg);
  --bs-table-bg-type: var(--table-striped-bg);
}
[data-theme="dark"] .table-hover > tbody > tr:hover > *{
  background-color: var(--table-hover-bg);
  --bs-table-bg-type: var(--table-hover-bg);
}
[data-theme="dark"] .table-active,
[data-theme="dark"] .table-active > td,
[data-theme="dark"] .table-active > th{
  --bs-table-accent-bg: rgba(255,255,255,.06);
  background-color: rgba(255,255,255,.06) !important;
  color: var(--text) !important;
}
[data-theme="dark"] .table-primary{
  --bs-table-bg: rgba(30,144,255,.15);
  --bs-table-color: var(--text);
  --bs-table-border-color: var(--border);
}
[data-theme="dark"] .table-light{
  --bs-table-bg: var(--surface-alt);
  --bs-table-color: var(--text);
  --bs-table-border-color: var(--border);
  background-color: var(--surface-alt) !important;
  color: var(--text) !important;
}
[data-theme="dark"] .table-light th,
[data-theme="dark"] .table-light td{
  color: var(--text) !important;
}

/* Cards & Surfaces */
[data-theme="dark"] .card{
  background-color: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .card-header{
  background-color: var(--surface-alt) !important;
  border-bottom-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .card-footer{
  background-color: var(--surface-alt);
  border-top-color: var(--border);
}
[data-theme="dark"] .card-body{
  color: var(--text);
}
[data-theme="dark"] .cardish{
  background: var(--surface);
  border-color: var(--border);
  box-shadow: var(--card-shadow);
  color: var(--text);
}

/* Forms & Inputs */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select{
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text);
}
[data-theme="dark"] .form-control::placeholder{
  color: var(--muted);
}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus{
  background-color: var(--input-bg);
  border-color: var(--primary-color);
  color: var(--text);
  box-shadow: 0 0 0 .25rem var(--focus);
}
[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-control[readonly],
[data-theme="dark"] .form-select:disabled{
  background-color: var(--surface-alt);
  color: var(--muted);
  opacity: .7;
}
[data-theme="dark"] .form-label{
  color: var(--text);
}
[data-theme="dark"] .form-text{
  color: var(--muted);
}
[data-theme="dark"] .form-check-input{
  background-color: var(--input-bg);
  border-color: var(--input-border);
}
[data-theme="dark"] .form-check-input:checked{
  background-color: var(--primary-color);
  border-color: var(--primary-color);
}
[data-theme="dark"] .input-group-text{
  background-color: var(--surface-alt);
  border-color: var(--input-border);
  color: var(--text);
}

/* Alerts */
[data-theme="dark"] .alert-info{
  background-color: var(--alert-info-bg);
  border-color: var(--alert-info-border);
  color: var(--alert-info-text);
}
[data-theme="dark"] .alert-success{
  background-color: var(--alert-success-bg);
  border-color: var(--alert-success-border);
  color: var(--alert-success-text);
}
[data-theme="dark"] .alert-warning{
  background-color: var(--alert-warning-bg);
  border-color: var(--alert-warning-border);
  color: var(--alert-warning-text);
}
[data-theme="dark"] .alert-danger{
  background-color: var(--alert-danger-bg);
  border-color: var(--alert-danger-border);
  color: var(--alert-danger-text);
}
[data-theme="dark"] .alert-secondary{
  background-color: var(--alert-secondary-bg);
  border-color: var(--alert-secondary-border);
  color: var(--alert-secondary-text);
}
[data-theme="dark"] .alert-primary{
  background-color: rgba(30,144,255,.15);
  border-color: rgba(30,144,255,.3);
  color: #93c5fd;
}
[data-theme="dark"] .alert a,
[data-theme="dark"] .alert .alert-link{
  filter: brightness(1.3);
}

/* Modals */
[data-theme="dark"] .modal-content{
  background-color: var(--modal-bg);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .modal-header{
  border-bottom-color: var(--border);
}
[data-theme="dark"] .modal-footer{
  border-top-color: var(--border);
}
[data-theme="dark"] .btn-close{
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* Dropdowns */
[data-theme="dark"] .dropdown-menu{
  background-color: var(--dropdown-bg);
  border-color: var(--border);
  color: var(--text);
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.4);
}
[data-theme="dark"] .dropdown-item{
  color: var(--text);
}
[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus{
  background-color: var(--surface-alt);
  color: var(--text);
}
[data-theme="dark"] .dropdown-divider{
  border-color: var(--border);
}

/* List Groups */
[data-theme="dark"] .list-group-item{
  background-color: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .list-group-item-action:hover,
[data-theme="dark"] .list-group-item-action:focus{
  background-color: var(--surface-alt);
  color: var(--text);
}

/* Navs & Tabs */
[data-theme="dark"] .nav-tabs{
  border-bottom-color: var(--border);
}
[data-theme="dark"] .nav-tabs .nav-link{
  color: var(--muted);
}
[data-theme="dark"] .nav-tabs .nav-link:hover{
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .nav-tabs .nav-link.active{
  background-color: var(--surface);
  border-color: var(--border) var(--border) var(--surface);
  color: var(--text);
}
[data-theme="dark"] .nav-pills .nav-link.active{
  background-color: var(--primary-color);
}

/* Badges */
[data-theme="dark"] .badge.bg-light{
  background-color: var(--surface-alt) !important;
  color: var(--text) !important;
}
[data-theme="dark"] .badge.text-dark{
  color: var(--text) !important;
}

/* Accordion */
[data-theme="dark"] .accordion-item{
  background-color: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .accordion-button{
  background-color: var(--surface);
  color: var(--text);
}
[data-theme="dark"] .accordion-button:not(.collapsed){
  background-color: var(--surface-alt);
  color: var(--text);
}
[data-theme="dark"] .accordion-button::after{
  filter: invert(1);
}

/* Pagination */
[data-theme="dark"] .page-link{
  background-color: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .page-link:hover{
  background-color: var(--surface-alt);
  color: var(--text);
}
[data-theme="dark"] .page-item.active .page-link{
  background-color: var(--primary-color);
  border-color: var(--primary-color);
}
[data-theme="dark"] .page-item.disabled .page-link{
  background-color: var(--surface-alt);
  color: var(--muted);
}

/* Progress bars */
[data-theme="dark"] .progress{
  background-color: var(--surface-alt);
}

/* Breadcrumb */
[data-theme="dark"] .breadcrumb{
  --bs-breadcrumb-divider-color: var(--muted);
}
[data-theme="dark"] .breadcrumb-item a{
  color: var(--primary-color);
}
[data-theme="dark"] .breadcrumb-item.active{
  color: var(--muted);
}

/* Tooltip & Popover */
[data-theme="dark"] .tooltip-inner{
  background-color: var(--surface-alt);
  color: var(--text);
}

/* Borders */
[data-theme="dark"] .border,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end{
  border-color: var(--border) !important;
}

/* Helpers: bg-white, bg-light, bg-body */
[data-theme="dark"] .bg-white{
  background-color: var(--surface) !important;
}
[data-theme="dark"] .bg-light{
  background-color: var(--surface-alt) !important;
}
[data-theme="dark"] .bg-body{
  background-color: var(--bg) !important;
}
[data-theme="dark"] .bg-body-secondary{
  background-color: var(--surface-alt) !important;
}
[data-theme="dark"] .bg-body-tertiary{
  background-color: var(--surface) !important;
}

/* Text helpers */
[data-theme="dark"] .text-dark{
  color: var(--text) !important;
}
[data-theme="dark"] .text-body{
  color: var(--text) !important;
}
[data-theme="dark"] .text-muted{
  color: var(--muted) !important;
}
[data-theme="dark"] .text-secondary{
  color: var(--muted) !important;
}
[data-theme="dark"] .text-black{
  color: var(--text) !important;
}
[data-theme="dark"] .text-black-50{
  color: var(--muted) !important;
}

/* Shadow fix */
[data-theme="dark"] .shadow,
[data-theme="dark"] .shadow-sm,
[data-theme="dark"] .shadow-lg{
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.35) !important;
}

/* SweetAlert2 dark mode */
[data-theme="dark"] .swal2-popup{
  background: var(--surface) !important;
  color: var(--text) !important;
}
[data-theme="dark"] .swal2-title{
  color: var(--text) !important;
}
[data-theme="dark"] .swal2-html-container{
  color: var(--text-secondary) !important;
}
[data-theme="dark"] .swal2-input,
[data-theme="dark"] .swal2-textarea,
[data-theme="dark"] .swal2-select{
  background: var(--input-bg) !important;
  border-color: var(--input-border) !important;
  color: var(--text) !important;
}
[data-theme="dark"] .swal2-validation-message{
  background: var(--alert-danger-bg) !important;
  color: var(--alert-danger-text) !important;
}

/* Code blocks */
[data-theme="dark"] code{
  background-color: var(--code-bg);
  color: #f472b6;
}
[data-theme="dark"] pre{
  background-color: var(--code-bg);
  color: var(--text);
  border-color: var(--border);
}

/* ──────────────────────────────
   Inline style overrides
   (catch common hardcoded whites)
   ────────────────────────────── */
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background-color: white"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background-color: #ffffff"]{
  background-color: var(--surface) !important;
  color: var(--text) !important;
}

/* ──────────────────────────────
   Page-specific dark fixes
   ────────────────────────────── */

/* Profile hero gradient */
[data-theme="dark"] .profile-hero{
  background: linear-gradient(180deg, rgba(30,144,255,.08), rgba(15,23,42,.4));
  border-bottom-color: var(--border);
}

/* Section titles */
[data-theme="dark"] .section-title{
  color: var(--text);
}

/* Tab nav (student profile tabs) */
[data-theme="dark"] .profile-tab-nav{
  background: var(--bg);
  border-bottom-color: var(--border);
}
[data-theme="dark"] .profile-tab-nav .ptab-btn{
  background: var(--surface);
  border-color: var(--border);
  color: var(--text-secondary);
}
[data-theme="dark"] .profile-tab-nav .ptab-btn:hover{
  border-color: var(--primary-color);
  color: var(--primary-color);
  background: rgba(56,189,248,.08);
}
[data-theme="dark"] .profile-tab-nav .ptab-btn.active{
  border-color: var(--primary-color);
  background: var(--primary-color);
  color: #fff;
}

/* Calendar / events */
[data-theme="dark"] .fc-theme-standard td,
[data-theme="dark"] .fc-theme-standard th{
  border-color: var(--border);
}
[data-theme="dark"] .fc-theme-standard .fc-scrollgrid{
  border-color: var(--border);
}

/* Todo / checklist items */
[data-theme="dark"] .todo-card .todo-main-item{
  background: var(--surface);
  border-color: var(--border);
}
[data-theme="dark"] .todo-card .todo-sublist li{
  background: var(--surface-alt);
  border-color: var(--border);
}

/* Journey timeline */
[data-theme="dark"] .journey-content-profile{
  background: var(--surface-alt);
  border-color: var(--border);
}
[data-theme="dark"] .journey-step-profile.current .journey-content-profile{
  background: rgba(30,144,255,.1);
  border-color: #3b82f6;
}
[data-theme="dark"] .journey-step-profile::before{
  background: var(--border);
}
[data-theme="dark"] .journey-dot-profile{
  border-color: var(--surface);
  box-shadow: 0 0 0 2px var(--border);
}

/* PDF frames / iframes */
[data-theme="dark"] .pdf-frame,
[data-theme="dark"] iframe{
  border-color: var(--border);
}

/* Rounded border containers */
[data-theme="dark"] .border.rounded,
[data-theme="dark"] .border.rounded-3{
  border-color: var(--border) !important;
}

/* Scrollbar styling */
[data-theme="dark"] ::-webkit-scrollbar{
  width: 10px;
  height: 10px;
}
[data-theme="dark"] ::-webkit-scrollbar-track{
  background: var(--bg);
}
[data-theme="dark"] ::-webkit-scrollbar-thumb{
  background: var(--border);
  border-radius: 5px;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{
  background: var(--muted);
}

/* Selection color */
[data-theme="dark"] ::selection{
  background: rgba(56,189,248,.3);
  color: #fff;
}

/* HR */
[data-theme="dark"] hr{
  border-color: var(--border);
  opacity: .5;
}

/* Faux-bg patterns from inline styles */
[data-theme="dark"] [style*="background: #f8f9fa"],
[data-theme="dark"] [style*="background-color: #f8f9fa"],
[data-theme="dark"] [style*="background:#f8f9fa"],
[data-theme="dark"] [style*="background: #f8fafc"],
[data-theme="dark"] [style*="background-color: #f8fafc"],
[data-theme="dark"] [style*="background: #fafafa"],
[data-theme="dark"] [style*="background-color: #fafafa"]{
  background-color: var(--surface-alt) !important;
  color: var(--text) !important;
}

/* Dashboard stat cards / info boxes */
[data-theme="dark"] .stat-card,
[data-theme="dark"] .info-card,
[data-theme="dark"] .metric-card{
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

/* ──────────────────────────────
   Dashboard-specific dark fixes
   ────────────────────────────── */

/* Quick-action sections & tiles */
[data-theme="dark"] .qa-section{
  background: var(--surface);
  color: var(--text);
}
[data-theme="dark"] .qa-section h5{
  color: var(--muted);
}
[data-theme="dark"] .qa-tile{
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .qa-tile:hover{
  border-color: var(--primary-color);
  color: var(--primary-color);
}
[data-theme="dark"] .qa-tile-desc{
  color: var(--muted);
}

/* Class cards (student dashboard) */
[data-theme="dark"] .class-card{
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .class-card:hover{
  border-color: #475569;
}
[data-theme="dark"] .class-card.locked-class{
  background: linear-gradient(to right, rgba(251,191,36,.08) 0%, var(--surface) 100%);
  border-color: #78350f;
}
[data-theme="dark"] .class-title{
  color: var(--text);
}
[data-theme="dark"] .class-sub{
  color: var(--muted);
}
[data-theme="dark"] .class-extra{
  border-top-color: var(--border);
  color: var(--text-secondary);
}
[data-theme="dark"] .class-action-tile{
  background: var(--surface-alt);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .class-action-tile:hover{
  background: var(--surface);
  border-color: var(--primary-color);
}
[data-theme="dark"] .class-action-tile small{
  color: var(--muted);
}

/* Calendar buttons */
[data-theme="dark"] .calendar-btn{
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .calendar-btn:hover{
  border-color: var(--primary-color);
  color: var(--primary-color);
}

/* Info cards */
[data-theme="dark"] .info-card{
  background: var(--surface);
  color: var(--text);
}
[data-theme="dark"] .info-card h5{
  color: var(--muted);
}
[data-theme="dark"] .info-card .list-group-item{
  background: transparent;
  border-bottom-color: var(--border);
  color: var(--text);
}

/* Account group (admin dashboard) */
[data-theme="dark"] .account-group-header{
  background: var(--surface-alt);
  color: var(--text);
}
[data-theme="dark"] .account-group.has-duplicates .account-group-header{
  background: var(--alert-warning-bg);
  color: var(--alert-warning-text);
}

/* Teacher dashboard */
[data-theme="dark"] .teacher-card{
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

/* Search / filter bars */
[data-theme="dark"] .tools-bar .form-control{
  background: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text);
}

/* DataTables dark support */
[data-theme="dark"] .dataTables_wrapper .dataTables_length,
[data-theme="dark"] .dataTables_wrapper .dataTables_filter,
[data-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-theme="dark"] .dataTables_wrapper .dataTables_processing,
[data-theme="dark"] .dataTables_wrapper .dataTables_paginate{
  color: var(--text);
}
[data-theme="dark"] .dataTables_wrapper .dataTables_filter input,
[data-theme="dark"] .dataTables_wrapper .dataTables_length select{
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text);
}
[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button{
  color: var(--text) !important;
  background: var(--surface);
  border-color: var(--border);
}
[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover{
  color: var(--text) !important;
  background: var(--surface-alt) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current{
  color: #fff !important;
  background: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
}
[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.disabled{
  color: var(--muted) !important;
}
[data-theme="dark"] table.dataTable tbody tr{
  background-color: var(--surface);
  color: var(--text);
}
[data-theme="dark"] table.dataTable tbody tr:hover{
  background-color: var(--table-hover-bg) !important;
}

/* Select2 dark support */
[data-theme="dark"] .select2-container--default .select2-selection--single,
[data-theme="dark"] .select2-container--default .select2-selection--multiple{
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text);
}
[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered{
  color: var(--text);
}
[data-theme="dark"] .select2-dropdown{
  background-color: var(--dropdown-bg);
  border-color: var(--border);
}
[data-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected]{
  background-color: var(--primary-color);
}
[data-theme="dark"] .select2-container--default .select2-search--dropdown .select2-search__field{
  background: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text);
}

/* FullCalendar dark support */
[data-theme="dark"] .fc{
  --fc-border-color: var(--border);
  --fc-page-bg-color: var(--surface);
  --fc-neutral-bg-color: var(--surface-alt);
  --fc-today-bg-color: rgba(56,189,248,.1);
}
[data-theme="dark"] .fc .fc-button-primary{
  background: var(--primary-color);
  border-color: var(--primary-color);
}
[data-theme="dark"] .fc .fc-col-header-cell{
  background: var(--surface-alt);
  color: var(--text);
}
[data-theme="dark"] .fc .fc-daygrid-day-number{
  color: var(--text);
}

/* Offcanvas */
[data-theme="dark"] .offcanvas{
  background-color: var(--surface);
  color: var(--text);
}
[data-theme="dark"] .offcanvas-header{
  border-bottom-color: var(--border);
}

/* Toast */
[data-theme="dark"] .toast{
  background-color: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="dark"] .toast-header{
  background-color: var(--surface-alt);
  border-bottom-color: var(--border);
  color: var(--text);
}

/* Generic anchor colors */
[data-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item){
  color: #60a5fa;
}
[data-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):hover{
  color: #93c5fd;
}

.bg-primary{ background-color: var(--primary-color) !important; }
.text-primary{ color: var(--primary-color) !important; }
.btn-primary{
  background-color: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
}
.btn-primary:hover{
  background-color:#1e6edb !important;
  border-color:#1e6edb !important;
}
.btn-outline-primary{
  color: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
}
.btn-outline-primary:hover{
  background-color: var(--primary-color) !important;
  color:#fff !important;
}
.form-control:focus{
  border-color: var(--primary-color);
  box-shadow: 0 0 0 .25rem var(--focus);
}
.btn-link{
  color: var(--primary-color) !important;
  font-weight:600;
  text-decoration:none;
}
.btn-link:hover{
  color: var(--secondary-color) !important;
  text-decoration:underline;
}
.muted{ color: var(--muted); }

/* reusable form card layout */
.form-wrap{ min-height:100svh; display:grid; place-items:center; padding:1rem; }
.form-card{ width:100%; max-width:600px; background:var(--surface); border:1px solid var(--border); border-radius:16px; overflow:hidden; box-shadow:0 .8rem 1.6rem rgba(0,0,0,.08); }
.form-head{ padding:1.75rem 1.25rem; text-align:center; color:#fff; background:linear-gradient(120deg, rgba(30,144,255,.95), rgba(30,144,255,.85)), radial-gradient(1200px 500px at 10% -20%, rgba(255,165,0,.35), transparent); }
.form-head img{ height:64px; width:auto; margin-bottom:.5rem; object-fit:contain; }
.form-title{ font-weight:800; margin:0; font-size:1.5rem; }
.form-body{ padding:1.25rem; }

/* Fix header dropdown toggle buttons - prevent Bootstrap from adding white background */
header .dropdown-toggle,
header button.dropdown-toggle,
.header-primary-bg .dropdown-toggle,
.header-primary-bg button {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.header-primary-bg .dropdown-toggle:hover,
.header-primary-bg .dropdown-toggle:focus,
.header-primary-bg button:hover,
.header-primary-bg button:focus {
  background-color: rgba(255, 255, 255, 0.1) !important;
}

.header-primary-bg .dropdown-toggle::after {
  display: none; /* Hide Bootstrap's default dropdown arrow */
}