/* Bootstrap provides layout/components; these tokens retain the existing brand. */
:root, [data-bs-theme="dark"] {
  --bs-body-font-family: "Inter", sans-serif;
  --bs-body-bg: #061722;
  --bs-body-color: #e8f1f3;
  --bs-secondary-color: #b0c4ce;
  --bs-tertiary-bg: #102e40;
  --bs-border-color: #345062;
  --bs-link-color: #a2dfcc;
  --bs-link-color-rgb: 162, 223, 204;
  --bs-link-hover-color: #d4f5e9;
  --bs-link-hover-color-rgb: 212, 245, 233;
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: clamp(1.35rem, 1.2rem + .5vw, 1.7rem);
}
body { min-height: 100vh; background: #061722 url("../images/background.png") center / cover fixed; }
h1 { font: 600 var(--text-xl)/1.25 "Space Grotesk", sans-serif; margin-bottom: 0; }
h2 { font-size: var(--text-lg); font-weight: 600; }
.eyebrow { color: var(--bs-secondary-color); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .09em; }
.dashboard-shell { display: grid; grid-template-columns: 245px minmax(0, 1fr); min-height: 100vh; }
.dashboard-sidebar { background: #08273b; border-right: 1px solid #244458; }
.brand-logo { width: 195px; max-width: 100%; height: auto; }
.dashboard-main { padding: 28px 36px 48px; min-width: 0; }
.dashboard-sidebar .nav-link { font-size: var(--text-sm); padding: .85rem 1rem; }
.nav-pills .nav-link.active { color: #d5f4e9; background-color: #34566a; }
.card, .accordion-item { --bs-card-bg: #0c293b; --bs-card-border-color: #345062; background-color: #0c293b; border-color: #345062; }
.card-body { padding: 1.5rem; }
.card-header { background: transparent; padding: 1rem 1.5rem; }
.btn-primary {
  --bs-btn-bg: #a2dfcc; --bs-btn-border-color: #a2dfcc; --bs-btn-color: #072b30;
  --bs-btn-hover-bg: #c3eddf; --bs-btn-hover-border-color: #c3eddf; --bs-btn-hover-color: #072b30;
  --bs-btn-active-bg: #8ac8b4; --bs-btn-active-border-color: #8ac8b4; --bs-btn-active-color: #072b30;
}
.btn { font-size: var(--text-sm); font-weight: 500; padding: .65rem 1rem; }
.btn-sm { padding: .45rem .75rem; }
.btn-outline-danger { --bs-btn-color: #ff9ca5; --bs-btn-border-color: #b3515b; }
.form-label { font-size: var(--text-sm); color: var(--bs-secondary-color); }
.form-control, .form-select { min-height: 44px; font-size: var(--text-sm); background-color: #061e2e; }
.form-control:focus, .form-select:focus { background-color: #061e2e; border-color: #a2dfcc; box-shadow: 0 0 0 .2rem #a2dfcc33; }
.form-text { color: var(--bs-secondary-color); }
.table { --bs-table-bg: transparent; --bs-table-color: #e8f1f3; --bs-table-border-color: #345062; --bs-table-hover-bg: #ffffff08; --bs-table-hover-color: #fff; font-size: var(--text-sm); }
.table > :not(caption) > * > * { padding: 1rem .75rem; }
.table th { text-transform: uppercase; letter-spacing: .035em; color: #b0c4ce; font-size: var(--text-xs); font-weight: 600; }
.table-responsive .table { min-width: 640px; }
.table-responsive .completion-counts { min-width: 0; }
.badge { font-size: var(--text-xs); }
.table-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.table-actions a { white-space: nowrap; }
.page-link { color: var(--bs-link-color); background-color: #061e2e; border-color: #345062; }
.accordion { --bs-accordion-bg: #0c293b; --bs-accordion-border-color: #345062; --bs-accordion-color: #e8f1f3; --bs-accordion-btn-color: #e8f1f3; --bs-accordion-active-bg: #163b4e; --bs-accordion-active-color: #d5f4e9; }
.accordion-button { line-height: 1.6; }
.objective { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(100px, 1fr) 65px; align-items: center; gap: 1.25rem; padding: 1.2rem 0; border-bottom: 1px solid #345062; font-size: var(--text-sm); }
.objective:last-child { border-bottom: 0; }
.objective strong { text-align: right; font-variant-numeric: tabular-nums; }
progress { width: 100%; height: 8px; border-radius: 8px; overflow: hidden; border: 0; background: #345062; }
progress::-webkit-progress-bar { background: #345062; }
progress::-webkit-progress-value { background: #a2dfcc; }
progress::-moz-progress-bar { background: #a2dfcc; }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; }
.auth-main { width: 100%; max-width: 540px; padding: 0; }
.auth-main .card-body { padding: 2rem; }
.skip-link:focus { position: absolute; top: 8px; left: 8px; z-index: 2000; padding: 12px; background: #fff; color: #061722; }
:focus-visible { outline: 2px solid #a2dfcc; outline-offset: 3px; }
.preview-notice { border-left: 3px solid #a2dfcc; }
.chart-scroll { overflow-x: auto; }
.objective-chart-wrap, .completion-chart-wrap { position: relative; height: 320px; min-width: 0; }
.success-chart-wrap { position: relative; height: 220px; max-width: 360px; margin: 1rem auto; }
.table-responsive .objective-counts { min-width: 0; }
.objective-counts td:first-child { min-width: 140px; overflow-wrap: anywhere; }
@media (max-width: 991.98px) {
  .dashboard-shell { display: block; }
  .dashboard-sidebar { border-right: 0; border-bottom: 1px solid #345062; }
  .dashboard-main { padding: 24px 20px; }
  .brand-logo { width: 180px; }
}
@media (max-width: 575.98px) {
  .dashboard-main { padding: 20px 16px; }
  .auth-main { padding: 0; }
  .card-body, .auth-main .card-body { padding: 1.15rem; }
  .objective { grid-template-columns: minmax(0, 1fr) 65px; gap: .7rem; }
  .objective > span { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
