/* Shared application presentation; palette and design scales live in tokens.css. */
.font-display{font-family:var(--display);letter-spacing:-.04em}
.orange{color:var(--brand-hover)}
.sidebar-bottom{margin-top:auto;padding-top:24px}
.curiosity{box-shadow:var(--e1);padding:20px;border-radius:var(--radius-card)}
.curiosity p{font:600 22px/1.35 var(--display);letter-spacing:-.04em;margin:12px 0}
.profile{display:flex;align-items:center;gap:8px;padding:24px 0}
.profile strong{display:block;font-size:12px}
.profile small{display:block;font-size:12px}
.profile form{margin-left:auto}
.profile > a{margin-left:auto}
.free-badge i{height:6px;width:6px;border-radius:var(--radius-pill);background:var(--success)}
.date-label{font-size:12px;white-space:nowrap}
.planet::before{content:'';position:absolute;inset:26px;border-radius:var(--radius-pill);box-shadow:var(--e2)}
.planet::after{content:'';position:absolute;inset:50px;border-radius:var(--radius-pill);box-shadow:var(--e1);background:var(--bg)}
.moon{position:absolute;width:40px;height:40px;border-radius:var(--radius-pill);box-shadow:var(--e1);left:15%;top:68%;background:var(--bg)}
.spark{position:absolute;color:var(--brand-hover);font-size:36px}
.s1{top:12%;left:17%}
.s2{bottom:14%;right:12%}
.section-heading a{color:var(--brand-hover);font-size:13px;font-weight:600}
.cover-symbol{font-size:140px;position:absolute;inset:-22px 0 0;text-align:center;color:var(--text-3)}
.practice-symbol{font-size:36px;color:var(--brand-hover)}
.practice-callout p{color:var(--text-2);font-size:12px;margin-top:8px}
.practice-callout .eyebrow{margin-bottom:8px}
.progress-number{font:600 48px var(--display);margin-top:24px}
.progress-number span{font:500 16px var(--body);color:var(--text-2)}
.journey-row{display:flex;justify-content:space-between;font-size:12px;padding:8px 0}
.journey-note{margin-top:24px;color:var(--text-2);font-size:14px}
.little-note{margin-top:24px;color:var(--text-2);font-size:14px}
.search-label > span{font-size:24px}
.search-label input{width:100%}
.card-meta{display:flex;justify-content:space-between;gap:8px;margin-top:20px;font-size:12px}
.auth-art{margin-top:24px}
.auth-stats{display:flex;gap:20px;font-size:12px;margin-top:24px}
.auth-stats strong{display:block;font-size:24px}
.auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:24px 0;font-size:13px}
.auth-links a{text-decoration:underline}
.form-footnote{margin-top:24px;font-size:12px;color:var(--text-2)}
.helptext ul{padding-left:20px}
.player-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:280px;gap:16px}
.player-placeholder > span{font-size:36px}
.player-placeholder small{color:var(--text-2)}
.paper-decoration{font-size:60px;color:var(--brand-hover)}
summary{cursor:pointer;min-height:44px;padding-top:12px;color:var(--brand-hover)}
details form{display:grid;gap:12px;padding:16px 0}
.approval-card h2{margin-bottom:8px}
.answer-review{box-shadow:var(--e1);border-radius:var(--radius-card);padding:24px;margin:24px 0}
.correct{color:var(--success)}
.incorrect{color:var(--error)}
.mfa-qr{max-width:240px;display:block;margin:20px 0}
.secret-code{overflow-wrap:anywhere}
code{overflow-wrap:anywhere}
.danger-zone{margin-top:32px}
.mobile-header{display:none}
@media(max-width:1279px){.date-label{display:none}}
@media(max-width:767px){.curiosity{display:none}}
@media(max-width:767px){.sidebar-bottom{padding:0}}
@media(max-width:767px){.profile{padding-bottom:12px}}
@media(max-width:767px){.free-badge{display:none}}
@media(max-width:767px){.o2{width:270px;height:270px;left:calc(50% - 135px)}}
@media(max-width:767px){.o1{width:235px;height:235px;left:calc(50% - 117px)}}
@media(max-width:767px){.planet{width:150px;height:150px;left:calc(50% - 75px);top:20%}}
@media(max-width:767px){.art-caption{bottom:16px}}
@media(max-width:767px){.practice-callout{padding:24px}}
@media(max-width:767px){.practice-callout .eyebrow{font-size:12px}}
@media(max-width:767px){.section-heading h2{font-size:20px}}
@media(max-width:767px){.lesson-toolbar{flex-wrap:wrap}}
@media(max-width:767px){.player-placeholder{min-height:180px}}
@media(max-width:767px){.player-placeholder > span{display:none}}
@media(max-width:767px){.player-placeholder small{font-size:12px}}
@media(max-width:767px){.auth-links a{display:inline-flex;align-items:center;min-height:44px}}
@media(max-width:767px){.text-link{display:inline-flex;align-items:center;min-height:44px}}
.guest-journey-title{margin:24px 0 16px}
.qr{display:block;width:min(100%,240px);height:auto;margin:24px 0;border-radius:var(--radius-card)}
.setup-key{overflow-wrap:anywhere}
.explanation{color:var(--text-2)}
.planet{position:absolute;width:184px;height:184px;box-shadow:var(--e1);top:21%;left:calc(50% - 92px);animation:none;background:var(--selected-bg);border-radius:var(--radius-pill);transform:rotate(-8deg)}
.orbit{position:absolute;width:275px;height:275px;top:7%;left:calc(50% - 137px);border:1px dashed var(--border-brand);box-shadow:none;border-radius:var(--radius-pill)}
.o1{border:1px dashed var(--border-brand);box-shadow:none;border-radius:var(--radius-pill)}
.o2{width:320px;height:320px;top:0;left:calc(50% - 160px);border:1px dashed var(--border-brand);box-shadow:none;border-radius:var(--radius-pill)}
@media(max-width:767px){.mobile-header{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:30;padding:16px 24px;background:var(--border-brand);backdrop-filter:blur(16px);box-shadow:var(--e1);margin:8px;border-radius:var(--radius-pill);border:1px solid var(--border)}}
nav[aria-label="Operations sections"]{margin-bottom:32px;gap:8px}
@media print{.mobile-header{display:none !important}}
@media print{form{display:none !important}}
@media print{nav[aria-label="Operations sections"]{display:none !important}}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px!important;max-width:1px!important;min-width:0!important;height:1px!important;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.metric-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.trend-chart svg{width:100%;max-width:800px;height:auto}
fieldset{border:0;padding:0;margin:20px 0}
.dob-control{display:flex;gap:16px;align-items:flex-start;min-height:105px}
.dob-segment{flex:1;min-width:0}
.dob-segment input[type=number]{width:100%}
.dob-slider-panel{padding:12px 0px;display:flex;gap:4px;align-items:center}
.dob-slider-panel input{min-width:0;width:100%}
.dob-slider-panel button{min-width:30px;min-height:36px}
.dob-slider-panel .year-slider{writing-mode:vertical-lr;direction:rtl;width:30px;height:160px}
meter{width:100%;height:22px}
@media(max-width:767px){.dob-control{gap:8px}}
@media(max-width:767px){.dob-slider-panel{flex-wrap:wrap}}
.date-wheels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:520px}
.date-column>label{display:block;text-align:center;margin-bottom:8px;font-weight:600}
.date-column>input{width:100%;margin-top:12px;text-align:center}
.wheel-values{position:relative;pointer-events:none}
.wheel-row{height:36px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;color:var(--text-2);font-variant-numeric:tabular-nums}
.wheel-row:first-child{opacity:.38}
.wheel-row:last-child{opacity:.38}
#onboarding-form{max-width:720px}
#id_age[readonly]{max-width:90px;background:var(--surface-2)}
@media(prefers-reduced-motion:reduce){*::before{animation:none!important;transition:none!important;scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(prefers-reduced-motion:reduce){*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.menu-toggle{min-width:var(--control-size);min-height:var(--control-size);cursor:pointer}
.card-cue{display:inline-block;transition:transform var(--base) var(--out)}
.is-processing{padding-right:40px}
.quiz-stepper progress{margin:0}
.row-select{min-width:44px;min-height:44px;display:grid;place-items:center}
.details-panel article{margin:24px 0}
.details-panel h2{margin:20px 0 8px}
.search-control.is-searching:after{content:'';position:absolute;right:48px;width:12px;height:12px;border:2px solid var(--brand);border-right-color:transparent;border-radius:var(--radius-pill);animation:spin .7s linear infinite}
.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.filter-chip{background:var(--selected-bg);border:1px solid var(--border-brand);border-radius:var(--radius-pill);padding:8px 12px;min-height:44px;font-size:14px;color:var(--brand-hover)}
.search-loading{opacity:.5;pointer-events:none}
.route-progress.is-loading{animation:route-loading 8s var(--out) forwards}
.admin-experience{font-size:14px}
.admin-experience input:not([type=checkbox]):not([type=radio]){min-height:40px;padding:8px 12px}
.admin-experience select{min-height:40px;padding:8px 12px}
.admin-experience td{padding:12px 16px}
.admin-experience th{padding:12px 16px}
@media (hover: hover) and (pointer: fine){a:hover .card-cue{transform:translateX(4px)}}
@media (hover: hover) and (pointer: fine){.text-link:hover:after{transform:scaleX(1)}}
@media(pointer:coarse){.admin-experience input{min-height:44px}}
@media(pointer:coarse){.admin-experience select{min-height:44px}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes dialog-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes route-loading{0%{transform:scaleX(.05)}40%{transform:scaleX(.6)}100%{transform:scaleX(.92)}}
@keyframes shimmer{0%,100%{opacity:.55}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.card-cue{transform:none!important}}
@media(prefers-reduced-motion:reduce){.route-progress.is-loading{transform:scaleX(.8)}}
svg text{fill:var(--text-2)}
::selection{background:var(--selected-bg);color:var(--text-1)}
.theme-changing{transition:background-color 200ms,color 200ms,border-color 200ms}
.theme-changing :is(header,main,article,section,button,input,select,aside,footer,dialog){transition:background-color 200ms,color 200ms,border-color 200ms}
.theme-moon{opacity:0;transform:rotate(-60deg) scale(.6)}
[data-theme=dark] .theme-moon{opacity:1;transform:none}
[data-theme=dark] .theme-sun{opacity:0;transform:rotate(60deg) scale(.6)}
[data-theme=dark] img{filter:brightness(.92)}
mark{color:var(--warning);background:var(--warning-bg)}
.toast-timer{position:absolute;bottom:0;left:0;width:100%;height:3px;background:var(--success);transform-origin:left;animation:toast-countdown var(--toast-duration,4s) linear forwards}
@keyframes toast-countdown{to{transform:scaleX(0)}}
.animations-paused *{animation-play-state:paused!important}
.animations-paused *:before{animation-play-state:paused!important}
.animations-paused *:after{animation-play-state:paused!important}
.click-pulse{position:relative;isolation:isolate;overflow:hidden}
.click-pulse:before{content:'';position:absolute;left:var(--x,50%);top:var(--y,50%);width:28px;height:28px;border:2px solid currentColor;border-radius:var(--radius-pill);pointer-events:none;animation:click-pulse 200ms var(--out)}
@keyframes click-pulse{from{opacity:.4;transform:translate(-50%,-50%) scale(.1)}to{opacity:0;transform:translate(-50%,-50%) scale(8)}}
.rolling-number{display:inline-flex;font-variant-numeric:tabular-nums;line-height:1em;vertical-align:baseline}
.rolling-number>[aria-hidden=true]{display:inline-flex;line-height:1}
.rolling-digit{display:block;height:1em;width:1ch;line-height:1;overflow:hidden;contain:paint}
.rolling-strip{display:flex;flex-direction:column;transform:translateY(calc(var(--digit,0)*-1em));transition:transform var(--dur-expressive) var(--out)}
.rolling-strip span{display:flex;align-items:center;justify-content:center;height:1em;line-height:1;flex:none;overflow:hidden}
.rolling-digit.is-new{animation:digit-in 200ms var(--out)}
@keyframes digit-in{from{opacity:0;transform:translateY(.4em)}to{opacity:1;transform:none}}
.rolling-digit.is-leaving{opacity:0;transition:opacity 200ms}
.reveal-pending{opacity:0;transform:translateY(20px)}
.revealed{opacity:1;transform:none;transition:transform 200ms var(--out),opacity 200ms var(--out)}
.scroll-marker{position:absolute;left:0;width:1px;pointer-events:none}
.header-marker{top:8px;height:1px}
.top-marker{top:600px;height:1px}
@supports(animation-timeline:scroll()){.reading-progress{display:block;animation:reading-fill linear;animation-timeline:scroll(root block)}}
@supports(animation-timeline:scroll()){@keyframes reading-fill{to{transform:scaleX(1)}}}
@view-transition{navigation:auto}
::view-transition-old(root){animation-duration:150ms;animation:page-out 200ms var(--out)}
::view-transition-new(root){animation-duration:150ms;animation:page-in 200ms var(--out)}
@keyframes page-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes page-out{to{opacity:0}}
.save-indicator[data-state=saved]{color:var(--success)}
.command-results a:hover{background:var(--selected-bg);color:var(--brand)}
.command-results a:focus{background:var(--selected-bg);color:var(--brand)}
.network-banner[hidden]{display:none}
@media(max-width:479px){.topbar-right{margin-left:auto}}
@media(max-width:479px){.theme-options{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.theme-toggle svg{transition:none;animation:none;transform:none}}
@media(prefers-reduced-motion:reduce){.revealed{transition:none;animation:none;transform:none}}
@media(prefers-reduced-motion:reduce){.rolling-strip{transition:none;animation:none;transform:translateY(calc(var(--digit,0)*-1em))}}
@media(prefers-reduced-motion:reduce){.click-pulse:before{display:none}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root){animation:none!important}}
@media(prefers-reduced-motion:reduce){::view-transition-new(root){animation:none!important}}
@media print{img{filter:none!important}}
.offscreen-animation{animation-play-state:paused!important}
.offscreen-animation:before{animation-play-state:paused!important}
.offscreen-animation:after{animation-play-state:paused!important}
.command-trigger{font-size:24px}
.save-indicator[data-state=dirty]{color:var(--warning)}
@font-face{font-family:'Learning Sans';src:url("learning-sans.1cf351c501d9.woff2") format('woff2');font-weight:400;font-display:swap}
*{scrollbar-color:var(--border-strong) var(--surface-2);box-sizing:border-box}
html{scroll-padding-top:calc(var(--header-height) + 24px);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text-1);font:var(--weight-body) var(--student-body)/var(--student-line) var(--body)}
body::after{display:none}
body.admin-experience{font-size:var(--admin-body);line-height:var(--admin-line)}
input{font-family:inherit}
a{color:inherit;text-decoration:none;touch-action:manipulation}
img{max-width:100%}
video{max-width:100%}
svg{max-width:100%}
p{margin:0;overflow-wrap:anywhere}
p+p{margin-top:var(--space-4)}
.page-heading h1{font-size:clamp(24px,2.4vw,32px);line-height:1.25;font-weight:var(--weight-title)}
h4{margin:0;font-family:var(--body);font-weight:var(--weight-heading);letter-spacing:-.02em;overflow-wrap:anywhere;text-wrap:pretty;font-size:var(--student-body);line-height:var(--student-line)}
h1{margin:0;font-family:var(--body);letter-spacing:-.02em;overflow-wrap:anywhere;text-wrap:pretty;font-size:clamp(24px,2.4vw,32px);line-height:1.25;font-weight:var(--weight-title);scroll-margin-top:calc(var(--header-height) + 24px)}
h2{margin:0;font-family:var(--body);font-weight:var(--weight-heading);letter-spacing:-.02em;overflow-wrap:anywhere;text-wrap:pretty;font-size:var(--text-2xl);line-height:var(--line-2xl);scroll-margin-top:calc(var(--header-height) + 24px)}
h3{margin:0;font-family:var(--body);font-weight:var(--weight-heading);letter-spacing:-.02em;overflow-wrap:anywhere;text-wrap:pretty;font-size:var(--text-lg);line-height:var(--line-lg);scroll-margin-top:calc(var(--header-height) + 24px)}
[id]{scroll-margin-top:calc(var(--header-height) + 24px)}
small{font-size:var(--caption);line-height:var(--caption-line);color:var(--text-2)}
.tiny{font-size:var(--caption);line-height:var(--caption-line);color:var(--text-2)}
.muted{color:var(--text-2)}
.eyebrow{display:block;font-size:var(--caption);line-height:var(--caption-line);font-weight:var(--weight-heading);letter-spacing:.06em;color:var(--text-2)}
.workspace-label{font-size:var(--caption);line-height:var(--caption-line);font-weight:var(--weight-heading);letter-spacing:.06em;color:var(--text-2)}
.prose{max-width:var(--width-reading);line-height:1.625}
.prose p{max-width:70ch}
.prose ul{padding-left:var(--space-6)}
.prose ol{padding-left:var(--space-6)}
.prose li+li{margin-top:var(--space-2)}
.prose h2{margin-top:var(--space-8);margin-bottom:var(--space-3)}
.prose h3{margin-top:var(--space-8);margin-bottom:var(--space-3)}
.page-heading>*{min-width:0}
.resource-grid>*{min-width:0}
.stats-grid>*{min-width:0}
.detail-columns>*{min-width:0}
.dashboard-columns>*{min-width:0}
.action-row>*{min-width:0}
.filter-bar>*{min-width:0}
button{font-family:inherit;touch-action:manipulation;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;min-height:40px;max-width:100%;width:auto;flex-shrink:0;margin:0;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-control);background:var(--brand);color:var(--on-brand);font-size:var(--admin-body);line-height:20px;font-weight:var(--weight-label);white-space:nowrap;text-align:center;text-decoration:none;cursor:pointer;box-shadow:none;transition:background-color var(--fast),border-color var(--fast),color var(--fast),transform var(--fast),box-shadow var(--fast)}
.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;min-height:40px;max-width:100%;width:auto;flex-shrink:0;margin:0;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-control);background:var(--brand);color:var(--on-brand);font-size:var(--admin-body);line-height:20px;font-weight:var(--weight-label);white-space:nowrap;text-align:center;text-decoration:none;cursor:pointer;box-shadow:none;transition:background-color var(--fast),border-color var(--fast),color var(--fast),transform var(--fast),box-shadow var(--fast)}
.button>span{line-height:20px}
button>span{line-height:20px}
.button svg{display:block;width:20px;height:20px;flex:none;stroke-width:1.75}
button svg{display:block;width:20px;height:20px;flex:none;stroke-width:1.75}
.button.secondary{background:var(--surface-1);border-color:var(--border-strong);color:var(--text-1)}
.button.ghost{background:transparent;color:var(--text-2)}
.text-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;min-height:40px;max-width:100%;width:auto;flex-shrink:0;margin:0;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-control);font-size:var(--admin-body);line-height:20px;font-weight:var(--weight-label);white-space:nowrap;text-align:center;text-decoration:none;cursor:pointer;box-shadow:none;transition:background-color var(--fast),border-color var(--fast),color var(--fast),transform var(--fast),box-shadow var(--fast);background:transparent;color:var(--text-2)}
.button.danger{background:var(--error);color:var(--surface-1);border-color:var(--error)}
button[value=delete]{background:var(--error);color:var(--surface-1);border-color:var(--error)}
[data-theme=dark] .button.danger{color:var(--bg)}
[data-theme=dark] button[value=delete]{color:var(--bg)}
.button.link{height:auto;padding:0;background:transparent;color:var(--brand);text-decoration:underline;text-underline-offset:4px}
.button.sm{height:32px;min-height:32px;padding-inline:var(--space-3)}
.button.lg{height:48px;min-height:48px;padding-inline:var(--space-5);font-size:var(--student-body)}
.student-experience .hero .button{height:48px;min-height:48px;padding-inline:var(--space-5);font-size:var(--student-body)}
.student-experience .auth-form>.stack-form>button{height:48px;min-height:48px;padding-inline:var(--space-5);font-size:var(--student-body)}
.student-experience .quiz-form>button{height:48px;min-height:48px;padding-inline:var(--space-5);font-size:var(--student-body)}
.button.full{width:100%}
.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;min-width:40px;min-height:40px;padding:0;background:var(--surface-2);color:var(--text-1);border:1px solid transparent;border-radius:var(--radius-control);font-size:20px;line-height:1}
.button:active:not(:disabled):not([aria-disabled=true]){transform:scale(.97)}
button:active:not(:disabled){transform:scale(.97)}
button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;pointer-events:auto}
.button[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;pointer-events:auto}
.button.is-processing{padding-inline:var(--space-4)}
.is-processing:after{pointer-events:none;content:'';position:absolute;width:12px;height:12px;right:2px;top:calc(50% - 6px);border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-pill);animation:spin .8s linear infinite}
.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
form>.action-row{justify-content:flex-end}
dialog .action-row{justify-content:flex-end}
.text-link{position:relative;text-decoration:none;background-image:linear-gradient(var(--brand),var(--brand));background-repeat:no-repeat;background-size:0 1px;background-position:0 100%;transition:color 150ms;color:var(--brand);font-size:var(--admin-body);font-weight:var(--weight-label);text-underline-offset:4px}
.back-link{color:var(--brand);font-size:var(--admin-body);font-weight:var(--weight-label);text-underline-offset:4px;display:inline-flex;align-items:center;min-height:44px;margin-bottom:var(--space-4)}
.text-link:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 150ms}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]){max-width:100%;min-width:0;height:40px;min-height:40px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-1);font-size:var(--admin-body);line-height:22px;box-shadow:none;transition:border-color var(--fast),box-shadow var(--fast),background-color var(--fast)}
select{font-family:inherit;max-width:100%;min-width:0;height:40px;min-height:40px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-1);font-size:var(--admin-body);line-height:22px;box-shadow:none;transition:border-color var(--fast),box-shadow var(--fast),background-color var(--fast)}
textarea{font-family:inherit;max-width:100%;min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-1);font-size:var(--admin-body);line-height:22px;box-shadow:none;transition:border-color var(--fast),box-shadow var(--fast),background-color var(--fast);height:auto;min-height:120px;padding:var(--space-3);resize:vertical}
.student-experience input:not([type=checkbox]):not([type=radio]):not([type=hidden]){height:44px;min-height:44px;font-size:var(--student-body)}
.student-experience select{height:44px;min-height:44px;font-size:var(--student-body)}
input::placeholder{color:var(--text-3)}
textarea::placeholder{color:var(--text-3)}
label{font-size:var(--admin-body);font-weight:var(--weight-label);line-height:22px}
.stack-form label{font-size:var(--admin-body);font-weight:var(--weight-label);line-height:22px}
input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-soft)}
select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-soft)}
textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-soft)}
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
input[aria-invalid=true]{border-color:var(--error)!important;box-shadow:0 0 0 3px var(--error-soft)!important}
select[aria-invalid=true]{border-color:var(--error)!important;box-shadow:0 0 0 3px var(--error-soft)!important}
textarea[aria-invalid=true]{border-color:var(--error)!important;box-shadow:0 0 0 3px var(--error-soft)!important}
.field-invalid{border-color:var(--error)!important;box-shadow:0 0 0 3px var(--error-soft)!important}
.helptext{font-size:var(--caption);line-height:var(--caption-line);color:var(--text-2);display:block;margin-top:6px}
.field-error{color:var(--error);font-size:var(--meta);line-height:var(--meta-line);display:block;margin-top:6px}
.errorlist{color:var(--error);font-size:var(--meta);line-height:var(--meta-line);margin:6px 0 0;padding-left:var(--space-6)}
.stack-form{display:grid;gap:var(--space-6);margin-top:var(--space-6)}
.stack-form p{display:grid;gap:6px;margin:0}
.stack-form input{width:100%}
.stack-form textarea{width:100%}
.stack-form select{width:100%}
.stack-form>button{justify-self:end}
.stack-form fieldset{min-width:0;margin:0;padding:0;border:0}
.stack-form fieldset+fieldset{margin-top:var(--space-8)}
legend{font-size:var(--text-lg);line-height:var(--line-lg);font-weight:var(--weight-heading);margin-bottom:var(--space-4)}
input[type=checkbox]{appearance:auto;width:20px;height:20px;min-width:20px;min-height:20px;flex:none;margin:0;accent-color:var(--brand)}
input[type=radio]{appearance:auto;width:20px;height:20px;min-width:20px;min-height:20px;flex:none;margin:0;accent-color:var(--brand)}
.check-label{font-size:13px;display:flex;align-items:flex-start;gap:var(--space-3);min-height:44px;padding-block:var(--space-3)}
label:has(>input[type=checkbox]){display:flex;align-items:flex-start;gap:var(--space-3);min-height:44px;padding-block:var(--space-3)}
label:has(>input[type=radio]){display:flex;align-items:flex-start;gap:var(--space-3);min-height:44px;padding-block:var(--space-3)}
.stack-form input[type=checkbox]{width:20px}
.stack-form input[type=radio]{width:20px}
.form-feedback{display:block;min-height:24px;font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2)}
.save-indicator{transition:color 180ms;display:block;min-height:24px;font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2)}
.character-count{display:block;color:var(--text-2);font-size:var(--caption);line-height:var(--caption-line);text-align:right}
.password-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;min-height:40px;max-width:100%;width:auto;flex-shrink:0;margin:0;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-control);font-size:var(--admin-body);line-height:20px;font-weight:var(--weight-label);white-space:nowrap;text-align:center;text-decoration:none;cursor:pointer;box-shadow:none;transition:background-color var(--fast),border-color var(--fast),color var(--fast),transform var(--fast),box-shadow var(--fast);background:var(--surface-1);border-color:var(--border-strong);color:var(--text-1);margin-top:var(--space-2)}
.resource-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;display:flex;flex-direction:column;height:100%;padding:var(--space-5);margin:0}
.quiz-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;display:flex;flex-direction:column;height:100%;padding:var(--space-5);margin:0}
.action-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;display:flex;flex-direction:column;height:100%;padding:var(--space-5);margin:0}
.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:var(--space-6)}
.resource-card h3{font-size:var(--student-body);line-height:var(--student-line);font-weight:var(--weight-heading);margin:var(--space-3) 0 var(--space-2)}
.quiz-card h2{font-size:var(--student-body);line-height:var(--student-line);font-weight:var(--weight-heading);margin:var(--space-3) 0 var(--space-2)}
.action-card h2{font-size:var(--student-body);line-height:var(--student-line);font-weight:var(--weight-heading);margin:var(--space-3) 0 var(--space-2)}
.action-card h3{font-size:var(--student-body);line-height:var(--student-line);font-weight:var(--weight-heading);margin:var(--space-3) 0 var(--space-2)}
.quiz-card p{font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2)}
.card-body p{font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2)}
.action-card p{font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2);margin:0 0 var(--space-4)}
.resource-card .card-body{display:flex;flex-direction:column;flex:1;padding:var(--space-4) 0 0}
.card-bottom{font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2);margin-top:auto;padding-top:var(--space-4);display:flex;justify-content:space-between;gap:var(--space-3)}
.card-cover{position:relative;width:100%;height:auto;min-height:0;aspect-ratio:16/9;border-radius:var(--radius-control);background:var(--surface-2);box-shadow:none;overflow:hidden}
.card-cover img{display:block;width:100%;height:100%;object-fit:cover}
.mini-cover{width:160px;height:auto;min-height:0;aspect-ratio:16/9;border-radius:var(--radius-control);background:var(--selected-bg);box-shadow:none}
.card-cover .cover-symbol{font-size:96px;line-height:1.3;top:0}
.cover-grid{position:absolute;inset:38px;border-radius:var(--radius-pill);box-shadow:var(--e1);display:none}
.cover-footer{position:absolute;bottom:16px;left:16px;right:16px;display:flex;justify-content:space-between;font-size:var(--caption);line-height:var(--caption-line)}
.paper-label{position:absolute;bottom:20px;left:20px;font-size:var(--caption);line-height:var(--caption-line)}
.cover-label{position:absolute;font-weight:600;letter-spacing:.15em;font-size:var(--caption);line-height:var(--caption-line);top:var(--space-3);left:var(--space-3)}
.play-circle{position:absolute;inset:0;margin:auto;display:grid;place-items:center;color:var(--brand-hover);width:40px;height:40px;border:1px solid var(--border-strong);box-shadow:none;background:var(--surface-1);border-radius:var(--radius-pill)}
.card-cover .play-circle{font-size:16px}
.duration{position:absolute;border-radius:var(--radius-pill);font-size:var(--caption);line-height:var(--caption-line);right:var(--space-3);bottom:var(--space-3);padding:4px 8px;background:var(--surface-1);box-shadow:none}
.source-box{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6)}
.journey-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6)}
.related{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6)}
.approval-card{margin-top:24px;margin:0;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6)}
.review-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6)}
.result-hero{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6)}
.form-panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6);max-width:var(--width-reading)}
.form-panel.wide{max-width:100%}
.form-panel h2{margin:var(--space-8) 0 var(--space-3)}
.form-panel h2:first-child{margin-top:0}
.form-panel p{margin-top:var(--space-3)}
.form-panel .stack-form p{margin:0}
.form-panel.stack-form p{margin:0}
.form-panel .form-panel{border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none;padding:var(--space-6) 0;background:transparent}
.form-panel .profile-details{border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none;padding:var(--space-6) 0;background:transparent}
.question-editor{border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none;padding:var(--space-6) 0;background:transparent;margin-top:var(--space-6)}
.stat{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-5);gap:var(--space-4)}
.stat strong{font-size:var(--text-3xl);line-height:var(--line-3xl);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums}
.stat small{display:block;font-size:var(--meta);line-height:var(--meta-line);margin:0}
.stat p{font-size:var(--caption);line-height:var(--caption-line)}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6);margin:var(--space-6) 0 var(--space-10)}
.stat-icon{display:grid;place-items:center;width:40px;height:40px;min-width:40px;border-radius:var(--radius-control);background:var(--surface-2);color:var(--text-2);box-shadow:none;font-size:20px}
.related-icon{display:grid;place-items:center;width:40px;height:40px;min-width:40px;border-radius:var(--radius-control);background:var(--surface-2);color:var(--text-2);box-shadow:none;font-size:20px}
.quiz-symbol{display:grid;place-items:center;width:40px;height:40px;min-width:40px;border-radius:var(--radius-control);background:var(--surface-2);color:var(--text-2);box-shadow:none;font-size:20px;margin-bottom:var(--space-4)}
a:is(.resource-card,.quiz-card,.action-card,.stat,.continue-card){cursor:pointer;transition:transform var(--base),background-color var(--base),border-color var(--base),box-shadow var(--base)}
.list-panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:0}
.progress-row{display:flex;align-items:center;min-height:56px;padding:var(--space-3) var(--space-4);gap:var(--space-3);border-bottom:1px solid var(--border)}
.progress-row:last-child{border-bottom:0}
.progress-row>div{min-width:0;flex:1}
.progress-row small{font-size:var(--meta);line-height:var(--meta-line)}
.related>a{min-height:56px;margin:0;padding-block:var(--space-3);gap:var(--space-3);border-bottom:1px solid var(--border)}
.related>a:last-child{border-bottom:0}
.list-panel .stat-icon{box-shadow:none}
.table-wrap{border:1px solid var(--border);background:var(--surface-1);box-shadow:none;width:100%;max-width:100%;max-height:70vh;padding:0;overflow:auto;overscroll-behavior-inline:contain;scrollbar-gutter:auto;border-radius:var(--radius-card)}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th{height:48px;padding:var(--space-3) var(--space-4);border:0;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--text-2);font-size:var(--caption);line-height:var(--caption-line);font-weight:var(--weight-heading);letter-spacing:.04em;text-transform:uppercase;box-shadow:0 1px 0 var(--border)}
td{height:48px;padding:var(--space-3) var(--space-4);border:0;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;font-size:var(--admin-body);line-height:var(--admin-line);overflow-wrap:anywhere}
tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:transparent}
.table-wrap tbody tr:nth-child(even){background:transparent}
tbody tr.is-selected{background:var(--selected-bg)}
tbody tr:focus-within{background:var(--selected-bg)}
td small{display:block;font-size:var(--meta);line-height:var(--meta-line)}
.numeric{text-align:right;font-variant-numeric:tabular-nums}
[data-numeric]{text-align:right;font-variant-numeric:tabular-nums}
.row-actions{width:120px;white-space:nowrap;opacity:1}
.table-wrap .button{height:32px;min-height:32px;padding-inline:var(--space-3)}
.pill{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:24px;padding:4px 8px;border:0;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-2);font-size:var(--caption);line-height:var(--caption-line);font-weight:var(--weight-label);letter-spacing:0;box-shadow:none}
.badge{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:24px;padding:4px 8px;border:0;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-2);font-size:var(--caption);line-height:var(--caption-line);font-weight:var(--weight-label);letter-spacing:0;box-shadow:none}
.pill:before{display:none}
.status-approved{background:var(--success-bg);color:var(--success)}
.status-live{background:var(--success-bg);color:var(--success)}
.status-submitted{background:var(--info-bg);color:var(--info)}
.status-in_review{background:var(--info-bg);color:var(--info)}
.status-changes_requested{background:var(--warning-bg);color:var(--warning)}
.queue-aging{padding:4px 8px;border-radius:var(--radius-card);background:var(--warning-bg);color:var(--warning)}
.status-rejected{background:var(--error-bg);color:var(--error)}
.queue-overdue{padding:4px 8px;border-radius:var(--radius-card);background:var(--error-bg);color:var(--error)}
.status-draft{background:var(--surface-2);color:var(--text-2)}
.status-withdrawn{background:var(--surface-2);color:var(--text-2)}
.message{border:1px solid var(--border);border-left:3px solid var(--info);border-radius:var(--radius-control);background:var(--info-bg);padding:var(--space-4);margin:0 0 var(--space-6);color:var(--text-1);box-shadow:none}
.feedback{border:1px solid var(--border);border-left:3px solid var(--info);border-radius:var(--radius-control);background:var(--info-bg);padding:var(--space-4);margin:0 0 var(--space-6);color:var(--text-1);box-shadow:none}
.message.error{background:var(--error-bg);border-left-color:var(--error);color:var(--error)}
.message.success{background:var(--success-bg);border-left-color:var(--success);color:var(--success)}
.feedback p{white-space:pre-wrap}
.empty{grid-column:1/-1;padding:var(--space-10) var(--space-6);border:1px dashed var(--border-strong);border-radius:var(--radius-card);background:var(--surface-2);text-align:center}
.empty:before{content:'◇';display:block;margin-bottom:var(--space-3);color:var(--text-2);font-size:24px}
.empty h2{font-size:var(--text-xl);line-height:var(--line-xl)}
.empty p{max-width:65ch;margin:var(--space-3) auto var(--space-6);color:var(--text-2)}
.shell{margin:0;min-height:100dvh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;flex-wrap:nowrap;gap:var(--space-4);height:var(--header-height);min-height:var(--header-height);padding:0 var(--space-8);margin:0;border:0;border-bottom:1px solid var(--border);border-radius:0;background:var(--surface-1);box-shadow:none;backdrop-filter:none;transform:none;transition:background-color var(--fast),box-shadow var(--fast)}
.topbar.is-scrolled{background:var(--surface-1);box-shadow:var(--e1);transform:none}
.topbar-right{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;flex:none}
.topbar .breadcrumb{flex:1;min-width:0;white-space:nowrap;overflow:hidden;flex-wrap:nowrap}
.breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2)}
.breadcrumb span{margin:0}
.wordmark{display:inline-flex;align-items:center;gap:var(--space-2);width:max-content;font-family:var(--body);font-size:var(--text-2xl);line-height:var(--line-2xl);font-weight:var(--weight-heading);letter-spacing:-.04em}
.header-brand{font-size:var(--text-xl);line-height:var(--line-xl);white-space:nowrap}
.brand-dot{display:block;width:8px;height:8px;flex:none;margin:0;border-radius:var(--radius-pill);background:var(--brand)}
.free-badge{gap:8px;align-items:center;font-size:12px;display:none}
.topbar .free-badge{display:none}
.sidebar{position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;width:288px;max-width:86vw;height:100dvh;max-height:100dvh;padding:var(--space-4);overflow-y:auto;border:0;border-right:1px solid var(--border);border-radius:0;background:var(--surface-1);box-shadow:var(--e4);z-index:var(--z-drawer)}
.sidebar .wordmark{display:flex;margin:var(--space-3) var(--space-4) var(--space-8)}
.sidebar .workspace-label{display:block;padding:0 var(--space-4);margin-bottom:var(--space-3)}
.drawer-close{min-width:var(--control-size);min-height:var(--control-size);cursor:pointer;align-self:flex-end}
.navigation-backdrop{position:fixed;inset:0;background:var(--overlay);z-index:calc(var(--z-drawer) - 1)}
.drawer-open{overflow:hidden}
.nav-link{display:flex;align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-3) var(--space-4);margin:var(--space-2) 0;border-radius:var(--radius-control);color:var(--text-2);font-size:var(--admin-body);line-height:20px;font-weight:var(--weight-label);box-shadow:none;transition:background-color var(--fast),color var(--fast)}
.nav-link>span{display:block;flex:none;width:20px;height:20px;font-size:20px;line-height:20px;color:inherit}
.nav-link>svg{display:block;flex:none;width:20px;height:20px;font-size:20px;line-height:20px;color:inherit}
.nav-link.active{background:var(--selected-bg);color:var(--brand);box-shadow:inset 3px 0 var(--brand);font-weight:var(--weight-label)}
.nav-link[aria-current=page]{background:var(--selected-bg);color:var(--brand);box-shadow:inset 3px 0 var(--brand);font-weight:var(--weight-label)}
.nav-rule{height:1px;margin:var(--space-6) var(--space-4);background:var(--border);box-shadow:none}
.profile-menu-wrap{position:relative}
.profile-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:var(--z-dropdown);width:264px;max-width:calc(100vw - 32px);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:var(--e4)}
.profile-dropdown>a{display:flex;align-items:center;justify-content:flex-start;min-height:40px;width:100%;padding:0 var(--space-3);border:0;border-radius:var(--radius-control);background:transparent;color:var(--text-1);font-size:var(--admin-body);line-height:20px;font-weight:var(--weight-label)}
.profile-dropdown form>button{display:flex;align-items:center;justify-content:flex-start;min-height:40px;width:100%;padding:0 var(--space-3);border:0;border-radius:var(--radius-control);background:transparent;color:var(--text-1);font-size:var(--admin-body);line-height:20px;font-weight:var(--weight-label)}
.profile-dropdown form{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}
.profile-menu-name{padding:var(--space-3);margin:0;font-size:var(--admin-body);font-weight:var(--weight-heading)}
.avatar{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--selected-bg);color:var(--brand);border:1px solid var(--border-brand);box-shadow:none;font-size:var(--admin-body);font-weight:var(--weight-heading)}
.avatar.profile-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:40px;min-height:40px;padding:0;line-height:1;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--selected-bg);color:var(--brand);border:1px solid var(--border-brand);box-shadow:none;font-size:var(--admin-body);font-weight:var(--weight-heading)}
.theme-options{display:flex;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--border)}
.theme-options button{border-radius:var(--radius-card);min-height:44px;flex:1;min-width:0;padding:0 var(--space-2);font-size:var(--caption);background:var(--surface-2);color:var(--text-2);border:1px solid transparent}
.theme-options [aria-pressed=true]{background:var(--selected-bg);color:var(--brand);border-color:var(--border-brand)}
.theme-toggle{background:var(--surface-2);color:var(--text-1);flex-shrink:0;display:grid;place-items:center}
.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7;transition:transform 200ms var(--out),opacity 200ms var(--out);width:20px;height:20px;grid-area:1/1}
main{flex:1;width:100%;max-width:var(--width-standard);min-height:0;padding:var(--space-8) var(--space-8) var(--space-16);margin-inline:auto}
.admin-experience main{max-width:var(--width-admin);padding-top:var(--space-8)}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8)}
.page-heading .eyebrow{margin-bottom:var(--space-2)}
.page-heading p{max-width:65ch;margin-top:var(--space-2);font-size:var(--student-body);line-height:var(--student-line);color:var(--text-2)}
.admin-experience .page-heading p{font-size:var(--admin-body);line-height:var(--admin-line)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:var(--space-10) 0 var(--space-4)}
footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);width:100%;max-width:var(--width-admin);margin-inline:auto;padding:var(--space-6) var(--space-8);border-top:1px solid var(--border);color:var(--text-2);font-size:var(--caption);line-height:var(--caption-line)}
.filter-bar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);margin:0 0 var(--space-6);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none}
.admin-search-bar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);margin:0 0 var(--space-6);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none}
.filter-bar label{display:grid;gap:6px;min-width:0}
.filter-bar>input[type=search]{flex:1;min-width:160px}
.search-label{display:flex;align-items:center;gap:12px;flex:1;min-width:160px}
.admin-search-bar input{flex:1;min-width:160px}
.filter-bar label:has(input[type=checkbox]){display:flex;align-items:center;padding:0}
.search-control{flex:1;min-width:160px;position:relative;display:flex;align-items:center}
.search-control input{width:100%;padding-left:40px!important;padding-right:40px!important}
.search-icon{position:absolute;left:12px;width:20px;height:20px;line-height:20px;color:var(--text-2)}
.search-clear{border:0;min-width:40px;min-height:44px;position:absolute;right:0;width:40px;height:40px;padding:0;background:transparent;color:var(--text-2)}
.console-nav{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2);margin-bottom:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1)}
.console-nav .button{height:44px;min-height:44px;padding:0 var(--space-3);border:0;background:transparent;color:var(--text-2);font-size:var(--admin-body);box-shadow:none}
nav[aria-label="Operations sections"] .button{height:44px;min-height:44px;padding:0 var(--space-3);border:0;background:transparent;color:var(--text-2);font-size:var(--admin-body);box-shadow:none}
.console-nav [aria-current=page]{color:var(--brand);background:var(--selected-bg);box-shadow:inset 0 -3px var(--brand)}
.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-8) 0 0;font-size:var(--meta);font-variant-numeric:tabular-nums}
.pagination .button{height:40px;min-height:40px;min-width:40px;padding-inline:var(--space-3)}
.pagination>span{padding-inline:var(--space-2)}
dialog{width:560px;max-width:calc(100vw - 32px);max-height:90dvh;overflow:auto;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--surface-1);color:var(--text-1);box-shadow:var(--e4);z-index:var(--z-modal)}
dialog h2{font-size:var(--text-xl);line-height:var(--line-xl);margin-bottom:var(--space-3)}
dialog p{margin-bottom:var(--space-4)}
dialog::backdrop{background:var(--overlay);backdrop-filter:blur(2px)}
.command-dialog{width:560px;max-width:calc(100vw - 32px)}
.command-dialog label{display:block;margin-bottom:6px}
.command-dialog input{width:100%}
.command-results{margin-top:16px;display:grid;gap:var(--space-2);max-height:50dvh;overflow:auto;margin-block:var(--space-4)}
.command-results a{display:block;padding:var(--space-3);border-radius:var(--radius-control)}
.command-results small{display:block}
.details-panel{position:fixed;inset:0 0 0 auto;width:560px;max-width:90vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;border:0;border-left:1px solid var(--border);padding:var(--space-6)}
.toast-stack{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:var(--z-toast);display:grid;gap:var(--space-2);width:min(400px,calc(100vw - 32px))}
.toast{position:relative;overflow:hidden;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--radius-card);background:var(--surface-1);color:var(--text-1);box-shadow:var(--e4);font-size:var(--admin-body);line-height:var(--admin-line)}
.toast.error{border-left-color:var(--error);background:var(--error-bg)}
.toast button{margin-left:auto;min-width:40px;width:40px;height:40px;padding:0;background:transparent;color:inherit}
.tooltip{z-index:var(--z-tooltip);padding:var(--space-2) var(--space-3);max-width:240px;border-radius:var(--radius-control);background:var(--surface-3);color:var(--text-1);box-shadow:var(--e2);font-size:var(--caption);line-height:var(--caption-line)}
.network-banner{position:sticky;top:0;background:var(--warning-bg);color:var(--warning);border-bottom:1px solid var(--warning);z-index:var(--z-sticky);padding:var(--space-3) var(--space-6)}
.route-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--brand);transform:scaleX(0);transform-origin:left;pointer-events:none;z-index:var(--z-sticky)}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--brand);transform:scaleX(0);transform-origin:left;pointer-events:none;opacity:.7;display:none;z-index:var(--z-sticky)}
.back-to-top{position:fixed;box-shadow:var(--e2);z-index:var(--z-sticky);left:var(--space-6);bottom:var(--space-6)}
.bulk-bar{position:sticky;bottom:16px;margin:16px 0;display:flex;align-items:center;box-shadow:var(--e3);animation:rise 200ms var(--out);z-index:var(--z-sticky);padding:var(--space-3) var(--space-4);gap:var(--space-3);border-radius:var(--radius-card);background:var(--surface-3);color:var(--text-1)}
.skeleton{animation:shimmer 1.4s linear infinite;border-radius:var(--radius-control);background:var(--surface-2)}
progress::-webkit-progress-bar{height:8px;border:0;border-radius:var(--radius-pill);background:var(--surface-2);box-shadow:none}
progress{height:8px;border:0;border-radius:var(--radius-pill);background:var(--surface-2);box-shadow:none;margin:var(--space-4) 0}
progress::-webkit-progress-value{background:var(--brand);border-radius:var(--radius-pill)}
progress::-moz-progress-bar{background:var(--brand);border-radius:var(--radius-pill)}
.skip{position:fixed;top:-100px;left:var(--space-4);z-index:var(--z-tooltip);padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:var(--e2)}
.skip:focus{top:var(--space-3)}
.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);min-height:0;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--surface-1);box-shadow:none}
.hero-copy{padding:var(--space-8)}
.hero h2{font-size:var(--text-3xl);line-height:var(--line-3xl);font-weight:var(--weight-heading);margin:var(--space-4) 0}
.hero p{font-size:var(--student-body);line-height:var(--student-line);max-width:65ch}
.hero-label{font-size:var(--caption);line-height:var(--caption-line)}
.hero-meta{font-size:var(--caption);line-height:var(--caption-line)}
.art-caption{position:absolute;bottom:0;text-align:center;width:100%;letter-spacing:.15em;color:var(--text-2);font-size:var(--caption);line-height:var(--caption-line)}
.hero .button{margin-top:var(--space-6)}
.hero:before{display:none}
.hero:after{display:none}
.science-art{position:relative;isolation:isolate;min-height:280px}
.continue-card{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none}
.continue-card p{font-size:var(--meta);line-height:var(--meta-line)}
.practice-callout{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:none;background:var(--surface-1)}
.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,280px);gap:var(--space-6)}
.detail-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,280px);gap:var(--space-6)}
.auth-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-10);max-width:1040px;margin-inline:auto}
.auth-form{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-8)}
.auth-form h2{font-size:var(--text-2xl);line-height:var(--line-2xl);margin:var(--space-4) 0}
.auth-story{padding:var(--space-8) 0}
.auth-story h1{margin:var(--space-6) 0}
.document-feature{display:grid;gap:var(--space-6);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none}
.document-paper{border:0;border-left:3px solid var(--border-strong);border-radius:0;background:var(--surface-2);padding:var(--space-6);box-shadow:none;transform:none}
.player{overflow:hidden;aspect-ratio:16/9;border:1px solid var(--border);border-radius:var(--radius-card);padding:0;box-shadow:none}
.player iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:var(--radius-control)}
.player video{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:var(--radius-control)}
.embed-video{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:var(--radius-control)}
.lesson-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:var(--space-6) 0;font-size:var(--meta);line-height:var(--meta-line)}
.quiz-form{max-width:var(--width-reading);margin-inline:auto}
.question{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:none;padding:var(--space-6);margin:var(--space-6) 0}
.question legend{font-weight:var(--weight-heading);font-size:var(--student-body);line-height:var(--student-line);padding:0 var(--space-2)}
.answer-option{display:flex;align-items:flex-start;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-1);box-shadow:none;cursor:pointer}
.option{display:flex;align-items:flex-start;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-1);box-shadow:none;cursor:pointer}
.answer-option:has(input:checked){border-color:var(--brand);background:var(--selected-bg);color:var(--text-1);box-shadow:inset 3px 0 var(--brand)}
.option:has(input:checked){border-color:var(--brand);background:var(--selected-bg);color:var(--text-1);box-shadow:inset 3px 0 var(--brand)}
.quiz-stepper{position:sticky;display:flex;align-items:center;z-index:var(--z-sticky);top:var(--header-height);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-control);padding:var(--space-4);gap:var(--space-4)}
.score{font-size:var(--text-4xl);line-height:var(--line-4xl);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums;border-radius:var(--radius-pill);box-shadow:none;background:var(--surface-2)}
.score-circle{font-size:var(--text-4xl);line-height:var(--line-4xl);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums;border-radius:var(--radius-pill);box-shadow:none;background:var(--surface-2)}
.score span{font-size:var(--text-xl)}
.review-card.correct{color:var(--text-1);border-left:3px solid var(--success)}
.review-card.incorrect{color:var(--text-1);border-left:3px solid var(--error)}
.date-wheel{position:relative;height:180px;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);touch-action:none;user-select:none;cursor:ns-resize;overscroll-behavior:contain;border-radius:var(--radius-control)}
.wheel-row.selected{color:var(--text-1);font-size:1.45rem;font-weight:var(--weight-heading)}
.wheel-selection{position:absolute;top:72px;height:36px;background:var(--surface-2);border-block:1px solid var(--border-strong);left:4px;right:4px;border-radius:var(--radius-control)}
.approval-list{display:grid;gap:var(--space-6)}
.approval-card .section-heading{margin-top:0}
.review-form{margin-top:var(--space-8)}
.trend-chart text{font:12px sans-serif;fill:var(--text-1);font-family:var(--body)}
@media (hover: hover) and (pointer: fine){button:not(:disabled):not([aria-disabled=true]):hover{background:var(--brand-hover);color:var(--on-brand);transform:translateY(-2px);box-shadow:var(--e2)}}
@media (hover: hover) and (pointer: fine){.button:not([aria-disabled=true]):not(:disabled):hover{background:var(--brand-hover);color:var(--on-brand);transform:translateY(-2px);box-shadow:var(--e2)}}
@media (hover: hover) and (pointer: fine){.button.secondary:not(:disabled):hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.password-toggle:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.icon-button:not(:disabled):hover{background:var(--surface-3);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.text-button:hover{background:var(--surface-3);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.button.ghost:hover{background:var(--surface-3);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.profile-dropdown>a:hover{background:var(--surface-3);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.profile-dropdown form>button:hover{background:var(--surface-3);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.button.danger:not(:disabled):hover{background:color-mix(in srgb,var(--error) 85%,var(--text-1));color:var(--surface-1)}}
@media (hover: hover) and (pointer: fine){button[value=delete]:hover{background:color-mix(in srgb,var(--error) 85%,var(--text-1));color:var(--surface-1)}}
@media (hover: hover) and (pointer: fine){.nav-link:not(.active):not([aria-current=page]):hover{background:var(--surface-2);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){.text-link:hover{color:var(--brand-hover);text-decoration:underline}}
@media (hover: hover) and (pointer: fine){.back-link:hover{color:var(--brand-hover);text-decoration:underline}}
@media (hover: hover) and (pointer: fine){.console-nav .button:not([aria-current=page]):hover{background:var(--surface-2);color:var(--text-1)}}
@media (hover: hover) and (pointer: fine){a:is(.resource-card,.quiz-card,.action-card,.stat,.continue-card):hover{transform:translateY(-2px);background:var(--hover-surface);border-color:var(--border-brand);box-shadow:var(--e2)}}
:is(button,.button,a.resource-card,a.quiz-card,a.action-card,a.continue-card,.nav-link):not(:disabled):not([aria-disabled=true]):active{transform:scale(.97);box-shadow:none}
@media (hover: hover) and (pointer: fine){tbody tr:hover{background:var(--surface-2)}}
@media (hover: hover) and (pointer: fine){.table-wrap tbody tr:hover{background:var(--surface-2)}}
@media (hover: hover) and (pointer: fine){input:not(:focus):hover{border-color:var(--text-3)}}
@media (hover: hover) and (pointer: fine){textarea:not(:focus):hover{border-color:var(--text-3)}}
@media (hover: hover) and (pointer: fine){select:not(:focus):hover{border-color:var(--text-3)}}
@media (hover: hover) and (pointer: fine){.answer-option:hover{background:var(--surface-2)}}
@media (hover: hover) and (pointer: fine){.option:hover{background:var(--surface-2)}}
@media (hover: hover) and (pointer: fine){.command-results a:hover{background:var(--selected-bg);color:var(--brand)}}
@media(max-width:1279px){.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1279px){.dashboard-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1279px){.detail-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1279px){.topbar{padding-inline:var(--space-6)}}
@media(max-width:1279px){main{padding-inline:var(--space-6)}}
@media(max-width:1023px){.topbar .breadcrumb{display:none}}
@media(max-width:1023px){.hero-copy{padding:var(--space-6)}}
@media(max-width:1023px){.auth-grid{gap:var(--space-6)}}

@media(max-width:767px){.topbar{height:56px;min-height:56px;padding:0 var(--space-4);gap:var(--space-2);flex-wrap:nowrap}}
@media(max-width:767px){.header-brand{font-size:var(--text-xl)}}
@media(max-width:767px){.topbar .breadcrumb{display:none}}
@media(max-width:767px){.topbar-right{gap:var(--space-2)}}
@media(max-width:767px){.icon-button{width:44px;height:44px;min-width:44px;min-height:44px}}
@media(max-width:767px){.avatar.profile-toggle{width:44px;height:44px;min-width:44px;min-height:44px}}
@media(max-width:767px){main{padding:var(--space-6) var(--space-4) var(--space-12)}}
@media(max-width:767px){.admin-experience main{padding:var(--space-6) var(--space-4) var(--space-12)}}
@media(max-width:767px){.page-heading{flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6)}}
@media(max-width:767px){.page-heading p{font-size:var(--student-body);line-height:var(--student-line)}}
@media(max-width:767px){.resource-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}}
@media(max-width:767px){.stats-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}}
@media(max-width:767px){.auth-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}}
@media(max-width:767px){.metric-pair{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}}
@media(max-width:767px){.hero{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){.science-art{display:none}}
@media(max-width:767px){.auth-story{display:none}}
@media(max-width:767px){.hero-copy{padding:var(--space-6)}}
@media(max-width:767px){.hero h2{font-size:var(--text-2xl);line-height:var(--line-2xl)}}
@media(max-width:767px){.auth-form{padding:var(--space-5)}}
@media(max-width:767px){.form-panel{padding:var(--space-5)}}
@media(max-width:767px){.source-box{padding:var(--space-5)}}
@media(max-width:767px){.question{padding:var(--space-5)}}
@media(max-width:767px){.approval-card{padding:var(--space-5)}}
@media(max-width:767px){.review-card{padding:var(--space-5)}}
@media(max-width:767px){.resource-card{padding:var(--space-5)}}
@media(max-width:767px){.quiz-card{padding:var(--space-5)}}
@media(max-width:767px){.action-card{padding:var(--space-5)}}
@media(max-width:767px){.stat{padding:var(--space-5)}}
@media(max-width:767px){.stat small{display:block;margin:0}}
@media(max-width:767px){.stat-icon{width:40px;height:40px}}
@media(max-width:767px){.filter-bar{align-items:stretch;padding:var(--space-4);gap:var(--space-3)}}
@media(max-width:767px){.filter-bar>*{width:100%;flex-basis:100%;min-width:0}}
@media(max-width:767px){.filter-bar input:not([type=checkbox]):not([type=radio]){width:100%;min-width:0}}
@media(max-width:767px){.filter-bar select{width:100%;min-width:0}}
@media(max-width:767px){.search-label{flex-basis:100%;width:100%;min-width:0}}
@media(max-width:767px){.admin-search-bar{align-items:stretch;padding:var(--space-4);gap:var(--space-3);flex-wrap:wrap}}
@media(max-width:767px){.admin-search-bar input{flex-basis:100%;min-width:0}}
@media(max-width:767px){.button{height:44px;min-height:44px}}
@media(max-width:767px){button{height:44px;min-height:44px}}
@media(max-width:767px){.table-wrap .button{height:44px;min-height:44px}}
@media(max-width:767px){.pagination .button{height:44px;min-height:44px}}
@media(max-width:767px){.console-nav .button{height:44px;min-height:44px}}
@media(max-width:767px){.profile-dropdown>a{height:44px;min-height:44px}}
@media(max-width:767px){.profile-dropdown form>button{height:44px;min-height:44px}}
@media(max-width:767px){.button.sm{min-height:44px;height:44px}}
@media(max-width:767px){input:not([type=checkbox]):not([type=radio]):not([type=hidden]){height:44px;min-height:44px;font-size:16px}}
@media(max-width:767px){select{height:44px;min-height:44px;font-size:16px}}
@media(max-width:767px){textarea{font-size:16px}}
@media(max-width:767px){.action-row{gap:var(--space-3)}}
@media(max-width:767px){form>.action-row{flex-direction:column;align-items:stretch}}
@media(max-width:767px){dialog .action-row{flex-direction:column;align-items:stretch}}
@media(max-width:767px){form>.action-row>*{width:100%}}
@media(max-width:767px){dialog .action-row>*{width:100%}}
@media(max-width:767px){.stack-form>button{width:100%;justify-self:stretch}}
@media(max-width:767px){.continue-card{gap:var(--space-4);padding:var(--space-5);flex-wrap:wrap}}
@media(max-width:767px){.mini-cover{width:120px;aspect-ratio:16/9;height:auto}}
@media(max-width:767px){.document-feature{grid-template-columns:minmax(0,1fr);padding:var(--space-5)}}
@media(max-width:767px){.table-wrap table{min-width:560px}}
@media(max-width:767px){.table-wrap{max-width:100%;background:linear-gradient(to right,var(--surface-1),transparent) left/16px 100% no-repeat,linear-gradient(to left,var(--surface-1),transparent) right/16px 100% no-repeat,var(--surface-1)}}
@media(max-width:767px){.table-wrap td{padding:var(--space-3) var(--space-4)}}
@media(max-width:767px){.table-wrap th{padding:var(--space-3) var(--space-4)}}
@media(max-width:767px){footer{padding:var(--space-6) var(--space-4);gap:var(--space-3)}}
@media(max-width:767px){.toast-stack{right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}}
@media(max-width:767px){.back-to-top{left:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}}
@media(max-width:767px){.profile-dropdown{max-width:calc(100vw - 32px)}}
@media(max-width:767px){.date-wheels{gap:var(--space-2)}}
@media(max-width:767px){.bulk-bar{flex-wrap:wrap}}
@media(max-width:767px){.theme-options{flex-wrap:nowrap}}
@media(max-width:767px){.theme-options button{height:44px;min-height:44px;width:auto}}
@media(max-width:767px){.section-heading{margin-top:var(--space-10)}}

@media(max-width:479px){.topbar .button.secondary{padding-inline:var(--space-3)}}
@media(max-width:479px){dialog{position:fixed;inset:auto 0 0;width:100%;max-width:100%;max-height:90dvh;margin:0;padding:var(--space-6) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));border-radius:var(--radius-dialog) var(--radius-dialog) 0 0}}
@media(max-width:479px){.command-dialog{position:fixed;inset:auto 0 0;width:100%;max-width:100%;max-height:90dvh;margin:0;padding:var(--space-6) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));border-radius:var(--radius-dialog) var(--radius-dialog) 0 0}}
@media(max-width:479px){.details-panel{width:100%;max-width:100%;border-radius:0}}
@media(max-width:479px){.date-column>label{font-size:var(--caption)}}
@media(max-width:479px){.page-heading>.button{width:100%}}
@media(max-width:479px){.progress-row{flex-wrap:wrap}}
@media(max-width:479px){.progress-row .pill{margin-left:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important;animation:none!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){*:before{animation:none!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){*:after{animation:none!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){.reveal-pending{transition:none;animation:none;opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.topbar.is-scrolled{transform:none}}
@media print{body{background:var(--bg);color:var(--text-1)}}
@media print{html{background:var(--bg);color:var(--text-1)}}
@media print{.topbar{display:none!important}}
@media print{.sidebar{display:none!important}}
@media print{.toast-stack{display:none!important}}
@media print{.network-banner{display:none!important}}
@media print{.back-to-top{display:none!important}}
@media print{.theme-toggle{display:none!important}}
@media print{.command-trigger{display:none!important}}
@media print{main{max-width:none;padding:0}}
@media print{.shell{min-height:0}}
@media print{.table-wrap{max-height:none;overflow:visible}}
@media print{.resource-card{box-shadow:none;break-inside:avoid}}
@media print{.form-panel{box-shadow:none;break-inside:avoid}}

@media(max-width:479px){.header-brand{font-size:16px;gap:0}.header-brand .brand-dot{display:none}}

.ui-icon{display:block;flex:none;width:20px;height:20px;stroke:currentColor}.card-body h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stat>span:last-child:not(:first-child){margin-left:auto}.related,.journey-card{align-self:start}

.stat strong.rolling-number{line-height:1em}.admin-experience .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1023px){.admin-experience .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.admin-experience .stats-grid{grid-template-columns:minmax(0,1fr)}}

.card-actions{margin-top:0;gap:var(--space-2)}

@media(prefers-reduced-motion:reduce){:is(button,.button,a.resource-card,a.quiz-card,a.action-card,a.continue-card,.nav-link):hover,:is(button,.button,a.resource-card,a.quiz-card,a.action-card,a.continue-card,.nav-link):active{transform:none!important}}

.public-landing{display:flex;flex-direction:column;min-height:100dvh}
.public-landing .topbar{justify-content:space-between;padding-inline:max(var(--space-4),calc((100vw - 1136px)/2))}
.public-landing main{display:grid;align-items:center;flex:1}
.public-landing .auth-grid{gap:var(--space-12);align-items:center}
.public-landing .auth-story{padding:var(--space-6);background:transparent;border:0}
.public-landing .auth-story h1{font-size:clamp(24px,3vw,32px);line-height:1.25;margin-block:var(--space-4)}
.public-landing .auth-story p{max-width:40ch;color:var(--text-2)}
.subject-labels{margin-top:var(--space-6);gap:var(--space-4)}
.subject-labels span{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--meta);color:var(--text-2)}

.quiet-fidget{background:transparent;color:var(--text-3);border-color:var(--border-strong)}
.quiet-fidget svg{transition:transform var(--base) var(--out)}
.public-landing footer nav{display:flex;flex-wrap:wrap;gap:var(--space-4)}
.public-landing footer a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:767px){.public-landing .auth-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}.public-landing .auth-story{padding:0;display:block}}
@media(prefers-reduced-motion:reduce){.quiet-fidget svg{transition:none}}

