/* Shared editorial collection: teal, warm paper, lime markers, explicit hierarchy. */
.material-filters { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin:24px 0; }
.material-filters label { display:grid; gap:7px; min-width:190px; max-width:100%; font-size:12px; font-weight:750; color:var(--brand-800); }
.material-filters select { max-width:100%; padding:11px 34px 11px 12px; border:1px solid var(--line-strong); border-radius:10px; background:var(--surface); color:var(--text); font-size:12px; }
.material-filters > span { margin-left:auto; padding-bottom:12px; font-size:12px; color:var(--muted); }
.resource-card { min-width:0; }
.resource-card h3 { font-size:16px; line-height:1.5; }
.resource-card p { font-size:14px; line-height:1.65; color:#20383c; }
.resource-card__footer span { font-size:12px; color:#465f63; }
.resource-card__footer .text-link { font-size:14px; min-height:44px; }
.resource-card__save { width:44px; height:44px; }
.resource-card__type { font-size:10px; }
.resource-card__preview { width:100%; aspect-ratio:16/9; object-fit:contain; background:var(--canvas); border:1px solid var(--line); border-radius:9px; margin-bottom:16px; }
.resource-card__context { display:block; color:var(--brand-700); font-size:12px; font-weight:750; margin:7px 0; }
.resource-card__type--docx { color:#28568c; background:#eaf0f9; }
.resource-card__type--pptx { color:#963f29; background:#fff0e9; }
.resource-card__type--xlsx { color:#07535b; background:#d9f0ed; }
.resource-card__lesson-link { display:flex; align-items:center; gap:6px; margin-top:15px; min-height:44px; font-size:14px; color:var(--brand-700); }
.resource-card__lesson-link svg { width:12px; height:12px; }
.materials-publication-note { margin-top:24px; color:var(--muted); font-size:12px; line-height:1.7; }
.material-kit { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; padding:22px; margin:24px 0; background:var(--brand-50); border:1px solid var(--brand-100); border-radius:14px; }
.material-kit strong { color:var(--brand-900); font-size:15px; }
.material-kit p { margin:8px 0 0; max-width:60ch; }
.kit-library { border:1px solid var(--line); border-radius:14px; padding:20px; margin:20px 0 28px; background:var(--surface); }
.kit-library summary { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:750; color:var(--brand-800); cursor:pointer; }
.kit-library summary::before { content:'+'; font-size:20px; }
.kit-library[open] summary::before { content:'−'; }
.kit-library summary svg { width:20px; height:20px; }
.kit-library summary span { margin-left:auto; font-size:12px; }
.kit-library > p { font-size:13px; line-height:1.8; margin:18px 0; }
.kit-library__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.kit-library__grid article { padding:18px; border:1px solid var(--line); border-radius:10px; }
.kit-library__grid h3 { font-size:15px; line-height:1.5; margin:10px 0; color:var(--brand-900); }
.kit-library__grid p { font-size:12px; line-height:1.6; }
.kit-library__grid a { margin-top:14px; }
.lesson-material-heading { padding-top:5px; }
.chapter-outline { margin:22px 0; padding:20px 24px; border-left:4px solid var(--brand-700); border-radius:0 12px 12px 0; background:var(--brand-50); }
.chapter-outline > strong { font-size:13px; color:var(--brand-900); }
.chapter-outline ol { display:grid; grid-template-columns:1fr 1fr; gap:10px 30px; margin:14px 0 0; padding-left:18px; font-size:12px; line-height:1.6; }
.lesson-resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.module-materials { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding:20px; margin:20px 0; border:1px solid var(--line); border-radius:12px; background:var(--brand-50); }
.module-materials > span { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:750; color:var(--brand-800); }
.module-materials svg { width:17px; height:17px; }
.module-materials > div { display:flex; gap:7px; flex-wrap:wrap; }
.module-card__lessons > .module-materials { margin:14px 22px 20px; }
.visual-atlas { margin:24px 0 32px; border:1px solid var(--line); border-radius:14px; padding:18px; }
.visual-atlas summary { display:flex; align-items:center; gap:9px; cursor:pointer; color:var(--brand-900); font-size:14px; font-weight:750; }
.visual-atlas summary::before { content:'+'; font-size:21px; font-weight:400; }
.visual-atlas[open] summary::before { content:'−'; }
.visual-atlas summary svg { width:19px; height:19px; }
.visual-atlas summary span { margin-left:auto; color:var(--muted); font-size:11px; font-weight:500; }
.visual-atlas > p { margin:16px 0; }
.visual-atlas__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.visual-atlas figure { margin:0; min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:white; }
.visual-atlas figure img { width:100%; aspect-ratio:16/9; object-fit:contain; }
.visual-atlas figcaption { padding:14px; display:flex; gap:10px; flex-wrap:wrap; }
.visual-atlas figcaption small { width:100%; color:var(--brand-700); font-size:10px; }
.visual-atlas figcaption strong { width:100%; font-size:12px; line-height:1.5; }
.visual-atlas .text-link { font-size:10px; }

/* Reading chapters share the collection's art, without simulated audio controls. */
.reading-hero { overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.reading-hero__status { display:flex; flex-wrap:wrap; align-items:center; gap:9px; padding:16px 20px; background:var(--brand-800); color:white; font-size:12px; font-weight:700; }
.reading-hero__status svg { width:18px; height:18px; }
.reading-hero__status span { margin-left:auto; color:var(--lime); font-size:11px; font-weight:500; }
.reading-hero > a { display:block; }
.reading-hero img { display:block; width:100%; aspect-ratio:16/9; object-fit:contain; }
.reading-hero__actions { display:flex; flex-wrap:wrap; gap:10px; padding:18px; }
.reading-chapter { max-width:100%; }
.reading-chapter .chapter-outline button { text-align:left; line-height:1.65; }
.reading-section { padding:30px 0; border-bottom:1px solid var(--line); scroll-margin-top:90px; }
.reading-section h3 { color:var(--brand-900); font-size:22px; line-height:1.4; margin:10px 0 18px; }
.reading-section p { font-size:15px; line-height:1.9; max-width:76ch; color:var(--text); }
.reading-section figure { margin:24px 0 0; }
.reading-section img { display:block; width:100%; aspect-ratio:16/9; object-fit:contain; border:1px solid var(--line); border-radius:10px; }
.reading-section figcaption { margin-top:10px; color:var(--text); font-size:12px; line-height:1.7; }
.reading-section figcaption a { color:var(--brand-700); text-decoration:underline; margin-left:5px; }
.reading-chapter > ul { padding-left:20px; font-size:13px; line-height:1.8; }
.reading-chapter > ul a { color:var(--brand-700); text-decoration:underline; overflow-wrap:anywhere; }
.reading-chapter :focus-visible { outline:2px solid var(--brand-700); outline-offset:4px; }

/* Native dialog provides keyboard focus containment and Escape to close. */
body.figure-viewer-open { overflow:hidden; }
.figure-viewer { width:min(1280px,96vw); max-width:96vw; max-height:94dvh; padding:0; border:1px solid var(--line); border-radius:16px; color:var(--text); background:var(--canvas); overflow:auto; }
.figure-viewer::backdrop { background:rgba(5,47,53,.78); }
.figure-viewer__header { display:flex; align-items:start; justify-content:space-between; gap:20px; padding:20px 24px; border-top:7px solid var(--brand-800); background:var(--surface); }
.figure-viewer__header h2 { margin:8px 0 0; font-size:22px; line-height:1.35; color:var(--brand-900); }
.figure-viewer__header .icon-button { flex-shrink:0; font-size:26px; }
.figure-viewer__toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:16px; padding:14px 24px; }
.figure-viewer__toolbar > div { display:flex; gap:8px; }
.figure-viewer__toolbar label { display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:13px; }
.figure-viewer__toolbar input { accent-color:var(--brand-800); width:130px; }
.figure-viewer__toolbar output { min-width:40px; }
.figure-viewer__viewport { box-sizing:content-box; max-height:60dvh; overflow:auto; border-top:1px solid var(--line); border-bottom:1px solid var(--line); overscroll-behavior:contain; }
.figure-viewer__canvas { width:100%; margin-inline:auto; transition-property:none; }
.figure-viewer__canvas img { display:block; width:100%; max-width:none; height:auto; }
.figure-viewer__information { padding:18px 24px 24px; }
.figure-viewer__information p { font-size:13px; line-height:1.8; }
.figure-viewer__downloads { display:flex; gap:15px; flex-wrap:wrap; margin:16px 0; }
.figure-viewer__downloads a { color:var(--brand-800); font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.figure-viewer [hidden] { display:none; }
.figure-viewer__table { padding-top:12px; border-top:1px solid var(--line); }
.figure-viewer__table summary { cursor:pointer; color:var(--brand-900); font-size:14px; font-weight:750; }
.figure-table-scroll { overflow:auto; }
.figure-table-scroll table { width:100%; border-collapse:collapse; font-size:13px; margin:12px 0; }
.figure-table-scroll caption { text-align:left; padding:12px 0; font-weight:700; }
.figure-table-scroll th, .figure-table-scroll td { padding:12px; border:1px solid var(--line-strong); text-align:left; line-height:1.6; }
.figure-table-scroll thead { background:var(--brand-800); color:white; }
.figure-table-scroll tbody tr:nth-child(even) { background:var(--brand-50); }
.figure-viewer :focus-visible { outline:3px solid var(--brand-700); outline-offset:3px; }
.figure-viewer__audio { padding:10px 14px; border-left:4px solid var(--brand-700); background:var(--brand-100); }

/* Educational art never inherits photographic cropping, zooming or dark overlays. */
.narrated-figure-open[hidden] { display:none; }
.narrated-figure-open { display:flex; align-items:center; align-self:flex-end; gap:6px; font-size:11px; color:var(--lime); padding:5px 12px; }
.narrated-figure-open svg { width:14px; height:14px; }
.narrated-player.is-diagram { display:flex; flex-direction:column; aspect-ratio:auto; min-height:0; padding:10px; gap:8px; }
.narrated-player.is-diagram .narrated-player__image { position:relative; order:1; z-index:0; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; transform:none; border-radius:10px; }
.narrated-player.is-diagram .narrated-player__shade { display:none; }
.narrated-player.is-diagram .narrated-player__status { position:static; order:0; align-self:flex-start; font-size:9px; border:0; padding:4px 8px; background:none; }
.narrated-player.is-diagram .narrated-player__copy { position:static; order:2; padding:2px 8px; max-width:none; text-shadow:none; }
.narrated-player.is-diagram .narrated-player__copy > span { margin:0; }
.narrated-player.is-diagram .narrated-player__copy h2,
.narrated-player.is-diagram .narrated-player__copy p { display:none; }
.narrated-player.is-diagram .narrated-figure-open { order:3; }
.narrated-player.is-diagram .narrated-player__closed-caption { position:static; order:4; padding:10px 14px; margin:0; max-height:none; font-size:12px; line-height:1.6; box-shadow:none; }
.narrated-player.is-diagram .narrated-player__controls { position:static; order:5; padding:8px 5px 2px; }
.narrated-player.is-diagram:fullscreen { overflow:auto; justify-content:center; }
.narrated-player.is-diagram:fullscreen .narrated-player__image { min-height:0; max-height:calc(100dvh - 210px); flex-shrink:1; }
.application-guide { margin:24px 0; border:1px solid #ccdcd7; border-radius:16px; background:#fff; color:#112d31; overflow:hidden; scroll-margin-top:96px; }
.application-guide > summary { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:22px; cursor:pointer; font-weight:700; color:#07535b; list-style:none; }
.application-guide > summary::after { content:"+"; margin-left:auto; font-size:24px; }
.application-guide[open] > summary::after { content:"−"; }
.application-guide > summary > span { font-size:12px; font-weight:500; color:#46656a; }
.application-guide > summary > svg { flex:none; width:20px; height:20px; }
.application-guide > summary:focus-visible { outline:3px solid #07535b; outline-offset:-5px; }
.application-guide__body { padding:0 24px 24px; line-height:1.75; overflow-wrap:anywhere; }
.application-guide__body h3 { margin:24px 0 10px; color:#07535b; font-size:20px; }
.application-guide__body h4 { margin:0 0 8px; color:#07535b; font-size:16px; }
.application-guide__body p { color:#112d31; margin:8px 0 16px; font-size:15px; }
.application-guide__body .application-guide__notice { padding:16px 20px; background:#d9f0ed; border-left:4px solid #07535b; border-radius:0 10px 10px 0; font-size:14px; }
.application-guide__body dl { margin:24px 0; }
.application-guide__body dl > div { padding:18px 0; border-bottom:1px solid #ccdcd7; }
.application-guide__body dt { font-weight:700; color:#07535b; }
.application-guide__body dt span { margin-right:6px; font-size:13px; }
.application-guide__body dd { margin:8px 0 0; font-size:15px; }
.application-guide__reason { padding:20px; border-radius:12px; background:#f4f7f4; }
.application-guide__reason p { margin-bottom:0; }
.application-guide__criteria { padding-left:24px; }
.application-guide__criteria li { margin:14px 0; padding-left:6px; font-size:15px; color:#112d31; }
.application-guide__body .application-guide__hint { font-size:13px; }
.module-study-guide { margin:24px 0; border:1px solid #ccdcd7; border-radius:16px; background:#fff; color:#112d31; overflow:hidden; scroll-margin-top:96px; }
.module-card__lessons > .module-study-guide { margin:14px 22px 20px; }
.module-study-guide > summary { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:22px; color:#07535b; font-size:15px; font-weight:700; cursor:pointer; list-style:none; }
.module-study-guide > summary::after { content:"+"; margin-left:auto; font-size:24px; }
.module-study-guide[open] > summary::after { content:"−"; }
.module-study-guide > summary svg { width:20px; height:20px; flex:none; }
.module-study-guide > summary span { font-size:12px; font-weight:500; }
.module-study-guide :focus-visible { outline:3px solid #07535b; outline-offset:3px; }
.module-study-guide > summary:focus-visible { outline-offset:-5px; }
.module-study-guide__body { padding:0 24px 24px; overflow-wrap:anywhere; }
.module-study-guide__body h3 { color:#07535b; font-size:21px; line-height:1.4; margin:22px 0 14px; }
.module-study-guide__body h4 { color:#07535b; font-size:16px; line-height:1.6; margin:22px 0 10px; }
.module-study-guide__body p, .module-study-guide__body li { color:#112d31; font-size:15px; line-height:1.8; }
.module-study-guide__body .module-study-guide__notice { padding:16px 20px; border-left:4px solid #07535b; background:#d9f0ed; border-radius:0 10px 10px 0; font-size:14px; }
.module-study-guide__body figure { margin:24px 0; }
.module-study-guide__body img { width:100%; height:auto; border:1px solid #ccdcd7; border-radius:10px; }
.module-study-guide__body figcaption { margin-top:10px; color:#46656a; font-size:13px; line-height:1.7; }
.module-study-guide__body a { color:#07535b; text-decoration:underline; text-underline-offset:3px; }
.module-study-guide__steps { margin:24px 0; padding-left:28px; }
.module-study-guide__steps > li { padding:16px; margin:14px 0; border:1px solid #ccdcd7; border-radius:10px; }
.module-study-guide__steps > li.is-current { border-left:4px solid #07535b; background:#f4f7f4; }
.module-study-guide__steps a { font-weight:700; }
.module-study-guide__steps small { display:block; font-size:13px; line-height:1.7; }
.module-study-guide__synthesis { padding:4px 22px 22px; border-radius:12px; background:#f4f7f4; }
.module-study-guide__synthesis li { margin:12px 0; }
@media (max-width:720px) {
  .module-study-guide > summary { padding:16px; font-size:14px; }
  .module-study-guide__body { padding:0 16px 18px; }
  .module-study-guide__body h3 { font-size:18px; }
  .module-study-guide__body p, .module-study-guide__body li { font-size:14px; }
  .module-study-guide__steps { padding-left:20px; }
  .module-study-guide__steps > li { padding:12px; }
  .module-study-guide__synthesis { padding:4px 14px 18px; }
  .application-guide > summary { padding:16px; font-size:14px; }
  .application-guide > summary > span { flex-basis:80%; margin-left:30px; }
  .application-guide__body { padding:0 16px 18px; }
  .application-guide__body h3 { font-size:18px; }
  .application-guide__body dd, .application-guide__body p, .application-guide__criteria li { font-size:14px; }
  .kit-library__grid { grid-template-columns:1fr; }
  .kit-library, .material-kit { padding:15px; }
  .material-kit > a { width:100%; justify-content:center; }
  .figure-viewer { width:96vw; max-height:96dvh; border-radius:12px; }
  .figure-viewer__header, .figure-viewer__information { padding:15px; }
  .figure-viewer__header h2 { font-size:18px; }
  .figure-viewer__toolbar { padding:12px; gap:12px; }
  .figure-viewer__viewport { max-height:48dvh; }
  .figure-viewer__toolbar label { width:100%; }
  .reading-hero__status { padding:13px; }
  .reading-hero__actions { padding:13px; }
  .reading-hero__actions .button { width:100%; justify-content:center; }
  .reading-section h3 { font-size:20px; }
  .reading-section p { font-size:14px; }
  .material-filters { align-items:stretch; }
  .material-filters label { width:100%; }
  .material-filters > span { margin-left:0; }
  .lesson-resource-grid, .visual-atlas__grid, .chapter-outline ol { grid-template-columns:1fr; }
  .module-materials { padding:14px; }
  .narrated-player.is-diagram { padding:7px; gap:6px; }
  .narrated-player.is-diagram .narrated-player__closed-caption { font-size:11px; }
}
/* Workshops share the collection palette, with the analysis table as the visual. */
.chapter-workshop { margin:36px 0; padding:28px; background:#f4f7f4; border:1px solid #ccdcd7; border-top:6px solid #f08b6e; border-radius:12px; min-width:0; }
.chapter-workshop h4 { margin-top:26px; color:#07535b; font-size:18px; }
.chapter-workshop p,.chapter-workshop li { font-size:16px; line-height:1.8; overflow-wrap:anywhere; }
.chapter-workshop li { margin:12px 0; }.chapter-workshop__notice { color:#46656a; }
.chapter-workshop table { table-layout:fixed; background:white; }
@media(max-width:650px) { .chapter-workshop { padding:20px 14px; }.chapter-workshop table { min-width:560px; } }
