body[data-directory="portal"] {--portal-title:40px;--portal-quote:32px;--portal-heading:24px;--portal-time:40px;--portal-sidebar:200px;--calendar-cell:48px;--calendar-marker:4px;--quote-measure:720px}
body[data-directory="portal"] {--account-drawer-width:320px;--account-nav-body:17px;--account-nav-meta:15px;--account-nav-edge:#858b95;--account-nav-scrim:rgba(17,19,22,.4);--account-nav-shadow:0 12px 40px rgba(17,19,22,.12);--account-nav-layer:20}
.account-nav-bar,.account-nav-group,.account-nav-check {display:none}
.account-nav-drawer {display:none;position:fixed;inset-block:0;inset-inline-start:0;inset-inline-end:auto;margin:0;width:min(var(--account-drawer-width),calc(100% - var(--s6)));height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0 var(--r3) var(--r3) 0;background:var(--surface);color:var(--ink);box-shadow:var(--account-nav-shadow);overflow:hidden;transform:translateX(-100%);opacity:0;transition:transform var(--fast),opacity var(--fast),display var(--fast) allow-discrete,overlay var(--fast) allow-discrete}
.account-nav-drawer:not([open]),.account-nav-drawer:not([open])::backdrop {pointer-events:none}
.account-nav-drawer[open] {display:grid;grid-template-rows:auto minmax(0,1fr) auto;transform:translateX(0);opacity:1}
.account-nav-drawer::backdrop {background:transparent;backdrop-filter:blur(var(--s1));transition:background var(--fast),display var(--fast) allow-discrete,overlay var(--fast) allow-discrete}
.account-nav-drawer[open]::backdrop {background:var(--account-nav-scrim)}
@starting-style {.account-nav-drawer[open]{transform:translateX(-100%);opacity:0}.account-nav-drawer[open]::backdrop{background:transparent}}
.account-drawer-heading {display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:calc(var(--s4) + env(safe-area-inset-top)) var(--s5) var(--s4);background:var(--white);border-bottom:1px solid var(--line)}
.account-drawer-heading h2 {font-size:var(--account-nav-body);line-height:1.5;letter-spacing:0}
.account-nav-close {display:grid;place-items:center;min-width:44px;min-height:44px;border:0;border-radius:var(--r1);background:var(--surface);color:var(--ink)}
.account-nav-close svg,.account-nav-open svg {width:20px;height:20px}
.account-drawer-body {min-height:0;overflow:auto;overscroll-behavior:contain;padding:var(--s5)}
.account-nav-drawer .account-sidebar {position:static;padding:0}
.account-nav-drawer .account-identity>div {min-width:0}
.account-nav-drawer .account-identity strong {font-size:var(--account-nav-body);overflow-wrap:anywhere}
.account-nav-drawer .account-identity small {font-size:var(--account-nav-meta)}
.account-nav-drawer .account-side-nav {display:grid;gap:var(--s1);margin-block:var(--s4)}
.account-nav-drawer .account-side-nav a {min-height:48px;gap:var(--s3);padding:var(--s3);font-size:var(--account-nav-body);line-height:1.5;min-width:0}
.account-nav-label {min-width:0;overflow-wrap:anywhere}
.account-nav-drawer .account-side-nav a>svg {flex-shrink:0}
.account-nav-drawer .account-nav-group {display:block;font-size:var(--account-nav-meta);color:var(--catalog-muted);padding:var(--s4) var(--s3) var(--s2)}
.account-nav-drawer .account-nav-group:first-child {padding-top:0}
.account-nav-drawer .account-side-nav a[aria-current] {background:var(--accent-soft);color:var(--accent-hover)}
.account-nav-drawer a[aria-current] .account-nav-check {display:flex;flex-shrink:0;margin-inline-start:auto}
.account-nav-drawer .account-nav-check svg {width:16px;height:16px;color:var(--accent)}
.account-nav-drawer .role-switch {justify-content:space-between;min-height:48px;font-size:var(--account-nav-meta);padding-block:var(--s3)}
.account-drawer-footer {padding:var(--s3) var(--s5) calc(var(--s3) + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line)}
.account-nav-dismiss {width:100%;min-height:44px;padding:var(--s2) var(--s4);background:var(--surface);color:var(--ink);border-radius:var(--r1);font-size:var(--account-nav-meta);font-weight:600}
.account-nav-open:hover,.account-nav-close:hover,.account-nav-dismiss:hover {background:var(--accent-soft);color:var(--accent-hover)}
.account-nav-open:active,.account-nav-close:active,.account-nav-dismiss:active {background:var(--line)}
.account-nav-drawer :focus-visible,.account-nav-open:focus-visible {outline:2px solid var(--accent);outline-offset:var(--s1)}
body.account-drawer-open {position:fixed;inset-inline:0;top:var(--account-scroll-top);overflow:hidden}
@media(max-width:1000px) {
 .account-navigation-ready>.account-content>.service-quick-links {display:none}
 .account-navigation-ready>.account-nav-bar {display:flex;position:sticky;top:var(--account-nav-offset,0px);z-index:var(--account-nav-layer);align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s2) 0 var(--s3);background:var(--surface);border:0;border-bottom:1px solid var(--line);border-radius:0;min-width:0}
 .account-nav-open {display:grid;place-items:center;flex-shrink:0;width:44px;min-height:44px;padding:0;border:0;border-radius:var(--pill);background:var(--white);color:var(--ink)}
 .account-nav-open svg {color:var(--ink)}
 .account-nav-open[aria-expanded="true"] {background:var(--accent-soft)}
 .account-nav-location {min-width:0}
 .account-nav-location small {display:block;font-size:var(--account-nav-meta);line-height:1.5;color:var(--catalog-muted)}
 .account-nav-location strong {display:block;font-size:var(--account-nav-body);line-height:1.5;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce) {
 .account-nav-drawer,.account-nav-drawer[open] {transform:none;transition:opacity var(--fast),display var(--fast) allow-discrete,overlay var(--fast) allow-discrete}
 @starting-style {.account-nav-drawer[open]{transform:none;opacity:0}}
}
@media print {.account-nav-bar,.account-nav-drawer{display:none!important}}
.portal-page {padding-bottom:var(--s16)}
.portal-page .breadcrumbs {align-items:center;flex-wrap:wrap}
.portal-page .breadcrumbs a {min-height:44px;display:inline-flex;align-items:center}
.page-intro {padding-block:var(--s10) var(--s12)}
.page-intro h1 {font-size:var(--portal-title);line-height:1.35;margin-block:var(--s3) var(--s5);text-wrap:balance}
.page-intro p {color:var(--catalog-muted);font-size:var(--text-base);line-height:1.85}
.stories-feature {display:flex;align-items:center;justify-content:space-between;gap:var(--s12);padding:var(--s12);background:var(--mint);border-radius:var(--r3)}
.stories-feature h2 {font-size:var(--portal-quote);line-height:1.5;max-width:var(--quote-measure);margin-bottom:var(--s4)}
.stories-feature p {font-size:var(--text-sm);line-height:1.85;color:var(--catalog-muted)}
.stories-feature .eyebrow {color:var(--green)}
.stories-feature .text-link {margin-top:var(--s5)}
.stories-index {border-left:1px solid var(--line);padding-left:var(--s12);flex-shrink:0}
.stories-index>span {font-size:var(--text-xs);color:var(--catalog-muted)}
.stories-index strong {display:block;font-size:var(--text-display);font-weight:800;letter-spacing:-.06em;line-height:1.2;margin-block:var(--s3)}
.portal-section {padding-block:var(--s16);scroll-margin-top:var(--s6)}
.portal-section-heading {display:flex;align-items:center;justify-content:space-between;gap:var(--s5);margin-bottom:var(--s6);flex-wrap:wrap}
.portal-section h2,.portal-section-heading h2,.portal-closing h2 {font-size:var(--portal-heading);line-height:1.45}
.portal-section-heading>p {font-size:var(--text-sm);color:var(--catalog-muted)}
.review-tools {display:flex;justify-content:space-between;gap:var(--s6);margin-bottom:var(--s8);align-items:center;flex-wrap:wrap}
.portal-filters {display:flex;gap:var(--s2);flex-wrap:wrap}
.portal-filters button {min-height:44px;padding:var(--s2) var(--s4);background:var(--surface);border-radius:var(--pill);font-size:var(--text-sm);color:var(--catalog-muted)}
.portal-filters button[aria-pressed="true"] {background:var(--ink);color:var(--white)}
.portal-filters button:hover:not([aria-pressed="true"]) {background:var(--accent-soft);color:var(--accent-hover)}
.portal-search {display:flex;align-items:center;min-height:48px;border:1px solid var(--line);border-radius:var(--pill);width:360px;max-width:100%}
.portal-search input {width:100%;min-width:0;min-height:44px;border:0;background:transparent;padding:var(--s3) var(--s5);font-size:var(--text-sm);color:var(--ink);outline:0}
.portal-search input::placeholder {color:var(--catalog-muted)}
.portal-search:focus-within {outline:2px solid var(--accent);outline-offset:2px}
.portal-search button {min-width:44px;min-height:44px;background:none;display:grid;place-items:center;margin-right:var(--s1)}
.portal-search svg {width:20px;height:20px}
.stories-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.stories-grid .review-card {background:var(--surface);min-width:0}
.stories-grid .review-card[hidden],.portal-empty[hidden] {display:none}
.stories-grid .review-tag,.stories-grid .review-author span,.stories-grid .review-author a,.stories-grid .review-summary>span:first-child {font-size:var(--text-xs)}
.stories-grid .review-summary,.stories-grid .review-author span,.stories-grid .review-author a {color:var(--catalog-muted)}
.stories-grid .review-author {flex-wrap:wrap}
.stories-grid .review-author a {min-height:44px}
.portal-disclosure {font-size:var(--text-xs);line-height:1.85;color:var(--catalog-muted);margin-top:var(--s6);max-width:90ch}
.portal-empty {padding:var(--s10) var(--s6);background:var(--surface);border-radius:var(--r2);text-align:center}
.portal-empty h3 {font-size:var(--text-lg)}
.portal-empty p {font-size:var(--text-sm);color:var(--catalog-muted);margin-block:var(--s3) var(--s6)}
.portal-closing {display:flex;align-items:center;justify-content:space-between;gap:var(--s8);padding:var(--s10);background:var(--accent-soft);border-radius:var(--r3)}
.portal-closing p {font-size:var(--text-sm);color:var(--catalog-muted);margin-top:var(--s3)}
.guide-jump {display:flex;flex-wrap:wrap;gap:var(--s2) var(--s6);border-block:1px solid var(--line);padding-block:var(--s3)}
.guide-jump a {display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-sm);font-weight:600}
.guide-jump a:hover {color:var(--accent-hover)}
.guide-steps {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s8)}
.guide-steps article {min-width:0;border-top:1px solid var(--line);padding-top:var(--s6)}
.guide-step-number {display:block;font-size:var(--portal-quote);font-weight:750;color:var(--accent-hover);margin-bottom:var(--s5)}
.guide-steps h3 {font-size:var(--text-lg);line-height:1.5;margin-bottom:var(--s3)}
.guide-steps p {font-size:var(--text-sm);line-height:1.9;color:var(--catalog-muted)}
.guide-steps .text-link {margin-top:var(--s4)}
.preparation-panel {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--s12);padding:var(--s12);background:var(--mint);border-radius:var(--r3);scroll-margin-top:var(--s6)}
.preparation-panel h2,.teacher-guide h2 {font-size:var(--portal-quote);line-height:1.45;margin-bottom:var(--s5)}
.preparation-panel p,.teacher-guide p {font-size:var(--text-sm);line-height:1.9;color:var(--catalog-muted)}
.preparation-panel .eyebrow {color:var(--green)}
.preparation-list {list-style:none;margin:0;padding:0;display:grid;gap:var(--s6)}
.preparation-list li {display:flex;gap:var(--s5)}
.preparation-list li>span {display:grid;place-items:center;background:var(--white);border-radius:var(--pill);width:44px;height:44px;flex-shrink:0;font-size:var(--text-xs);font-weight:700}
.preparation-list h3 {font-size:var(--text-base);margin-bottom:var(--s2)}
.guide-faq {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--s16)}
.guide-faq>div>p {font-size:var(--text-sm);line-height:1.9;color:var(--catalog-muted);margin-top:var(--s5)}
.guide-faq details p {color:var(--catalog-muted)}
.teacher-guide {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s12);padding:var(--s12);background:var(--surface);border-radius:var(--r3);margin-bottom:var(--s12);scroll-margin-top:var(--s6)}
.teacher-guide .button {margin-top:var(--s6)}
.teacher-guide-list {display:grid;gap:var(--s6)}
.teacher-guide-list article {display:grid;grid-template-columns:var(--s8) minmax(0,1fr);gap:var(--s2) var(--s4)}
.teacher-guide-list span {grid-row:1/3;font-size:var(--text-xs);font-weight:700;line-height:2}
.teacher-guide-list h3 {font-size:var(--text-base)}
.teacher-guide-list p {grid-column:2}