/* Operations: local navigation, compact summaries and progressive disclosure. */
.console-layout{display:grid;grid-template-columns:176px minmax(0,1fr);gap:var(--space-6);align-items:start}
.operations-console .console-nav{display:flex;flex-direction:column;gap:var(--space-1);padding:0;border:0;background:transparent;margin:0}
.operations-console .console-nav .button{justify-content:flex-start;white-space:normal;text-align:left;height:auto;min-height:44px;padding:var(--space-2) var(--space-3)}
.operations-console .console-nav [aria-current=page]{background:var(--selected-bg);color:var(--brand);box-shadow:inset 3px 0 var(--brand)}
.console-content{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.console-panel{padding:var(--space-5);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0}
.console-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}
.console-section-heading h2{font-size:var(--text-lg);line-height:var(--line-lg);margin:0}
.console-section-heading p{margin:var(--space-1) 0 0}
.console-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
.console-live-grid>div{min-width:0;border-right:1px solid var(--border);padding-right:var(--space-4)}
.console-live-grid>div:last-child{border:0}
.console-metric-label{display:flex;align-items:center;gap:var(--space-2);color:var(--text-2);font-size:var(--meta)}
.console-live-grid strong{display:block;font-size:var(--text-3xl);line-height:var(--line-3xl);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums;margin-top:var(--space-2)}
.console-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);padding:var(--space-4);background:var(--surface-2);border-radius:var(--radius-card)}
.console-filters label{display:flex;flex:1 1 144px;flex-direction:column;gap:var(--space-2);margin:0;font-size:var(--meta);font-weight:var(--weight-label);min-width:0}
.console-filters input,.console-filters select{width:100%}
.operations-console .stats-grid{grid-template-columns:repeat(auto-fit,minmax(144px,1fr));gap:var(--space-4);margin:0}
.operations-console .stat{border:0;border-radius:0;background:transparent;box-shadow:none;padding:0;min-height:0;align-items:flex-start}
.operations-console .stat strong{font-size:var(--text-2xl);line-height:var(--line-2xl);font-weight:var(--weight-heading)}
.operations-console .stat p{font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2);margin-top:var(--space-1)}
.console-note{margin-top:var(--space-4);font-size:var(--meta);color:var(--text-2)}
.console-note summary{color:var(--text-2);padding:var(--space-2) 0;min-height:44px}
.console-note p{margin:var(--space-2) 0 0;max-width:70ch}
.console-totals>summary{padding:0;min-height:44px;font-size:var(--text-lg);font-weight:var(--weight-heading);color:var(--text-1)}
.console-totals>summary span{margin-left:var(--space-2);font-weight:var(--weight-body)}
.console-content .table-wrap{margin:0}
.console-content>h2{margin:0;font-size:var(--text-lg)}
@media(max-width:1023px){.console-layout{grid-template-columns:minmax(0,1fr)}.operations-console .console-nav{flex-direction:row;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:var(--space-3)}.operations-console .console-nav [aria-current=page]{box-shadow:inset 0 -3px var(--brand)}}
@media(max-width:479px){.console-live-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.console-live-grid>div{border:0;border-bottom:1px solid var(--border);padding:0 0 var(--space-3);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.console-live-grid strong{margin:0}.console-filters>button{width:100%}.console-section-heading{align-items:flex-start}.operations-console .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.learning-orbit{margin-top:var(--space-6);width:100%;max-width:560px}
.orbit-canvas{display:block;position:relative;width:100%;height:auto;min-height:0;aspect-ratio:26/17;padding:0;border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--surface-2);color:var(--brand);overflow:hidden;box-shadow:none}
.orbit-canvas svg{display:block;width:100%;height:100%;max-width:none}
.orbit-grid{opacity:.18}
.orbit-track{stroke:var(--border-strong);stroke-width:1;opacity:.45}
.orbit-line{stroke:var(--brand);stroke-width:1.5;opacity:.55}
.orbit-dot{fill:var(--brand)}
.orbit-tile{fill:var(--surface-1);stroke:var(--border-brand);stroke-width:1}
.orbit-book{stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.orbit-symbol{fill:var(--text-1);font-family:var(--body);font-size:20px;font-weight:var(--weight-label);text-anchor:middle}
.orbit-scene{transform:translate(var(--orbit-x,0px),var(--orbit-y,0px));transition:transform var(--base) var(--out)}
.orbit-rotation{transform-origin:260px 170px;transform:rotate(var(--orbit-turn,0deg));transition:transform 200ms var(--out)}
.orbit-drift{transform-origin:260px 170px;animation:learning-orbit-turn 32s linear infinite;animation-play-state:paused}
.learning-orbit.is-moving .orbit-drift{animation-play-state:running}
.orbit-controls{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--text-3);font-size:var(--caption);margin-top:var(--space-2)}
.orbit-controls button{font-size:var(--caption);height:44px}
@keyframes learning-orbit-turn{to{transform:rotate(360deg)}}
@media (hover: hover) and (pointer: fine){.orbit-canvas:not(:disabled):hover{background:var(--surface-2);color:var(--brand);box-shadow:none;transform:none;border-color:var(--border-brand)}}
.orbit-canvas:not(:disabled):active{transform:none;background:var(--selected-bg)}
@media(max-width:767px){.learning-orbit{max-width:400px;margin-inline:auto}.orbit-canvas{height:auto}.public-landing .auth-grid{gap:var(--space-5)}}
@media(prefers-reduced-motion:reduce){.orbit-drift{animation:none}.orbit-scene,.orbit-rotation{transition:none}.orbit-controls [data-orbit-pause]{display:none}}

/* Shared content rhythm: readable questions, disclosures and evidence. */
.content-section{margin-block:var(--space-8)}
.content-disclosure,.profile-details{margin-block:var(--space-6);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1)}
.content-disclosure>summary,.profile-details>summary{padding:var(--space-2) 0;font-weight:var(--weight-heading);color:var(--text-1)}
:is(.content-disclosure,.profile-details)[open]>summary{margin-bottom:var(--space-5);border-bottom:1px solid var(--border);padding-bottom:var(--space-4)}
:is(.profile-details,.prose,.form-panel,.review-card)>p+p{margin-top:var(--space-3)}
:is(.profile-details,.prose,.form-panel)>h2{margin-top:var(--space-8);margin-bottom:var(--space-4)}
:is(.profile-details,.prose,.form-panel)>h3{margin-top:var(--space-6);margin-bottom:var(--space-3)}
:is(.action-card,.review-card)>h2,:is(.action-card,.review-card)>h3{margin-block:var(--space-3)}
.action-card>p{margin-block:var(--space-3)}
.action-card>.button{margin-top:var(--space-3)}
main>.form-panel+section,main>.action-card+.action-card{margin-top:var(--space-6)}
.quiz-form{width:100%;max-width:var(--width-reading);margin-inline:auto;display:grid;gap:var(--space-6)}
.quiz-form .question{min-width:0;margin:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1)}
.quiz-form .question legend{float:left;width:100%;padding:0;margin:0 0 var(--space-5);font-size:var(--student-body);line-height:var(--student-line);font-weight:var(--weight-heading);display:flex;gap:var(--space-3);white-space:normal;overflow-wrap:anywhere}
.question legend+.answer-option{clear:both}
.question-number{color:var(--text-3);flex:none}
.question-text{min-width:0}
.quiz-form .answer-option{height:auto;min-height:48px;margin:0 0 var(--space-3);padding:var(--space-3) var(--space-4);gap:var(--space-3);align-items:flex-start;white-space:normal;line-height:var(--student-line)}
.answer-option input{flex:none;margin-top:var(--space-1)}
.answer-option span{min-width:0;overflow-wrap:anywhere}
.quiz-form .answer-option:last-child{margin-bottom:0}
.result-hero{width:100%;max-width:var(--width-reading);margin:var(--space-6) auto var(--space-8);padding:var(--space-6);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}
.result-hero .score{display:inline-flex;align-items:baseline;gap:var(--space-2);width:auto;padding:var(--space-3) var(--space-5);border-radius:var(--radius-card);line-height:1.25}
.review-card{padding:var(--space-6);margin:0;line-height:var(--student-line)}
.review-card .explanation{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}
.password-field{display:block;position:relative;width:100%}
.password-field>input{width:100%;padding-right:56px!important}
.password-eye{position:absolute;right:0;top:0;width:44px;height:100%;min-height:40px;padding:0;background:transparent;color:var(--text-2);border:0;border-radius:var(--radius-control)}
.password-eye .eye-slash{display:none}.password-eye[aria-pressed=true] .eye-slash{display:block}
.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sr-only-focusable:focus{position:fixed;top:var(--space-2);left:var(--space-2);padding:var(--space-3);z-index:var(--z-tooltip);background:var(--surface-1);color:var(--brand)}

