/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-0.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-1.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-2.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-3.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-4.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-6.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-0.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-1.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-2.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-3.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-4.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-6.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-0.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-1.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-2.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-3.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-4.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-6.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-0.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-1.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-2.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-3.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-4.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/source-sans-3-6.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Green & gold atlas. The specimen keeps its anatomical material colours. */
:root {
  font-family: 'Source Sans 3', sans-serif;
  color-scheme: light;
  --green: #275d38;
  --gold: #f2cd00;
  --paper: #f5f5f1;
  --ink: #1e2c23;
  --muted: #58645b;
  --accent: #275d38;
  --line: #ced5ca;
  --panel: #fafbf7;
  --surface-border: #ced5ca;
  --surface-raised: #e9eee5;
  --text-secondary: #58645b;
  --control-border: #75866b;
  color: var(--ink);
  background: var(--paper);
}
body { background: var(--paper); font-family: 'Source Sans 3', sans-serif; }
#main-content { min-width: 0; }
#main-content:focus { outline: none; }
.skip-link { position: fixed; top: max(.75rem, env(safe-area-inset-top)); left: max(.75rem, env(safe-area-inset-left)); z-index: 100; padding: .75rem 1rem; min-height: 44px; background: var(--paper); color: var(--green); border-radius: 4px; font-weight: 600; transform: translateY(calc(-100% - 2rem)); }
.skip-link:focus { transform: translateY(0); outline: 2px solid var(--green); outline-offset: 3px; }
h1,h2,h3,.brand-mark { font-family: 'Source Sans 3',sans-serif; letter-spacing: -.02em; }
button,select,input,textarea { font-family: inherit; }
button,summary,.page-link { touch-action: manipulation; -webkit-user-select: none; user-select: none; }
button, .page-link { color: var(--ink); background: transparent; border-color: var(--line); border-radius: 4px; min-height: 44px; min-width: 44px; }
a { color: var(--green); text-underline-offset: 4px; }
summary { color: var(--ink); min-height: 44px; }
button.active,button[aria-pressed=true],.structure-button.selected { color: var(--green); border-color: var(--green); background: #e2ebde; }
button.primary,.page-link.primary,.quiz-active .self-mark .primary { background: var(--gold); color: #243a26; border-color: var(--gold); }
button:disabled { opacity: .5; }
::selection { background: #f2cd0070; color: #172b1d; }
* { scrollbar-color: #99aa93 transparent; scrollbar-width: thin; }
input,textarea { caret-color: var(--green); }
input[type=checkbox],input[type=range] { accent-color: var(--green); }
.eyebrow { color: var(--green); letter-spacing: 0; text-transform: none; font-weight: 600; }
/* Navigation has a single hierarchy: atlas, laboratory, study mode. */
.topbar { background: var(--green); color: #f5f5f5; border: 0; padding: .85rem 1.65rem; gap: 1.5rem; min-height: 86px; }
.brand { gap: 0; }
.brand-mark { display: none; }
.brand strong { font-size: 1rem; letter-spacing: .055em; }
.brand strong #course-name { color: #e4ecdf; font-family: inherit; font-size: .72rem; letter-spacing: .08em; }
.brand .lab-picker select { color: #f5f5f5; background-color: transparent; border: 0; border-radius: 0; min-height: 44px; padding: 0 1.1rem 0 0; margin: .1rem 0 0; font-size: 1rem; max-width: 280px; }
.lab-picker select option { color: var(--ink); background: var(--paper); }
.topbar .mode-switch { border: 0; border-radius: 0; background: transparent; padding: 0; gap: .7rem; align-self: stretch; align-items: stretch; }
.topbar .mode-switch button { color: #e4ecdf; border: 0; border-radius: 0; border-bottom: 3px solid transparent; background: transparent; min-height: 44px; font-size: .95rem; padding: .65rem .75rem; }
.topbar .mode-switch button.active { color: var(--gold); background: transparent; border-bottom-color: var(--gold); border-radius: 0; }
.topbar-actions { gap: .35rem; }
.topbar .topbar-actions > button,.topbar #course-home,.more-menu > summary { color: #f5f5f5; border-color: #72967a; background: transparent; border-radius: 4px; padding: .5rem .75rem; min-height: 44px; font-size: .875rem; }
.topbar #home-button { border-color: transparent; }
.more-menu > summary:after { color: var(--gold); }
.more-menu[open] > summary { background: #1d492c; }
.more-menu > div { background: #fafbf7; color: var(--ink); border: 0; border-radius: 5px; box-shadow: 0 12px 32px #0a201b30; padding: .5rem; min-width: 235px; }
.more-menu > div button,.more-menu > div a { color: var(--green); border-radius: 3px; padding: .7rem .85rem; min-height: 44px; font-size: .9375rem; }
.more-menu > div button + button { border-top: 1px solid var(--line); }
.lesson-route { background: var(--paper); border-color: var(--line); padding: .55rem 1.65rem; gap: .65rem; min-height: 58px; }
.lesson-route button { color: var(--green); border: 0; border-radius: 0; min-height: 44px; padding: .45rem .7rem; font-size: .875rem; }
.lesson-route button[aria-pressed=true],.lesson-route button[aria-expanded=true] { background: #e2ebde; color: var(--green); box-shadow: inset 0 -2px var(--green); }
#route-label { margin-left: auto; }
.route-hint { display: none; }
/* The directory is an index, not a grid of marketing cards. */
.home-panel { max-width: 1180px; padding: 3.5rem 2rem 2rem; }
.home-hero { max-width: none; display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 2.5rem; margin-bottom: 3rem; }
.home-hero h1,.course-page .home-hero h1 { color: var(--green); font-size: clamp(2.75rem,5vw,4.5rem); font-weight: 600; line-height: 1.02; letter-spacing: -.035em; margin: 0; max-width: 16ch; }
.home-hero p { color: var(--muted); font-size: 1.125rem; line-height: 1.5; max-width: 34ch; margin: 0 0 .2rem; }
.course-cards { display: block; border-top: 2px solid var(--green); }
.course-row { display: grid; grid-template-columns: minmax(120px, .55fr) minmax(180px,1fr) auto; gap: 1.5rem; align-items: center; padding: 1.65rem .25rem; color: var(--ink); border-bottom: 1px solid var(--line); text-decoration: none; }
.course-row h2 { font-size: 2rem; line-height: 1.1; font-weight: 600; color: var(--green); margin: 0; }
.course-row p { margin: 0; line-height: 1.45; font-size: 1rem; color: var(--muted); }
.course-row .course-entry { display: flex; gap: 1.5rem; align-items: center; font-size: .875rem; color: var(--green); white-space: nowrap; }
.course-entry svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.course-row[aria-disabled=true] { color: var(--muted); }
.coming-soon-list { display: flex; align-items: baseline; gap: 1.5rem; flex-wrap: wrap; margin-top: 2rem; color: var(--muted); }
.coming-soon-list h2 { font-size: .9375rem; font-weight: 400; margin: 0; }
.coming-soon-list span { font-size: 1.125rem; font-weight: 600; }
.home-footer { margin-top: 1.8rem; border-top: 0; }
.home-footer p { color: var(--muted); }
.resume-card { background: #e5ecde; border: 0; border-radius: 0; padding: 1.2rem 1.4rem; margin-bottom: 2rem; }
.resume-card .eyebrow { display: none; }
.resume-card h2 { font-size: 1.125rem; color: var(--green); }
.resume-card p { color: var(--muted); }
.resume-card .primary { background: var(--green); color: #f5f5f5; border-color: var(--green); }
.course-page .home-hero { border-bottom: 2px solid var(--green); padding-bottom: 2.5rem; margin-bottom: 0; }
.course-page .resume-card { margin-top: 1.5rem; margin-bottom: .5rem; }
.course-lab-list { display: block; }
.lab-row { display: grid; grid-template-columns: 75px minmax(0,1fr) auto; gap: 1.5rem; align-items: center; border-bottom: 1px solid var(--line); padding: 1.75rem 0; text-decoration: none; color: var(--ink); }
.lab-row .lab-index { font-size: .875rem; color: var(--green); font-weight: 600; }
.lab-row h2 { font-size: 1.55rem; margin: 0 0 .25rem; font-weight: 600; }
.lab-row p { color: var(--muted); font-size: .9375rem; margin: 0; }
.lab-row .lab-entry { font-size: .9375rem; color: var(--green); }
.course-plan-link { color: var(--green); margin-top: 1.1rem; }
/* Sections are a compact contents panel with a visible close action. */
.workspace > .guide,.workspace.quiz-active > .guide { background: #fafbf7; border-right: 0; box-shadow: 12px 8px 28px #14271c26; width: 350px; padding: 1.25rem; gap: .25rem; }
#sections-close { align-self: flex-end; border: 0; color: var(--green); font-size: .875rem; margin-bottom: .5rem; }
.guide > .eyebrow { display: none; }
.guide h1 { display: block; font-size: 1.5rem; color: var(--green); margin-bottom: 1.1rem; }
.guide nav { gap: 0; }
.guide .topic { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; min-height: 52px; color: var(--ink); padding: .8rem .5rem; }
.guide .topic.active { background: #e5ecde; color: var(--green); }
.guide .topic .number { display: block; color: var(--muted); font-variant-numeric: tabular-nums; }
.guide .topic.active .number { color: var(--green); }
/* Reading surfaces: ink on digital white, colour reserved for landmarks. */
.study-panel,.figures-open > .study-panel,.lab-overview-active .study-panel,.dissector-panel { background: var(--panel); color: var(--ink); border-color: var(--line); }
#lesson-reading { padding: 1.7rem 1.8rem; }
.guided-learning #lesson-reading { padding: 1.65rem 1.85rem; }
.guided-learning #lesson-title,#lesson-title { color: var(--green); font-size: 1.85rem; font-weight: 600; line-height: 1.15; letter-spacing: -.025em; margin: .8rem 0 1rem; }
.lesson-progress,.lesson-progress strong { color: var(--muted); font-size: .875rem; }
.lesson-progress strong { color: var(--green); font-weight: 600; }
.walk-meter,.walk-meter::-webkit-progress-bar { background: #dce3d6; border-radius: 0; }
.walk-meter::-webkit-progress-value { background: var(--green); border-radius: 0; }
.walk-meter::-moz-progress-bar { background: var(--green); }
.lesson-purpose,.guided-learning .lesson-purpose { color: var(--muted); font-size: 1rem; line-height: 1.55; }
.lesson-cue,.guided-learning .lesson-cue { border: 0; padding: 1rem 1.1rem; background: #eef1e4; margin: 1.25rem 0; }
.lesson-cue .eyebrow { color: var(--green); font-size: .875rem; letter-spacing: 0; }
.lesson-cue p,.guided-learning .lesson-cue p { color: var(--ink); font-size: 1rem; line-height: 1.55; }
.lesson-section-label,.guided-learning .lesson-section-label { font-size: .875rem; color: var(--green); letter-spacing: 0; font-weight: 600; }
#lesson-essentials li,.guided-learning #lesson-essentials li { color: var(--ink); font-size: 1.0625rem; line-height: 1.55; }
#lesson-essentials li:before { background: var(--green); }
.guided-learning .lesson-term,.guided-learning .lesson-term[aria-pressed=true] { color: var(--green); text-decoration-color: #71925e; background: transparent; }
.lesson-term,.dissector-term { min-width: 0; }
.guided-learning .lesson-term[aria-pressed=true] { background: #f2cd0050; }
.guided-learning .lesson-term:focus-visible { background: #e2ebde; color: var(--green); }
.guided-learning .lesson-source-link { color: var(--green); }
.lesson-panel .lesson-advance,.lesson-advance { background: var(--panel); border-color: var(--line); }
.walk-navigation button,.lesson-advance #walk-check,.quiet-next { color: var(--green); }
.lesson-details,.recall-back,.quiz-options { border-color: var(--line); }
.lesson-details > summary,.lesson-details[open] > summary { color: var(--green); }
.lesson-details p,.lesson-details li,.study-panel .lead,.study-panel .section p,.walk-facts li,.lab-purpose,.intro-goals li,.intro-route li,.quiz-active .answer-explanation { color: var(--ink); font-size: 1.125rem; line-height: 1.6; }
.lesson-details .lesson-source { color: var(--muted); font-size: .875rem; }
.lesson-details .structure-button { color: var(--ink); background: transparent; border-color: var(--control-border); border-radius: 4px; min-height: 44px; }
.structure-button,.figures-open .structure-button { min-height: 44px; }
.lesson-details .structure-button.selected { background: #e2ebde; border-color: var(--green); }
.lesson-source,.lesson-selection-name,.figure-caption,.figure-legend ul,.intro-label { color: var(--muted); }
.restore-lesson-view { color: var(--green); border-color: #8da487; background: transparent; }
.intro-route li:before { color: var(--green); background: #e2ebde; border-radius: 3px; }
.intro-label { color: var(--green); }
.note,.answer,.mapping-note,.walk-selection,.coverage-note { background: #eef1e4; color: var(--ink); border-left: 1px solid #9caf89; }
.correction { color: #604d10; background: #fbf3ca; border-left: 1px solid #c9ae40; }
.quiz-filters select,.picture-picker select,#station-answer,.dissector-toolbar select { background: #f5f5f1; color: var(--ink); border-color: var(--control-border); border-radius: 4px; font-size: 1rem; }
#station-answer:read-only { color: var(--muted); }
#station-answer::placeholder { color: #65715f; }
.sample-prompt { color: var(--ink); border-left: 1px solid var(--green); }
/* Original guide pages stay at their original boundaries and aspect ratio. */
.dissector-block [data-source-passage] { cursor: text; }
.dissector-heading,.dissector-toolbar,.dissector-foot { background: var(--panel); color: var(--ink); }
.dissector-heading h2 { color: var(--green); }
.dissector-position,.dissector-foot { color: var(--muted); }
#follow-dissector { color: var(--green); border-color: var(--control-border); }
#follow-dissector[aria-pressed=true] { color: var(--green); border-color: var(--green); background: #e2ebde; }
.dissector-text-scroll { background: var(--paper); color: var(--ink); }
.source-page-label { color: var(--muted); letter-spacing: .06em; }
.dissector-toolbar button,.dissector-heading button,.dissector-follow button,.dissector-jump { min-height: 44px; }
.dissector-toolbar button,.dissector-heading button { min-width: 44px; }
.dissector-foot a { min-height: 44px; display: inline-flex; align-items: center; }
.dissector-block { border-left-width: 1px; border-radius: 0; }
.dissector-block.active { background: #e5ecde; border-left-color: var(--green); }
.dissector-block.clinical { background: #fbf3ca; border: 1px solid #d4c277; }
.dissector-block h3,.dissector-term,.dissector-jump { color: var(--green); }
/* A deep green specimen stage; familiar tissue colours remain untouched. */
.viewer-panel,.figures-open > .viewer-panel,#lesson-visual {
  --ink: #edf1e8; --muted: #becbbc; --accent: #f2cd00; --line: #4e6656; --text-secondary: #becbbc; --surface-border: #4e6656;
  color: var(--ink); background: #18271f;
}
.stage-heading h2 { color: #edf1e8; font-weight: 500; }
.stage-heading .eyebrow { display: none; }
.stage-heading .tag { color: #d0dbca; border: 0; padding: .35rem 0; font-size: .75rem; }
.viewer-tools > summary { background: transparent; color: #d0dbca; border: 1px solid #4e6656; border-radius: 4px; min-height: 44px; }
.viewer-tools[open] { background: #21372a; border-color: #4e6656; box-shadow: none; border-radius: 4px; }
.viewer-tools[open] > summary { border-color: transparent; }
.viewer-tools .dissection-controls { background: transparent; border: 0; }
.viewer-panel button,.viewer-panel select { color: #edf1e8; background: transparent; border-color: #4e6656; border-radius: 4px; }
.viewer-panel button.active,.viewer-panel button[aria-pressed=true],.camera-bar button.active,.camera-bar button[aria-pressed=true] { color: #f2cd00; background: #31452a; border-color: #8b904b; }
.camera-presets { border-color: #4e6656; background: transparent; border-radius: 4px; }
.camera-bar button,.camera-bar #clear-selection { color: #d0dbca; }
.camera-bar #clear-selection { border-color: #708263; }
.viewer-panel input { accent-color: var(--gold); }
.viewer-panel .tissue-controls label,.viewer-panel .region-controls label,.viewer-footer label { min-height: 44px; }
.viewer-panel .side-control select { min-height: 44px; }
.viewer-panel #layer { min-height: 44px; margin-block: .3rem; }
.orientation,.viewer-footer,.view-status,.atlas-note,.look-strip { color: #becbbc; }
#loading { background: #18271f; color: #edf1e8; }
#canvas-label { background: #203d2bf0; color: #f5f5f5; border-color: #f2cd00; border-radius: 4px; }
#pin-status { background: #203d2bf0; color: #f5f5f5; }
.structure-pick-menu { background: #21372a; border: 0; border-radius: 5px; box-shadow: 0 10px 30px #07140d50; }
.pick-menu-heading strong,.structure-pick-menu p { color: #edf1e8; }
.pick-menu-heading button { min-width: 44px; min-height: 44px; }
.pick-menu-list button { background: #2a4434; color: #edf1e8; }
.pick-menu-list button[aria-pressed=true] { background: #3d5130; color: var(--gold); border-color: var(--gold); }
.visual-map section { background: #21372a; border-color: #4e6656; border-radius: 4px; }
.visual-map li { background: #31452a; color: #edf1e8; border-radius: 3px; }
#lesson-visual h3,#lesson-visual > p,.visual-map-title { color: #edf1e8; }
/* Supporting pages share the same reading system. */
dialog,.dialog-heading { background: var(--panel); color: var(--ink); border-color: var(--line); border-radius: 5px; }
dialog::backdrop { background: #1025199c; backdrop-filter: none; }
.prep-header h1,.prep-section h2,.prep-section > summary { color: var(--green); }
.prep-section > summary,.prep-lab details summary,.quiz-options summary { min-height: 44px; padding-block: .6rem; }
.prep-header p,.prep-section > p,.study-sequence p { color: var(--muted); }
.study-sequence article > span { color: var(--green); font-variant-numeric: tabular-nums; }
.prep-lab { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 1rem 0; }
.concept-panel { background: var(--paper); }
.concept-cell { border-radius: 0; }
.layer-item,.region-grid > div { background: #e5ecde; color: var(--ink); }
.layer-item small { color: inherit; }
.layer-item.muscle { background: #f0ddd9; }.layer-item.fascia { background: #e2e7de; }.layer-item.highlight { background: #c9dcc2; }
.figure-image-button span { background: #e5ecde; color: var(--green); }
/* Interaction feedback is quick and does not move reading content. */
@media (hover:hover) and (pointer:fine) {
  button:hover,.page-link:hover { background: #e5ecde; color: var(--green); }
  button.primary:hover,.page-link.primary:hover { background: #e4bf00; color: #243a26; border-color: #e4bf00; }
  .resume-card .primary:hover { background: #1d492c; color: #f5f5f5; }
  .topbar .topbar-actions > button:hover,.topbar #course-home:hover,.more-menu > summary:hover { background: #1d492c; color: #fff; }
  .topbar .mode-switch button:hover { color: var(--gold); background: transparent; }
  .course-row:hover,.lab-row:hover { background: #e9eee3; }
  .course-row:hover .course-entry,.lab-row:hover .lab-entry { text-decoration: underline; text-underline-offset: 4px; }
  .more-menu > div button:hover,.more-menu > div a:hover { background: #e5ecde; color: var(--green); }
  .guided-learning .lesson-term:hover { background: #e2ebde; color: var(--green); }
  .guided-learning .lesson-source-link:hover { color: var(--green); }
  .viewer-panel button:hover { color: var(--gold); background: #31452a; }
  .restore-lesson-view:hover { color: var(--green); background: #e5ecde; }
  .lesson-route button:hover:not(:disabled) { color: var(--green); background: #e5ecde; }
}
/* Pair foreground and background: touch presses must remain readable without hover. */
.lesson-route button:active:not(:disabled),.dissector-toolbar button:active:not(:disabled) { color: var(--green); background: #dce7d6; }
.camera-bar button:active:not(:disabled) { color: var(--gold); background: #31452a; }
@media (min-width:741px) and (max-width:1150px) {
  .topbar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .6rem 1rem; }
  .topbar > .brand { grid-column: 1; grid-row: 1; }
  .topbar > .mode-switch { grid-column: 2; grid-row: 1; }
  .topbar > .topbar-actions { grid-column: 1/-1; grid-row: 2; justify-content: flex-end; }
  .guided-learning #lesson-reading { padding: 1.3rem 1.4rem; }
  .guided-learning #lesson-title { font-size: 1.7rem; }
}
@media (max-width:740px) {
  .topbar { padding: .85rem 1rem .35rem; gap: .35rem .5rem; }
  .topbar > .brand { grid-column: 1; grid-row: 1; min-width: 0; }
  .topbar .brand strong { font-size: .875rem; }
  .topbar .brand strong #course-name { font-size: .6875rem; }
  .topbar .lab-picker select { max-width: 100%; font-size: .8125rem; }
  .topbar > .topbar-actions { grid-column: 2; grid-row: 1; }
  .topbar #course-home { display: none; }
  .topbar > .mode-switch { grid-column: 1/-1; grid-row: 2; margin: .25rem 0 0; gap: .4rem; }
  .topbar .mode-switch button { min-height: 44px; font-size: .9375rem; }
  .topbar .more-menu > summary { font-size: .8125rem; padding: .5rem; }
  .lesson-route { padding: .5rem .75rem; gap: .3rem; }
  .lesson-route button { font-size: .8125rem; padding: .45rem .6rem; }
  .lesson-route #route-label { margin-left: 0; color: var(--muted); }
  .home-panel { padding: 2rem 1.25rem; }
  .home-hero { grid-template-columns: 1fr; gap: 1.2rem; margin-bottom: 2rem; }
  .home-hero h1,.course-page .home-hero h1 { font-size: 2.85rem; }
  .home-hero p { font-size: 1rem; max-width: 36ch; }
  .course-row { grid-template-columns: 1fr auto; gap: .5rem 1rem; padding: 1.2rem 0; }
  .course-row h2 { font-size: 1.7rem; grid-column: 1; }
  .course-row p { grid-column: 1; font-size: .9375rem; }
  .course-row .course-entry { grid-column: 2; grid-row: 1/3; gap: .6rem; flex-direction: column; align-items: flex-end; }
  .coming-soon-list { gap: .65rem 1.2rem; margin-top: 1.5rem; }
  .coming-soon-list h2 { flex-basis: 100%; }
  .resume-card { padding: 1rem; gap: .8rem; }
  .resume-card > .primary { width: 100%; }
  .lab-row { grid-template-columns: 55px minmax(0,1fr); gap: .6rem 1rem; padding: 1.3rem 0; }
  .lab-row h2 { font-size: 1.35rem; }
  .lab-row .lab-entry { grid-column: 2; }
  .course-page .home-hero { padding-bottom: 1.7rem; }
  .guided-learning #lesson-reading { padding: 1.4rem 1.25rem; }
  .guided-learning #lesson-title { font-size: 1.75rem; }
  .guided-learning .lesson-advance > .primary { font-size: .875rem; }
  .guided-learning .lesson-advance #walk-check { font-size: .8125rem; }
  .guided-learning .lesson-advance { padding-inline: .8rem; }
  .stage-heading .tag { white-space: normal; text-align: right; }
  .workspace > .guide { padding: 1rem; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; } }
/* Carry the light theme through inherited control states. */
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible,textarea:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.topbar :is(button,a,select,summary):focus-visible,.viewer-panel :is(button,input,select,summary):focus-visible { outline-color: var(--gold); }
.topbar .more-menu > div :focus-visible { outline-color: var(--green); }
.lesson-extra-check { color: var(--green); }
#compact-reader-switch { background: #e5ecde; border-color: var(--line); border-radius: 4px; }
#compact-reader-switch button { color: var(--green); }
#compact-reader-switch button[aria-pressed=true] { background: var(--green); color: #f5f5f5; }
.visual-map section { color: #edf1e8; }
.lab-overview-active #lesson-reading > .eyebrow,.home-hero > .eyebrow { display: none; }
@media (hover:hover) and (pointer:fine) {
  .lesson-details > summary:hover { color: var(--green); }
  .lesson-extra-check:hover { color: var(--green); background: #e5ecde; }
}
