/* Classroom: course pages built from Obsidian notes (projects/classroom/) */

.cr-main { --cr-measure: 40rem; padding-top: 1rem; }

/* ── Layout: one reading column, contents list in the right gutter ── */
.cr-layout { max-width: var(--cr-measure); margin: 0 auto; }
@media (min-width: 1100px) {
    .cr-layout.has-toc {
        max-width: none;
        display: grid;
        grid-template-columns: minmax(0, 1fr) var(--cr-measure) minmax(0, 1fr);
        column-gap: 4rem;
    }
    .cr-layout.has-toc .cr-page { grid-column: 2; }
    .cr-layout.has-toc .cr-toc { display: block; grid-column: 3; }
}

/* ── Page header ── */
.container .cr-header { padding: 0; margin: 0 0 2.5rem; } /* override the site-wide header rule */
.cr-page .cr-kicker { display: inline-block; font-family: var(--font-sans); margin-bottom: 0.75rem; font-size: var(--text-sm); color: var(--color-text-muted); text-decoration: none; }
.cr-kicker::before { content: "← "; }
.cr-page .cr-kicker:hover { color: var(--color-accent); }
.cr-header h1 { font-size: var(--text-2xl); line-height: var(--lh-snug); letter-spacing: var(--tracking-tight); font-weight: 600; margin: 0; text-wrap: balance; }

/* ── Prose ── */
.cr-page { font-family: var(--font-serif); font-size: var(--text-md); line-height: var(--lh-prose); }
.cr-page h2, .cr-page h3, .cr-page h4 { font-family: var(--font-sans); line-height: var(--lh-snug); letter-spacing: var(--tracking-tight); scroll-margin-top: 1.5rem; }
.cr-page h2 { font-size: var(--text-xl); font-weight: 600; margin: 3rem 0 1rem; }
.cr-page h3 { font-size: var(--text-lg); font-weight: 600; margin: 2.75rem 0 0.75rem; }
.cr-page h4 { font-size: var(--text-base); font-weight: 600; margin: 2rem 0 0.5rem; }
.cr-page p, .cr-page ul, .cr-page ol { margin: 0 0 1.1rem; }
.cr-page ul, .cr-page ol { padding-left: 1.25rem; }
.cr-page li { margin-bottom: 0.4rem; }
.cr-page li::marker { color: var(--color-text-muted); }
.cr-page a { color: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--color-accent) 45%, transparent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.cr-page a:hover { color: var(--color-accent); text-decoration-color: currentColor; }
.cr-page hr { border: 0; border-top: 1px solid var(--color-border); width: 4rem; margin: 2.25rem auto; }
.cr-page blockquote { margin: 2rem 0; padding-left: 1.25rem; border-left: 2px solid var(--color-border); color: var(--color-text-muted); }
.cr-page blockquote p { margin-bottom: 0.5rem; }
.cr-page img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.cr-page table { border-collapse: collapse; width: 100%; font-family: var(--font-sans); font-size: var(--text-sm); margin: 1.5rem 0; }
.cr-page th, .cr-page td { border-bottom: 1px solid var(--color-border); padding: 0.5rem 0.75rem 0.5rem 0; text-align: left; vertical-align: top; }
.cr-page th { font-weight: 600; }
.cr-page mark { background: var(--color-accent-light); color: inherit; padding: 0 0.15em; border-radius: 2px; }
.cr-page code { font-family: var(--font-mono); font-size: 0.85em; }

/* Links to notes that aren't published read as plain text */
.cr-unlinked { color: inherit; }

.cr-embed { position: relative; aspect-ratio: 16 / 9; margin: 1.5rem 0; }
.cr-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--radius-md); }
.cr-print-only { display: none; }

/* ── Callouts: quiet tinted panel, collapsible ones get a +/− marker ── */
.cr-callout { margin: 1.75rem 0; padding: 1rem 1.25rem; background: var(--color-control-bg); border-radius: var(--radius-md); font-size: var(--text-base); }
.cr-callout > :last-child { margin-bottom: 0; }
.cr-callout summary, .cr-callout-title { font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; margin: 0; }
.cr-callout summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; }
.cr-callout summary::-webkit-details-marker { display: none; }
.cr-callout summary::after { content: "+"; color: var(--color-text-muted); font-weight: 400; }
.cr-callout[open] summary::after { content: "−"; }
.cr-callout[open] summary, .cr-callout-title { margin-bottom: 0.75rem; }
.cr-callout-warning .cr-callout-title, .cr-callout-warning summary, .cr-callout-caution summary { color: var(--color-warning-hover); }
.cr-callout-danger .cr-callout-title, .cr-callout-danger summary { color: var(--color-error-hover); }

