/* Shared semantic surfaces for all platform modules. */
:root{--surface:var(--card);--panel:var(--card);--text:var(--ink);--border:var(--line);color-scheme:light}
:root[data-theme=dark]{color-scheme:dark;--bg:#121a2b;--card:#1b263d;--ink:#e9eef9;--muted:#abb8ce;--line:#394963;--soft:#26375b;--blue:#a4bbff;--green:#8cdbc1;--orange:#f0c887}
body{color:var(--ink);background:var(--bg)}
.auth-theme{align-self:flex-end;margin-bottom:16px}
.topright{flex-wrap:wrap}
[data-theme=dark] :is(input,textarea,select){color:var(--ink);background-color:var(--card);border-color:var(--line)}
[data-theme=dark] :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
[data-theme=dark] :is(.login-page,.account-page){background:var(--bg);color:var(--ink)}
[data-theme=dark] .login-card{background:var(--card);border-color:var(--line);box-shadow:0 12px 42px #0002}
[data-theme=dark] .login-brand{filter:brightness(0) invert(1);opacity:.94}
[data-theme=dark] :is(.login-subtitle,.login-note,.login-footer,.onboarding-note,.account-contact p,.account-avatar-drop small,.account-progress,.account-divider,.ks-item small,.ks-job span,.ks-job small,.ks-library .field small,.ks-period>small,.section-import-row small,.section-import-row details,.assignment-context small,.demo-note,.nav-label,.bottom-nav button){color:var(--muted)}
[data-theme=dark] :is(.account-link,.account-avatar-placeholder){color:var(--blue)}
[data-theme=dark] :is(.account-contact,.account-avatar-drop,.ks-items,.ks-item,.ks-settings,.ks-job,.ks-search input){border-color:var(--line)}
[data-theme=dark] .account-divider:before,[data-theme=dark] .account-divider:after{background:var(--line)}
[data-theme=dark] :is(.account-telegram,.hw-drop-hint,.section-import-drop){background:var(--soft);color:var(--ink);border-color:var(--line)}
[data-theme=dark] :is(.section-import-drop.dragging,.account-avatar-drop.dragover,.hw-dragging .hw-drop-hint){background:#30446c;color:var(--ink);border-color:var(--blue)}
[data-theme=dark] :is(.account-ok,.account-progress .done,.gm-ledger-row>b,.gm-review-mark>span){color:var(--green)}
[data-theme=dark] :is(.login-error,#um-account-error,#section-import-root [data-import-error]){color:#ffb2bd}
[data-theme=dark] :is(.ks-error,.account-card .login-status){color:#ffb2bd;background:#442632}
[data-theme=dark] :is(.um-danger,.um-red){color:#ffb2bd!important;background:#442632!important;border-color:#814453!important}
[data-theme=dark] .account-delete-link{color:#ffb2bd!important}
[data-theme=dark] :is(.notice-test,.course-preview-banner,.gm-paused,.preview-label,.course-list-facts .course-list-access){background:#3b3023;color:#f0cc8c}
[data-theme=dark] :is(.section-import-warning,.section-import-row .section-import-warning,.login-preview-note){color:#f0cc8c}
[data-theme=dark] #section-import-root .modal-actions{background:var(--card)}
[data-theme=dark] :is(.avatar,.subject-icon,.course-list-image,.account-avatar-placeholder){background:var(--soft);color:#c0d0ff}
[data-theme=dark] :is(.avatar.orange,.subject-icon.history){background:#463629;color:#f0cc8c}
[data-theme=dark] .avatar.green{background:#203c36;color:#9dd8c0}
[data-theme=dark] .avatar.pink{background:#422d3c;color:#edb7d8}
[data-theme=dark] .avatar-fallback{background:linear-gradient(140deg,#303c64,#26375b);color:#c0d0ff}
[data-theme=dark] .programme-kinds button[aria-pressed=true]{background:var(--soft);border-color:#8aa7ff;color:#dbe5ff}
[data-theme=dark] .progress-ring{background:conic-gradient(#8aa7ff var(--progress),#394963 0)}
[data-theme=dark] :is(.programme-progress progress,.course-section progress){background:#324a45;accent-color:#76cbb0}
[data-theme=dark] .programme-progress progress::-webkit-progress-bar,[data-theme=dark] .course-section progress::-webkit-progress-bar{background:#324a45}
[data-theme=dark] .programme-progress progress::-webkit-progress-value,[data-theme=dark] .course-section progress::-webkit-progress-value{background:#76cbb0}
[data-theme=dark] :is(.lesson-row.is-complete .subject-icon,.cal-status.live){background:#245241;color:#c3f2df}
[data-theme=dark] .btn.primary{background:#365ccd;border-color:#587be0;color:#fff}
[data-theme=dark] .btn.primary:hover{background:#426bdf}
[data-theme=dark] .bottom-nav button.active{color:var(--blue);background:var(--soft)}
[data-theme=dark] .account-qr{background:white;padding:10px;border-radius:12px;color:#111}
@media(max-width:760px){
 .topright{gap:6px}
 .topbar{gap:10px}.topbar .header-logo{max-width:125px}
 .topright #refresh{font-size:0;gap:0;padding:10px;min-width:44px}.topright #refresh svg{width:20px;height:20px}
 .auth-theme{margin-bottom:18px}
 [data-theme=dark] .account-page .login-card,[data-theme=dark] .login-page .login-card{background:transparent;box-shadow:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.nav button{white-space:normal;overflow-wrap:normal;min-height:44px;font-size:13px;gap:10px;padding-left:10px;padding-right:8px}
[data-theme=dark] .cal-day.today>header strong{color:#121a2b}
/* A single accessible light/dark switch, without a native picker. */
.theme-toggle{position:relative;display:inline-flex;align-items:center;justify-content:space-around;flex:none;width:84px;height:44px;padding:4px;border:1px solid var(--line);border-radius:24px;background:var(--bg);color:var(--muted);isolation:isolate}
.theme-toggle svg{position:relative;z-index:1;width:20px;height:20px;pointer-events:none}
.theme-toggle-knob{position:absolute;left:4px;top:4px;width:34px;height:34px;border-radius:50%;background:var(--card);box-shadow:0 1px 5px #0002;transition:transform .18s ease;pointer-events:none}
.theme-toggle[aria-checked=true] .theme-toggle-knob{transform:translateX(40px);background:#365ccd}
.theme-toggle[aria-checked=false] .theme-sun{color:#8a570c}
.theme-toggle[aria-checked=true] .theme-moon{color:#fff}
.theme-toggle:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
[data-theme=dark] .app-loading img{filter:brightness(0) invert(1);opacity:.94}
.app-loading{padding:24px;text-align:center}
.app-loading img{max-width:min(240px,75vw);height:auto}