body[data-account] {background:var(--surface)}
body[data-account] footer {background:var(--surface)}
.account-main {padding-block:var(--s8) var(--s16)}
.account-layout {display:grid;grid-template-columns:var(--portal-sidebar) minmax(0,1fr);gap:var(--s10);align-items:start}
.account-sidebar {position:sticky;top:112px;padding-top:var(--s6);min-width:0}
.account-identity {display:flex;align-items:center;gap:var(--s3);padding-bottom:var(--s6);border-bottom:1px solid var(--line)}
.account-avatar {display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;background:var(--accent-soft);color:var(--accent-hover);border-radius:var(--pill)}
.account-identity>.portrait-frame {width:48px;flex-shrink:0}
.account-identity strong {display:block;font-size:var(--text-base)}
.account-identity small {display:block;font-size:var(--text-xs);color:var(--catalog-muted)}
.account-side-nav {display:grid;gap:var(--s1);margin-block:var(--s5)}
.account-side-nav a {display:flex;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s3);font-size:var(--text-sm);border-radius:var(--r1)}
.account-side-nav svg {width:18px;height:18px;color:var(--brand-blue-icon)}
.account-side-nav a:hover svg,.account-side-nav a[aria-current] svg {color:var(--accent)}
.account-side-nav a:hover {background:var(--white)}
.account-side-nav a[aria-current] {background:var(--white);font-weight:700}
.role-switch {display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:44px;font-size:var(--text-xs);color:var(--catalog-muted);border-top:1px solid var(--line);padding-block:var(--s4)}
.role-switch svg {width:16px;height:16px;color:var(--brand-blue-icon)}
.account-content {min-width:0}
.example-note {display:flex;align-items:center;gap:var(--s2);font-size:var(--text-xs);color:var(--catalog-muted);margin-bottom:var(--s6);flex-wrap:wrap}
.example-note span {font-weight:700;color:var(--ink);background:var(--white);padding:var(--s1) var(--s2);border-radius:var(--r1)}
.account-heading {display:flex;align-items:center;justify-content:space-between;gap:var(--s5);flex-wrap:wrap;margin-bottom:var(--s6)}
.account-heading h1 {font-size:var(--portal-title);line-height:1.35;margin:var(--s2) 0 var(--s3)}
.account-heading p {font-size:var(--text-sm);color:var(--catalog-muted)}
.account-summary {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line);padding-block:var(--s5);margin-bottom:var(--s8)}
.account-summary>div {padding-inline:var(--s6);border-right:1px solid var(--line)}
.account-summary>div:first-child {padding-left:0}
.account-summary>div:last-child {border:0}
.account-summary span {font-size:var(--text-xs);color:var(--catalog-muted);display:block}
.account-summary strong {font-size:var(--portal-heading);line-height:1.5;display:block;margin-top:var(--s1)}
.next-lesson {background:var(--accent-soft);border-radius:var(--r3);padding:var(--s8);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s5)}
body[data-account="instructor"] .next-lesson {background:var(--mint)}
.next-lesson .eyebrow {color:var(--accent-hover)}
body[data-account="instructor"] .next-lesson .eyebrow {color:var(--green)}
.next-lesson h2 {font-size:var(--portal-time);font-weight:800;line-height:1.3;margin-bottom:var(--s2);font-variant-numeric:tabular-nums}
.next-lesson .lesson-date {font-size:var(--text-sm);font-weight:600;display:block;margin-bottom:var(--s2)}
.next-lesson h3 {font-size:var(--text-quote);line-height:1.5;max-width:38ch;margin-block:var(--s3)}
.next-lesson p {font-size:var(--text-sm);color:var(--catalog-muted)}
.next-lesson-actions {align-self:end;display:flex;flex-direction:column;gap:var(--s2);align-items:flex-end}
.next-lesson-actions .text-link {font-size:var(--text-xs)}
.account-section {padding-top:var(--s12);scroll-margin-top:var(--s6)}
.account-section .portal-section-heading {margin-bottom:var(--s5)}
.account-section h2 {font-size:var(--portal-heading)}
.account-section>.portal-disclosure {margin-top:var(--s3)}
.calendar-panel {background:var(--white);border:1px solid var(--line);border-radius:var(--r3);overflow:hidden}
.calendar-toolbar {display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s5) var(--s6);border-bottom:1px solid var(--line);flex-wrap:wrap}
.calendar-toolbar h3 {font-size:var(--text-quote)}
.calendar-actions {display:flex;align-items:center;gap:var(--s2)}
.calendar-actions button {display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--r1);background:var(--white);font-size:var(--text-xs)}
.calendar-actions button:hover {background:var(--surface)}
.calendar-actions button svg {width:18px;height:18px}
.calendar-actions .today-button {padding-inline:var(--s3)}
.calendar-body {display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.month-calendar {padding:var(--s5) var(--s4)}
.calendar-weekdays,.calendar-dates {display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays {text-align:center;font-size:var(--text-xs);color:var(--catalog-muted);margin-bottom:var(--s2)}
.calendar-dates button {min-height:var(--calendar-cell);padding:var(--s1);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--s1);background:none;border-radius:var(--r1);font-size:var(--text-sm);position:relative;font-variant-numeric:tabular-nums}
.calendar-dates button:hover {background:var(--surface)}
.calendar-dates button[aria-pressed="true"] {background:var(--ink);color:var(--white)}
.calendar-dates button[aria-current="date"] {font-weight:800;text-decoration:underline;text-underline-offset:var(--s1)}
.calendar-dates button>i {width:var(--calendar-marker);height:var(--calendar-marker);border-radius:var(--pill);background:var(--accent)}
.calendar-dates button[aria-pressed="true"]>i {background:var(--white)}
.calendar-dates .blank-date {min-height:var(--calendar-cell)}
.calendar-legend {display:flex;align-items:center;gap:var(--s2);font-size:var(--text-xs);color:var(--catalog-muted);margin:var(--s3) var(--s2) 0}
.calendar-legend i {width:var(--calendar-marker);height:var(--calendar-marker);border-radius:var(--pill);background:var(--accent)}
.day-agenda {padding:var(--s6);border-left:1px solid var(--line);min-width:0}
.day-agenda h3 {font-size:var(--text-base);margin-bottom:var(--s4)}
.day-agenda .portal-filters {gap:var(--s1);margin-bottom:var(--s5)}
.day-agenda .portal-filters button {font-size:var(--text-xs);padding-inline:var(--s3)}
.agenda-row {padding-block:var(--s4);border-top:1px solid var(--line)}
.agenda-row>span {font-size:var(--text-sm);font-weight:750;display:block;margin-bottom:var(--s2)}
.agenda-row h4 {font-size:var(--text-sm);line-height:1.7;margin:0 0 var(--s2)}
.agenda-row p {font-size:var(--text-xs);color:var(--catalog-muted)}
.agenda-row button {font-size:var(--text-xs);margin-top:var(--s2)}
.agenda-empty {background:var(--surface);padding:var(--s5);border-radius:var(--r2)}
.agenda-empty strong {font-size:var(--text-sm)}
.agenda-empty p {font-size:var(--text-xs);color:var(--catalog-muted);margin-top:var(--s2)}
.enrolled-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.enrolled-card {background:var(--white);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s6);min-width:0;display:flex;flex-direction:column}
.enrolled-card>span {font-size:var(--text-xs);color:var(--catalog-muted)}
.enrolled-card h3 {font-size:var(--text-lg);line-height:1.55;margin-block:var(--s3)}
.enrolled-card p {font-size:var(--text-xs);color:var(--catalog-muted);margin-bottom:var(--s4)}
.enrolled-card .text-link {margin-top:auto;font-size:var(--text-xs)}
.enrolled-card .course-label {display:flex;justify-content:space-between;gap:var(--s3);font-size:var(--text-xs);color:var(--catalog-muted)}
.enrolled-card .enrolled-facts {padding-top:var(--s4);border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--ink)}
.lesson-history {background:var(--white);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s2) var(--s6)}
.history-row {display:flex;align-items:center;gap:var(--s5);justify-content:space-between;padding-block:var(--s5);border-bottom:1px solid var(--line)}
.history-row:last-child {border-bottom:0}
.history-row>div {min-width:0}
.history-description {flex:1}
.history-actions {display:flex;align-items:center;justify-content:flex-end;gap:var(--s5);flex-shrink:0}
.history-actions .lesson-state {justify-content:flex-end}
.history-row small {font-size:var(--text-xs);color:var(--catalog-muted);display:block}
.history-row strong {font-size:var(--text-sm);display:block;line-height:1.7;margin-top:var(--s1)}
.status-pill {display:inline-flex;align-items:center;gap:var(--s1);font-size:var(--text-xs);padding:var(--s1) var(--s2);background:var(--mint);color:var(--green);border-radius:var(--pill);white-space:nowrap}
.status-pill.completed {background:var(--surface);color:var(--catalog-muted)}
.history-row button {flex-shrink:0}
.account-help {display:flex;align-items:center;justify-content:space-between;gap:var(--s6);background:var(--white);border-radius:var(--r2);padding:var(--s6);margin-top:var(--s12)}
.account-help h2 {font-size:var(--text-lg)}
.account-help p {font-size:var(--text-sm);color:var(--catalog-muted);margin-top:var(--s2)}
.account-help .text-link {flex-shrink:0}
.account-dialog {width:min(540px,calc(100% - var(--s8)));padding:var(--s10)}
.account-dialog h2 {font-size:var(--portal-heading);line-height:1.5;margin-bottom:var(--s5)}
.account-dialog .example-note {margin-top:var(--s5);padding-right:var(--s6)}
.account-dialog dl {display:grid;gap:var(--s4);margin-block:var(--s6)}
.account-dialog dl>div {display:flex;gap:var(--s6);justify-content:space-between;font-size:var(--text-sm)}
.account-dialog dt {color:var(--catalog-muted);flex-shrink:0}
.account-dialog dd {margin:0;text-align:right}
.connection-note {background:var(--surface);padding:var(--s5);border-radius:var(--r2);font-size:var(--text-sm)}
.connection-note p {color:var(--catalog-muted);margin-top:var(--s2);font-size:var(--text-xs)}
.dialog-actions {display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s6)}
.secondary-button {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:var(--s2) var(--s4);background:var(--white);border:1px solid var(--line);border-radius:var(--pill);font-size:var(--text-xs);font-weight:600}
.secondary-button:hover {background:var(--surface)}
.draft-form {display:grid;gap:var(--s5)}
.draft-form label {display:grid;gap:var(--s2);font-size:var(--text-sm);font-weight:600}
.draft-form input,.draft-form select {min-height:48px;border:1px solid var(--line);background:var(--white);border-radius:var(--r1);padding:var(--s3);font:inherit;min-width:0;width:100%;color:var(--ink)}
.draft-form-pair {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.draft-preview {background:var(--mint);border-radius:var(--r2);padding:var(--s6);margin-top:var(--s6)}
.draft-preview[hidden] {display:none}
.draft-preview h3 {font-size:var(--text-lg);line-height:1.6;overflow-wrap:anywhere}
.draft-preview p {font-size:var(--text-sm);margin-block:var(--s2);color:var(--catalog-muted)}

.status-pill.pending,.status-pill.awaiting_payment {background:var(--surface);color:var(--ink)}
.lesson-state {display:flex;gap:var(--s2);flex-wrap:wrap}
.payment-notice {display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding:var(--s5) var(--s6);background:var(--white);border-radius:var(--r2);margin-bottom:var(--s6)}
.payment-notice strong {font-size:var(--text-sm)}
.payment-notice p {font-size:var(--text-xs);color:var(--catalog-muted);line-height:1.85;margin-top:var(--s2)}
.payment-notice .text-link {flex-shrink:0;font-size:var(--text-xs)}
.payment-history {background:var(--white);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s2) var(--s6)}
.payment-row {display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--s5);padding-block:var(--s5);border-bottom:1px solid var(--line)}
.payment-row:last-child {border-bottom:0}
.payment-row small {display:block;font-size:var(--text-xs);color:var(--catalog-muted);line-height:1.8}
.payment-row strong {display:block;font-size:var(--text-sm);line-height:1.7;margin-top:var(--s1)}
.payment-row p {font-size:var(--text-sm);margin-top:var(--s2)}
.payment-row .text-link {font-size:var(--text-xs)}
.agenda-row>.status-pill {display:inline-flex;font-size:var(--text-xs);font-weight:400;margin-bottom:var(--s2)}
.checkout-progress {list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);padding:0;margin:0 0 var(--s12)}
.checkout-progress li {display:flex;align-items:center;gap:var(--s3);padding:var(--s4);background:var(--surface);border-radius:var(--r2);font-size:var(--text-sm);color:var(--catalog-muted)}
.checkout-progress li[aria-current] {background:var(--accent-soft);color:var(--accent-hover);font-weight:700}
.checkout-progress span {font-size:var(--text-xs);font-weight:700}
.checkout-layout {--checkout-summary-width:340px;display:grid;grid-template-columns:minmax(0,1fr) var(--checkout-summary-width);gap:var(--s12);align-items:start}
.checkout-layout>div {min-width:0}
.checkout-layout h2 {font-size:var(--portal-heading);line-height:1.5}
.checkout-course h2 {margin-block:var(--s3) var(--s6)}
.checkout-course-heading {display:flex;align-items:center;gap:var(--s6)}
.checkout-course-heading>.portrait-frame {width:100px;flex-shrink:0}
.checkout-course-heading>div {min-width:0}
.checkout-course-heading h3 {font-size:var(--text-lg);line-height:1.65;margin-block:var(--s3) var(--s2)}
.checkout-course-heading p {font-size:var(--text-sm);color:var(--catalog-muted);line-height:1.8}
.checkout-facts {display:grid;gap:var(--s4);border-block:1px solid var(--line);padding-block:var(--s6);margin-block:var(--s6) var(--s3)}
.checkout-facts>div {display:flex;justify-content:space-between;gap:var(--s6);font-size:var(--text-sm)}
.checkout-facts dt {color:var(--catalog-muted);flex-shrink:0}
.checkout-facts dd {margin:0;text-align:right}
.checkout-before {margin-top:var(--s10)}
.checkout-before ul {padding-left:var(--s5);margin-block:var(--s5);font-size:var(--text-sm);line-height:1.85;color:var(--catalog-muted)}
.checkout-before li+li {margin-top:var(--s3)}
.checkout-summary {background:var(--surface);border-radius:var(--r3);padding:var(--s8)}
.checkout-summary h2 {margin-block:var(--s3) var(--s6)}
.checkout-total {border-block:1px solid var(--line);padding-block:var(--s5);margin-bottom:var(--s4)}
.checkout-total span {display:block;font-size:var(--text-sm);color:var(--catalog-muted)}
.checkout-total strong {display:block;font-size:var(--portal-quote);line-height:1.5;margin-top:var(--s2)}
.checkout-summary>p:not(.portal-disclosure) {font-size:var(--text-sm);margin-bottom:var(--s6)}
.checkout-summary .button {width:100%;font-size:var(--text-sm);text-align:center;padding-inline:var(--s4)}
.checkout-summary .text-link {font-size:var(--text-xs);margin-top:var(--s4)}