main>h2{margin-top:var(--space-8);margin-bottom:var(--space-4)}
main>h2+p{margin-bottom:var(--space-5);max-width:70ch}
main>p+p{margin-top:var(--space-3)}
.password-eye{display:inline-flex;align-items:center;justify-content:center}

.auth-field{display:grid;gap:var(--space-2);min-width:0}
.auth-field>label{margin:0}

/* Shared section surfaces and structured evidence rows. */
.content-panel{padding:var(--space-6);margin-block:var(--space-6);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0}
.content-panel>h2{margin-bottom:var(--space-3)}
.content-panel>p{max-width:70ch;margin-bottom:var(--space-5)}
.content-panel>.resource-grid>.action-card{border:0;border-radius:0;box-shadow:none;background:transparent;padding:var(--space-4) 0}
.content-panel>.action-card{border:0;border-radius:0;box-shadow:none;background:transparent;border-top:1px solid var(--border)}
.activity-list{list-style:none;padding:0;margin:var(--space-4) 0;display:grid;gap:0}
.activity-list>li{display:grid;gap:var(--space-2);padding:var(--space-4) 0;min-width:0;overflow-wrap:anywhere;border-bottom:1px solid var(--border)}
.activity-list>li:last-child{border-bottom:0}
.activity-list time{font-size:var(--meta);color:var(--text-3)}
.section-nav{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-block:var(--space-5)}
.section-nav a{display:inline-flex;align-items:center;min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-1);font-weight:var(--weight-label)}
.content-section[id]{scroll-margin-top:calc(var(--header-height) + var(--space-6))}
.form-panel>article+article{border-top:1px solid var(--border);margin-top:var(--space-4);padding-top:var(--space-4)}
.form-panel>article>small{display:block;margin-top:var(--space-2);color:var(--text-3)}
.form-panel>form+form{margin-top:var(--space-6)}
main>:is(.table-wrap,.resource-grid,.stats-grid,.filter-bar,.form-panel){margin-block:var(--space-6)}
main>ol,main>ul{padding-left:var(--space-6);margin-block:var(--space-4)}
main>ol>li+li,main>ul>li+li{margin-top:var(--space-2)}
.form-panel>h2:not(:first-child){margin-top:var(--space-8)}
.form-panel>.table-wrap{margin-block:var(--space-4)}
@media(max-width:767px){.content-panel{padding:var(--space-4)}.section-nav a{flex:1;justify-content:center}}