/* ── Course home: lessons as rows grouped under week labels ── */
.cr-home h3 { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); margin: 2.5rem 0 0.5rem; }
.cr-home ul { list-style: none; padding: 0; border-top: 1px solid var(--color-border); font-family: var(--font-sans); font-size: var(--text-base); }
.cr-home li { margin: 0; border-bottom: 1px solid var(--color-border); }
.cr-home li > a, .cr-home li > .cr-unlinked { display: block; padding: 0.7rem 0; text-decoration: none; }
.cr-home li > a:hover { color: var(--color-accent); }
.cr-home li > .cr-unlinked { color: var(--color-text-muted); opacity: 0.6; }

/* ── Previous / next ── */
.cr-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--color-border); font-family: var(--font-sans); font-size: var(--text-sm); line-height: var(--lh-snug); }
.cr-page .cr-pager a { display: block; padding: 0.9rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); text-decoration: none; }
.cr-page .cr-pager a:hover { border-color: var(--color-accent); color: inherit; }
.cr-pager span { display: block; margin-bottom: 0.25rem; font-size: var(--text-xs); color: var(--color-text-muted); }
.cr-pager-next { text-align: right; grid-column: 2; }

/* ── Contents list (wide screens only) ── */
.cr-toc { display: none; position: sticky; top: 2rem; align-self: start; max-width: 15rem; font-size: var(--text-sm); line-height: var(--lh-snug); }
.cr-toc p { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); margin: 0 0 0.75rem; }
.cr-toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--color-border); }
.cr-toc a { display: block; padding: 0.3rem 0 0.3rem 0.85rem; color: var(--color-text-muted); text-decoration: none; }
.cr-toc a:hover { color: var(--color-text); }
.cr-toc-2 ~ .cr-toc-3 a, .cr-toc-3 ~ .cr-toc-4 a { padding-left: 1.6rem; } /* nest under a parent heading */

/* ── Lock screen ── */
.cr-lock { max-width: 28rem; margin: 8vh auto; text-align: center; }
.cr-lock[hidden] { display: none; }
.cr-lock-back { display: block; width: fit-content; margin-bottom: 2.5rem; font-size: var(--text-sm); color: var(--color-text-muted); text-decoration: none; }
.cr-lock-back::before { content: "← "; }
.cr-lock-back:hover { color: var(--color-accent); }
.cr-lock-icon { display: inline-flex; padding: 0.75rem; border-radius: 999px; color: var(--color-accent); background: var(--color-accent-light); }
.cr-lock-icon svg { width: 22px; height: 22px; }
[data-theme="dark"] .cr-lock-icon { color: var(--color-text); background: var(--color-control-bg); }
.cr-lock h1 { font-size: var(--text-xl); font-weight: 600; letter-spacing: var(--tracking-tight); line-height: var(--lh-snug); margin: 1rem 0 1.75rem; text-wrap: balance; }
.cr-lock-row { display: flex; gap: 0.5rem; text-align: left; }
.cr-lock-field { position: relative; flex: 1; min-width: 0; }
.cr-lock input { width: 100%; box-sizing: border-box; padding: 0.7rem 2.75rem 0.7rem 0.85rem; font: inherit; color: var(--color-text); background: var(--color-card-bg); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.cr-lock input:focus { outline: 2px solid var(--color-accent); outline-offset: -1px; }
.cr-lock-show { position: absolute; right: 0.35rem; top: 50%; transform: translateY(-50%); display: inline-flex; padding: 0.4rem; color: var(--color-text-muted); background: none; border: 0; border-radius: var(--radius-sm); cursor: pointer; }
.cr-lock-show:hover { color: var(--color-text); background: var(--color-control-bg); }
.cr-lock-show .cr-eye-off, .cr-lock-show[aria-pressed="true"] .cr-eye { display: none; }
.cr-lock-show[aria-pressed="true"] .cr-eye-off { display: block; }
.cr-lock-open { padding: 0.7rem 1.25rem; font: inherit; font-weight: 600; color: #fff; background: var(--color-accent); border: 0; border-radius: var(--radius-sm); cursor: pointer; }
.cr-lock-open:hover { background: var(--color-accent-hover); }
[data-theme="dark"] .cr-lock-open { background: var(--color-accent-medium); }
.cr-lock.is-wrong input { border-color: var(--color-error); outline-color: var(--color-error); }
.cr-lock.is-wrong .cr-lock-row { animation: cr-shake 0.35s; }
@keyframes cr-shake { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
@media (prefers-reduced-motion: reduce) { .cr-lock.is-wrong .cr-lock-row { animation: none; } }

/* ── Classroom landing: one row per class ── */
.cr-courses li > a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; }
.cr-course-title { font-weight: 500; }
.cr-course-meta { display: inline-flex; color: var(--color-text-muted); }
.cr-course-meta > span { display: inline-flex; }
.cr-course-meta .cr-unlocked, .is-unlocked .cr-course-meta .cr-locked { display: none; }
.is-unlocked .cr-course-meta .cr-unlocked { display: inline-flex; color: var(--color-success-hover); }
.cr-course-link[aria-expanded="true"] .cr-course-meta { color: var(--color-accent); }
.cr-lock.cr-course-unlock { max-width: none; margin: 0 0 1rem; text-align: left; }
.cr-quarter + .cr-quarter, .cr-quarter + .cr-archive { margin-top: 2.5rem; }
.cr-home .cr-quarter-label { font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); margin: 0 0 0.5rem; }
.cr-archive > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; color: var(--color-text-muted); padding: 0.75rem 0; border-top: 1px solid var(--color-border); }
.cr-archive > summary::-webkit-details-marker { display: none; }
.cr-archive > summary::after { content: "+"; font-weight: 400; }
.cr-archive[open] > summary::after { content: "−"; }
.cr-archive > summary:hover { color: var(--color-text); }
.cr-archive .cr-quarter { margin-top: 1rem; }

