/* SAT Forge glass theme. Loaded last, statically, on all site pages.
   Blur is limited to outer surfaces. Question images and answer states retain
   their original rendering; dense nested cards use a tint without extra blur. */
:root {
    --page-background:#eaf0fc;
    --card-background:#f7faff;
    --text-color:#16253f;
    --muted-text:#4a5d78;
    --border-color:rgba(92,117,159,.27);
    --glass-surface:rgba(255,255,255,.64);
    --glass-surface-strong:rgba(255,255,255,.86);
    --glass-tint:rgba(255,255,255,.36);
    --glass-border:rgba(255,255,255,.85);
    --glass-shadow:0 12px 34px rgba(43,69,116,.08);
    --glass-inner:inset 0 1px 0 rgba(255,255,255,.9);
    --glass-blur:blur(16px) saturate(135%);
    --glass-glow-a:rgba(82,158,255,.22);
    --glass-glow-b:rgba(162,139,250,.19);
    --glass-glow-c:rgba(74,214,211,.14);
    --app-sidebar-bg:rgba(247,250,255,.76);
    --app-sidebar-border:rgba(255,255,255,.8);
    --app-sidebar-hover:rgba(255,255,255,.48);
    --app-sidebar-active:rgba(37,99,235,.12);
    --app-sidebar-active-text:#1745aa;
}
html[data-theme="dark"] {
    --page-background:#0b1426;
    --card-background:#16233a;
    --text-color:#eff5ff;
    --muted-text:#b4c4da;
    --border-color:rgba(155,186,229,.25);
    --glass-surface:rgba(25,41,66,.64);
    --glass-surface-strong:rgba(20,34,56,.91);
    --glass-tint:rgba(127,162,211,.06);
    --glass-border:rgba(175,206,249,.22);
    --glass-shadow:0 14px 38px rgba(0,5,18,.2);
    --glass-inner:inset 0 1px 0 rgba(205,226,255,.1);
    --glass-glow-a:rgba(33,108,214,.24);
    --glass-glow-b:rgba(123,87,214,.19);
    --glass-glow-c:rgba(18,160,172,.12);
    --app-sidebar-bg:rgba(13,25,44,.78);
    --app-sidebar-border:rgba(170,203,247,.17);
    --app-sidebar-hover:rgba(148,182,236,.08);
    --app-sidebar-active:rgba(64,127,242,.23);
    --app-sidebar-active-text:#d1e3ff;
}
:root body:not(.landing-page) {
    color:var(--text-color);
    background-color:var(--page-background);
    background-image:
        radial-gradient(ellipse at 18% 0%,var(--glass-glow-b),transparent 48%),
        radial-gradient(ellipse at 92% 18%,var(--glass-glow-a),transparent 52%),
        radial-gradient(ellipse at 45% 95%,var(--glass-glow-c),transparent 55%);
    background-attachment:fixed;
}
:root body:not(.landing-page):not(.auth-page) { display:flow-root; }
/* Preserve shell positioning and first-paint placeholder; no extra page layer. */
:root body .app-sidebar {
    background:var(--app-sidebar-bg);
    border-color:var(--app-sidebar-border);
    -webkit-backdrop-filter:var(--glass-blur);
    backdrop-filter:var(--glass-blur);
    box-shadow:12px 0 36px rgba(12,31,66,.07),var(--glass-inner);
}
:root body .app-sidebar-brand {
    background:var(--glass-tint);
    border-color:var(--glass-border);
    box-shadow:var(--glass-inner);
}
:root body .app-sidebar-nav { background:var(--glass-tint); border-color:var(--glass-border); }
:root body .app-sidebar-link.is-active { background:var(--app-sidebar-active); color:var(--app-sidebar-active-text); border:1px solid var(--border-color); box-shadow:var(--glass-inner); }
:root body :is(.app-sidebar-toggle,.app-mobile-menu-button) { background:var(--glass-surface-strong); border-color:var(--glass-border); }
/* Primary surfaces across the student app, account flows, content and builders. */
:root body :is(
    .glass-panel,.dashboard-hero,.dashboard-access-shell,.dashboard-panel,.dashboard-metric,
    .premium-hero,.premium-feature-card,.premium-plan-comparison,.premium-roadmap,.account-hero,.account-card,.auth-card,.legal-card,
    .catalog-hero,.test-card,.qb-hero,.qb-panel,.vocabulary-hero,.vocabulary-card-shell,
    .vocabulary-side-card,.vocabulary-quiz-hero,.review-card,.review-navigator,
    .score-report,.performance-card,.analytics-header,.dashboard-section,.empty-dashboard,.mistake-card,
    .repair-panel,.article-card,.articles-hero,.article-hero,.donate-card,
    .admin-state-card,.admin-panel,.admin-dialog,.control-content-card,
    .builder-panel,.builder-hub-card,.paste-import-panel,.mentor-workspace,.mentor-chat
) {
    background:var(--glass-surface);
    border-color:var(--glass-border);
    box-shadow:var(--glass-shadow),var(--glass-inner);
    -webkit-backdrop-filter:var(--glass-blur);
    backdrop-filter:var(--glass-blur);
}
/* These catalog selectors had extra specificity in the previous theme. */
:root body .catalog-main .test-card,
:root body.app-page :is(.dashboard-hero,.dashboard-access-shell,.vocabulary-hero) {
    background:linear-gradient(125deg,var(--glass-glow-a),transparent 65%),var(--glass-surface);
    border-color:var(--glass-border);
    box-shadow:var(--glass-shadow),var(--glass-inner);
}
:root body :is(.header,.admin-header,.builder-header,.test-header,.test-footer,.donate-header,.app-mobile-header) {
    background:var(--glass-surface-strong);
    border-color:var(--glass-border);
    box-shadow:0 5px 22px rgba(18,39,79,.05),var(--glass-inner);
    -webkit-backdrop-filter:var(--glass-blur);
    backdrop-filter:var(--glass-blur);
}
:root body .daily-forge-task.is-complete { border-color:rgba(34,197,94,.45); background:rgba(34,197,94,.06); }
/* Reading panels are deliberately more opaque to keep long passages legible. */
:root body :is(.passage-panel,.question-panel,.navigator-panel,.instructions-card,.break-card,.calculator-modal,.reference-modal) {
    background:var(--glass-surface-strong);
    border-color:var(--glass-border);
    box-shadow:var(--glass-shadow),var(--glass-inner);
}
/* A fixed-position dialog must not acquire a transformed/blurred ancestor. */
:root body :is(.admin-dialog,.qb-panel) { -webkit-backdrop-filter:none; backdrop-filter:none; background:var(--glass-surface-strong); }
/* Inner surfaces keep the same material without stacking expensive filters. */
:root body :is(
    .dashboard-exam-card,.dashboard-lock-preview article,.vocabulary-hero-note,.vocabulary-stats article,
    .summary-grid article,.metric-strip article,.section-score-panel article,.report-meta > div,
    .daily-forge-hero,.daily-forge-overview article,.daily-forge-date-card,.daily-forge-progress-card,
    .daily-forge-plan-card,.daily-forge-why-card,.daily-forge-task,
    .roadmap-hero,.roadmap-route-card,.roadmap-callout,.mastery-hero,.mastery-priority-card,
    .mastery-overview article,.mastery-panel,.mastery-method-card,.mastery-skill-card,
    .admin-form-card,.admin-choice-card,.admin-module-card,.admin-question-preview,
    .premium-plan-grid article,.nested-card,.builder-workflow-grid article,.vocab-builder-card,.article-section-editor-item
) {
    background:var(--glass-tint);
    border-color:var(--border-color);
    box-shadow:var(--glass-inner);
}
:root body .mentor-workspace :is(.dashboard-panel,.dashboard-metric) {
    background:var(--glass-tint); box-shadow:var(--glass-inner);
    -webkit-backdrop-filter:none; backdrop-filter:none;
}
:root body .mentor-form textarea { background:var(--glass-tint); }
:root body .mentor-tabs { background:var(--glass-tint); }
:root body .mentor-tabs button[aria-selected="true"] { background:var(--app-sidebar-active); border-color:var(--border-color); }
/* Preserve white text on the admin's dark, colored hero surfaces. */
:root body :is(.admin-hero,.control-hero) {
    background:linear-gradient(115deg,rgba(22,49,98,.96),rgba(32,73,127,.89),rgba(43,44,93,.93));
    color:#f4f8ff; border:1px solid rgba(191,219,254,.3);
    box-shadow:var(--glass-shadow),inset 0 1px 0 rgba(255,255,255,.15);
}
/* Landing keeps its deliberate dark hero and light editorial sections. */
body.landing-page {
    --landing-paper:#eaf0fc;
    background:#eaf0fc;
    background-image:radial-gradient(ellipse at 15% 25%,rgba(148,163,255,.16),transparent 45%),radial-gradient(ellipse at 90% 70%,rgba(56,189,248,.16),transparent 45%);
}
body.landing-page .landing-header.is-scrolled {
    background:rgba(7,18,38,.83);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    border-bottom:1px solid rgba(180,210,250,.16);
}
body.landing-page .landing-hero {
    background:radial-gradient(ellipse at 85% 35%,rgba(47,113,209,.3),transparent 50%),radial-gradient(ellipse at 35% 8%,rgba(130,86,212,.23),transparent 55%),#091427;
}
body.landing-page :is(.landing-difference,.landing-format-section,.landing-faq-section,.landing-final-cta) { background:transparent; }
body.landing-page .landing-floating-note {
    background:rgba(20,36,60,.76);
    border:1px solid rgba(184,218,255,.27);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    box-shadow:0 22px 60px rgba(0,8,25,.28),inset 0 1px 0 rgba(255,255,255,.12);
}
body.landing-page .landing-product-card {
    background:rgba(244,249,255,.9); border-color:rgba(255,255,255,.8);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    box-shadow:0 22px 60px rgba(0,8,25,.28),inset 0 1px 0 #fff;
}
body.landing-page :is(.landing-process-grid article,.landing-format-visual,.landing-faq-list details) {
    background:rgba(255,255,255,.67);
    border:1px solid rgba(255,255,255,.95);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    box-shadow:0 12px 32px rgba(43,69,116,.07),inset 0 1px 0 #fff;
    border-radius:22px;
}
body.landing-page .landing-faq-list details { padding:0 20px; margin-bottom:10px; }
body.landing-page .landing-final-card { border:1px solid rgba(160,198,248,.28); box-shadow:0 18px 50px rgba(20,43,90,.18),inset 0 1px 0 rgba(255,255,255,.13); }
/* Keyboard focus remains visible against both materials. */
:root body :is(a,button,input,textarea,select,summary):focus-visible { outline:3px solid #3b82f6; outline-offset:3px; }
html[data-theme="dark"] body :is(a,button,input,textarea,select,summary):focus-visible { outline-color:#7dbaff; }
@media(max-width:820px) {
    :root { --glass-blur:blur(10px) saturate(120%); }
    :root body:not(.landing-page) { background-attachment:scroll; }
    body.landing-page :is(.landing-header,.landing-header.is-scrolled,.landing-navigation) {
        background:rgba(7,18,38,.94);
        -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    }
}
/* Graceful fallback: readable solid materials when blur is unavailable. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
    :root { --glass-surface:#f4f8ff; --glass-surface-strong:#f9fbff; --glass-tint:rgba(118,151,205,.06); --app-sidebar-bg:#f1f6ff; }
    html[data-theme="dark"] { --glass-surface:#18283f; --glass-surface-strong:#142238; --glass-tint:rgba(140,175,226,.08); --app-sidebar-bg:#101e33; }
    body.landing-page .landing-floating-note { background:#14243c; }
    body.landing-page .landing-product-card { background:#f4f9ff; }
    body.landing-page :is(.landing-process-grid article,.landing-format-visual,.landing-faq-list details) { background:#f7faff; }
}
@media(prefers-reduced-transparency:reduce) {
    :root { --glass-surface:#f4f8ff; --glass-surface-strong:#f9fbff; --glass-tint:#eaf1fc; --app-sidebar-bg:#f1f6ff; --glass-blur:none; }
    html[data-theme="dark"] { --glass-surface:#18283f; --glass-surface-strong:#142238; --glass-tint:#1b2b43; --app-sidebar-bg:#101e33; }
    body.landing-page .landing-floating-note { background:#14243c; }
    body.landing-page .landing-product-card { background:#f4f9ff; }
    body.landing-page :is(.landing-process-grid article,.landing-format-visual,.landing-faq-list details) { background:#f7faff; }
}
@media(forced-colors:active) {
    :root { --glass-surface:Canvas; --glass-surface-strong:Canvas; --glass-tint:Canvas; --app-sidebar-bg:Canvas; --glass-blur:none; --glass-border:ButtonText; --border-color:ButtonText; }
    :root body { background:Canvas; color:CanvasText; }
    .mentor-tabs button[aria-selected="true"] { outline:2px solid Highlight; outline-offset:-3px; }
}
@media print {
    :root body { background:#fff !important; color:#000; }
    :root { --glass-surface:#fff; --glass-surface-strong:#fff; --glass-tint:#fff; --glass-shadow:none; --glass-inner:none; --glass-blur:none; }
    .mentor-layout { height:auto; max-height:none; min-height:0; display:block; }
    .mentor-workspace-body { overflow:visible; }
}

body.landing-page :is(.landing-countdown-section,.landing-proof,.landing-system-section) {
    background:radial-gradient(ellipse at 90% 20%,rgba(58,119,212,.16),transparent 60%),#101e35;
}
body.landing-page :is(.landing-countdown-card,.landing-feature-stack article) {
    background:rgba(124,162,214,.1); border:1px solid rgba(191,217,255,.25);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
}
:root { --report-muted:var(--muted-text); }
html[data-theme="dark"] :is(.auth-eyebrow,.auth-link,.password-toggle,.report-eyebrow,.control-card-link) { color:#81b6ff; }
:root body #test-loader { color:var(--text-color); background:var(--page-background); }
/* Keep wide admin tables (including their offscreen accessible labels) inside
   the horizontal scroll container when a frosted ancestor establishes a block. */
:root body .admin-table-wrap { position:relative; min-width:0; max-width:100%; overflow-x:auto; }
@media(max-width:1100px) {
    :root body .mentor-tabs { background:var(--glass-surface-strong); -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur); }
}
@media print {
    html:root {
        --glass-surface:#fff; --glass-surface-strong:#fff; --glass-tint:#fff;
        --glass-shadow:none; --glass-inner:none; --glass-blur:none;
        --page-background:#fff; --card-background:#fff; --text-color:#000;
        --muted-text:#475569; --border-color:#d1d5db; --glass-border:#d1d5db;
    }
}

:root body .premium-plan-grid article.is-featured-tier { border-color:#60a5fa; background:linear-gradient(145deg,var(--glass-glow-a),transparent),var(--glass-tint); }