/* Student journey: discovery, resume, syllabus and measured progress. */
.subject-choice-card{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5)}
.subject-choice-card h2{margin:0;color:var(--text-1);font-size:var(--text-xl);line-height:var(--line-xl);text-align:left}
.subject-choice-card>.button{flex-shrink:0;pointer-events:none}
.subject-choice-card .button{padding-inline:var(--space-3)}
@media(min-width:768px) and (max-width:1279px){.resource-grid:has(.subject-choice-card){grid-template-columns:1fr}}

.student-discovery{margin-bottom:var(--space-8);position:relative;max-width:var(--width-standard)}
.student-discovery form{display:flex;gap:var(--space-3);align-items:center}
.student-discovery input{flex:1;min-width:0;height:48px;background:var(--surface-1)}
.learning-results{margin-top:var(--space-3);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);max-height:60dvh;overflow:auto}
.learning-results[hidden]{display:none}
.learning-results .command-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
.resume-panel,.source-panel{display:flex;gap:var(--space-6);align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}
.resume-panel h2,.source-panel h2{margin-block:var(--space-2)}
.progress-card{gap:var(--space-4)}
.progress-card progress{display:block;width:100%;height:8px;accent-color:var(--brand)}
.progress-value{font-size:var(--text-2xl);font-variant-numeric:tabular-nums}
.progress-value span{font-size:var(--meta);color:var(--text-2)}
.syllabus-units{display:grid;gap:var(--space-3)}
.syllabus-units .content-disclosure{margin:0}
.syllabus-units summary .eyebrow{margin-right:var(--space-3)}
@media(max-width:767px){.resume-panel,.source-panel{align-items:stretch;flex-direction:column}.learning-results .command-results{grid-template-columns:minmax(0,1fr)}.student-discovery input{font-size:16px}.student-discovery form{gap:var(--space-2)}}