@media(max-width:1100px) {.stories-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px) {
 .checkout-layout {grid-template-columns:minmax(0,1fr);gap:var(--s8)}
 .account-layout {grid-template-columns:minmax(0,1fr);gap:var(--s6)}
 .account-sidebar {position:static;padding-top:0}
 .account-identity {padding-bottom:var(--s4)}
 .account-side-nav {display:flex;flex-wrap:wrap;margin-block:var(--s3)}
 .account-side-nav a {padding-inline:var(--s3);min-height:44px}
 .role-switch {justify-content:flex-start;gap:var(--s3);padding-block:var(--s2)}
 .next-lesson {gap:var(--s4)}
}
@media(max-width:767px) {
 .payment-notice {display:block;padding:var(--s5)}
 .payment-notice .text-link {margin-top:var(--s3)}
 .payment-history {padding-inline:var(--s5)}
 .payment-row {grid-template-columns:minmax(0,1fr) auto;gap:var(--s3)}
 .payment-row>div {grid-column:1/-1}
 .payment-row .text-link {justify-self:end}
 .checkout-progress {grid-template-columns:minmax(0,1fr);gap:var(--s2);margin-bottom:var(--s8)}
 .checkout-course-heading {gap:var(--s4);align-items:start}
 .checkout-course-heading>.portrait-frame {width:72px}
 .checkout-course-heading h3 {font-size:var(--text-base)}
 .checkout-course-heading p {font-size:var(--text-xs)}
 .checkout-facts>div {gap:var(--s4);font-size:var(--text-xs)}
 .checkout-summary {padding:var(--s6)}
 body[data-directory="portal"] {--portal-title:28px;--portal-quote:24px;--portal-time:32px}
 .page-intro {padding-block:var(--s6) var(--s8)}
 .page-intro p {font-size:var(--text-sm)}
 .stories-feature {display:block;padding:var(--s6)}
 .stories-index {border-left:0;border-top:1px solid var(--line);padding:var(--s5) 0 0;margin-top:var(--s5);display:grid;grid-template-columns:auto 1fr;gap:var(--s2) var(--s5)}
 .stories-index strong {grid-column:1;grid-row:1/3;font-size:var(--portal-time);margin:0}
 .stories-index>span {grid-column:2}
 .stories-index p {grid-column:2;font-size:var(--text-xs)}
 .stories-index p br {display:none}
 .portal-section {padding-block:var(--s10)}
 .review-tools {gap:var(--s4);margin-bottom:var(--s6)}
 .portal-search {width:100%}
 .portal-filters button {font-size:var(--text-xs);padding-inline:var(--s3)}
 .stories-grid {grid-template-columns:minmax(0,1fr)}
 .portal-closing {display:block;padding:var(--s6)}
 .portal-closing .button {margin-top:var(--s5)}
 .guide-jump {gap:var(--s2) var(--s5)}
 .guide-jump a {font-size:var(--text-xs)}
 .guide-steps {grid-template-columns:minmax(0,1fr);gap:var(--s6)}
 .guide-steps article {display:grid;grid-template-columns:var(--s10) minmax(0,1fr);gap:var(--s2) var(--s4);padding-top:var(--s5)}
 .guide-step-number {grid-row:1/4;font-size:var(--portal-heading);margin:0}
 .guide-steps h3 {margin:0}
 .guide-steps .text-link,.guide-steps p {grid-column:2}
 .guide-steps .text-link {margin-top:var(--s1)}
 .preparation-panel,.teacher-guide {grid-template-columns:minmax(0,1fr);padding:var(--s6);gap:var(--s8)}
 .guide-faq {grid-template-columns:minmax(0,1fr);gap:var(--s6)}
 .account-main {padding-block:var(--s5) var(--s10)}
 .account-side-nav {gap:var(--s1)}
 .account-side-nav a {font-size:var(--text-xs);gap:var(--s2);padding-inline:var(--s2)}
 .account-heading .button {width:100%}
 .account-summary>div {padding-inline:var(--s3)}
 .account-summary strong {font-size:var(--text-quote)}
 .account-summary span {line-height:1.6}
 .next-lesson {grid-template-columns:minmax(0,1fr);padding:var(--s6)}
 .next-lesson-actions {align-items:stretch}
 .next-lesson-actions .text-link {justify-content:center}
 .next-lesson h3 {font-size:var(--text-lg)}
 .calendar-body {grid-template-columns:minmax(0,1fr)}
 .calendar-toolbar {padding:var(--s4);gap:var(--s2)}
 .calendar-toolbar h3 {font-size:var(--text-lg)}
 .calendar-actions {gap:var(--s1)}
 .month-calendar {padding-inline:var(--s1)}
 .day-agenda {border-left:0;border-top:1px solid var(--line);padding:var(--s5)}
 .enrolled-list {grid-template-columns:minmax(0,1fr)}
 .enrolled-card {padding:var(--s5)}
 .history-row {flex-wrap:wrap;gap:var(--s3)}
 .history-row>div {flex:1 1 100%}
 .history-row>.history-actions {flex:0 1 auto;margin-left:auto;gap:var(--s3)}
 .lesson-history {padding-inline:var(--s5)}
 .account-help {display:block;padding:var(--s5)}
 .account-help .text-link {margin-top:var(--s3)}
 .account-dialog {padding:var(--s8) var(--s6)}
 .draft-form-pair {grid-template-columns:minmax(0,1fr)}
}