/* ── Obsidian extras ── */
.sr-only, .cr-page .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.cr-page sup a { text-decoration: none; font-family: var(--font-sans); font-size: 0.75em; padding: 0 0.1em; color: var(--color-accent); }
.cr-page .footnotes { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--color-border); font-size: var(--text-sm); color: var(--color-text-muted); }
.cr-page .footnotes p { margin: 0 0 0.4rem; }
.cr-page .footnotes a[data-fn-backref] { text-decoration: none; }
.cr-tag { font-family: var(--font-sans); font-size: 0.8em; color: var(--color-accent); background: var(--color-accent-light); padding: 0.05em 0.45em; border-radius: 999px; white-space: nowrap; }
[data-theme="dark"] .cr-tag { color: var(--color-text); background: var(--color-control-bg); }
.cr-transclusion-part { display: contents; } /* children sit in the page's flow, spaced like typed content */
.cr-transclusion-note { margin: 2rem 0; padding: 1rem 1.25rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.cr-transclusion-note > :last-child { margin-bottom: 0; }
.cr-transclusion-title { font-family: var(--font-sans); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); margin: 0 0 0.75rem; }
.cr-page li:has(> input[type="checkbox"]) { list-style: none; margin-left: -1.25rem; }
.cr-page li > input[type="checkbox"] { margin: 0 0.5rem 0 0; accent-color: var(--color-accent); vertical-align: -0.1em; }
.cr-page .katex-display { overflow-x: auto; overflow-y: hidden; padding: 0.25rem 0; }
.cr-page pre { font-family: var(--font-mono); font-size: var(--text-sm); line-height: var(--lh-body); background: var(--color-control-bg); padding: 1rem 1.25rem; border-radius: var(--radius-md); overflow-x: auto; }
.cr-page pre.mermaid { background: none; text-align: center; }
.cr-audio, .cr-video, .cr-pdf { display: block; width: 100%; margin: 1.5rem 0; border-radius: var(--radius-md); }
.cr-pdf { height: 80vh; border: 1px solid var(--color-border); }

@media (max-width: 600px) {
    .cr-header h1 { font-size: var(--text-xl); }
    .cr-page { font-size: var(--text-base); }
    .cr-pager { grid-template-columns: 1fr; }
    .cr-pager-next { grid-column: 1; }
}