/* Expand-in-place progress; links remain separate from disclosure controls. */
.progress-tree{display:grid;gap:var(--space-6);margin-bottom:var(--space-8)}
.progress-branch{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);overflow:hidden}
.progress-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-6);cursor:pointer;list-style:none}
.progress-summary::-webkit-details-marker{display:none}
.progress-summary::marker{content:''}
.progress-summary-copy{display:grid;gap:var(--space-3);min-width:0;flex:1}
.progress-summary-copy :is(h2,h3){margin:0;font-size:var(--text-lg);line-height:var(--line-lg)}
.progress-tree progress{margin:0;width:100%;height:8px;display:block;accent-color:var(--brand);background:var(--border)}
.progress-tree progress::-webkit-progress-bar{background:var(--border)}
.learning-link{color:var(--brand);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}
.learning-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:var(--radius-control)}
.expansion-cue{display:flex;gap:var(--space-2);align-items:center;font-size:var(--meta);color:var(--text-2);flex-shrink:0}
.disclosure-chevron{font-size:var(--text-xl);transition:transform var(--fast)}
.progress-branch[open]>.progress-summary .disclosure-chevron{transform:rotate(180deg)}
.progress-branch>.progress-summary .when-open{display:none}
.progress-branch[open]>.progress-summary .when-open{display:inline}
.progress-branch[open]>.progress-summary .when-closed{display:none}
.progress-children{padding:0 var(--space-6) var(--space-6);display:grid;gap:var(--space-4)}
.subject-branch{border:0;border-top:1px solid var(--border);border-radius:0;background:transparent}
.subject-branch>.progress-summary{padding-inline:0}
.progress-topics{counter-reset:topic;list-style:none;margin:0;padding:0}
.progress-topics>li{counter-increment:topic;position:relative;padding:var(--space-5) 0 var(--space-5) var(--space-10);border-top:1px solid var(--border);display:grid;gap:var(--space-3)}
.progress-topics>li::before{content:counter(topic,decimal-leading-zero);position:absolute;left:0;top:var(--space-5);font-size:var(--meta);color:var(--text-3);font-variant-numeric:tabular-nums}
.topic-progress-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}
.progress-number{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:var(--meta)}
.progress-topics p{margin:0}
@media(hover:hover) and (pointer:fine){.progress-summary:hover{background:var(--hover-surface)}.learning-link:hover{text-decoration-thickness:2px}}
.lesson-main{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.lesson-main>.player{margin:0}
.lesson-main>.lesson-toolbar{margin:0;padding:var(--space-4);border-radius:var(--radius-card);background:var(--surface-2);gap:var(--space-4);flex-wrap:wrap}
.lesson-main>.content-disclosure{margin:0}
.lesson-main>.action-row{margin:0;gap:var(--space-3);flex-wrap:wrap}
.lesson-main .action-row form{margin:0}
.lesson-main .source-box{display:grid;gap:var(--space-3)}
.lesson-main .source-box>*{margin:0}
.lesson-main .source-box h3{font-size:var(--text-lg);line-height:var(--line-lg)}

.lesson-sidebar{display:flex;flex-direction:column;gap:var(--space-6);align-self:start}
.lesson-sidebar .source-box{display:grid;gap:var(--space-4)}
.lesson-sidebar h2{font-size:var(--text-lg);line-height:var(--line-lg);margin:0}
.lesson-facts{display:grid;gap:var(--space-4);margin:0}
.lesson-facts>div{display:grid;gap:var(--space-1)}
.lesson-facts dt{font-size:var(--meta);color:var(--text-2)}
.lesson-facts dd{margin:0;overflow-wrap:anywhere}
.lesson-sidebar a.learning-link{display:inline;min-height:44px;padding:var(--space-2) 0;border:0}
.lesson-sidebar a.related-lesson{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0}
.lesson-index{font-size:var(--meta);font-variant-numeric:tabular-nums;color:var(--text-3);flex-shrink:0}
main>:is(.form-panel,.resource-grid,.content-panel,.action-row)+:is(.form-panel,.resource-grid,.content-panel,.action-row){margin-top:var(--space-6)}
.prose :is(ol,ul){padding-left:var(--space-6);margin-block:var(--space-4)}
.prose li+li{margin-top:var(--space-2)}
@media(max-width:767px){.progress-summary{padding:var(--space-4);gap:var(--space-3);align-items:flex-start}.progress-children{padding:0 var(--space-4) var(--space-4)}.expansion-cue{font-size:var(--caption);flex-direction:column;gap:var(--space-1)}.lesson-main>.lesson-toolbar{align-items:stretch;flex-direction:column}.lesson-main .action-row form{flex:1}.lesson-main .action-row button{width:100%}}
@media(prefers-reduced-motion:reduce){.disclosure-chevron{transition:none}}

.lesson-layout #youtube-player{height:100%}
.lesson-layout .player-placeholder{height:100%;min-height:0;padding:var(--space-4);text-align:center}

/* Exam → subject → topic: progressively quieter surfaces and explicit controls. */
.exam-branch>.progress-summary{background:var(--surface-2);border-bottom:1px solid transparent}
.exam-branch[open]>.progress-summary{border-bottom-color:var(--border)}
.exam-branch>.progress-summary .eyebrow{color:var(--brand)}
.exam-branch>.progress-summary h2{font-size:var(--text-xl);font-weight:600}
.progress-children{padding-top:var(--space-4)}
.subject-branch>.progress-summary h3{font-size:var(--text-lg)}
.progress-topics{margin-left:var(--space-4);border-left:1px solid var(--border);padding-left:var(--space-4)}
.progress-tree .expansion-cue{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-1);min-height:44px}
.progress-tree .learning-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;border-radius:var(--radius-control)}
.playlist-create{display:grid;gap:var(--space-3);padding:var(--space-5) 0 0;border-top:1px solid var(--border);margin-top:var(--space-5)}
.playlist-create input{flex:1;min-width:0}
.playlist-options{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding:var(--space-4)}
.playlist-options form{min-width:0}
.playlist-options button{min-width:0;width:100%;max-width:100%}
.playlist-options [data-button-label]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-quick-action] [role=status]:empty{display:none}
[data-quick-action] [role=status]{display:block;font-size:var(--meta);line-height:var(--meta-line);color:var(--text-2);margin-top:var(--space-2)}
[data-quick-action] button[aria-pressed=true]{background:var(--selected-bg);border-color:var(--brand);color:var(--brand)}
.playlist-grid{margin-block:var(--space-6)}
.playlist-grid .action-card{display:flex;flex-direction:column;gap:var(--space-3)}
.playlist-grid .action-card :is(h2,p){margin:0}
.playlist-grid .action-row{margin-top:auto;padding-top:var(--space-3)}
.playlist-stats{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-variant-numeric:tabular-nums}
.lesson-main .source-box{display:grid;gap:var(--space-3)}
.lesson-main .source-box :is(h3,p){margin:0}
@media(hover:hover) and (pointer:fine){.progress-summary:hover .expansion-cue{border-color:var(--brand);color:var(--brand)}.progress-tree .learning-link:hover{background:var(--surface-2)}}
@media(max-width:479px){.progress-summary{gap:var(--space-3);padding:var(--space-4)}.progress-tree .expansion-cue{font-size:var(--caption);padding:var(--space-2)}.progress-children{padding:var(--space-3) var(--space-4)}.progress-topics{margin-left:0}.playlist-create .action-row{align-items:stretch;flex-direction:column}}

