html { font-size:var(--reading-size,12pt); }
body { font-size:1rem; }
.appearance-control { position:relative; color:var(--ink); font-size:1rem; }
.appearance-control summary { cursor:pointer; padding:8px 12px; border:1px solid var(--line); border-radius:8px; background:var(--surface); white-space:nowrap; }
.appearance-panel { position:absolute; right:0; top:calc(100% + 8px); z-index:1050; width:min(320px,calc(100vw - 32px)); padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 40px #0003; display:grid; gap:12px; color:var(--ink); }
.appearance-panel label { color:var(--ink); font-size:1rem; }
.appearance-panel input { width:100%; accent-color:var(--purple); }
.appearance-range { display:flex; justify-content:space-between; }
.login-appearance { position:relative; display:flex; justify-content:flex-end; padding:16px; z-index:10; }
.topbar { height:auto; min-height:78px; padding-top:12px; padding-bottom:12px; flex-wrap:wrap; }
.topbar-meta { flex-wrap:wrap; }
.sidebar-brand { padding:22px 14px; }
.brand-link strong { font-size:1.05rem; letter-spacing:.05em; }
.brand-link small { font-size:.75rem; letter-spacing:0; }
.sidebar { width:290px; --bs-offcanvas-width:290px; }
.side-link { flex-wrap:wrap; }
.sidebar-note { margin-top:30px; }
.stat-top,.panel-heading,.page-heading { flex-wrap:wrap; }
.profile-summary { flex-wrap:wrap; }
.profile-fields,.stats-grid,.dashboard-grid { min-width:0; }
.metric-label strong { white-space:nowrap; }
.growth-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-control,.form-select,.btn { font-size:1rem; }
@media(min-width:992px) { .app-shell { margin-left:290px; } }
@media(max-width:767px) {
    .topbar-location>span { display:none; }
    .topbar { gap:8px; }
    .topbar-meta { gap:8px; }
    .profile-fields { grid-template-columns:1fr; }
    .stat-top { align-items:start; }
    .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .heading-actions { flex-wrap:wrap; }
    .attention-card { flex-wrap:wrap; }
}
@media screen {
    html[data-theme=dark] { color-scheme:dark; --canvas:#151321; --surface:#211e30; --ink:#f0ecfa; --muted:#c1b8d1; --line:#494059; --sapphire:#b6a3f5; --purple:#b48be8; --bs-body-color:#f0ecfa; --bs-body-bg:#211e30; --bs-border-color:#494059; --bs-link-color:#c7b1ff; }
    [data-theme=dark] body { background:var(--canvas); color:var(--ink); }
    [data-theme=dark] .panel,[data-theme=dark] .stat-card,[data-theme=dark] .card,[data-theme=dark] .tab-content,[data-theme=dark] .detail-summaries details,[data-theme=dark] .topbar,[data-theme=dark] .login-page .bg-light { background:var(--surface)!important; color:var(--ink); border-color:var(--line)!important; }
    [data-theme=dark] .app-content :is(h1,h2,h3,h4,h5,p,label,dt,dd),[data-theme=dark] .login-page h2 { color:var(--ink); }
    [data-theme=dark] :is(.panel-heading p,.panel-note,.stat-caption,.stat-top,.metric-label,.chart-axis,.chart-summary,.profile-fields dt,.topbar-location,.topbar-location strong,.topbar-meta,.app-footer,.eyebrow,.text-muted,small) { color:var(--muted)!important; }
    [data-theme=dark] a { color:#c7b1ff; }
    [data-theme=dark] .btn-primary { color:white; }
    [data-theme=dark] .btn-light,[data-theme=dark] .student-actions a,[data-theme=dark] .nav-tabs .nav-link,[data-theme=dark] .attention-card,[data-theme=dark] .card-header { background:#302840!important; color:#eee5ff; border-color:var(--line); }
    [data-theme=dark] .nav-tabs .nav-link.active,[data-theme=dark] .attention-card:hover { background:#483761!important; color:white; }
    [data-theme=dark] .form-control,[data-theme=dark] .form-select { background:#191622; color:var(--ink); border-color:#655475; }
    [data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder { color:#b8acc7; }
    [data-theme=dark] .table { --bs-table-bg:#211e30; --bs-table-color:#f0ecfa; --bs-table-striped-bg:#2a2439; --bs-table-striped-color:#f0ecfa; --bs-table-hover-bg:#352a48; --bs-table-hover-color:white; background:#211e30; }
    [data-theme=dark] .table td,[data-theme=dark] .table th { color:var(--ink); border-color:var(--line); }
    [data-theme=dark] .table th,[data-theme=dark] .directory-table th:last-child { background:#302840; }
    [data-theme=dark] .directory-table td.student-actions { background:var(--surface); }
    [data-theme=dark] .metric-track { background:#3a304d; }
    [data-theme=dark] .metric-label strong,[data-theme=dark] .detail-summaries summary { color:var(--ink); }
    [data-theme=dark] .soft-badge,[data-theme=dark] .stat-icon,[data-theme=dark] .student-status { background:#423256; color:#eadbff; }
    [data-theme=dark] .status-success { background:#204936; color:#b5efd1; }
    [data-theme=dark] .status-warning { background:#4c3a20; color:#ffe2a6; }
    [data-theme=dark] .status-muted { background:#502c3b; color:#ffc7dd; }
    [data-theme=dark] .required-marker { color:#d4b2fb; }
    [data-theme=dark] .trend-chart g { stroke:#494059; }
    [data-theme=dark] .summary-row { border-color:var(--line); }
}
@media print { html { font-size:12pt!important; } .appearance-control,.login-appearance { display:none!important; } }
.side-link { display:grid; grid-template-columns:1.2em minmax(0,1fr) auto; gap:10px; }
.sidebar-user { padding:16px; }
@media screen {
    [data-theme=dark] .page-link { background:var(--surface); color:#d2beff; border-color:var(--line); }
    [data-theme=dark] .page-item.active .page-link { background:#7251c4; color:white; }
    [data-theme=dark] .empty-state { color:var(--muted); }
    [data-theme=dark] .form-text { color:var(--muted); }
    [data-theme=dark] .invalid-feedback { color:#ffafbe; }
}
