/* =====================================================================
   Program Advising (main site) — "Aurora" design layer (2026-10-17)
   Same look as /oasis2/ (built from /budget/, /leadership-new/, /caep2/).
   EVERY rule is scoped to body.theme-aurora, which header.php adds on every
   page (the only design since 2026-10-19 — classic look removed).
   It restyles the shared shell (.topbar, .sidebar, .page-header and the
   page-specific banners, .page-footer) and the Bootstrap components pages
   already use, so no page markup has to change.
   ===================================================================== */
.theme-aurora {
    --g-950: #022A20; --g-900: #04382B; --g-800: #064E3B; --g-700: #006747; --g-600: #0B7A55; --g-500: #13865F; --g-400: #3BB585; --g-300: #7FD3AF; --g-200: #BFE8D6; --g-100: #E3F5EC; --g-50: #F2FAF6;
    --gold-700: #8A6400; --gold-600: #A97800; --gold-500: #CFA200; --gold-400: #E4B84A; --gold-200: #F6E2A6; --gold-100: #FFF3CF; --gold-50: #FFFAEB;
    --blue-700: #174C91; --blue-600: #1D5FB4; --blue-100: #E3EEFC; --blue-50: #F1F6FE;
    --red-700: #9E2A1F; --red-600: #C0392B; --red-100: #FBE3DF; --red-50: #FDF3F1;
    --ink-950: #0B1712; --ink-900: #15221D; --ink-800: #1F2D27; --ink-700: #34423C; --ink-600: #4B5A54; --ink-500: #687771; --ink-400: #98A6A0; --ink-300: #CBD5D1; --ink-200: #E2E8E5; --ink-150: #EAEFEC; --ink-100: #F1F4F3; --ink-50: #F7F9F8;
    --mint: #5be3b0; --gold-hi: #f0dd95;
    --r: 14px; --ease: cubic-bezier(.2,.7,.2,1);
    --sh-1: 0 1px 2px rgba(11,23,18,.04), 0 1px 3px rgba(11,23,18,.06);
    --sh-2: 0 1px 2px rgba(11,23,18,.04), 0 4px 12px rgba(11,23,18,.06), 0 12px 32px -12px rgba(11,23,18,.10);
    --sh-3: 0 2px 4px rgba(11,23,18,.05), 0 12px 28px rgba(11,23,18,.10), 0 30px 60px -20px rgba(11,23,18,.18);
    --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-display: "Plus Jakarta Sans", var(--font);
    /* the site's own variables, re-pointed so page-level CSS that uses them follows the theme */
    --green: #0B7A55; --green-dk: #04382B; --gold: #CFC493;
    --topbar-h: 64px; --sidebar-w: 264px;
    --bs-primary: #0B7A55; --bs-primary-rgb: 11,122,85; --bs-link-color: #0B7A55; --bs-link-color-rgb: 11,122,85; --bs-link-hover-color: #006747; --bs-border-color: var(--ink-200);
}

/* ---------- base + ambient background ---------- */
body.theme-aurora { font-family: var(--font); font-size: 14px; color: var(--ink-800); background: transparent; -webkit-font-smoothing: antialiased; font-feature-settings: "cv11", "ss01"; }
body.theme-aurora::before { content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none;
    background: radial-gradient(900px 520px at 85% -8%, rgba(31,176,124,.14), transparent 60%), radial-gradient(700px 480px at 30% 110%, rgba(207,196,147,.20), transparent 60%), radial-gradient(600px 400px at 110% 70%, rgba(1,105,72,.08), transparent 60%), #EEF3F0; }
body.theme-aurora::after { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
    background-image: radial-gradient(rgba(1,105,72,.09) 1px, transparent 1px); background-size: 22px 22px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.7), transparent 70%); -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.7), transparent 70%); }
.theme-aurora h1, .theme-aurora h2, .theme-aurora h3, .theme-aurora h4, .theme-aurora h5, .theme-aurora .modal-title { font-family: var(--font-display); letter-spacing: -.015em; }
.theme-aurora a { color: var(--g-600); }
.theme-aurora a:hover { color: var(--g-700); }
.theme-aurora ::selection { background: var(--g-200); }
.theme-aurora * { scrollbar-width: thin; scrollbar-color: rgba(1,105,72,.35) transparent; }