/* Photo-led public entrance; authentication retains its existing server flow. */
.mission-landing{min-height:100svh}
.mission-first-screen{display:flex;flex-direction:column;height:100svh;flex-shrink:0}
.mission-first-screen>.mission-header{flex-shrink:0}
.mission-landing main{max-width:none;padding:0;margin:0;min-height:0;align-items:stretch}
.mission-landing>footer{flex-shrink:0;padding:var(--space-2) var(--space-6);align-items:center}
.mission-header{position:relative;gap:var(--space-3)}
.mission-header>.action-row{margin:0 0 0 auto;gap:var(--space-2)}
.mission-hero{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:var(--space-3);min-height:0;padding:var(--space-3) var(--space-6)}
.mission-hero picture{display:block;min-height:0;overflow:hidden}
.mission-hero img{display:block;width:100%;height:100%;object-fit:fill;object-position:center}
.mission-copy{position:relative;display:grid;grid-template-columns:1.1fr 1.3fr .6fr;align-items:center;gap:var(--space-6);width:100%;padding:var(--space-6);border-radius:var(--radius-card);text-align:left;background:var(--mission-card-bg);color:var(--text-1);box-shadow:var(--e3)}
.mission-copy h1{margin:var(--space-2) 0 0;font-size:clamp(24px,2vw,30px);line-height:1.25}
.mission-copy p{margin:0;line-height:1.625;font-size:var(--student-body)}
.mission-copy .mission-statement,.mission-copy .mission-closing{border-left:1px solid var(--border-brand);padding-left:var(--space-6)}
.mission-copy .eyebrow{color:var(--brand)}
@media(max-width:767px){
 .mission-landing{height:auto;min-height:100svh}
 .mission-hero{display:flex;align-items:flex-end;height:100%;min-height:0;padding:var(--space-4)}
 .mission-hero picture{position:absolute;inset:0}
 .mission-hero img{object-fit:cover}
 .mission-landing>footer{padding:var(--space-4)}
 .mission-copy{display:block;max-width:400px;margin-inline:auto;padding:var(--space-4)}
 .mission-copy h1{font-size:var(--text-xl);line-height:var(--line-xl);margin:var(--space-1) 0 var(--space-2)}
 .mission-copy p{font-size:var(--admin-body);line-height:var(--admin-line)}
 .mission-copy .eyebrow{font-size:var(--caption);line-height:var(--caption-line)}
 .mission-copy .mission-statement,.mission-copy .mission-closing{border:0;padding:0}
 .mission-copy .mission-closing{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-brand)}
}

