/* Edu RVA — a focused, accessible learning workspace. */
.reading-section+.reading-section { margin-top:28px; }
.site-nav a.mobile-account-link { display:none; }
@media(max-width:760px) { .site-nav a.mobile-account-link { display:inline-flex; } }
.reading-section h3 { margin-bottom:10px; }
.topic-card-top,.topic-card-meta { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.topic-card-meta { margin:14px 0 20px; color:var(--muted); font-size:13px; }
.topic-card-meta svg { width:15px; height:15px; margin-right:4px; }
.catalog-toolbar form { display:flex; gap:9px; flex:1; min-width:0; }
.catalog-toolbar form input { flex:1; min-width:0; padding:11px 14px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:var(--paper); }
.academy-video-link { min-height:280px; margin:24px 0; background:var(--navy); color:#fff; border-radius:10px; }
.academy-video-link h3 { color:#fff; }
.academy-video-link>svg { width:38px; height:38px; }
.home-view .academy-author.paper { display:flex; align-items:center; gap:26px; padding:28px; margin:64px auto 44px; max-width:1180px; }
.academy-author.paper .button { margin-left:0; }
.hero-links { display:flex; gap:24px; flex-wrap:wrap; margin-top:24px; font-size:14px; font-weight:650; }
.hero-links a { color:var(--ink); }
.hero-links svg { width:16px; height:16px; }
.hero-fact { display:flex; align-items:center; gap:14px; }
.hero-fact .stat-icon { margin:0; }
.hero-fact .stat-icon svg { width:24px; height:24px; }
@media(max-width:560px) { .home-view .academy-author.paper { margin:40px 20px; align-items:flex-start; padding:22px; gap:17px; } .academy-author.paper .button { margin-left:0; } .catalog-toolbar form { flex:1 1 100%; } }
:root {
  color-scheme:light;
  --font-sans:"Segoe UI",Arial,sans-serif;
  --bg:#f8f9fc;
  --paper:#fff;
  --ink:#20212c;
  --muted:#626775;
  --line:#e5e7ef;
  --green:#7144e8;
  --primary:#7144e8;
  --primary-hover:#5f31ce;
  --blue:#355fd3;
  --pale:#f1edff;
  --navy:#25223b;
  --lime:#7144e8;
  --orange:#975a17;
  --surface-soft:#f5f5fb;
  --surface-blue:#edf3ff;
  --surface-cyan:#edf7fa;
  --success:#276548;
  --success-bg:#eef8f2;
  --error:#a13d37;
  --error-bg:#fff1ef;
  --shadow:0 6px 24px #22284406;
  --sidebar:248px;
}
.dark {
  color-scheme:dark;
  --bg:#15141c;
  --paper:#20202c;
  --ink:#f1f1f7;
  --muted:#c0bfd0;
  --line:#363542;
  --green:#b8a3ff;
  --primary:#b8a3ff;
  --primary-hover:#c9b9ff;
  --blue:#a7bdff;
  --pale:#302845;
  --navy:#1c1b2b;
  --lime:#b8a3ff;
  --orange:#edc28b;
  --surface-soft:#262532;
  --surface-blue:#242e46;
  --surface-cyan:#23353c;
  --success:#a3dfb9;
  --success-bg:#20392d;
  --error:#ffb8af;
  --error-bg:#402925;
  --shadow:0 8px 28px #00000015;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--bg); color:var(--ink); font:400 15px/1.65 var(--font-sans); -webkit-font-smoothing:antialiased; overflow-wrap:break-word; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.55; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--primary); }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 22%,transparent); outline-offset:1px; border-color:var(--primary); }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3,h4 { font-family:var(--font-sans); line-height:1.3; font-weight:650; letter-spacing:-.025em; }
h1 { font-size:32px; font-weight:700; }
h2 { font-size:25px; }
h3 { font-size:20px; }
h4 { font-size:17px; }
p { line-height:1.75; }
small { font-size:12px; }
b,strong { font-weight:650; }
svg { width:20px; height:20px; display:inline-block; vertical-align:middle; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
img { display:block; max-width:100%; }
[hidden] { display:none!important; }
.muted { color:var(--muted); }
.screen-reader,.theme-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip { position:fixed; left:16px; top:12px; padding:10px 16px; border-radius:8px; background:var(--primary); color:#fff; transform:translateY(-180%); z-index:100; }
.skip:focus { transform:none; }
.dark .skip { color:#241743; }
.mobile-only { display:none; }
#magic-tail,.heading-spark,.hero-art,.visual-circle,.quote-mark { display:none; }

/* Navigation and account controls. */
.sidebar { width:var(--sidebar); position:fixed; inset:0 auto 0 0; z-index:40; display:flex; flex-direction:column; padding:27px 18px 22px; background:var(--paper); border-right:1px solid var(--line); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.brand { display:flex; align-items:center; gap:10px; margin:0 8px 40px; font-size:22px; line-height:1.1; font-weight:650; letter-spacing:-.6px; }
.brand:hover { color:var(--ink); }
.brand b { font-weight:750; }
.brand small { display:block; margin-top:7px; color:var(--muted); font-size:10px; font-weight:500; letter-spacing:0; }
.brand-icon { display:grid; place-items:center; width:36px; height:36px; flex-shrink:0; border-radius:9px; background:var(--primary); color:#fff; }
.brand-icon svg { width:27px; height:27px; stroke-width:2; }
.dark .brand-icon { color:#241743; }
.workspace-label { padding:0 13px; margin-bottom:10px; color:var(--muted); font-size:12px; font-weight:550; letter-spacing:0; }
.sidebar nav { display:grid; gap:5px; }
.nav-link { min-height:43px; padding:11px 12px; display:flex; align-items:center; gap:11px; border-radius:8px; color:var(--muted); font-size:13px; font-weight:550; line-height:1.4; transition:background .16s,color .16s; }
.nav-link svg { width:18px; height:18px; }
.nav-link:hover { color:var(--ink); background:var(--surface-soft); }
.nav-link.active { color:var(--primary); background:var(--pale); font-weight:650; }
.nav-link small { margin-left:auto; padding:1px 6px; min-width:24px; text-align:center; font-size:11px; color:inherit; background:var(--paper); border:1px solid var(--line); border-radius:5px; }
.sidebar-course { margin-top:31px; padding:17px 15px; background:var(--surface-soft); border:1px solid var(--line); border-radius:10px; flex-shrink:0; }
.tiny { color:var(--muted); font-size:11px; font-weight:600; letter-spacing:0; }
.sidebar-course h3 { margin:8px 0; font-size:16px; line-height:1.5; letter-spacing:-.015em; }
.sidebar-course p { color:var(--muted); font-size:12px; }
.side-cta { display:flex; justify-content:space-between; align-items:center; gap:10px; color:var(--primary); font-size:12px; font-weight:600; margin-top:13px; }
.sidebar-bottom { margin-top:auto; padding:29px 11px 0; color:var(--muted); font-size:11px; }
.sidebar-bottom small { display:block; margin-top:5px; font-size:10px; }
.dot { display:inline-block; width:6px; height:6px; margin-right:5px; border-radius:50%; background:var(--primary); }
.app-shell { margin-left:var(--sidebar); min-height:100vh; }
.topbar { min-height:79px; padding:16px 36px; display:flex; align-items:center; gap:18px; position:sticky; top:0; z-index:30; background:var(--paper); border-bottom:1px solid var(--line); }
.breadcrumb { color:var(--muted); font-size:12px; white-space:nowrap; }
.breadcrumb span { margin:0 9px; color:var(--muted); }
.search { margin-left:auto; width:250px; min-width:120px; display:flex; align-items:center; gap:8px; padding:8px 11px; background:var(--surface-soft); border:1px solid var(--line); border-radius:8px; color:var(--muted); }
.search svg { width:16px; height:16px; }
.search input { width:100%; min-width:0; min-height:24px; padding:0; border:0; outline:0; background:transparent; color:var(--ink); font-size:12px; }
.search kbd { border:1px solid var(--line); padding:0 4px; color:var(--muted); border-radius:4px; font-size:11px; }
.search:focus-within { border-color:var(--primary); box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent); }
.icon-button { display:inline-grid; place-items:center; min-width:36px; min-height:36px; border:0; border-radius:8px; background:transparent; color:var(--muted); padding:7px; line-height:1; }
.icon-button.mobile-only { display:none; }
.icon-button:hover { color:var(--primary); background:var(--pale); }
.profile-button { display:flex; align-items:center; gap:9px; min-width:154px; text-align:left; border:0; border-left:1px solid var(--line); background:transparent; color:var(--ink); padding:0 0 0 17px; }
.avatar { display:grid; place-items:center; width:35px; height:35px; border-radius:50%; background:var(--pale); color:var(--primary); font-size:14px; font-weight:650; flex-shrink:0; }
.profile-copy { min-width:0; }
.profile-copy b { display:block; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; line-height:1.5; }
.profile-copy small { display:block; color:var(--muted); font-size:10px; line-height:1.5; max-width:155px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chevron { color:var(--muted); font-size:14px; margin-left:2px; }
.home-view .topbar .search { visibility:hidden; }
main { max-width:1420px; padding:33px 36px 22px; margin:auto; min-height:calc(100vh - 159px); }
.app-shell,main,.workspace-grid>*,.dashboard-grid>*,.lesson-layout>*,.content-grid>* { min-width:0; }
.footer { max-width:1420px; margin:10px auto 0; padding:23px 36px 28px; display:flex; justify-content:space-between; gap:20px; color:var(--muted); font-size:11px; }
.footer a { color:var(--primary); }

/* Shared surfaces, text hierarchy and forms. */
.page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:28px; }
.page-heading>div { min-width:0; }
.eyebrow { color:var(--primary); font-size:11px; line-height:1.5; font-weight:600; letter-spacing:.02em; margin-bottom:9px; }
.subheading { color:var(--muted); font-size:15px; margin-top:9px; max-width:78ch; }
.date-label { color:var(--muted); font-size:12px; padding-top:6px; white-space:nowrap; }
.date-label svg { width:15px; height:15px; margin-right:6px; }
.section-title { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.section-title h2 { font-size:21px; }
.section-title p { font-size:13px; color:var(--muted); margin-top:5px; }
.section-subtitle { font-size:20px; margin:28px 0 15px; }
.paper,.course-card,.video-card,.side-panel,.educator-card,.author-mini,.portfolio-item { background:var(--paper); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); }
.paper { padding:28px; margin-bottom:23px; }
.paper h2 { font-size:24px; margin-bottom:15px; }
.paper>p { max-width:80ch; }
.paper p,.step p,.key-term p,.book-resource p,.portfolio-item p { font-size:15px; }
.paper>p+.button { margin-top:22px; }
.notice,.paper .notice,p.notice { margin:13px 0; color:var(--muted); font-size:13px; line-height:1.75; }
.button { min-height:41px; padding:10px 15px; display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:8px; font-size:13px; line-height:1.45; font-weight:600; text-align:center; transition:background .16s,border-color .16s,box-shadow .16s; }
.button svg { width:17px; height:17px; }
.button:hover { background:var(--surface-soft); color:var(--ink); border-color:color-mix(in srgb,var(--primary) 32%,var(--line)); }
.button.primary,.button.lime { background:var(--primary); color:#fff; border-color:var(--primary); }
.button.primary:hover,.button.lime:hover { background:var(--primary-hover); border-color:var(--primary-hover); color:#fff; box-shadow:0 4px 12px #7144e81b; }
.dark .button.primary,.dark .button.lime,.dark .button.primary:hover,.dark .button.lime:hover { color:#241743; }
.button.small { min-height:35px; padding:7px 11px; font-size:12px; }
.button.ghost { min-height:28px; background:transparent; border:0; padding:3px 0; color:var(--primary); font-size:12px; box-shadow:none; }
.button.ghost:hover { text-decoration:underline; text-underline-offset:4px; }
.full { width:100%; }
.action-row,.book-actions,.portfolio-actions,.quiz-actions { display:flex; align-items:center; flex-wrap:wrap; gap:11px; }
.action-row { margin:22px 0; }
.badge { display:inline-flex; align-items:center; gap:4px; align-self:flex-start; padding:4px 8px; border-radius:5px; background:var(--pale); color:var(--primary); font-size:10px; line-height:1.5; font-weight:650; letter-spacing:.015em; }
.badge.orange { color:#87511d; background:#fff3e5; }
.dark .badge.orange { background:#3d3024; color:#edc28b; }
.danger { color:var(--error); }
.button.danger:hover { color:var(--error); background:var(--error-bg); border-color:var(--error); }
label.field,dialog label { display:block; color:var(--ink); font-size:13px; line-height:1.5; font-weight:550; }
input[type=text],input[type=url],input[type=number],.answer-input,textarea,select { width:100%; min-width:0; min-height:43px; border:1px solid var(--line); border-radius:7px; padding:10px 12px; background:var(--paper); color:var(--ink); font-size:14px; line-height:1.5; }
select { padding-right:28px; }
textarea { min-height:160px; resize:vertical; line-height:1.75; }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
input[type=radio],input[type=checkbox] { width:17px; height:17px; margin:3px 0 0; accent-color:var(--primary); flex-shrink:0; }
input[type=file] { max-width:100%; color:var(--muted); font-size:13px; }
input[type=file]::file-selector-button { margin-right:11px; border:1px solid var(--line); border-radius:7px; padding:8px 11px; background:var(--surface-soft); color:var(--ink); font:inherit; cursor:pointer; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px; margin:22px 0; }
.form-grid>* { min-width:0; }
.wide,.field.wide { grid-column:1/-1; }
label.field input,label.field textarea,label.field select,dialog label input,dialog label select { margin-top:7px; }
.form-error { margin:13px 0 0; color:var(--error); font-size:13px; line-height:1.6; }
.form-error:empty { display:none; }

/* Welcome dashboard. The colour wash stays behind the welcome panel. */
.workspace-welcome { position:relative; isolation:isolate; text-align:center; padding:28px 20px 32px; margin:-33px -36px 29px; border-bottom:1px solid var(--line); background:linear-gradient(to bottom,transparent 50%,#fff 100%),radial-gradient(ellipse at 5% 0,#c5f0f2 0,transparent 60%),radial-gradient(ellipse at 95% 0,#ddc9ff 0,transparent 65%),#fff; }
.welcome-kicker { color:var(--muted); font-size:12px; font-weight:550; margin-bottom:10px; }
.workspace-welcome h1 { font-size:42px; line-height:1.25; font-weight:600; letter-spacing:-1px; background:linear-gradient(100deg,#355fd3 16%,#7434df 84%); background-clip:text; -webkit-background-clip:text; color:transparent; }
.workspace-welcome>p { color:var(--muted); margin:11px auto 0; font-size:14px; max-width:650px; }
.welcome-tabs { display:flex; align-items:center; justify-content:center; gap:23px; margin:23px auto 20px; }
.welcome-tabs a { display:inline-flex; align-items:center; gap:7px; padding:7px 1px 9px; border-bottom:2px solid transparent; color:var(--muted); font-size:12px; font-weight:550; }
.welcome-tabs svg { width:15px; height:15px; }
.welcome-tabs a.active { color:var(--primary); border-color:var(--primary); }
.welcome-search { display:flex; align-items:center; gap:12px; max-width:650px; margin:0 auto; padding:6px 7px 6px 17px; border:1px solid #c9b9f2; border-radius:11px; background:var(--paper); box-shadow:0 5px 21px #6245a30b; color:var(--muted); }
.welcome-search>svg { width:20px; height:20px; }
.welcome-search input { flex:1; width:100%; min-width:0; height:45px; padding:0; outline:0; border:0; background:transparent; color:var(--ink); font-size:14px; }
.welcome-search button { display:grid; place-items:center; flex-shrink:0; width:43px; height:43px; min-height:43px; padding:0; border:0; border-radius:7px; background:var(--primary); color:#fff; }
.welcome-search button:hover { background:var(--primary-hover); }
.welcome-search:focus-within { outline:3px solid color-mix(in srgb,var(--primary) 13%,transparent); border-color:var(--primary); }
.dark .workspace-welcome { background:linear-gradient(115deg,#192f37 0%,#242139 50%,#30223d 100%); }
.dark .workspace-welcome h1 { background-image:linear-gradient(100deg,#a1dbe6 16%,#b2baff 50%,#d5acff 84%); }
.dark .welcome-search { border-color:#695685; }
.dark .welcome-search button { color:#241743; }
.workspace-grid,.dashboard-grid { display:grid; grid-template-columns:minmax(0,1fr) 292px; align-items:start; gap:25px; }
.workspace-aside,.dashboard-aside { min-width:0; display:grid; gap:21px; }
.workspace-primary { min-width:0; }
.hero { position:relative; display:flex; align-items:center; min-height:220px; padding:27px 29px; margin-bottom:27px; background:var(--paper); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); }
.learning-overview { border-left:3px solid var(--primary); background:linear-gradient(110deg,var(--paper) 54%,var(--pale)); }
.hero-copy { min-width:0; width:100%; }
.hero h2 { margin-top:12px; font-size:26px; line-height:1.3; letter-spacing:-.6px; max-width:640px; }
.hero h2 em { color:var(--primary); font-style:normal; }
.hero p { color:var(--muted); font-size:14px; max-width:68ch; margin:12px 0 0; }
.hero .course-meta { margin:13px 0 19px; }
.hero .button { margin-top:0; }
.hero .eyebrow { color:var(--primary); }
.hero-copy>p+.button { margin-top:19px; }
.stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0 0 27px; }
.stat { display:flex; align-items:center; gap:14px; padding:18px 20px; min-width:0; border:1px solid var(--line); border-radius:10px; background:var(--paper); box-shadow:var(--shadow); }
.stat>div { min-width:0; }
.stat-icon { display:grid; place-items:center; width:41px; height:43px; flex-shrink:0; border-radius:9px; background:var(--pale); color:var(--primary); }
.stat:nth-child(2) .stat-icon { background:var(--surface-blue); color:var(--blue); }
.stat:nth-child(3) .stat-icon { background:var(--surface-cyan); color:#33768b; }
.stat strong { display:block; font-size:25px; line-height:1.2; letter-spacing:-.5px; font-weight:700; }
.stat-total { color:var(--muted); font-size:13px; font-weight:400; letter-spacing:0; }
.stat small { display:block; color:var(--muted); margin-top:4px; font-size:11px; line-height:1.5; }
.dark .stat:nth-child(3) .stat-icon { color:#a0d3e0; }
.educator-card { padding:22px; }
.educator-card-header { display:flex; align-items:center; gap:14px; margin-bottom:17px; }
.educator-card-header img { width:74px; height:74px; border-radius:10px; flex-shrink:0; object-fit:cover; object-position:center 28%; }
.educator-card .eyebrow { margin-bottom:6px; font-size:10px; }
.educator-card h3 { font-size:17px; letter-spacing:-.3px; line-height:1.4; }
.educator-card p { font-size:12px; color:var(--muted); margin:0 0 15px; line-height:1.75; }
.side-panel { padding:23px; }
.side-panel h3 { font-size:16px; letter-spacing:-.3px; }
.progress-ring { width:118px; height:118px; position:relative; display:grid; place-items:center; margin:24px auto 20px; border-radius:50%; background:conic-gradient(var(--primary) var(--percent),var(--pale) 0); }
.progress-ring:before { content:""; position:absolute; inset:7px; background:var(--paper); border-radius:50%; }
.progress-ring>div { z-index:1; text-align:center; }
.progress-ring strong { display:block; font-size:28px; line-height:1.3; font-weight:700; letter-spacing:-.7px; }
.progress-ring small { color:var(--muted); font-size:10px; }
.side-panel .legend { display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:11px; }
.side-panel .legend b { color:var(--ink); }
.side-panel .button.ghost { margin-top:17px; }
.progress-line { height:4px; background:var(--line); border-radius:8px; overflow:hidden; margin-top:14px; }
.progress-line span { display:block; height:100%; background:var(--primary); border-radius:8px; transition:width .3s; }
.resource-strip { display:flex; align-items:center; gap:15px; padding:19px 20px; margin-top:25px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.resource-icon { width:40px; height:43px; flex-shrink:0; display:grid; place-items:center; color:var(--primary); background:var(--pale); border-radius:8px; }
.resource-strip h3 { font-size:15px; }
.resource-strip p { color:var(--muted); margin-top:4px; font-size:11px; }
.resource-strip .button { margin-left:auto; white-space:nowrap; }
.author-mini { overflow:hidden; }
.author-photo { height:205px; position:relative; }
.author-photo img { width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.photo-caption { position:absolute; left:13px; top:13px; padding:4px 8px; border-radius:5px; background:#ffffffed; color:#6036bc; font-size:10px; font-weight:600; }
.author-mini-body { padding:21px; }
.author-mini h3 { font-size:20px; }
.author-mini p { color:var(--muted); font-size:13px; margin:10px 0 16px; }
.author-mini .button { width:100%; }
.tip { background:var(--surface-soft); border:1px solid var(--line); border-radius:10px; padding:21px; }
.tip p { color:var(--muted); font-size:13px; }

/* Lesson and video libraries. */
.course-grid,.library-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.workspace-primary .course-grid,.dashboard-grid .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.course-card { display:flex; flex-direction:column; overflow:hidden; transition:border-color .16s,box-shadow .16s; }
.course-card:hover { border-color:color-mix(in srgb,var(--primary) 36%,var(--line)); box-shadow:0 8px 26px #2228440b; }
.course-visual { height:112px; position:relative; display:flex; align-items:center; justify-content:center; background:var(--pale); border-bottom:1px solid var(--line); }
.course-visual.coral { background:var(--surface-blue); }
.course-visual.blue { background:var(--surface-cyan); }
.course-visual.purple { background:var(--pale); }
.visual-symbol { color:var(--primary); display:grid; place-items:center; width:49px; height:49px; border-radius:10px; background:var(--paper); }
.visual-symbol svg { width:27px; height:27px; stroke-width:1.6; }
.course-visual.coral .visual-symbol { color:var(--blue); }
.course-visual.blue .visual-symbol { color:#33768b; }
.dark .course-visual.blue .visual-symbol { color:#a0d3e0; }
.course-number { position:absolute; left:15px; top:13px; font-size:10px; color:var(--muted); font-weight:600; letter-spacing:.025em; }
.save-button { display:grid; place-items:center; position:absolute; right:11px; top:10px; width:30px; height:30px; padding:7px; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:var(--paper); }
.save-button svg { width:14px; height:14px; }
.save-button:hover,.save-button.saved { background:var(--primary); color:#fff; border-color:var(--primary); }
.dark .save-button:hover,.dark .save-button.saved { color:#241743; }
.course-content { display:flex; flex-direction:column; flex:1; padding:20px; }
.course-content h3 { font-size:17px; line-height:1.45; margin:11px 0 8px; letter-spacing:-.25px; }
.course-content h3 a:hover { color:var(--primary); }
.course-content .desc { color:var(--muted); font-size:12px; line-height:1.8; margin-bottom:auto; }
.course-meta { display:flex; flex-wrap:wrap; align-items:center; gap:5px 15px; margin-top:15px; color:var(--muted); font-size:10px; line-height:1.65; }
.course-meta span { display:inline-flex; align-items:center; gap:4px; }
.course-meta svg { width:12px; height:12px; }
.card-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:13px; padding-top:13px; border-top:1px solid var(--line); color:var(--primary); font-size:12px; font-weight:600; }
.card-bottom svg { width:16px; height:16px; }
.toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:23px; }
.filter { min-height:37px; padding:8px 13px; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:var(--paper); font-size:12px; font-weight:550; }
.filter:hover { color:var(--primary); border-color:var(--primary); }
.filter.active { color:var(--primary); background:var(--pale); border-color:var(--primary); }
.toolbar .count { margin-left:auto; color:var(--muted); font-size:12px; }
.empty { padding:48px 25px; text-align:center; color:var(--muted); background:var(--paper); border:1px dashed var(--line); border-radius:12px; }
.empty h3 { font-size:22px; color:var(--ink); margin-bottom:10px; }
.empty p { font-size:14px; }
.empty .button { margin:17px 5px 0; }

/* Reading and practice. */
.back-link { display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; margin-bottom:20px; }
.lesson-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:25px; }
.lesson-heading>div { min-width:0; }
.lesson-heading h1 { font-size:32px; max-width:820px; margin:12px 0 10px; }
.lesson-heading p { color:var(--muted); max-width:780px; font-size:15px; }
.lesson-heading>.button { flex-shrink:0; }
.lesson-layout { display:grid; grid-template-columns:minmax(0,1fr) 278px; align-items:start; gap:25px; }
.lesson-tabs { display:flex; gap:26px; overflow-x:auto; border-bottom:1px solid var(--line); margin-bottom:21px; }
.tab { padding:0 1px 13px; border-bottom:2px solid transparent; color:var(--muted); white-space:nowrap; font-size:13px; font-weight:550; }
.tab.active { color:var(--primary); border-color:var(--primary); font-weight:650; }
.key-term { border-left:3px solid var(--primary); background:var(--surface-soft); border-radius:0 8px 8px 0; padding:15px 18px; margin:23px 0; }
.key-term strong { font-size:15px; }
.key-term p { color:var(--muted); margin-top:7px; font-size:14px; }
.step { display:flex; gap:15px; padding:20px 0; border-bottom:1px solid var(--line); }
.step:last-child { border:0; }
.step-number { display:grid; place-items:center; width:30px; height:30px; flex-shrink:0; border-radius:8px; background:var(--pale); color:var(--primary); font-size:13px; font-weight:600; }
.step h4 { margin:1px 0 7px; font-size:17px; line-height:1.45; }
.step p { color:var(--muted); font-size:14px; }
.outcomes { padding-left:21px; margin:0; line-height:1.9; font-size:15px; }
.lesson-sidebar .paper { padding:22px; }
.lesson-sidebar h3 { font-size:17px; margin-bottom:17px; }
.lesson-sidebar .detail { display:flex; justify-content:space-between; flex-wrap:wrap; gap:5px 10px; margin:13px 0; color:var(--muted); font-size:12px; }
.lesson-sidebar .detail strong { color:var(--ink); font-weight:550; }
.lesson-sidebar .full { margin-top:20px; font-size:12px; }
.lesson-sidebar .notice { font-size:11px; }
.lesson-nav-list { display:grid; gap:9px; }
.lesson-nav-list a { display:flex; align-items:flex-start; gap:9px; padding:11px; border:1px solid var(--line); border-radius:7px; color:var(--muted); font-size:12px; line-height:1.6; }
.lesson-nav-list a>span:first-child { flex-shrink:0; color:var(--primary); font-weight:600; }
.lesson-nav-list a.active,.lesson-nav-list a:hover { color:var(--primary); background:var(--pale); border-color:var(--primary); }
.practice-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; margin:21px 0 18px; padding:13px 16px; background:var(--surface-soft); border:1px solid var(--line); border-radius:8px; color:var(--muted); font-size:12px; }
.practice-summary b { color:var(--primary); font-size:17px; }
.question-jumps { display:flex; flex-wrap:wrap; gap:7px; padding:0 0 18px; margin:0 0 8px; border-bottom:1px solid var(--line); }
.question-jumps a { display:grid; place-items:center; width:33px; height:33px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--primary); font-size:12px; font-weight:600; }
.question-jumps a:hover { border-color:var(--primary); background:var(--pale); }
.question { padding:28px 0; border-bottom:1px solid var(--line); scroll-margin-top:105px; }
.question:first-of-type { padding-top:18px; }
.question .question-type { font-size:11px; color:var(--primary); margin-bottom:9px; font-weight:550; }
.question h3 { font-size:18px; font-weight:600; line-height:1.55; margin-bottom:17px; letter-spacing:-.2px; }
.option { display:flex; align-items:flex-start; gap:11px; padding:13px 14px; border:1px solid var(--line); border-radius:8px; margin:8px 0; cursor:pointer; font-size:14px; line-height:1.65; }
.option>span { min-width:0; }
.option:hover { border-color:var(--primary); background:var(--surface-soft); }
.option:has(input:checked) { background:var(--pale); border-color:var(--primary); }
.task-instruction { margin-bottom:15px; color:var(--muted); font-size:14px; }
.matching-list { display:grid; gap:12px; }
.matching-row { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; min-width:0; padding:15px; border:1px solid var(--line); border-radius:8px; background:var(--surface-soft); font-size:14px; line-height:1.7; }
.matching-row>span { min-width:0; }
.matching-row select { width:100%; max-width:100%; font-size:14px; }
.ordering-row { grid-template-columns:minmax(0,1fr) 102px; align-items:center; gap:18px; }
.feedback { padding:15px 17px; margin-top:16px; border:1px solid color-mix(in srgb,var(--success) 22%,transparent); border-radius:8px; color:var(--success); background:var(--success-bg); font-size:14px; line-height:1.75; }
.feedback.incorrect { color:var(--error); background:var(--error-bg); border-color:color-mix(in srgb,var(--error) 22%,transparent); }
.feedback p { margin-top:10px; color:inherit; font-size:14px; }
.quiz-result { padding:23px; margin-top:24px; background:var(--pale); border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line)); border-radius:10px; }
.quiz-result h3 { font-size:25px; margin-bottom:11px; }
.quiz-result p { font-size:14px; margin-top:9px; }
.quiz-actions { margin-top:24px; }
.checklist { padding-left:23px; font-size:14px; line-height:1.8; color:var(--muted); }
.checklist li { margin:7px 0; }
.model-answer { padding:15px 17px; margin-top:16px; border:1px solid var(--line); border-radius:8px; background:var(--surface-soft); }
.model-answer summary { color:var(--primary); font-size:13px; font-weight:600; cursor:pointer; }
.model-answer p { color:var(--muted); font-size:14px; margin-top:14px; }
.model-answer+.button { margin-top:16px; }
.notes-meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; margin-top:11px; color:var(--muted); font-size:12px; }
#lesson-notes { min-height:340px; }
#lesson-notes~.button { margin-top:23px; }
.success-check { color:var(--success); }

/* Video lessons and local playback. */
.video-card { display:flex; flex-direction:column; align-items:flex-start; padding:24px; min-width:0; }
.video-card .video-top { display:grid; place-items:center; width:43px; height:43px; border-radius:9px; margin-bottom:19px; color:var(--primary); background:var(--pale); }
.video-card h3 { font-size:18px; margin:13px 0 11px; }
.video-card p { color:var(--muted); font-size:13px; }
.video-card .action-row { margin:auto 0 0; padding-top:23px; gap:10px; }
.video-frame { aspect-ratio:16/9; position:relative; overflow:hidden; margin:20px 0; border-radius:11px; background:#222238; }
.video-frame:has(.video-placeholder) { aspect-ratio:auto; min-height:330px; }
.video-frame iframe,.video-frame video,#youtube-player { display:block; width:100%; height:100%; border:0; }
.video-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; min-height:330px; height:100%; padding:30px; text-align:center; color:#f1f1f7; }
.video-provider { color:#c4b4f5; font-size:11px; font-weight:600; }
.video-placeholder h3 { color:#fff; max-width:650px; font-size:24px; line-height:1.4; }
.video-placeholder p { color:#d2d2e2; font-size:13px; max-width:62ch; line-height:1.75; }
.video-placeholder .play-button { display:grid; place-items:center; flex-shrink:0; width:64px; height:64px; padding:0 0 0 3px; border:1px solid #c2afff; border-radius:50%; color:#241743; background:#c2afff; font-size:24px; }
.video-placeholder .play-button:hover { background:#d0c1ff; }
.video-placeholder .retry-button { min-height:37px; padding:8px 13px; color:#f1f1f7; background:transparent; border:1px solid #9c91be; font-size:12px; }
.video-placeholder .button.lime { background:#c2afff; border-color:#c2afff; color:#241743; }
.video-source { display:flex; align-items:center; flex-wrap:wrap; gap:11px; }
.source-description { flex-basis:100%; max-width:78ch; margin:0 0 5px; }
.local-video-tools { padding:17px; margin:25px 0; border:1px solid var(--line); border-radius:9px; background:var(--surface-soft); }
.local-video-tools summary { color:var(--primary); cursor:pointer; font-size:13px; font-weight:600; }
.local-video-tools .notice { margin:14px 0; }
.file-label { position:relative; overflow:hidden; cursor:pointer; }
.file-label input { position:absolute; width:1px; height:1px; padding:0; margin:-1px; opacity:0; }
.file-label:focus-within { outline:3px solid var(--primary); outline-offset:3px; }

/* Educator biography and original coursebook. */
.author-layout { display:grid; grid-template-columns:265px minmax(0,1fr); gap:33px; align-items:start; }
.author-large { width:100%; height:365px; object-fit:cover; object-position:center 28%; border-radius:10px; }
.author-caption { margin-top:12px; text-align:center; font-size:11px; color:var(--muted); }
.author-bio { min-width:0; }
.author-bio h1 { font-size:30px; margin:15px 0; }
.author-bio p { color:var(--muted); font-size:14px; margin:18px 0; }
.author-bio .institution { color:var(--blue); font-size:16px; font-weight:550; line-height:1.7; }
.content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:23px; }
.timeline { border-left:1px solid var(--line); padding-left:22px; margin-top:27px; }
.timeline-item { position:relative; margin-bottom:23px; }
.timeline-item:before { content:""; position:absolute; top:5px; left:-27px; width:9px; height:9px; border:2px solid var(--paper); border-radius:50%; background:var(--primary); }
.timeline-item .year { color:var(--primary); font-size:12px; font-weight:600; }
.timeline-item h3 { margin:5px 0; font-size:15px; font-weight:550; line-height:1.5; }
.timeline-item p { margin:0; font-size:13px; }
.book-resource { display:flex; align-items:flex-start; gap:29px; }
.book-resource>div { min-width:0; }
.book-cover { display:flex; flex-direction:column; justify-content:space-between; flex-shrink:0; width:174px; min-height:245px; padding:21px 17px; border-left:6px solid #6755a5; border-radius:2px 6px 6px 2px; background:#e8e1f5; color:#463b6d; box-shadow:4px 5px 0 #d6cfdf; }
.book-cover h3 { font-size:24px; line-height:1.3; }
.book-cover small { font-size:9px; line-height:1.7; }
.book-resource h2 { margin:13px 0 15px; font-size:28px; }
.book-resource p { color:var(--muted); font-size:14px; margin-bottom:21px; }
.contents-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 27px; }
.contents-item { display:flex; align-items:flex-start; gap:12px; min-width:0; padding:17px 0; border-bottom:1px solid var(--line); font-size:13px; }
.contents-item>div { min-width:0; }
.contents-item>span { color:var(--primary); font-size:12px; font-weight:600; flex-shrink:0; }
.contents-item b { font-weight:550; }
.contents-item .muted { font-size:11px; }
.contents-item a { margin-left:auto; color:var(--primary); white-space:nowrap; font-size:11px; flex-shrink:0; }

/* Portfolio, assessment rubric and printable report. */
.rubric { display:grid; gap:13px; margin:20px 0; }
.rubric-row { display:grid; grid-template-columns:minmax(0,1fr) 195px; align-items:center; gap:20px; padding:17px; border:1px solid var(--line); border-radius:9px; background:var(--surface-soft); }
.rubric-row h4 { font-size:16px; }
.rubric-row p { color:var(--muted); font-size:13px; margin-top:6px; }
.rubric-row select { font-size:13px; }
.portfolio-item { padding:25px; margin-bottom:20px; }
.portfolio-item h3 { margin-top:13px; font-size:22px; }
.portfolio-item .meta { color:var(--muted); margin-top:7px; font-size:11px; }
.portfolio-item p { color:var(--muted); margin:18px 0; white-space:pre-wrap; font-size:14px; }
.portfolio-actions { margin-top:20px; }
.portfolio-actions .button { max-width:100%; overflow-wrap:anywhere; }
.table-wrap { overflow-x:auto; }
.progress-table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; line-height:1.65; }
.progress-table th { color:var(--muted); padding:13px 11px; font-size:10px; font-weight:600; background:var(--surface-soft); border-bottom:1px solid var(--line); }
.progress-table td { padding:18px 11px; border-bottom:1px solid var(--line); vertical-align:top; }
.progress-table td:first-child { min-width:220px; max-width:440px; }
.progress-table a { color:var(--primary); font-weight:550; }
.settings-copy { color:var(--muted); font-size:14px; }

/* Profile dialog and saved-state feedback. */
body.app-locked { min-height:100vh; overflow:hidden; background:radial-gradient(ellipse at 20% 15%,#e5f3f9 0,transparent 50%),radial-gradient(ellipse at 85% 80%,#eae0fb 0,transparent 47%),#f6f5fc; }
body.app-locked .sidebar,body.app-locked .app-shell,body.app-locked .skip { visibility:hidden; }
.dark body.app-locked { background:radial-gradient(ellipse at 20% 15%,#1d303c 0,transparent 50%),radial-gradient(ellipse at 85% 80%,#342341 0,transparent 47%),#17161f; }
dialog { width:min(610px,calc(100vw - 36px)); max-width:610px; max-height:90vh; max-height:90svh; margin:auto; padding:31px; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:16px; background:var(--paper); color:var(--ink); box-shadow:0 25px 100px #1e17372e; scrollbar-width:thin; }
dialog::backdrop { background:#1a153c5c; backdrop-filter:blur(5px); }
body.app-locked dialog::backdrop { background:#3427570c; }
.dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.dialog-heading>div { min-width:0; }
.dialog-heading .eyebrow { display:block; margin-bottom:8px; }
.dialog-heading h2 { font-size:27px; line-height:1.25; }
.dialog-heading .icon-button { flex-shrink:0; margin:-6px -7px 0 0; font-size:24px; }
dialog p { color:var(--muted); margin:15px 0 20px; font-size:13px; line-height:1.75; }
dialog .form-grid { margin:22px 0 18px; gap:18px; }
dialog .notice { font-size:12px; margin:15px 0 20px; }
dialog .button.full { min-height:46px; padding:12px 16px; font-size:14px; justify-content:space-between; }
#toast { position:fixed; left:calc(50% + var(--sidebar)/2); bottom:25px; z-index:100; max-width:min(650px,calc(100vw - 34px)); padding:13px 20px; border-radius:9px; color:#fff; background:#302a48; box-shadow:0 8px 26px #21193826; font-size:13px; line-height:1.7; transform:translate(-50%,15px); opacity:0; transition:opacity .18s,transform .18s; pointer-events:none; }
#toast.show { opacity:1; transform:translate(-50%,0); }
.dark #toast { color:#242030; background:#d5c9f4; }

/* Keep readable columns at every viewport size. */
@media(min-width:1600px) {
  main { padding-top:38px; }
  .workspace-welcome { padding-top:39px; padding-bottom:38px; margin-top:-38px; }
  .workspace-grid { grid-template-columns:minmax(0,1fr) 310px; gap:28px; }
  .hero { min-height:237px; padding:30px; }
  .course-visual { height:128px; }
}
@media(max-width:1300px) {
  .breadcrumb { display:none; }
  .topbar { gap:14px; }
  .workspace-grid,.dashboard-grid { grid-template-columns:minmax(0,1fr) 270px; gap:21px; }
  .educator-card { padding:20px; }
  .educator-card-header { gap:11px; }
  .educator-card-header img { width:61px; height:67px; }
  .educator-card h3 { font-size:16px; }
  .course-content { padding:18px; }
  .course-content h3 { font-size:16px; }
  .library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lesson-layout { grid-template-columns:minmax(0,1fr) 255px; gap:21px; }
  .lesson-sidebar .paper { padding:19px; }
  .stat { padding:18px 16px; gap:11px; }
  .stat small { font-size:10px; }
  .resource-strip { flex-wrap:wrap; }
  .resource-strip .button { margin-left:55px; }
  .author-layout { grid-template-columns:230px minmax(0,1fr); gap:27px; }
  .author-bio .content-grid { grid-template-columns:1fr; gap:0; }
  .contents-list { grid-template-columns:1fr; }
}
@media(max-width:1100px) {
  .topbar { padding:14px 27px; }
  main { padding:29px 27px 20px; }
  .footer { padding-right:27px; padding-left:27px; }
  .workspace-welcome { margin:-29px -27px 25px; padding:29px 22px; }
  .profile-copy,.chevron { display:none; }
  .profile-button { min-width:0; padding-left:13px; }
  .search { width:100%; max-width:300px; }
  .workspace-grid,.dashboard-grid { grid-template-columns:minmax(0,1fr); }
  .workspace-aside,.dashboard-aside { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px; }
  .educator-card { padding:23px; }
  .educator-card-header img { width:73px; height:73px; }
  .educator-card h3 { font-size:18px; }
  .hero h2 { font-size:25px; }
  .side-panel .progress-ring { margin:21px auto 17px; }
  .resource-strip { flex-wrap:nowrap; }
  .resource-strip .button { margin-left:auto; }
  .lesson-layout { grid-template-columns:minmax(0,1fr); }
  .lesson-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px; }
  .lesson-sidebar .paper { padding:23px; margin:0; }
  .lesson-heading h1 { font-size:29px; }
  .author-layout { grid-template-columns:200px minmax(0,1fr); gap:25px; }
  .author-large { height:300px; }
  .author-bio h1 { font-size:26px; }
  .content-grid { grid-template-columns:1fr; }
  .book-resource { gap:23px; }
  .book-cover { width:147px; min-height:221px; padding:20px 13px; }
  .book-cover h3 { font-size:21px; }
}
@media(max-width:900px) and (min-width:761px) {
  .sidebar { padding-right:14px; padding-left:14px; }
  .brand { margin-left:7px; margin-right:0; }
  main { padding-left:23px; padding-right:23px; }
  .workspace-welcome { margin-right:-23px; margin-left:-23px; }
  .workspace-welcome h1 { font-size:31px; }
  .stats { gap:11px; }
  .stat { padding:15px 12px; flex-direction:column; align-items:flex-start; }
  .stat strong { font-size:23px; }
  .workspace-aside,.dashboard-aside { grid-template-columns:1fr; }
  .resource-strip { flex-wrap:wrap; }
  .resource-strip .button { margin-left:55px; }
  .library-grid { grid-template-columns:1fr; }
  .author-layout,.lesson-sidebar,.rubric-row { grid-template-columns:1fr; }
  .author-portrait { max-width:285px; }
  .author-large { height:370px; }
  .book-resource { flex-direction:column; }
  .lesson-heading { flex-wrap:wrap; }
  .form-grid { grid-template-columns:1fr; }
}
@media(max-width:760px) {
  html { scroll-padding-top:135px; }
  .sidebar { transform:translateX(-100%); transition:transform .22s ease; box-shadow:12px 0 45px #1c17381a; }
  .sidebar.open { transform:translateX(0); }
  .app-shell { margin-left:0; }
  .mobile-only { display:inline-grid; }
  .icon-button.mobile-only { display:inline-grid; }
  .topbar { min-height:72px; flex-wrap:wrap; gap:10px; padding:12px 20px; }
  .search { order:3; flex:1 1 100%; max-width:none; margin:0; }
  .home-view .topbar .search { display:none; }
  .profile-button { margin-left:auto; padding:0; border:0; }
  .profile-copy,.chevron { display:none; }
  .avatar { width:35px; height:35px; }
  .topbar .theme-control { margin-left:auto; }
  main { padding:27px 22px 18px; }
  h1 { font-size:29px; }
  h2 { font-size:23px; }
  .workspace-welcome { margin:-27px -22px 23px; padding:32px 22px 27px; }
  .workspace-welcome h1 { font-size:31px; letter-spacing:-.8px; }
  .workspace-welcome>p { font-size:13px; max-width:500px; }
  .welcome-search { max-width:580px; }
  .welcome-search input { font-size:13px; height:43px; }
  .welcome-tabs { margin:20px auto 18px; }
  .stats { gap:13px; margin-bottom:23px; }
  .stat { padding:16px 13px; gap:10px; }
  .stat-icon { width:34px; height:36px; }
  .stat-icon svg { width:18px; height:18px; }
  .stat strong { font-size:24px; }
  .stat small { font-size:10px; }
  .workspace-grid,.dashboard-grid { gap:23px; }
  .hero { padding:24px; min-height:200px; margin-bottom:25px; }
  .hero h2 { font-size:24px; }
  .hero p { font-size:14px; }
  .course-grid,.library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
  .course-content { padding:19px; }
  .course-content h3 { font-size:17px; }
  .course-content .desc { font-size:13px; }
  .course-meta { font-size:11px; }
  .card-bottom { font-size:12px; }
  .workspace-aside,.dashboard-aside { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .educator-card { padding:21px; }
  .educator-card-header { flex-direction:column; align-items:flex-start; gap:12px; }
  .educator-card-header img { width:72px; height:72px; }
  .side-panel { padding:21px; }
  .resource-strip { padding:18px; flex-wrap:wrap; }
  .resource-strip>div { flex:1 1 230px; }
  .resource-strip .button { margin-left:55px; }
  .page-heading { flex-direction:column; gap:14px; margin-bottom:24px; }
  .subheading { font-size:14px; }
  .date-label { display:none; }
  .section-title { flex-wrap:wrap; gap:11px; }
  .section-title h2 { font-size:21px; }
  .paper { padding:24px; }
  .paper h2 { font-size:23px; }
  .lesson-heading { flex-wrap:wrap; gap:17px; }
  .lesson-heading h1 { font-size:28px; }
  .lesson-heading p { font-size:14px; }
  .lesson-tabs { gap:25px; }
  .tab { font-size:13px; }
  .lesson-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .question { scroll-margin-top:140px; }
  .question h3 { font-size:18px; }
  .question-jumps { gap:6px; }
  .form-grid { gap:17px; }
  .rubric-row { grid-template-columns:minmax(0,1fr) 170px; gap:17px; }
  .author-layout { grid-template-columns:210px minmax(0,1fr); gap:24px; }
  .author-large { height:310px; }
  .author-bio h1 { font-size:27px; }
  .book-resource { gap:23px; }
  .book-resource h2 { font-size:25px; }
  .progress-table { min-width:570px; }
  .footer { flex-direction:column; gap:8px; padding:22px; }
  #toast { left:50%; }
  dialog { padding:28px; width:min(610px,calc(100vw - 30px)); }
}
@media(max-width:560px) {
  .topbar { padding:11px 16px; gap:8px; }
  main { padding:24px 17px 17px; }
  h1 { font-size:27px; }
  .workspace-welcome { margin:-24px -17px 21px; padding:28px 17px 25px; }
  .workspace-welcome h1 { font-size:28px; max-width:350px; margin:0 auto; }
  .workspace-welcome>p { max-width:340px; font-size:12px; }
  .welcome-kicker { font-size:11px; }
  .welcome-tabs { gap:24px; margin-top:18px; }
  .welcome-tabs a { font-size:11px; }
  .welcome-search { padding:5px 6px 5px 12px; gap:9px; border-radius:9px; }
  .welcome-search input { font-size:12px; height:40px; }
  .welcome-search>svg { width:17px; height:17px; }
  .welcome-search button { width:38px; height:38px; min-height:38px; }
  .stats { gap:9px; }
  .stat { flex-direction:column; align-items:flex-start; gap:11px; padding:14px 11px; }
  .stat strong { font-size:23px; }
  .stat-total { font-size:11px; }
  .stat small { font-size:10px; line-height:1.6; }
  .stat-icon { width:32px; height:33px; }
  .hero { padding:22px; min-height:0; }
  .hero h2 { font-size:23px; }
  .hero p { font-size:13px; }
  .hero .button { width:100%; }
  .workspace-primary .course-grid,.dashboard-grid .course-grid,.course-grid,.library-grid,.workspace-aside,.dashboard-aside { grid-template-columns:1fr; }
  .course-visual { height:123px; }
  .course-content { padding:23px; }
  .course-content h3 { font-size:18px; }
  .course-content .desc { font-size:13px; }
  .course-meta { font-size:11px; gap:6px 17px; }
  .card-bottom { font-size:13px; }
  .educator-card-header { flex-direction:row; align-items:center; gap:15px; }
  .educator-card-header img { width:74px; height:74px; }
  .educator-card h3 { font-size:18px; }
  .educator-card p { font-size:13px; }
  .side-panel h3 { font-size:18px; }
  .side-panel .legend { font-size:12px; }
  .progress-ring { width:126px; height:126px; }
  .resource-strip { padding:21px; align-items:flex-start; gap:13px; }
  .resource-strip>div { flex:1 1 210px; }
  .resource-strip .button { width:100%; margin:2px 0 0; }
  .resource-strip h3 { font-size:16px; }
  .resource-strip p { font-size:12px; }
  .section-title h2 { font-size:20px; }
  .section-title p { font-size:12px; }
  .toolbar { gap:7px; }
  .filter { font-size:11px; padding:8px 10px; }
  .toolbar .count { margin-left:0; width:100%; margin-top:4px; }
  .paper { padding:22px; }
  .paper h2 { font-size:22px; }
  .paper p { font-size:14px; }
  .lesson-heading h1 { font-size:27px; }
  .lesson-sidebar,.form-grid,.rubric-row,.author-layout { grid-template-columns:1fr; }
  .lesson-tabs { gap:23px; }
  .tab { font-size:12px; }
  .step { gap:12px; }
  .step h4 { font-size:16px; }
  .step-number { width:27px; height:27px; }
  .question h3 { font-size:17px; }
  .option { font-size:14px; padding:12px; }
  .ordering-row { grid-template-columns:minmax(0,1fr); gap:12px; }
  .ordering-row select { width:130px; }
  .quiz-actions .button { width:100%; }
  .quiz-result { padding:19px; }
  .quiz-result h3 { font-size:22px; }
  .video-placeholder { min-height:330px; padding:27px 21px; }
  .video-placeholder h3 { font-size:22px; }
  .video-placeholder p { font-size:12px; }
  .video-source>.button { width:100%; }
  .video-card { padding:23px; }
  .author-portrait { max-width:310px; }
  .author-large { height:370px; }
  .author-bio h1 { font-size:27px; }
  .book-resource { flex-direction:column; }
  .book-cover { width:164px; min-height:235px; padding:20px 15px; }
  .book-cover h3 { font-size:23px; }
  .book-actions>.button { width:100%; }
  .contents-item { flex-wrap:wrap; gap:6px 12px; }
  .contents-item>div { flex:1 1 calc(100% - 34px); }
  .contents-item a { margin-left:27px; }
  .portfolio-item { padding:22px; }
  .portfolio-item h3 { font-size:20px; }
  .portfolio-actions>.button { width:100%; }
  dialog { padding:25px 22px; border-radius:13px; }
  .dialog-heading h2 { font-size:25px; }
  dialog .form-grid { grid-template-columns:1fr; gap:16px; }
  dialog .button.full { font-size:13px; }
  #toast { font-size:12px; padding:12px 17px; }
}
@media(max-height:820px) and (min-width:761px) {
  .sidebar-course { margin-top:24px; padding:15px; }
  .sidebar-course p { display:none; }
  .brand { margin-bottom:29px; }
}
@media(max-height:690px) and (min-width:761px) {
  .sidebar-course { display:none; }
  .sidebar-bottom { padding-top:20px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}
@media print {
  :root,.dark { color-scheme:light; --bg:#fff; --paper:#fff; --ink:#111; --muted:#444; --line:#ddd; --primary:#443078; --green:#443078; --pale:#f4f4f4; --surface-soft:#f4f4f4; --shadow:none; }
  .sidebar,.topbar,.footer,.action-row,.button,.toolbar,.welcome-search,.welcome-tabs { display:none!important; }
  .app-shell { margin:0; }
  main { max-width:none; padding:0; }
  body { background:#fff; font-size:11pt; }
  .paper { border:0; padding:0; box-shadow:none; }
  .stats { break-inside:avoid; }
  .stat { box-shadow:none; }
  .table-wrap { overflow:visible; }
  .progress-table { min-width:0; }
  .progress-table td:first-child { min-width:0; }
  .page-heading { margin-bottom:20px; }
  h1,h2,h3 { break-after:avoid; }
  .progress-table tr { break-inside:avoid; }
}

/* Academy edition: real learning, clear typography and a calm indigo identity. */
:root {
  --bg:#f7f8fc;
  --paper:#fff;
  --ink:#11133b;
  --muted:#4c5261;
  --line:#e5e7ef;
  --green:#5355d7;
  --primary:#5355d7;
  --primary-hover:#4143bd;
  --blue:#395bbf;
  --pale:#efefff;
  --navy:#11133b;
  --lime:#5355d7;
  --surface-soft:#f5f6fc;
  --surface-blue:#edf2ff;
  --surface-cyan:#edf7f8;
  --shadow:0 8px 28px #15213c06;
  --sidebar:0px;
}
.dark {
  --bg:#141624;
  --paper:#1e2233;
  --ink:#f3f4fc;
  --muted:#c1c7d8;
  --line:#363e55;
  --green:#b0b5ff;
  --primary:#b0b5ff;
  --primary-hover:#c4c8ff;
  --blue:#aec4ff;
  --pale:#2b3050;
  --navy:#12162b;
  --lime:#b0b5ff;
  --surface-soft:#252b3f;
  --surface-blue:#27334f;
  --surface-cyan:#243b43;
  --shadow:0 8px 28px #00000015;
}
body { color:var(--ink); font-size:16px; line-height:1.7; }
h1,h2,h3,h4 { color:var(--ink); font-weight:700; letter-spacing:-.025em; }
h1 { font-size:36px; }
h2 { font-size:28px; }
h3 { font-size:22px; }
button,input,select,textarea { font-family:var(--font-sans); }
.sidebar,.topbar { display:none!important; }
.app-shell { margin-left:0; }
main { max-width:1280px; margin:0 auto; padding:45px 32px 30px; min-height:calc(100vh - 180px); }
.home-view main { max-width:none; padding:0; }
.footer { max-width:1280px; padding:26px 32px 30px; border-top:1px solid var(--line); margin:25px auto 0; font-size:13px; }
#toast { left:50%; font-size:14px; }
.eyebrow { font-size:12px; font-weight:650; letter-spacing:.025em; }
.subheading { color:var(--muted); font-size:16px; line-height:1.75; }
.notice,.paper .notice,p.notice { font-size:14px; color:var(--muted); }
.button { min-height:44px; padding:11px 18px; border-radius:6px; font-size:14px; font-weight:650; }
.button.small { min-height:36px; font-size:13px; padding:8px 12px; }
.button.ghost { min-height:30px; font-size:14px; }
.button.primary:hover,.button.lime:hover { box-shadow:0 5px 15px #5355d71a; }
.dark .button.primary,.dark .button.lime,.dark .button.primary:hover,.dark .button.lime:hover { color:#161a35; }
.badge { font-size:11px; font-weight:650; padding:5px 9px; }
.paper,.course-card,.video-card,.side-panel,.portfolio-item { border-radius:10px; }
.paper { padding:30px; }
.paper h2 { font-size:26px; }
.paper p,.step p,.key-term p,.book-resource p,.portfolio-item p { font-size:16px; }
.page-heading { margin-bottom:30px; }
.section-title h2 { font-size:29px; }
.section-title p { font-size:15px; }
.section-title .eyebrow { margin-bottom:8px; }

/* Horizontal navigation remains stable while lessons and forms are open. */
.site-header { position:sticky; top:0; z-index:50; display:flex; align-items:center; gap:26px; min-height:92px; padding:18px max(32px,calc((100vw - 1240px)/2)); background:var(--paper); border-bottom:1px solid var(--line); }
.site-header-inner { display:flex; align-items:center; gap:26px; width:100%; max-width:1240px; margin:auto; }
.site-brand { display:inline-flex; align-items:center; gap:11px; flex-shrink:0; color:var(--ink); font-size:29px; line-height:1.05; font-weight:750; letter-spacing:-1px; white-space:nowrap; }
.site-brand:hover { color:var(--ink); }
.site-brand>svg { width:39px; height:39px; color:var(--primary); stroke-width:1.6; }
.site-brand .brand-icon { width:38px; height:38px; background:var(--primary); border-radius:9px; }
.site-brand small { display:block; color:var(--muted); margin-top:7px; font-size:10px; line-height:1.4; font-weight:500; letter-spacing:0; }
.site-nav { display:flex; align-items:center; justify-content:center; gap:23px; flex:1; min-width:0; }
.site-nav a { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:42px; color:var(--ink); font-size:13px; line-height:1.4; font-weight:700; white-space:nowrap; }
.site-nav a:hover,.site-nav a.active,.site-nav a[aria-current=page] { color:var(--primary); }
.site-nav a.active:after,.site-nav a[aria-current=page]:after { content:""; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--primary); border-radius:2px; }
.header-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.header-actions .profile-button { min-width:0; padding:0; border:0; }
.header-actions .avatar { width:37px; height:37px; font-size:15px; }
.header-actions .profile-copy { display:none; }
.header-actions .chevron { display:none; }
.header-actions .theme-control { min-height:40px; border-radius:6px; }
.site-menu-toggle,.site-header .mobile-only,.site-header .icon-button.mobile-only { display:none; }
.header-actions>.button { font-size:13px; padding:10px 13px; }
body.app-locked .site-header { visibility:hidden; }
.site-header #search-form { display:none; }
.site-header .breadcrumb { display:none; }

/* Hero photography is displayed as photography, without simulated illustrations. */
.academy-hero { overflow:hidden; background:radial-gradient(ellipse at 44% 0,#f9f9dc 0,transparent 58%),radial-gradient(ellipse at 95% 50%,#e7e9ff 0,transparent 58%),radial-gradient(ellipse at 23% 100%,#fbe5d6 0,transparent 58%),#fbfcff; border-bottom:1px solid var(--line); }
.academy-hero-inner { display:grid; grid-template-columns:minmax(0,1.03fr) minmax(0,1fr); align-items:center; gap:56px; max-width:1280px; min-height:670px; padding:55px 32px 65px; margin:0 auto; }
.academy-hero-copy { min-width:0; padding:10px 0; }
.academy-hero-copy>.eyebrow { display:inline-flex; align-items:center; color:#4447bb; font-size:13px; letter-spacing:.06em; font-weight:700; margin-bottom:20px; }
.academy-hero h1 { max-width:630px; margin:0; font-size:56px; line-height:1.18; font-weight:750; letter-spacing:-1.8px; }
.academy-hero h1 em { color:var(--primary); font-style:normal; }
.academy-hero-copy>p { max-width:550px; margin:25px 0 0; color:#424958; font-size:17px; line-height:1.8; }
.academy-search { display:flex; align-items:center; gap:8px; width:100%; max-width:610px; padding:5px; margin:30px 0 0; background:var(--paper); border:1px solid #dfe1ed; box-shadow:0 6px 22px #26375b05; border-radius:3px; }
.academy-search>svg { margin-left:14px; color:var(--muted); }
.academy-search input { width:100%; min-width:0; min-height:58px; padding:14px 15px; border:0; outline:0; background:transparent; color:var(--ink); font-size:15px; line-height:1.5; }
.academy-search input::placeholder { color:#555d69; opacity:1; }
.academy-search .button,.academy-search button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:58px; border-radius:2px; padding:15px 24px; flex-shrink:0; border:1px solid var(--primary); background:var(--primary); color:#fff; font-size:15px; font-weight:650; }
.academy-search button:hover { background:var(--primary-hover); border-color:var(--primary-hover); }
.academy-search:focus-within { outline:3px solid #5355d71b; border-color:var(--primary); }
.academy-hero-media { position:relative; min-width:0; height:550px; align-self:end; padding:0 10px 0 0; }
.academy-hero-media:before { content:""; position:absolute; inset:45px 0 -12px 25px; border-radius:44% 44% 9px 9px; background:#daddfa; }
.hero-photo { position:relative; z-index:1; width:100%; height:100%; object-fit:cover; object-position:center 29%; border-radius:44% 44% 9px 9px; }
.hero-fact { position:absolute; z-index:2; right:-12px; bottom:38px; min-width:215px; padding:22px 25px; color:#11133b; background:#fff; border:1px solid #f1f2f7; border-radius:6px; box-shadow:0 12px 35px #1f2b5621; }
.hero-fact strong { display:block; font-size:32px; line-height:1.15; letter-spacing:-.6px; font-weight:750; }
.hero-fact span,.hero-fact small { display:block; margin-top:5px; font-size:14px; line-height:1.5; color:#4c5261; }
.hero-fact svg { width:26px; height:26px; color:#5355d7; }
.hero-fact .fact-icon { float:left; display:grid; place-items:center; width:45px; height:45px; margin-right:13px; background:#eeeeff; border-radius:50%; }
.dark .academy-hero { background:radial-gradient(ellipse at 35% 0,#30302d 0,transparent 58%),radial-gradient(ellipse at 95% 50%,#292b4e 0,transparent 58%),radial-gradient(ellipse at 20% 100%,#3b2d30 0,transparent 58%),#171b2c; }
.dark .academy-hero-copy>.eyebrow { color:#c3c6ff; }
.dark .academy-hero-copy>p { color:var(--muted); }
.dark .academy-hero-media:before { background:#353c65; }
.dark .academy-search { border-color:var(--line); }
.dark .academy-search input::placeholder { color:var(--muted); }
.dark .academy-search .button,.dark .academy-search button { color:#161a35; }

/* Two clear learning paths, followed by genuine existing course materials. */
.academy-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); max-width:1280px; margin:0 auto; padding:32px; border-bottom:1px solid var(--line); gap:22px; }
.academy-facts>div { display:flex; flex-direction:column; align-items:center; padding:5px 18px; text-align:center; border-right:1px solid var(--line); }
.academy-facts>div:last-child { border-right:0; }
.academy-facts strong { color:var(--ink); font-size:30px; line-height:1.3; letter-spacing:-.7px; font-weight:750; }
.academy-facts span,.academy-facts small { display:block; color:var(--muted); font-size:14px; line-height:1.65; margin-top:5px; }
.academy-programs,.academy-featured,.academy-author { max-width:1280px; padding:70px 32px 0; margin:0 auto; }
.academy-programs>.section-title { margin-bottom:28px; }
.academy-programs .section-title h2,.academy-featured .section-title h2 { font-size:34px; }
.program-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.program-card { display:flex; flex-direction:column; overflow:hidden; min-width:0; border:1px solid var(--line); border-radius:10px; background:var(--paper); box-shadow:var(--shadow); color:var(--ink); transition:border-color .16s,box-shadow .16s; }
.program-card:hover { color:var(--ink); border-color:#b6b8e5; box-shadow:0 12px 35px #2429650e; }
.program-card>img { width:100%; height:240px; object-fit:cover; object-position:center 38%; }
.program-card-body { display:flex; flex-direction:column; flex:1; align-items:flex-start; padding:28px; min-width:0; }
.program-card-body h2,.program-card-body h3 { margin:14px 0 12px; color:var(--ink); font-size:26px; line-height:1.35; letter-spacing:-.5px; }
.program-card-body p { color:var(--muted); font-size:15px; line-height:1.8; margin:0; }
.program-meta { display:flex; align-items:center; flex-wrap:wrap; gap:9px 20px; padding-top:22px; margin-top:auto; color:var(--muted); font-size:13px; line-height:1.6; }
.program-meta span { display:inline-flex; align-items:center; gap:6px; }
.program-meta svg { width:16px; height:16px; }
.program-card .card-bottom { align-self:stretch; width:100%; font-size:14px; margin-top:23px; }
.academy-featured .course-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.academy-featured .course-content h3 { font-size:17px; }
.academy-featured .course-content { padding:20px; }
.academy-author { padding-bottom:65px; }
.academy-author-inner,.academy-author>.paper { display:flex; align-items:center; gap:30px; padding:34px 38px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.academy-author img { width:110px; height:125px; object-fit:cover; object-position:center 25%; border-radius:8px; flex-shrink:0; }
.academy-author h2 { font-size:27px; margin:5px 0 10px; }
.academy-author p { max-width:760px; color:var(--muted); font-size:15px; line-height:1.8; }
.academy-author .button { margin-left:auto; flex-shrink:0; }

/* Curriculum catalogues, semester filters and readable topic panels. */
.catalog-toolbar,.review-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:25px 0 28px; }
.catalog-toolbar input[type=search],.review-toolbar input[type=search] { flex:1; min-width:220px; min-height:46px; padding:11px 14px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:var(--paper); font-size:15px; }
.catalog-toolbar select,.review-toolbar select { width:auto; min-width:170px; }
.semester-tabs,.topic-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.semester-tabs { margin:22px 0; }
.semester-tabs button,.semester-tabs a,.topic-tabs button,.topic-tabs a { min-height:44px; padding:11px 17px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--ink); font-size:14px; line-height:1.5; font-weight:650; }
.semester-tabs .active,.semester-tabs [aria-pressed=true],.topic-tabs .active,.topic-tabs [aria-current=page],.topic-tabs [aria-selected=true] { color:var(--primary); background:var(--pale); border-color:var(--primary); }
.topic-tabs { margin-bottom:25px; padding-bottom:17px; border-bottom:1px solid var(--line); }
.topic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:26px 0 34px; }
.topic-card { min-width:0; display:flex; flex-direction:column; padding:25px; background:var(--paper); border:1px solid var(--line); border-radius:9px; box-shadow:var(--shadow); color:var(--ink); }
.topic-card:hover { color:var(--ink); border-color:#aaace2; }
.topic-card h2,.topic-card h3 { margin:13px 0 12px; color:var(--ink); font-size:21px; line-height:1.4; letter-spacing:-.4px; }
.topic-card p { font-size:14px; color:var(--muted); line-height:1.8; margin:0 0 17px; }
.topic-card .topic-number,.topic-number { display:inline-flex; align-items:center; justify-content:center; width:37px; height:37px; border-radius:7px; color:var(--primary); background:var(--pale); font-size:14px; font-weight:750; }
.topic-card .topic-meta { display:flex; flex-wrap:wrap; gap:8px 15px; margin-top:auto; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.topic-card .button,.topic-card .card-bottom { margin-top:auto; }
.topic-card .badge { margin-bottom:7px; }
.topic-detail { max-width:1060px; margin:0 auto; }
.topic-detail>h1 { max-width:950px; margin:13px 0 20px; font-size:36px; line-height:1.3; }
.topic-detail .paper { margin-bottom:25px; }
.topic-detail p,.topic-detail li { color:var(--ink); line-height:1.85; font-size:16px; }
.topic-detail li+li { margin-top:9px; }
.topic-detail .source-link,.source-link { display:inline-flex; align-items:center; gap:7px; margin-top:18px; color:var(--primary); font-size:14px; text-decoration:underline; text-underline-offset:3px; }
.topic-detail .assignment-box,.assignment-box { padding:24px; margin:25px 0; border:1px solid var(--line); border-left:3px solid var(--primary); border-radius:7px; background:var(--surface-soft); }
.assignment-box h3 { margin-bottom:12px; }
.assignment-box ul,.assignment-box ol { padding-left:22px; }
.draft-notice { padding:14px 17px; border:1px solid #dfd5ad; border-radius:6px; background:#fff9e8; color:#59491d; font-size:14px; line-height:1.75; margin:22px 0; }
.dark .draft-notice { border-color:#685b35; background:#332e22; color:#f3dca0; }

/* Hard and soft skills, cases and evidence handed to a teacher. */
.skill-path-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin:30px 0; }
.skill-path-card { overflow:hidden; padding:30px; min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); }
.skill-path-card h2 { font-size:28px; margin:13px 0; }
.skill-path-card p { color:var(--muted); font-size:16px; line-height:1.8; }
.skill-path-card img { width:calc(100% + 60px); max-width:none; height:235px; object-fit:cover; margin:-30px -30px 26px; }
.skill-path-card .button { margin-top:22px; }
.skill-unit-list { display:grid; gap:16px; margin:25px 0; }
.skill-unit-list>a,.skill-unit-list>.skill-unit,.skill-unit-list>article { display:flex; align-items:center; gap:18px; padding:24px; min-width:0; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); }
.skill-unit-list h3 { font-size:21px; line-height:1.4; margin:0 0 7px; }
.skill-unit-list p { color:var(--muted); font-size:14px; line-height:1.75; margin:0; }
.skill-unit-list>*>div { min-width:0; }
.skill-unit-list .unit-number { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; background:var(--pale); color:var(--primary); border-radius:8px; font-weight:750; }
.skill-unit-list .unit-arrow { margin-left:auto; flex-shrink:0; color:var(--primary); }
.case-card { padding:27px; border:1px solid var(--line); border-left:3px solid var(--primary); border-radius:8px; margin:25px 0; background:var(--surface-soft); }
.case-card h3 { font-size:23px; margin:0 0 15px; }
.case-card p,.case-card li { color:var(--ink); font-size:16px; line-height:1.85; }
.case-card textarea { margin:18px 0 12px; min-height:180px; }
.case-card details { margin-top:18px; }
.case-card summary { color:var(--primary); font-size:14px; cursor:pointer; font-weight:650; }
.case-card details p { color:var(--muted); margin-top:15px; }
.submission-form { display:grid; gap:20px; padding:29px; margin:25px 0; border:1px solid var(--line); border-radius:9px; background:var(--paper); }
.submission-form label { display:block; color:var(--ink); font-size:14px; font-weight:650; line-height:1.65; }
.submission-form label input,.submission-form label textarea,.submission-form label select { margin-top:8px; }
.submission-form input[type=file] { display:block; width:100%; min-height:60px; margin:8px 0; padding:15px; border:1px dashed #a3a7c5; border-radius:7px; background:var(--surface-soft); color:var(--ink); font-size:14px; }
.submission-form textarea { min-height:160px; }
.submission-form .button { justify-self:start; }
.upload-help { color:var(--muted); font-size:13px; line-height:1.75; }
.submission-list { display:grid; gap:18px; margin:25px 0; }
.submission-card,.review-card { padding:27px; border:1px solid var(--line); border-radius:9px; background:var(--paper); box-shadow:var(--shadow); min-width:0; }
.submission-card h3,.review-card h3 { font-size:22px; margin:11px 0; }
.submission-card p,.review-card p { color:var(--muted); font-size:15px; line-height:1.8; }
.submission-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin:12px 0 18px; color:var(--muted); font-size:13px; }
.submission-files { display:flex; flex-wrap:wrap; gap:10px; margin:17px 0; }
.submission-files a { max-width:100%; display:inline-flex; align-items:center; gap:6px; padding:8px 12px; color:var(--primary); border:1px solid var(--line); border-radius:6px; font-size:13px; overflow-wrap:anywhere; }
.review-status { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:5px; color:#5e4c16; background:#fff6da; font-size:12px; line-height:1.6; font-weight:700; }
.review-status.reviewed,.review-status.approved,.review-status[data-status=reviewed] { color:var(--success); background:var(--success-bg); }
.review-status.revision,.review-status[data-status=revision] { color:var(--error); background:var(--error-bg); }
.dark .review-status { color:#f1d489; background:#443a25; }
.dark .review-status.reviewed,.dark .review-status.approved,.dark .review-status[data-status=reviewed] { color:var(--success); background:var(--success-bg); }
.dark .review-status.revision,.dark .review-status[data-status=revision] { color:var(--error); background:var(--error-bg); }
.review-toolbar { justify-content:space-between; }
.review-card+ .review-card { margin-top:22px; }
.review-card form { margin-top:20px; }
.rubric-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin:20px 0; }
.rubric-grid>label,.rubric-grid>.rubric-criterion { display:block; padding:18px; border:1px solid var(--line); border-radius:7px; background:var(--surface-soft); color:var(--ink); font-size:14px; font-weight:650; }
.rubric-grid select,.rubric-grid input { margin-top:10px; }
.rubric-grid small,.rubric-grid p { display:block; margin-top:8px; color:var(--muted); font-size:13px; line-height:1.7; font-weight:400; }
.teacher-feedback { margin:20px 0 0; padding:21px; border-radius:7px; background:var(--surface-soft); border:1px solid var(--line); }
.teacher-feedback strong { display:block; margin-bottom:8px; color:var(--ink); }
.teacher-feedback p { color:var(--ink); white-space:pre-wrap; }
.review-score { color:var(--primary); font-size:27px; font-weight:750; letter-spacing:-.5px; }
.review-empty { padding:45px 25px; text-align:center; border:1px dashed var(--line); border-radius:9px; background:var(--paper); }
.review-empty p { color:var(--muted); margin:12px auto 0; max-width:650px; }
.photo-credit { display:block; max-width:1240px; padding:8px 32px 0; margin:0 auto; color:var(--muted); font-size:11px; line-height:1.6; }
.photo-credit a { text-decoration:underline; text-underline-offset:2px; }

/* All functional learning pages retain their existing controls and selectors. */
.course-content h3 { font-size:20px; }
.course-content .desc { font-size:15px; }
.course-meta { font-size:12px; }
.card-bottom { font-size:14px; }
.lesson-heading h1 { font-size:34px; }
.lesson-heading p { font-size:16px; }
.tab { font-size:15px; }
.question h3 { font-size:20px; }
.option { font-size:16px; }
.question-type { font-size:12px; }
.video-card h3 { font-size:23px; }
.video-card p { font-size:15px; }
.video-provider { font-size:13px; }
.book-resource h2 { font-size:32px; }
label.field,dialog label { font-size:14px; }
input[type=text],input[type=url],input[type=number],.answer-input,textarea,select { font-size:15px; }
body.app-locked { background:radial-gradient(ellipse at 20% 15%,#f8f1dd 0,transparent 50%),radial-gradient(ellipse at 85% 80%,#e9e8fb 0,transparent 47%),#f9fafc; }
.dark body.app-locked { background:radial-gradient(ellipse at 20% 15%,#292b37 0,transparent 50%),radial-gradient(ellipse at 85% 80%,#2a2e4d 0,transparent 47%),#141624; }

@media(min-width:1500px) {
  .academy-hero-inner { min-height:735px; }
  .academy-hero h1 { font-size:62px; }
  .academy-hero-media { height:610px; }
}
@media(max-width:1250px) {
  .site-header,.site-header-inner { gap:18px; }
  .site-header { padding:16px 28px; min-height:84px; }
  .site-brand { font-size:25px; gap:8px; }
  .site-nav { gap:16px; }
  .site-nav a { font-size:12px; }
  .header-actions { gap:9px; }
  .header-actions>.button { padding:10px 11px; font-size:12px; }
  .academy-hero-inner { gap:35px; min-height:620px; }
  .academy-hero h1 { font-size:49px; }
  .academy-hero-media { height:510px; }
  .academy-search button { padding-left:19px; padding-right:19px; }
  .academy-featured .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:1050px) {
  .site-header,.site-header-inner { flex-wrap:wrap; gap:14px 22px; }
  .site-header { padding:16px 28px 12px; }
  .header-actions { margin-left:auto; }
  .site-nav { order:3; flex:1 1 100%; justify-content:flex-start; gap:27px; border-top:1px solid var(--line); padding-top:7px; }
  .site-nav a { min-height:37px; font-size:13px; }
  .academy-hero-inner { min-height:590px; gap:25px; padding-top:40px; padding-bottom:45px; }
  .academy-hero h1 { font-size:43px; letter-spacing:-1.25px; }
  .academy-hero-copy>p { font-size:16px; margin-top:21px; }
  .academy-hero-media { height:460px; }
  .academy-search { flex-wrap:wrap; }
  .academy-search input { flex:1 1 150px; min-height:48px; }
  .academy-search button { min-height:49px; padding:12px 16px; font-size:14px; }
  .hero-fact { right:-8px; bottom:25px; min-width:185px; padding:17px 20px; }
  .hero-fact strong { font-size:28px; }
  .academy-programs,.academy-featured,.academy-author { padding-top:55px; }
  .program-grid { gap:23px; }
  .program-card-body { padding:24px; }
  .program-card-body h2 { font-size:24px; }
  .program-card>img { height:210px; }
  .topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .academy-author-inner,.academy-author>.paper { padding:28px; gap:22px; flex-wrap:wrap; }
  .academy-author .button { margin-left:132px; }
}
@media(max-width:760px) {
  html { scroll-padding-top:105px; }
  .site-header { min-height:79px; padding:15px 21px; gap:12px; }
  .site-header-inner { gap:12px; }
  .site-brand { font-size:23px; gap:8px; }
  .site-brand>svg { width:33px; height:33px; }
  .site-brand .brand-icon { width:33px; height:33px; }
  .site-brand small { display:none; }
  .header-actions { gap:9px; margin-left:auto; }
  .header-actions>.button { display:none; }
  .header-actions .theme-control { min-height:39px; margin-left:0; padding:3px 5px; }
  .site-menu-toggle,.site-header .mobile-only,.site-header .icon-button.mobile-only { display:inline-grid; order:2; min-width:36px; min-height:39px; border:1px solid var(--line); border-radius:6px; }
  .site-nav { display:none; flex:1 1 100%; order:4; padding:16px 0 3px; border-top:1px solid var(--line); gap:2px; }
  .site-nav.open { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-nav a { min-height:44px; padding:10px 12px; justify-content:flex-start; font-size:14px; border-radius:5px; white-space:normal; }
  .site-nav a:hover,.site-nav a.active { background:var(--pale); }
  .site-nav a.active:after,.site-nav a[aria-current=page]:after { display:none; }
  main { padding:32px 23px 23px; }
  .footer { padding:23px; font-size:12px; }
  .academy-hero-inner { grid-template-columns:1fr; min-height:0; gap:32px; padding:42px 24px 44px; }
  .academy-hero-copy { max-width:620px; padding:0; }
  .academy-hero-copy>.eyebrow { font-size:12px; margin-bottom:16px; }
  .academy-hero h1 { max-width:600px; font-size:43px; line-height:1.2; letter-spacing:-1.3px; }
  .academy-hero-copy>p { max-width:570px; font-size:16px; margin-top:20px; }
  .academy-search { margin-top:26px; flex-wrap:nowrap; max-width:590px; }
  .academy-search input { min-height:53px; padding:12px; font-size:14px; }
  .academy-search button { min-height:53px; font-size:14px; padding:13px 19px; }
  .academy-hero-media { max-width:460px; width:100%; height:430px; margin:0 auto; padding-right:10px; }
  .hero-fact { bottom:25px; right:0; min-width:190px; }
  .academy-facts { grid-template-columns:repeat(2,minmax(0,1fr)); padding:28px 22px; gap:23px 12px; }
  .academy-facts>div:nth-child(2) { border-right:0; }
  .academy-facts strong { font-size:28px; }
  .academy-facts span,.academy-facts small { font-size:13px; }
  .academy-programs,.academy-featured,.academy-author { padding:45px 24px 0; }
  .academy-programs .section-title h2,.academy-featured .section-title h2 { font-size:29px; }
  .program-grid { gap:20px; }
  .program-card>img { height:175px; }
  .program-card-body { padding:22px; }
  .program-card-body h2,.program-card-body h3 { font-size:23px; }
  .program-card-body p { font-size:14px; }
  .program-meta { font-size:12px; padding-top:18px; gap:8px 13px; }
  .academy-featured .course-grid { gap:20px; }
  .academy-author { padding-bottom:42px; }
  .academy-author-inner,.academy-author>.paper { gap:20px; padding:25px; }
  .academy-author img { width:90px; height:110px; }
  .academy-author h2 { font-size:24px; }
  .academy-author .button { margin-left:110px; }
  .section-title h2 { font-size:27px; }
  .section-title p { font-size:14px; }
  h1 { font-size:30px; }
  .paper { padding:25px; }
  .paper h2 { font-size:24px; }
  .lesson-heading h1,.topic-detail>h1 { font-size:30px; }
  .topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .topic-card { padding:22px; }
  .topic-card h2,.topic-card h3 { font-size:20px; }
  .skill-path-grid { gap:20px; }
  .skill-path-card { padding:24px; }
  .skill-path-card img { width:calc(100% + 48px); margin:-24px -24px 22px; height:190px; }
  .skill-path-card h2 { font-size:25px; }
  .skill-path-card p { font-size:15px; }
  .submission-form,.submission-card,.review-card { padding:24px; }
  .rubric-grid { gap:12px; }
  .photo-credit { padding:8px 24px 0; }
}
@media(max-width:560px) {
  .site-header { min-height:74px; padding:12px 16px; gap:9px; }
  .site-header-inner { gap:9px; }
  .site-brand { font-size:21px; gap:6px; letter-spacing:-.7px; }
  .site-brand .brand-icon { width:31px; height:31px; border-radius:7px; }
  .site-brand>svg { width:31px; height:31px; }
  .header-actions { gap:7px; }
  .header-actions .avatar { width:32px; height:32px; font-size:14px; }
  .header-actions .theme-control { min-height:36px; gap:3px; padding:2px 4px; }
  .header-actions #theme-icon svg { width:15px; height:15px; }
  .header-actions #theme-select { min-width:85px; min-height:30px; font-size:12px; padding:3px 0; }
  .site-menu-toggle,.site-header .mobile-only,.site-header .icon-button.mobile-only { min-width:33px; min-height:35px; padding:6px; }
  .site-nav.open { grid-template-columns:1fr; }
  .site-nav a { min-height:42px; }
  main { padding:28px 18px 20px; }
  .academy-hero-inner { padding:37px 21px 35px; gap:29px; }
  .academy-hero h1 { font-size:35px; line-height:1.22; letter-spacing:-1.1px; }
  .academy-hero-copy>.eyebrow { font-size:11px; letter-spacing:.03em; margin-bottom:13px; }
  .academy-hero-copy>p { font-size:15px; line-height:1.8; margin-top:19px; }
  .academy-search { padding:4px; gap:4px; margin-top:24px; }
  .academy-search input { min-height:49px; padding:10px 11px; font-size:13px; }
  .academy-search>svg { display:none; }
  .academy-search button { min-height:49px; padding:11px 14px; font-size:13px; }
  .academy-search button svg { width:16px; height:16px; }
  .academy-hero-media { height:365px; max-width:370px; padding:0 7px 0 0; }
  .academy-hero-media:before { inset:30px 0 -8px 18px; }
  .hero-fact { min-width:170px; padding:16px 18px; bottom:20px; right:0; }
  .hero-fact strong { font-size:27px; }
  .hero-fact span,.hero-fact small { font-size:12px; }
  .hero-fact .fact-icon { width:39px; height:39px; margin-right:10px; }
  .hero-fact svg { width:23px; height:23px; }
  .academy-facts { padding:25px 18px; gap:20px 10px; }
  .academy-facts>div { padding:3px 7px; }
  .academy-facts strong { font-size:26px; }
  .academy-facts span,.academy-facts small { font-size:12px; }
  .academy-programs,.academy-featured,.academy-author { padding:39px 20px 0; }
  .academy-programs .section-title h2,.academy-featured .section-title h2 { font-size:27px; line-height:1.3; }
  .program-grid,.academy-featured .course-grid,.topic-grid,.skill-path-grid,.rubric-grid { grid-template-columns:1fr; }
  .program-card>img { height:215px; }
  .program-card-body { padding:25px; }
  .program-card-body h2,.program-card-body h3 { font-size:25px; }
  .program-card-body p { font-size:15px; }
  .program-meta { font-size:13px; }
  .academy-featured .course-content h3 { font-size:20px; }
  .academy-author { padding-bottom:38px; }
  .academy-author-inner,.academy-author>.paper { align-items:flex-start; gap:18px; padding:24px; }
  .academy-author h2 { font-size:23px; }
  .academy-author p { font-size:14px; }
  .academy-author .button { margin-left:0; width:100%; }
  .footer { font-size:12px; padding:23px 20px; }
  .catalog-toolbar,.review-toolbar { align-items:stretch; gap:12px; }
  .catalog-toolbar input[type=search],.review-toolbar input[type=search],.catalog-toolbar select,.review-toolbar select { flex:1 1 100%; width:100%; min-width:0; }
  .semester-tabs { gap:7px; }
  .semester-tabs button,.semester-tabs a,.topic-tabs button,.topic-tabs a { padding:10px 13px; font-size:13px; }
  .topic-tabs { gap:8px; }
  .topic-card { padding:24px; }
  .topic-card h2,.topic-card h3 { font-size:22px; }
  .topic-detail>h1,.lesson-heading h1 { font-size:28px; }
  .topic-detail p,.topic-detail li,.case-card p,.case-card li { font-size:15px; }
  .case-card { padding:23px; }
  .case-card h3 { font-size:22px; }
  .skill-path-card { padding:25px; }
  .skill-path-card img { width:calc(100% + 50px); margin:-25px -25px 24px; height:220px; }
  .skill-unit-list>a,.skill-unit-list>.skill-unit,.skill-unit-list>article { padding:21px; gap:14px; align-items:flex-start; }
  .skill-unit-list h3 { font-size:20px; }
  .skill-unit-list .unit-number { width:36px; height:36px; font-size:13px; }
  .skill-unit-list .unit-arrow { display:none; }
  .submission-form,.submission-card,.review-card { padding:23px; }
  .submission-form .button { width:100%; }
  .submission-card h3,.review-card h3 { font-size:21px; }
  .rubric-grid>label,.rubric-grid>.rubric-criterion { padding:16px; }
  .paper { padding:23px; }
  .paper h2 { font-size:23px; }
  .paper p,.step p,.key-term p,.book-resource p,.portfolio-item p,.option { font-size:15px; }
  .button { font-size:14px; }
  .question h3 { font-size:19px; }
  .photo-credit { padding:8px 20px 0; }
}
@media(max-width:365px) {
  .site-header { padding:12px; }
  .site-brand { font-size:20px; }
  .site-brand .brand-icon { width:29px; height:29px; }
  .header-actions { gap:5px; }
  .header-actions #theme-select { min-width:77px; font-size:11px; }
  .header-actions #theme-icon { display:none; }
  .header-actions .avatar { width:29px; height:29px; }
  .academy-hero h1 { font-size:32px; }
  .academy-search button { padding-left:11px; padding-right:11px; }
}
@media print {
  .site-header,.academy-search,.academy-hero-media,.academy-facts,.photo-credit,.submission-form,.review-toolbar { display:none!important; }
  .academy-hero { background:none; border:0; }
  .academy-hero-inner { display:block; min-height:0; padding:0; }
  .academy-hero h1 { font-size:28pt; }
  .academy-hero-copy>p { color:#333; }
  .academy-programs,.academy-featured,.academy-author { padding:22px 0 0; }
  .topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .topic-card,.submission-card,.review-card { break-inside:avoid; box-shadow:none; }
}

/* Complete workspace and fifteen-question written practice. */
.academy-workspace{max-width:1220px;margin:0 auto;padding:36px 24px 56px}.workspace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.workspace-card{display:block;padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);text-decoration:none}.workspace-card>svg{width:30px;height:30px;color:var(--primary)}.workspace-card h3{margin:16px 0 10px;font-size:21px}.workspace-card p{color:var(--muted);line-height:1.65}.workspace-card>span{display:block;margin-top:18px;font-weight:700;color:var(--primary)}.guided-practice{margin:28px 0}.guided-question-list{display:grid;gap:20px}.guided-question{display:grid;gap:12px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.guided-question>span{line-height:1.6;color:var(--ink)}.guided-question b{display:inline-block;margin-right:9px;color:var(--primary)}.guided-question textarea{min-height:100px}.guided-question:focus-within{border-color:var(--primary)}@media(max-width:900px){.workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.workspace-grid{grid-template-columns:1fr}.academy-workspace{padding:24px 18px 36px}.guided-question{padding:16px}}