/* ---------- top bar ---------- */
.theme-aurora .topbar {
    height: var(--topbar-h); padding: 0 18px; gap: 14px; border-top: 3px solid var(--gold-500);
    background: linear-gradient(90deg, var(--g-950), var(--g-900) 40%, #05402F);
    box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 6px 24px -10px rgba(2,42,32,.6);
}
.theme-aurora .topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--gold-400) 20%, var(--gold-hi) 50%, var(--mint) 80%, transparent); background-size: 200% 100%; animation: au-flow 8s linear infinite; opacity: .85; }
@keyframes au-flow { to { background-position: -200% 0; } }
.theme-aurora .sidebar-toggle { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); font-size: 19px; padding: 0; }
.theme-aurora .sidebar-toggle:hover { background: rgba(255,255,255,.14); }
.theme-aurora .topbar .brand { display: flex; align-items: center; gap: 12px; color: #fff; }
.theme-aurora .au-brand-logo { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; position: relative; overflow: hidden; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); flex-shrink: 0; }
.theme-aurora .au-brand-logo::after { content: ""; position: absolute; inset: -40%; background: conic-gradient(from 0deg, transparent 0 70%, rgba(228,184,74,.55) 80%, transparent 90%); animation: au-spin 6s linear infinite; }
.theme-aurora .au-brand-logo::before { content: ""; position: absolute; inset: 1px; border-radius: 10px; background: var(--g-900); z-index: 1; }
.theme-aurora .au-brand-logo img { width: 30px; position: relative; z-index: 2; }
@keyframes au-spin { to { transform: rotate(360deg); } }
.theme-aurora .au-brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.theme-aurora .au-brand-title { font: 800 15.5px var(--font-display); color: #fff; letter-spacing: -.01em; }
.theme-aurora .au-brand-sub { font-size: 11px; font-weight: 600; letter-spacing: .04em; background: linear-gradient(90deg, var(--gold-hi), var(--mint)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-aurora .topbar .brand > span:not([class]) { display: none; } /* the classic "College of Education" span */
.theme-aurora .topbar-subtitle { border-left-color: rgba(255,255,255,.18); color: rgba(255,255,255,.65); }
.theme-aurora .au-cmdk { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 10px 0 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: rgba(255,255,255,.82); font-size: 12.5px; }
.theme-aurora .au-cmdk:hover { background: rgba(255,255,255,.13); color: #fff; }
.theme-aurora .au-cmdk kbd { font: 700 10.5px var(--font); background: rgba(255,255,255,.12); color: #fff; border-radius: 5px; padding: 2px 6px; box-shadow: none; }
.theme-aurora .au-user { display: flex; align-items: center; gap: 10px; color: #fff; background: none; border: 0; padding: 3px 6px 3px 3px; border-radius: 999px; }
.theme-aurora .au-user:hover { background: rgba(255,255,255,.07); }
.theme-aurora .au-user::after { opacity: .6; }
.theme-aurora .au-avatar { width: 36px; height: 36px; border-radius: 50%; overflow: hidden; background: linear-gradient(135deg, var(--gold-400), var(--gold-600)); color: var(--ink-950); display: inline-grid; place-items: center; font-weight: 800; font-size: 13px; box-shadow: 0 0 0 2px rgba(255,255,255,.18); flex-shrink: 0; }
.theme-aurora .au-avatar img { width: 100%; height: 100%; object-fit: cover; }
.theme-aurora .au-user-name { font-size: 13px; font-weight: 600; line-height: 1.2; text-align: left; }
.theme-aurora .au-user-role { font-size: 11px; opacity: .65; line-height: 1.2; text-align: left; }
.theme-aurora .au-login { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px; border-radius: 10px; font-weight: 700; font-size: 13px; color: var(--ink-950) !important; background: linear-gradient(180deg, var(--gold-400), var(--gold-500)); border: 1px solid var(--gold-600); text-decoration: none; }

/* ---------- sidebar (dark aurora) ---------- */
.theme-aurora .sidebar {
    top: var(--topbar-h); isolation: isolate; border-right: 1px solid rgba(255,255,255,.05); padding-bottom: 10px;
    background: linear-gradient(180deg, #00241a 0%, #002e1f 45%, #013a28 100%); box-shadow: 8px 0 40px -18px rgba(0,26,17,.65);
    scrollbar-color: rgba(255,255,255,.15) transparent;
}
.theme-aurora .sidebar::before, .theme-aurora .sidebar::after { content: ""; position: fixed; width: 260px; height: 260px; border-radius: 50%; filter: blur(60px); pointer-events: none; z-index: -1; opacity: .35; }
.theme-aurora .sidebar::before { background: var(--g-400); top: 14%; left: -120px; animation: au-drift 18s ease-in-out infinite alternate; }
.theme-aurora .sidebar::after { background: #b39b4d; bottom: 5%; left: 60px; animation: au-drift 22s ease-in-out infinite alternate-reverse; opacity: .22; }
@keyframes au-drift { to { transform: translate(70px, -90px) scale(1.25); } }
.theme-aurora .sidebar-logo { border-bottom: 0; padding: 14px 12px 8px; }
.theme-aurora .au-sb-card { position: relative; overflow: hidden; border-radius: 16px; padding: 12px 14px; background: linear-gradient(135deg, rgba(255,255,255,.09), rgba(255,255,255,.02)); border: 1px solid rgba(255,255,255,.09); }
.theme-aurora .au-sb-card::after { content: ""; position: absolute; inset: -40% -60%; background: linear-gradient(110deg, transparent 40%, rgba(255,255,255,.12) 50%, transparent 60%); animation: au-sheen 7s ease-in-out infinite; pointer-events: none; }
@keyframes au-sheen { 0%, 70% { transform: translateX(-60%); } 100% { transform: translateX(60%); } }
.theme-aurora .sidebar-logo .app-name { font: 800 15px var(--font-display); color: #fff; position: relative; z-index: 1; }
.theme-aurora .sidebar-logo .app-sub { font-size: 11px; color: rgba(255,255,255,.6); position: relative; z-index: 1; display: flex; align-items: center; gap: 6px; }
.theme-aurora .sidebar-logo .app-sub::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 0 rgba(91,227,176,.7); animation: au-mint 2s infinite; flex-shrink: 0; }
@keyframes au-mint { 70% { box-shadow: 0 0 0 8px rgba(91,227,176,0); } 100% { box-shadow: 0 0 0 0 rgba(91,227,176,0); } }
.theme-aurora .btn-nav-edit { color: rgba(255,255,255,.55); position: relative; z-index: 1; }
.theme-aurora .btn-nav-edit:hover { background: rgba(255,255,255,.1); color: #fff; }
.theme-aurora .btn-nav-edit.active { background: var(--gold-400); color: var(--ink-950); }
.theme-aurora .au-sb-filter { position: relative; margin: 6px 12px 4px; }
.theme-aurora .au-sb-filter i { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: rgba(255,255,255,.4); font-size: 13px; }
.theme-aurora .au-sb-filter input { width: 100%; height: 36px; border-radius: 11px; padding: 0 10px 0 32px; font-size: 12.5px; color: #fff; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); outline: none; transition: all .2s; }
.theme-aurora .au-sb-filter input::placeholder { color: rgba(255,255,255,.38); }
.theme-aurora .au-sb-filter input:focus { border-color: rgba(91,227,176,.55); background: rgba(255,255,255,.1); box-shadow: 0 0 0 4px rgba(91,227,176,.12); }
.theme-aurora .sidebar-nav { padding: 0 12px; }
.theme-aurora .sidebar-nav li a {
    position: relative; gap: 10px; padding: 7px 10px; margin: 1px 0; border-left: 0; border-radius: 10px;
    color: rgba(255,255,255,.74); font-size: 13px; font-weight: 500; white-space: normal; line-height: 1.25; transition: all .25s var(--ease);
}
.theme-aurora .sidebar-nav li a i { color: rgba(255,255,255,.45); font-size: 14.5px; transition: color .2s; }
.theme-aurora .sidebar-nav li a:hover { background: rgba(255,255,255,.07); color: #fff; transform: translateX(3px); border-left: 0; }
.theme-aurora .sidebar-nav li a:hover i { color: var(--mint); }
.theme-aurora .sidebar-nav li a.active { color: #fff; font-weight: 700; background: linear-gradient(100deg, rgba(31,176,124,.38), rgba(1,105,72,.22)); box-shadow: inset 0 0 0 1px rgba(91,227,176,.28), 0 10px 24px -12px rgba(31,176,124,.8); }
.theme-aurora .sidebar-nav li a.active i { color: var(--gold-hi); }
.theme-aurora .sidebar-nav li a.active::before { content: ""; position: absolute; left: -12px; top: 22%; bottom: 22%; width: 4px; border-radius: 0 4px 4px 0; background: linear-gradient(var(--gold-hi), var(--mint)); box-shadow: 0 0 12px var(--mint); }
.theme-aurora .sidebar-nav li a .badge-soon { background: rgba(255,255,255,.1); color: rgba(255,255,255,.6); }
.theme-aurora .sidebar-nav li.nav-group-label { padding: 14px 10px 4px; display: flex; align-items: center; gap: 8px; }
.theme-aurora .sidebar-nav li.nav-group-label .nav-group-lbl { color: #CFC493; font-size: 10px; letter-spacing: 1.6px; flex-shrink: 0; }
.theme-aurora .sidebar-nav li.nav-group-label::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(207,196,147,.35), transparent); }
.theme-aurora .sidebar-section-label { color: #CFC493; font-size: 10px; letter-spacing: 1.6px; padding: 16px 22px 4px; display: flex; align-items: center; gap: 8px; }
.theme-aurora .sidebar-section-label::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(207,196,147,.35), transparent); }
.theme-aurora .au-hidden-nav { display: none !important; }
/* nav edit mode on the dark sidebar */
.theme-aurora .sidebar.nav-editing .sidebar-nav li .nav-edit-ctrl { background: rgba(255,255,255,.06); border-left: 1px solid rgba(255,255,255,.08); border-radius: 0 10px 10px 0; }
.theme-aurora .sidebar.nav-editing .sidebar-nav li.nav-group-label { background: rgba(255,255,255,.04); border-radius: 10px; }
.theme-aurora .btn-nav-up, .theme-aurora .btn-nav-down { color: var(--mint); }
.theme-aurora .btn-nav-vis { color: rgba(255,255,255,.55); }
.theme-aurora .btn-nav-vis.vis-off { color: #ff9a8a; }
.theme-aurora .btn-nav-lock { color: rgba(255,255,255,.3); }
.theme-aurora .sidebar-nav li.nav-hidden-item > a::after { color: rgba(255,255,255,.4); }
.theme-aurora .nav-save-bar { background: rgba(0,0,0,.25); border-top: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.6); }
.theme-aurora .nav-save-bar span { color: rgba(255,255,255,.55) !important; }
.theme-aurora .sidebar-overlay { background: rgba(4,32,24,.45); backdrop-filter: blur(3px); }

/* ---------- content area ---------- */
.theme-aurora .main-content { padding: 24px 28px 40px; animation: au-up .6s var(--ease) backwards; /* backwards, not both: a kept (filled) transform animation makes .main-content its own layer and traps Bootstrap modals under their backdrop */ min-height: calc(100vh - var(--topbar-h) - 50px); }
@keyframes au-up { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.theme-aurora .page-footer { background: transparent; color: var(--ink-400); border-top: 1px solid rgba(1,105,72,.10); padding: 14px 28px 22px; font-size: 11.5px; }
.theme-aurora .page-footer a { color: var(--g-600); }
.theme-aurora .scroll-to-top { border-radius: 12px; background: linear-gradient(180deg, var(--g-600), var(--g-800)); box-shadow: var(--sh-3); }

/* ---------- page banners (every variant the pages use) ---------- */
.theme-aurora .page-header, .theme-aurora .page-hero, .theme-aurora .prog-hero, .theme-aurora .gened-hero,
.theme-aurora .gkt-hero, .theme-aurora .roster-hero, .theme-aurora .curriculog-hero {
    position: relative; overflow: hidden; isolation: isolate; color: #fff; border-radius: 24px; border: 0;
    padding: 26px 30px; margin-bottom: 22px;
    background: radial-gradient(600px 260px at 88% 0%, rgba(91,227,176,.35), transparent 65%), radial-gradient(500px 260px at 0% 100%, rgba(207,196,147,.28), transparent 65%), linear-gradient(125deg, #002a1c 0%, #01543a 55%, #027a52 100%) !important;
    box-shadow: 0 30px 60px -30px rgba(0,38,26,.75), inset 0 1px 0 rgba(255,255,255,.12);
}
.theme-aurora .page-header::before, .theme-aurora .page-hero::before, .theme-aurora .prog-hero::before, .theme-aurora .gened-hero::before,
.theme-aurora .gkt-hero::before, .theme-aurora .roster-hero::before, .theme-aurora .curriculog-hero::before {
    content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5; pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 34px 34px;
    mask-image: radial-gradient(ellipse at 70% 20%, #000, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 70% 20%, #000, transparent 75%);
}
.theme-aurora .page-header::after, .theme-aurora .page-hero::after, .theme-aurora .prog-hero::after, .theme-aurora .gened-hero::after,
.theme-aurora .gkt-hero::after, .theme-aurora .roster-hero::after, .theme-aurora .curriculog-hero::after {
    content: ""; position: absolute; top: 0; bottom: 0; width: 40%; left: -50%; z-index: -1; pointer-events: none;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,.09), transparent); animation: au-herosheen 9s ease-in-out infinite;
}
@keyframes au-herosheen { 0%, 60% { left: -50%; } 100% { left: 130%; } }
.theme-aurora canvas.au-constellation { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; opacity: .75; }
.theme-aurora .page-header h1, .theme-aurora .page-hero h1, .theme-aurora .page-hero h2, .theme-aurora .prog-hero h1, .theme-aurora .prog-hero h2,
.theme-aurora .gened-hero h1, .theme-aurora .gened-hero h2, .theme-aurora .gkt-hero h1, .theme-aurora .gkt-hero h2,
.theme-aurora .roster-hero h1, .theme-aurora .roster-hero h2, .theme-aurora .curriculog-hero h1, .theme-aurora .curriculog-hero h2 {
    font: 800 27px/1.18 var(--font-display) !important; letter-spacing: -.02em; color: #fff;
}
.theme-aurora .au-title-text { background: linear-gradient(90deg, #fff 30%, var(--gold-hi) 75%, var(--mint)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-aurora .page-header p, .theme-aurora .page-hero p, .theme-aurora .prog-hero p, .theme-aurora .gened-hero p,
.theme-aurora .gkt-hero p, .theme-aurora .roster-hero p, .theme-aurora .curriculog-hero p { color: rgba(255,255,255,.8) !important; font-size: 13.8px; line-height: 1.6; }
.theme-aurora .au-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; font-size: 11px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 12px; }
.theme-aurora .au-crumbs .sep { opacity: .5; }
.theme-aurora .au-crumbs .here { color: var(--gold-hi); }
.theme-aurora .au-crumbs .chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); color: #fff; letter-spacing: .6px; }
/* buttons sitting on a banner: frosted glass, dark text on hover */
.theme-aurora .page-header .btn, .theme-aurora .page-hero .btn, .theme-aurora .prog-hero .btn, .theme-aurora .gened-hero .btn,
.theme-aurora .gkt-hero .btn, .theme-aurora .roster-hero .btn, .theme-aurora .curriculog-hero .btn {
    background: rgba(255,255,255,.12) !important; background-image: none !important; color: #fff !important;
    border: 1px solid rgba(255,255,255,.24) !important; border-radius: 10px !important; backdrop-filter: blur(8px); transition: all .25s var(--ease);
}
.theme-aurora .page-header .btn:hover, .theme-aurora .page-hero .btn:hover, .theme-aurora .prog-hero .btn:hover, .theme-aurora .gened-hero .btn:hover,
.theme-aurora .gkt-hero .btn:hover, .theme-aurora .roster-hero .btn:hover, .theme-aurora .curriculog-hero .btn:hover { background: #fff !important; color: var(--ink-900) !important; transform: translateY(-2px); box-shadow: 0 12px 24px -10px rgba(0,0,0,.5); }
.theme-aurora .btn-edit-toggle { border-radius: 10px !important; transition: all .25s var(--ease); }
.theme-aurora .btn-edit-toggle.is-editing, body.theme-aurora.edit-mode .btn-edit-toggle { background: linear-gradient(135deg, var(--gold-hi), #CFC493) !important; color: var(--g-900) !important; border-color: transparent !important; }
body.theme-aurora.edit-mode .main-content::before { content: "EDIT MODE"; position: fixed; right: 78px; bottom: 24px; z-index: 1040; font-size: 11px; font-weight: 800; letter-spacing: 1.5px; padding: 7px 14px; border-radius: 999px; color: var(--g-900); background: linear-gradient(135deg, var(--gold-hi), #CFC493); box-shadow: 0 10px 30px -6px rgba(179,155,77,.8); }

/* ---------- cards ---------- */
.theme-aurora .card { border: 1px solid var(--ink-200); border-radius: var(--r); box-shadow: var(--sh-2); --bs-card-inner-border-radius: calc(var(--r) - 1px); }
.theme-aurora .card-header { font-family: var(--font-display); font-weight: 700; }
.theme-aurora .card-header.bg-primary, .theme-aurora .card-header.bg-success { background: linear-gradient(120deg, var(--g-900), var(--g-700)) !important; color: #fff !important; border-bottom: 0; position: relative; }
.theme-aurora .card-header.bg-primary::after, .theme-aurora .card-header.bg-success::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--gold-400), transparent 70%); }
.theme-aurora .card-footer { background: var(--ink-50); border-top-color: var(--ink-150); }

/* ---------- buttons ---------- */
.theme-aurora .btn { border-radius: 10px; font-weight: 600; position: relative; overflow: hidden; transition: all .2s var(--ease); }
.theme-aurora .btn-sm { border-radius: 8px; }
.theme-aurora .btn-primary, .theme-aurora .btn-success {
    --bs-btn-bg: var(--g-600); --bs-btn-border-color: var(--g-700); --bs-btn-hover-bg: var(--g-700); --bs-btn-hover-border-color: var(--g-800); --bs-btn-active-bg: var(--g-800);
    background-image: linear-gradient(180deg, var(--g-500), var(--g-700)); color: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.1), inset 0 1px 0 rgba(255,255,255,.15);
}
.theme-aurora .btn-primary:hover, .theme-aurora .btn-success:hover { background-image: linear-gradient(180deg, var(--g-600), var(--g-800)); color: #fff; transform: translateY(-1px); box-shadow: 0 6px 16px -6px rgba(0,103,71,.6); }
.theme-aurora .btn-outline-primary, .theme-aurora .btn-outline-success { --bs-btn-color: var(--g-600); --bs-btn-border-color: #9FD8C1; --bs-btn-hover-bg: var(--g-100); --bs-btn-hover-color: var(--g-800); --bs-btn-hover-border-color: var(--g-500); background-color: #fff; }
.theme-aurora .btn-outline-secondary { --bs-btn-color: var(--ink-600); --bs-btn-border-color: var(--ink-300); --bs-btn-hover-bg: var(--ink-50); --bs-btn-hover-color: var(--ink-900); --bs-btn-hover-border-color: var(--ink-400); background-color: #fff; }
.theme-aurora .au-ripple { position: absolute; border-radius: 50%; transform: scale(0); background: rgba(255,255,255,.5); animation: au-ripple .6s linear; pointer-events: none; }
.theme-aurora .btn-outline-secondary .au-ripple, .theme-aurora .btn-light .au-ripple, .theme-aurora .btn-link .au-ripple, .theme-aurora .btn-outline-primary .au-ripple { background: rgba(1,105,72,.2); }
@keyframes au-ripple { to { transform: scale(4); opacity: 0; } }

/* ---------- forms ---------- */
.theme-aurora .form-label { font-weight: 600; color: var(--ink-600); }
.theme-aurora .form-control, .theme-aurora .form-select { border-color: var(--ink-300); border-radius: 9px; transition: border-color .15s, box-shadow .15s; }
.theme-aurora .form-control:focus, .theme-aurora .form-select:focus { border-color: var(--g-500); box-shadow: 0 0 0 4px rgba(19,134,95,.14); }
.theme-aurora .form-check-input:checked { background-color: var(--g-600); border-color: var(--g-600); }
.theme-aurora .form-check-input:focus { box-shadow: 0 0 0 4px rgba(19,134,95,.14); border-color: var(--g-500); }

/* ---------- tables + DataTables ---------- */
.theme-aurora .table { --bs-table-striped-bg: rgba(11,23,18,.018); --bs-table-hover-bg: var(--g-50); --bs-table-border-color: var(--ink-150); }
.theme-aurora .table > thead > tr > th { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-500); background: var(--ink-50); border-bottom: 1px solid var(--ink-200); }
.theme-aurora .table-hover > tbody > tr:hover > * { box-shadow: inset 0 0 0 9999px var(--g-50); }
.theme-aurora div.dataTables_wrapper div.dataTables_filter input { border-radius: 10px; padding-left: 32px; height: 36px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='%23687771'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398l3.85 3.85a1 1 0 0 0 1.415-1.414zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'/%3E%3C/svg%3E") no-repeat 11px center; }
.theme-aurora .dt-buttons .btn, .theme-aurora .dt-buttons .dt-button { background: #fff !important; color: var(--ink-700) !important; border: 1px solid var(--ink-300) !important; box-shadow: var(--sh-1); }
.theme-aurora .dt-buttons .btn:hover, .theme-aurora .dt-buttons .dt-button:hover { background: var(--g-600) !important; border-color: var(--g-700) !important; color: #fff !important; }
.theme-aurora .page-item.active .page-link { background: var(--g-600); border-color: var(--g-600); }
.theme-aurora .page-link { color: var(--g-700); }

/* ---------- alerts, badges, tabs, accordion, dropdowns, modals ---------- */
.theme-aurora .alert { border-radius: 12px; border-left-width: 4px; }
.theme-aurora .alert-success { background: var(--g-50); border-color: var(--g-200); border-left-color: var(--g-500); color: #0c5a40; }
.theme-aurora .alert-info { background: var(--blue-50); border-color: #CFE0F6; border-left-color: var(--blue-600); color: #1E4E79; }
.theme-aurora .alert-warning { background: var(--gold-50); border-color: var(--gold-200); border-left-color: var(--gold-500); color: #6F5A20; }
.theme-aurora .alert-danger { background: var(--red-50); border-color: #F3C9C2; border-left-color: var(--red-600); color: var(--red-700); }
.theme-aurora .badge { border-radius: 999px; font-weight: 700; }
.theme-aurora .nav-tabs { border-bottom-color: var(--ink-200); gap: 4px; }
.theme-aurora .nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; color: var(--ink-500); font-weight: 600; border-radius: 8px 8px 0 0; }
.theme-aurora .nav-tabs .nav-link:hover { color: var(--ink-900); background: var(--ink-50); }
.theme-aurora .nav-tabs .nav-link.active { color: var(--g-700); background: transparent; border-bottom-color: var(--g-600); }
.theme-aurora .nav-pills .nav-link.active { background: var(--g-600); }
.theme-aurora .accordion-button:not(.collapsed) { background: var(--g-50); color: var(--g-800); box-shadow: inset 0 -1px 0 var(--ink-150); }
.theme-aurora .accordion-button:focus { box-shadow: 0 0 0 4px rgba(19,134,95,.14); }
.theme-aurora .accordion-item { border-color: var(--ink-200); }
.theme-aurora .accordion-item:first-of-type { border-top-left-radius: var(--r); border-top-right-radius: var(--r); }
.theme-aurora .accordion-item:last-of-type { border-bottom-left-radius: var(--r); border-bottom-right-radius: var(--r); }
.theme-aurora .dropdown-menu { border: 1px solid var(--ink-200); border-radius: 12px; box-shadow: var(--sh-3); padding: 6px; animation: au-pop .16s var(--ease); }
@keyframes au-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
.theme-aurora .dropdown-item { border-radius: 8px; padding: 8px 12px; }
.theme-aurora .dropdown-item:hover, .theme-aurora .dropdown-item:focus { background: var(--g-50); color: var(--g-800); }
.theme-aurora .modal-content { border: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 40px 90px -20px rgba(0,26,17,.55); }
.theme-aurora .modal.fade .modal-dialog { transform: translateY(18px) scale(.96); transition: transform .45s var(--ease), opacity .3s; }
.theme-aurora .modal.show .modal-dialog { transform: none; }
.theme-aurora .modal-backdrop.show { opacity: 1; background: rgba(0,26,17,.45); backdrop-filter: blur(6px); }
.theme-aurora .modal-footer { background: #f8fbf9; border-top-color: var(--ink-150); }
.theme-aurora .progress-bar { background-color: var(--g-600); }

/* ---------- splash, toasts, palette, progress, scroll bar ---------- */
#auSplash { position: fixed; inset: 0; z-index: 4000; display: grid; place-items: center; transition: opacity .6s ease, visibility .6s;
    background: radial-gradient(800px 500px at 70% 20%, rgba(31,176,124,.35), transparent 60%), radial-gradient(600px 400px at 20% 90%, rgba(207,196,147,.3), transparent 60%), #001a11; }
#auSplash.done { opacity: 0; visibility: hidden; }
.au-splash-in { text-align: center; color: #fff; font-family: "Plus Jakarta Sans", "Inter", sans-serif; }
.au-splash-logo { width: 92px; height: 92px; margin: 0 auto 18px; }
.au-splash-logo svg { width: 100%; height: 100%; }
.au-splash-logo .ring { fill: none; stroke: url(#auGrad); stroke-width: 3; stroke-dasharray: 260; stroke-dashoffset: 260; animation: au-draw 1.1s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes au-draw { to { stroke-dashoffset: 0; } }
.au-splash-title { font-weight: 800; font-size: 26px; letter-spacing: -.02em; opacity: 0; animation: au-up .7s .35s cubic-bezier(.2,.7,.2,1) forwards; }
.au-splash-title span { background: linear-gradient(90deg, #f0dd95, #5be3b0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.au-splash-sub { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: rgba(255,255,255,.55); margin-top: 6px; opacity: 0; animation: au-up .7s .5s cubic-bezier(.2,.7,.2,1) forwards; }
#auToasts { position: fixed; top: 78px; right: 18px; z-index: 3100; display: flex; flex-direction: column; gap: 10px; pointer-events: none; }
.au-toast { pointer-events: auto; width: min(380px, calc(100vw - 36px)); display: flex; gap: 12px; align-items: flex-start; padding: 13px 15px; border-radius: 16px; background: rgba(255,255,255,.97); color: #15221D;
    box-shadow: 0 24px 50px -16px rgba(0,26,17,.45), 0 0 0 1px rgba(1,105,72,.1); position: relative; overflow: hidden; animation: au-toastin .5s cubic-bezier(.2,.7,.2,1) both; font-family: "Inter", sans-serif; }
.au-toast.out { animation: au-toastout .35s ease both; }
@keyframes au-toastin { from { transform: translateX(110%); opacity: 0; } }
@keyframes au-toastout { to { transform: translateX(110%); opacity: 0; } }
.au-toast .ic { width: 34px; height: 34px; border-radius: 11px; flex-shrink: 0; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #006747, #3BB585); }
.au-toast.err .ic { background: linear-gradient(135deg, #c62a3a, #f07b86); }
.au-toast .msg { font-size: 13px; line-height: 1.45; padding-top: 5px; white-space: pre-line; word-break: break-word; }
.au-toast .x { margin-left: auto; border: none; background: none; color: #98A6A0; }
.au-toast .bar { position: absolute; left: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, #13865F, #5be3b0); animation: au-bar linear both; }
.au-toast.err .bar { background: linear-gradient(90deg, #c62a3a, #f07b86); }
@keyframes au-bar { from { width: 100%; } to { width: 0; } }
.au-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 2000; background: linear-gradient(90deg, #E4B84A, #fff3c4, #3BB585); box-shadow: 0 0 12px rgba(228,184,74,.8); opacity: 0; transition: width .2s, opacity .3s; }
#auScroll { position: fixed; top: 0; left: 0; height: 2px; z-index: 2001; width: 0; background: linear-gradient(90deg, #5be3b0, #f0dd95); pointer-events: none; }
.au-cmd { position: fixed; inset: 0; z-index: 2050; display: none; align-items: flex-start; justify-content: center; padding-top: 12vh; background: rgba(4,32,24,.45); backdrop-filter: blur(4px); font-family: "Inter", sans-serif; }
.au-cmd.open { display: flex; }
.au-cmd-box { width: min(620px, calc(100vw - 32px)); background: #fff; border-radius: 16px; box-shadow: 0 2px 4px rgba(11,23,18,.05), 0 12px 28px rgba(11,23,18,.10), 0 30px 60px -20px rgba(11,23,18,.18); overflow: hidden; animation: au-pop .2s cubic-bezier(.2,.7,.2,1); }
.au-cmd-input { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid #EAEFEC; }
.au-cmd-input .bi { font-size: 18px; color: #0B7A55; }
.au-cmd-input input { flex: 1; border: 0; outline: 0; font-size: 15px; background: transparent; }
.au-cmd-input kbd { font-size: 10.5px; background: #eef3f0; color: #687771; border-radius: 6px; padding: 2px 7px; box-shadow: none; }
.au-cmd-list { max-height: 50vh; overflow-y: auto; padding: 6px; }
.au-cmd-group { font-size: 10px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; color: #b39b4d; padding: 10px 12px 4px; }
.au-cmd-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: #34423C; font-weight: 500; cursor: pointer; }
.au-cmd-item .bi { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: #F7F9F8; color: #0B7A55; }
.au-cmd-item small { margin-left: auto; color: #98A6A0; font-size: 11px; }
.au-cmd-item.sel { background: #F2FAF6; color: #064E3B; }
.au-cmd-item.sel .bi { background: #0B7A55; color: #fff; }
.au-cmd-item mark { background: rgba(240,221,149,.55); color: inherit; padding: 0 1px; border-radius: 3px; }
.au-cmd-empty { padding: 26px; text-align: center; color: #98A6A0; }
.au-cmd-foot { display: flex; gap: 14px; padding: 9px 16px; border-top: 1px solid #EAEFEC; font-size: 11px; color: #98A6A0; background: #F7F9F8; }
.au-cmd-foot kbd { background: #fff; color: #4B5A54; border: 1px solid #E2E8E5; box-shadow: none; font-size: 10px; }
/* design switch shown to site admins */

/* ---------- motion ---------- */
.theme-aurora .au-reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.theme-aurora .au-reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .theme-aurora *, .theme-aurora *::before, .theme-aurora *::after { animation: none !important; transition: none !important; }
    .theme-aurora .au-reveal { opacity: 1; transform: none; }
}

/* ---------- responsive + print ---------- */
@media (max-width: 991px) {
    .theme-aurora .main-content { padding: 18px 14px 32px; }
    .theme-aurora .au-cmdk span, .theme-aurora .au-user-text { display: none !important; }
    .theme-aurora .page-header, .theme-aurora .page-hero, .theme-aurora .prog-hero, .theme-aurora .gened-hero,
    .theme-aurora .gkt-hero, .theme-aurora .roster-hero, .theme-aurora .curriculog-hero { padding: 20px 18px; border-radius: 18px; }
    .theme-aurora .page-header h1, .theme-aurora .page-hero h1, .theme-aurora .page-hero h2, .theme-aurora .prog-hero h1, .theme-aurora .prog-hero h2 { font-size: 22px !important; }
}
@media (max-width: 575px) { .theme-aurora .au-brand-sub, .theme-aurora .au-cmdk { display: none !important; } }
@media print {
    .theme-aurora .topbar, .theme-aurora .sidebar, .theme-aurora .page-footer,     body.theme-aurora::before, body.theme-aurora::after { display: none; }
    .theme-aurora .main-content { margin: 0 !important; animation: none; }
    .theme-aurora .au-reveal { opacity: 1 !important; transform: none !important; }
}