@media print {
    site-nav, .cr-lock, .cr-embed, .cr-toc, .cr-pager, footer { display: none !important; }
    .cr-print-only { display: block; font-size: 0.85em; }
    body { background: #fff; color: #000; }
    .container { width: auto; max-width: none; padding: 0; }
    .cr-layout { max-width: none; }
    .cr-page { font-size: 11pt; line-height: 1.5; color: #000; }
    .cr-kicker::before { content: ""; }
    .cr-page a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; word-break: break-all; }
    .cr-page h2, .cr-page h3, .cr-page h4 { break-after: avoid; }
    .cr-page blockquote, .cr-callout, .cr-page img, .cr-page table { break-inside: avoid; }
    .cr-callout { background: none; border: 1px solid #ccc; font-size: inherit; }
    .cr-callout summary::after { content: ""; }
}

/* ── Course schedule (a "Date" table in the course home note) ── */
.cr-week { position: relative; }
.cr-home .cr-week h3 { margin: 2.25rem 0 0.4rem; }
.cr-home .cr-week.is-current h3 { color: var(--color-accent); }
.cr-week.is-current::before { content: ""; position: absolute; left: -1rem; top: 2.6rem; bottom: 0; width: 2px; background: var(--color-accent); }
.cr-home .cr-sched li { display: grid; grid-template-columns: 6.5rem 4.75rem 1fr; gap: 0.75rem; align-items: baseline; padding: 0.55rem 0; font-size: var(--text-base); line-height: 1.45; }
.cr-home .cr-sched li:has(+ li .cr-sched-date:empty) { border-bottom-color: transparent; }
.cr-sched-date { font-size: var(--text-sm); color: var(--color-text-muted); white-space: nowrap; }
.cr-sched-kind { font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-text-muted); }
.cr-sched-due .cr-sched-kind, .cr-sched-required .cr-sched-kind, .cr-sched-exam .cr-sched-kind { color: var(--color-accent); }
.cr-sched-due .cr-sched-text { font-weight: 500; }
.cr-sched-off .cr-sched-kind { color: var(--color-warning-hover); }
.cr-sched-event .cr-sched-text { color: var(--color-text-muted); }
.cr-sched li.is-past { opacity: 0.45; }
@media (max-width: 600px) {
    .cr-home .cr-sched li { grid-template-columns: 4.75rem 1fr; }
    .cr-sched-date { grid-column: 1 / -1; }
    .cr-sched-date:empty { display: none; }
    .cr-week.is-current::before { left: -0.6rem; }
}
@media print {
    .cr-sched li.is-past { opacity: 1; }
    .cr-week.is-current::before { display: none; }
}

/* ── Live quiz: student page (live.html) ── */
.lv { font-family: var(--font-sans); }
.lv [hidden] { display: none !important; } /* the flex/grid rules below would otherwise show hidden views */
.cr-page .lv-bar { display: flex; justify-content: space-between; align-items: baseline; font-size: var(--text-sm); color: var(--color-text-muted); margin: -1.5rem 0 2rem; }
.lv-bar:has(.lv-who:empty) { visibility: hidden; }
.lv button, .lh button { font: inherit; cursor: pointer; }
.lv-rename { background: none; border: 0; padding: 0; color: var(--color-text-muted); text-decoration: underline; text-underline-offset: 3px; }
.lv-join form, .lv-short { display: flex; gap: 0.5rem; }
.lv-short { flex-direction: column; }
.lv input, .lv textarea { flex: 1; padding: 0.8rem 0.9rem; font: inherit; font-size: var(--text-md); color: var(--color-text); background: var(--color-card-bg); border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.lv-join button, .lv-short button { padding: 0.8rem 1.4rem; font-weight: 600; color: #fff; background: var(--color-accent); border: 0; border-radius: var(--radius-md); align-self: flex-start; }
.lv-short button:disabled { opacity: 0.4; cursor: default; }
.lv-wait { display: flex; align-items: center; gap: 0.75rem; color: var(--color-text-muted); padding: 2rem 0; }
.lv-wait p { margin: 0; }
.lv-pulse { width: 0.7rem; height: 0.7rem; border-radius: 999px; background: var(--color-accent); animation: lv-pulse 1.4s ease-in-out infinite; }
.lv-wait.is-offline .lv-pulse { background: var(--color-error); animation: none; }
@keyframes lv-pulse { 50% { opacity: 0.25; transform: scale(0.8); } }
@media (prefers-reduced-motion: reduce) { .lv-pulse { animation: none; } }
.cr-page .lv-count { font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-accent); margin: 0 0 0.5rem; }
.cr-page .lv-text { font-family: var(--font-serif); font-size: var(--text-xl); font-weight: 600; line-height: var(--lh-snug); margin: 0 0 1.5rem; }
.lv-choices { display: grid; gap: 0.6rem; }
.lv-choices button { text-align: left; padding: 1rem 1.1rem; font-size: var(--text-md); color: var(--color-text); background: var(--color-card-bg); border: 1px solid var(--color-border); border-radius: var(--radius-md); transition: border-color var(--transition-fast); }
.lv-choices button:not(:disabled):hover { border-color: var(--color-accent); }
.lv-choices button:disabled { cursor: default; opacity: 0.55; }
.lv-choices button.is-mine { opacity: 1; border-color: var(--color-accent); background: var(--color-accent-light); color: var(--color-text); }
.lv-choices button.is-correct { opacity: 1; border-color: var(--color-success); box-shadow: inset 4px 0 0 var(--color-success); }
[data-theme="dark"] .lv-choices button.is-mine { background: var(--color-control-bg); }
.cr-page .lv-reveal { margin: 1rem 0 0; padding: 0.9rem 1rem; border-left: 3px solid var(--color-success); background: var(--color-control-bg); border-radius: var(--radius-sm); }
.cr-page .lv-sent { margin: 1rem 0 0; font-size: var(--text-sm); font-weight: 600; color: var(--color-success-hover); visibility: hidden; }
.lv.is-sent .lv-sent { visibility: visible; }

/* ── Live quiz: instructor page (live-host.html), sized for a projector ── */
.lh { font-family: var(--font-sans); max-width: 56rem; margin: 0 auto; }
.lh [hidden] { display: none !important; }
.cr-page.lh .lh-join { font-size: var(--text-md); color: var(--color-text-muted); margin: -1.5rem 0 2.5rem; }
.lh-join strong { color: var(--color-text); font-weight: 600; }
.lh-meta { font-size: var(--text-sm); color: var(--color-text-muted); }
.cr-page.lh .lh-quiz-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--color-border); }
.lh-quiz-list button { width: 100%; display: flex; justify-content: space-between; align-items: baseline; padding: 1rem 0; background: none; border: 0; border-bottom: 1px solid var(--color-border); color: var(--color-text); font-size: var(--text-md); text-align: left; }
.lh-quiz-list button:hover span:first-child { color: var(--color-accent); }
.lh-empty { padding: 1rem 0; color: var(--color-text-muted); }
.cr-page.lh .lh-text { font-family: var(--font-serif); font-size: var(--text-2xl); font-weight: 600; line-height: var(--lh-snug); margin: 0.25rem 0 1.5rem; }
.lh-progress { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; font-size: var(--text-sm); color: var(--color-text-muted); }
.lh-bar { flex: 1; height: 6px; background: var(--color-control-bg); border-radius: 999px; overflow: hidden; }
.lh-bar-fill { display: block; height: 100%; width: 0; background: var(--color-accent); transition: width 0.3s ease; }
.cr-page.lh .lh-choices { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.cr-page.lh .lh-choices li, .cr-page.lh .lh-short li, .cr-page.lh .lh-quiz-list li { margin: 0; }
.lh-choices li { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 2.5rem; gap: 1rem; align-items: center; font-size: var(--text-md); }
.lh-choice-bar { height: 1.4rem; background: var(--color-control-bg); border-radius: var(--radius-sm); overflow: hidden; }
.lh-choice-bar span { display: block; height: 100%; background: var(--color-accent-medium); transition: width 0.3s ease; }
.lh-choice-n { text-align: right; font-variant-numeric: tabular-nums; }
.lh-choices li.is-correct .lh-choice-text { font-weight: 600; color: var(--color-success-hover); }
.lh-choices li.is-correct .lh-choice-bar span { background: var(--color-success); }
.cr-page.lh .lh-short { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; max-height: 40vh; overflow-y: auto; }
.lh-short li { padding: 0.6rem 0.8rem; background: var(--color-card-bg); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.lh-short .lh-meta { display: block; font-size: var(--text-xs); }
.lh-model { padding: 0.8rem 1rem; border-left: 3px solid var(--color-success); background: var(--color-control-bg); }
.lh-controls { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2rem; }
.lh-controls button { padding: 0.65rem 1.2rem; font-weight: 500; color: var(--color-text); background: var(--color-card-bg); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.lh-controls button:hover:not(:disabled) { border-color: var(--color-accent); }
.lh-controls button:disabled { opacity: 0.4; cursor: default; }
.lh-controls .lh-next, .lh-controls .lh-csv { color: #fff; background: var(--color-accent); border-color: var(--color-accent); font-weight: 600; }
.lh-controls .lh-stop, .lh-controls .lh-close { margin-left: auto; }
.lh-table { overflow-x: auto; }
.lh-table table { border-collapse: collapse; width: 100%; font-size: var(--text-sm); }
.lh-table th, .lh-table td { padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--color-border); text-align: center; }
.lh-table th:first-child, .lh-table td:first-child { text-align: left; }
.lh-table .is-right { color: var(--color-success-hover); }
.lh-table .is-wrong { color: var(--color-error); }
.cr-page.lh { font-family: var(--font-sans); font-size: var(--text-base); }
.lh button { color: var(--color-text); }
.lh-quiz-list button span:first-child { font-family: var(--font-serif); font-weight: 600; }