.landing-menu{position:relative}
.landing-menu summary{cursor:pointer;list-style:none}
.landing-menu summary::-webkit-details-marker{display:none}
.landing-menu nav{position:absolute;top:calc(100% + 8px);left:0;z-index:var(--z-dropdown);display:grid;gap:var(--space-3);padding:var(--space-4);width:240px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);box-shadow:var(--e4)}
.login-dialog{width:min(480px,calc(100vw - 32px));max-height:90dvh;overflow:auto;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--surface-1);color:var(--text-1)}
.login-dialog::backdrop{background:var(--overlay)}
.login-dialog .auth-form{border:0;padding:0;box-shadow:none;display:grid;gap:var(--space-5)}
.login-dialog .dialog-close{margin-left:auto;display:flex;margin-bottom:var(--space-3)}
@media(max-width:479px){.mission-header{padding-inline:var(--space-3);gap:var(--space-2)}.mission-header .wordmark{font-size:var(--student-body)}.mission-header .button{padding-inline:var(--space-3);min-height:44px}}

.student-brand-banner{margin-bottom:var(--space-6);overflow:hidden;border-radius:var(--radius-card)}
.student-brand-banner img{display:block;width:100%;height:auto}

@media(max-width:479px){.mission-header{flex-wrap:wrap;height:auto;padding-block:var(--space-2)}.mission-header>.action-row{width:100%;justify-content:flex-end}.mission-header>.theme-toggle{margin-left:auto}}

@media(max-width:479px){.subject-choice-card{padding:var(--space-4);gap:var(--space-2)}.subject-choice-card h2{font-size:18px}.subject-choice-card .button{font-size:var(--meta);padding-inline:var(--space-2)}}

/* Shared brand artwork is given a neutral backing for legibility in either theme. */
.brand-logo{display:block;width:180px;height:40px;object-fit:cover;background:var(--brand-logo-bg);border-radius:var(--radius-control);padding:var(--space-1)}
.wordmark:has(.brand-logo){flex-shrink:0;line-height:1}
@media(max-width:767px){.brand-logo{width:144px;height:36px}.topbar .header-brand{display:flex}.topbar .breadcrumb{display:none}}
@media(min-width:768px) and (max-height:650px){.mission-copy{padding:var(--space-4);gap:var(--space-4)}.mission-copy h1{font-size:24px}.mission-copy p{font-size:var(--admin-body);line-height:var(--admin-line)}}
