/* Shared semantic palette. Dark overrides change colors, not the existing Light layout. */
:root{--surface:#fff;--surface-raised:#EDF0F8;--field:#fff;--control-border:#7E8BA3;--link-ink:#0B2C73;--focus-ink:#8A6210;--danger-fill:#A3263B;--danger-hover:#861b2c}
:root[data-theme="dark"]{
  --paper:#11151C;--white:#191F29;--panel:#222B37;--tint:#222B37;
  --ink:#ECEEF3;--muted:#ADB7C6;--line:#343E4D;
  --surface:#191F29;--surface-raised:#222B37;--field:#141A23;--control-border:#75849A;
  --link-ink:#AAC5EB;--focus-ink:#DCC08A;--gold-ink:#DCC08A;--gold-soft:#302B23;
  --ok:#9ADBB7;--ok-bg:#18352B;--warn:#DCC08A;--warn-bg:#302B23;--bad:#F1ADB8;--bad-bg:#39252D;
  --danger-fill:#A3263B;--danger-hover:#861b2c;
}
:root[data-theme="dark"] body{background:var(--paper);color:var(--ink)}
:root[data-theme="dark"] :is(h1,h2,h3){color:var(--ink)}
:root[data-theme="dark"] a{color:var(--link-ink)}
:root[data-theme="dark"] a:hover{color:var(--ink)}
:root[data-theme="dark"] :is(.hero,.hero-card,.home-portal,.profile-hero,.auth-story,.site-footer) :is(h1,h2,h3){color:#fff}
:root[data-theme="dark"] :is(.sidebar .brand,.site-footer a,.hero .link){color:#fff}
:root[data-theme="dark"] :is(.btn,.nav-login,.submit,.home-action,.button-dark,.button-purple){color:var(--navy);background:var(--gold-light);border-color:var(--gold-light)}
:root[data-theme="dark"] :is(.btn,.nav-login,.submit,.home-action,.button-dark,.button-purple):hover{color:var(--navy);background:var(--gold);border-color:var(--gold)}
:root[data-theme="dark"] :is(.btn.gold,.hero .btn,.button-light){color:var(--navy);background:var(--gold)}
:root[data-theme="dark"] :is(.btn.gold,.hero .btn,.button-light):hover{color:var(--navy);background:var(--gold-light)}
:root[data-theme="dark"] :is(.text-button,.undo-action,.round-arrow,.course-icon,.tag,.status-unpaid,.stat-symbol.purple,.stat-symbol.peach,.member-role,.member-action-icon){color:var(--link-ink)}
:root[data-theme="dark"] :is(.button-ghost,.round-arrow,.mobile-member-trigger,.portal-skip,.stat-card,.panel-card,.view-card,.member-menu,.student-status-filter,.student-book-options,.profile-unavailable,.catalog-types,.catalog-dialog,.delete-dialog,.profile-remove-dialog){background:var(--surface);color:var(--ink)}
:root[data-theme="dark"] :is(.stat-value,.catalog-details summary){color:var(--ink)}
:root[data-theme="dark"] .topbar{background:rgba(17,21,28,.96)}
/* Portal chrome follows the shared palette rather than fixed blue brand fills. */
:root[data-theme="dark"] .sidebar{background:var(--surface);border-color:var(--line);color:var(--muted)}
:root[data-theme="dark"] :is(.sidebar-head,.sidebar-bottom,.sidebar-note){border-color:var(--line)}
:root[data-theme="dark"] :is(.nav-item,.collapse-toggle,.sidebar-note){color:var(--muted)}
:root[data-theme="dark"] :is(.nav-item:hover,.collapse-toggle:hover){background:var(--surface-raised);color:var(--ink)}
:root[data-theme="dark"] .nav-item.active{background:var(--gold-soft);border-color:#79694B;color:var(--gold-ink)}
:root[data-theme="dark"] .side-user{background:var(--field);border-color:var(--line)}
:root[data-theme="dark"] :is(.hero-card,.profile-hero){background:var(--surface-raised);border-color:var(--line);color:var(--ink)}
:root[data-theme="dark"] .hero-card::before{background:radial-gradient(60% 90% at 85% 40%,#dcc08a0a,transparent 70%)}
:root[data-theme="dark"] :is(.hero-card p,.profile-identity p){color:var(--muted)}
:root[data-theme="dark"] :is(.icon-button:hover,.member-menu-close:hover){color:var(--ink)}
:root[data-theme="dark"] .member-menu-action:hover{background:var(--surface-raised)}
:root[data-theme="dark"] .member-sign-out,:root[data-theme="dark"] .member-sign-out .member-action-icon,:root[data-theme="dark"] .danger-action{color:var(--bad)}
:root[data-theme="dark"] :is(.button-danger,.profile-confirm-remove,.hold-ban-fill){background:var(--danger-fill);color:#fff}
:root[data-theme="dark"] :is(.button-danger,.profile-confirm-remove):hover:not(:disabled){background:var(--danger-hover);color:#fff}
:root[data-theme="dark"] :is(.input-label input,.input-label select,.input-label textarea){background:var(--field);color:var(--ink);border-color:var(--control-border)}
:root[data-theme="dark"] .profile-form input[readonly]{background:var(--paper);color:var(--muted)}
:root[data-theme="dark"] :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
:root[data-theme="dark"] :is(input,textarea,select){accent-color:var(--gold-light)}
:root[data-theme="dark"] :is(.input-label input,.input-label select,.input-label textarea):focus{border-color:var(--focus-ink);box-shadow:0 0 0 2px var(--focus-ink)}
:root[data-theme="dark"] .student-status-filter:hover{border-color:var(--control-border)}
:root[data-theme="dark"] .student-status-filter.active{background:var(--surface-raised);border-color:var(--link-ink)}
:root[data-theme="dark"] .student-status-filter b{color:var(--link-ink)}
:root[data-theme="dark"] .student-status-filter.active b{background:var(--navy);color:#fff}
:root[data-theme="dark"] .send-action{background:linear-gradient(135deg,var(--surface),var(--surface-raised));color:var(--ink);border-color:var(--control-border)}
:root[data-theme="dark"] .send-action::after{background:linear-gradient(90deg,transparent,#ffffff12,transparent)}
:root[data-theme="dark"] .send-action-ban.active{background:var(--bad-bg);border-color:var(--bad)}
:root[data-theme="dark"] .send-action-icon{background:var(--tint);color:var(--link-ink)}
:root[data-theme="dark"] .send-action-ban .send-action-icon{background:var(--bad-bg);color:var(--bad)}
:root[data-theme="dark"] .send-action-arrow{color:var(--link-ink)}
:root[data-theme="dark"] .send-action-ban .send-action-arrow{color:var(--bad)}
:root[data-theme="dark"] .hold-ban{background:var(--bad-bg);border-color:var(--bad)}
:root[data-theme="dark"] .book-catalog-card{background:var(--surface);border-color:var(--line)}
:root[data-theme="dark"] .book-catalog-list>span:not(.muted){background:var(--surface-raised);color:var(--link-ink)}
:root[data-theme="dark"] .profile-photo-choose{background:#fff;color:var(--navy)}
:root[data-theme="dark"] .profile-photo-cancel{color:#fff}
:root[data-theme="dark"] .catalog-add-form{background:var(--field)}
:root[data-theme="dark"] .catalog-filter button[aria-pressed=true]{background:var(--surface-raised);color:var(--ink)}
:root[data-theme="dark"] .catalog-book-glyph{background:var(--tint);border-color:var(--line);color:var(--link-ink)}
:root[data-theme="dark"] .catalog-conflict{border-color:#9B834E}
:root[data-theme="dark"] .catalog-compare :is(th,td){border-color:#9B834E}
:root[data-theme="dark"] .catalog-compare tr.is-different td{background:#514122;color:#FFF0CB}
/* Public navigation and static content. Navy brand regions retain their identity. */
:root[data-theme="dark"] .site-footer{background:radial-gradient(50% 160px at 50% 0,#dcc08a0a,transparent),var(--surface);border-color:var(--line);color:var(--muted)}
:root[data-theme="dark"] .site-header{background:rgba(17,21,28,.97);border-color:var(--line)}
:root[data-theme="dark"] :is(.site-header .brand b,.site-header .brand small,.auth-wordmark,.auth-wordmark b){color:var(--ink)}
:root[data-theme="dark"] :is(.site-header .nav-action,.site-menu-toggle){color:var(--ink)}
:root[data-theme="dark"] .bar nav a.nav-action:hover{background:var(--surface-raised);border-color:var(--line);color:var(--ink)}
:root[data-theme="dark"] .action-icon{color:currentColor}
:root[data-theme="dark"].site-ui-ready .menu-open .site-nav{background:var(--surface);border-color:var(--control-border)}
:root[data-theme="dark"].site-ui-ready .menu-open .site-nav .nav-action:hover{background:var(--surface-raised)}
:root[data-theme="dark"] :is(.steps b,.faq summary){color:var(--ink)}
:root[data-theme="dark"] .landing{--home-paper:var(--paper);--home-line:var(--line);--home-muted:var(--muted)}
:root[data-theme="dark"] :is(.home-programs,.home-faq){background:var(--surface)}
:root[data-theme="dark"] .program-card{background:var(--field);border-color:var(--line)}
:root[data-theme="dark"] :is(.home-text-link,.home-faq-list summary){color:var(--ink)}
:root[data-theme="dark"] :is(.hero-detail,.visual-coordinates){color:var(--muted)}
:root[data-theme="dark"] .home-faq-list details{border-color:var(--line)}
:root[data-theme="dark"] .home-action-secondary{color:var(--ink);background:transparent;border-color:var(--control-border)}
:root[data-theme="dark"] .home-action-secondary:hover{color:var(--ink);background:var(--surface-raised)}
:root[data-theme="dark"] .home-portal .home-action{color:var(--navy);background:#ecd6a6;border-color:#ecd6a6}
:root[data-theme="dark"] .visual-backplate{background:var(--surface-raised)}
:root[data-theme="dark"] .visual-backplate::before,:root[data-theme="dark"] .enrollment-step{border-color:var(--line)}
:root[data-theme="dark"] .enrollment-step-number{background:var(--gold-soft);color:var(--gold-ink)}
:root[data-theme="dark"] .language-note{background:var(--surface-raised);border-color:#79694B}
:root[data-theme="dark"] .language-note p{color:var(--ink)}
:root[data-theme="dark"] .language-note :is(small,span){color:#DCC79E}
/* Login/signup fields, browser autofill, file selection and help dialog. */
:root[data-theme="dark"] body.login{--auth-paper:var(--paper);--auth-muted:var(--muted);--auth-line:var(--line);color:var(--ink)}
:root[data-theme="dark"] :is(.auth-shell,.login-help){background:var(--surface);color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] :is(.auth-card h1,.field>label,.password-label>label,.consent a,.switch button,.back-link,.login-help>a){color:var(--ink)}
:root[data-theme="dark"] :is(.back,.auth-wordmark small,.auth-footer,.auth-footer a,.switch,.consent,.auth-assurance,.setup-note,.file,.login-help p){color:var(--muted)}
:root[data-theme="dark"] :is(.card-kicker,.forgot){color:var(--gold-ink)}
:root[data-theme="dark"] :is(.field input,.field select){background:var(--field);color:var(--ink);border-color:var(--control-border)}
:root[data-theme="dark"] :is(.field input,.field select):focus{background:var(--field);border-color:var(--focus-ink);box-shadow:0 0 0 2px var(--focus-ink)}
:root[data-theme="dark"] .field input[aria-invalid=true]{border-color:var(--bad)}
:root[data-theme="dark"] .field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);box-shadow:0 0 0 1000px var(--field) inset}
:root[data-theme="dark"] .field input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--field) inset,0 0 0 2px var(--focus-ink)}
:root[data-theme="dark"] .pw-toggle{color:var(--muted)}
:root[data-theme="dark"] .pw-toggle:hover{background:var(--surface-raised);color:var(--ink)}
:root[data-theme="dark"] .err{color:var(--bad);background:var(--bad-bg);border-color:#9B5D6B}
:root[data-theme="dark"] .auth-assurance{border-color:var(--line)}
:root[data-theme="dark"] .file{border-color:var(--control-border)}
:root[data-theme="dark"] :is(.file,.catalog-file-label):focus-within{outline-color:var(--focus-ink)}
:root[data-theme="dark"] :is(.file-btn,.login-help>button){background:var(--surface-raised);color:var(--ink)}
/* Cookie notice has its own scope; preserve a distinct navy primary fill. */
:root[data-theme="dark"] #melalCookieUI{--mc-muted:var(--muted);color:var(--ink)}
:root[data-theme="dark"] #melalCookieUI :is(.mc-banner,.mc-dialog,.mc-secondary,.mc-reopen){background:var(--surface);color:var(--ink);border-color:var(--control-border)}
:root[data-theme="dark"] #melalCookieUI :is(h2,h3,.mc-dialog-actions a){color:var(--ink)}
:root[data-theme="dark"] #melalCookieUI :is(.mc-eyebrow,.mc-label){color:var(--muted)}
:root[data-theme="dark"] #melalCookieUI :is(.mc-icon,.mc-badge){background:var(--gold-soft);color:var(--gold-ink);border-color:#9B834E}
:root[data-theme="dark"] #melalCookieUI :is(.mc-close,.mc-secondary:hover,.mc-reopen:hover){background:var(--surface-raised);color:var(--ink)}
:root[data-theme="dark"] #melalCookieUI .mc-category{border-color:var(--line)}
/* Preference controls and focus indicators are shared across every route. */
:root[data-theme="dark"] .mp-trigger{border-color:var(--control-border)}
:root[data-theme="dark"] :focus-visible{outline-color:var(--focus-ink)}
:root :is(.mp-trigger):focus-visible{outline-color:var(--focus-ink)}
:root[data-theme="dark"] #melalCookieUI :focus-visible{outline-color:var(--focus-ink)}
:root[data-theme="dark"] :is(.send-action,.catalog-file-label):focus-visible{outline-color:var(--focus-ink)}
:root[data-theme="dark"] :is(dialog)::backdrop{background:#020916bd}
@media(forced-colors:active){:root[data-theme="dark"] :focus-visible,:root :is(.mp-trigger):focus-visible{outline-color:Highlight}}
