/* Parent reading layout: 12pt body, 20pt primary headings; coloured blocks, no divider rules. */
#mainWorkspace { --reading-body:12pt; --reading-heading:20pt; }
#mainWorkspace :is(h1,h2,h3,h4,h5,h6) { text-align:left; }
#mainWorkspace :is(h1,h2) { font-size:var(--reading-heading); line-height:1.3; margin:0 0 12px; }
#mainWorkspace h3 { font-size:15pt; line-height:1.4; margin:0 0 10px; }
#mainWorkspace :is(h4,h5,h6) { font-size:13pt; line-height:1.4; margin:0 0 8px; }
#mainWorkspace :is(p,li,label,textarea,input,select) { font-size:var(--reading-body); }
#mainWorkspace p { line-height:1.65; margin:0 0 12px; text-align:left; }
#mainWorkspace :is(ul,ol) { margin:8px 0 14px; padding-inline-start:1.5em; }
#mainWorkspace li { line-height:1.55; margin-bottom:6px; }
#mainWorkspace :is(small,.heading-en,.reading-position) { font-size:10.5pt; line-height:1.45; }
#mainWorkspace :is(p,li):last-child { margin-bottom:0; }
#mainWorkspace .part-heading { padding:0 0 12px; margin-bottom:16px; border:0; align-items:flex-start; text-align:left; }
#partAContent .chapter-intro { padding:0; margin:20px 0 16px; border:0; text-align:left; }
#partAContent .chapter-intro h2 { margin:0; }
#partAContent .part-a-controls { display:flex; align-items:flex-end; gap:12px 20px; flex-wrap:wrap; }
#partAContent .part-a-controls > label { flex:1 1 320px; min-width:0; max-width:none; }
#partAContent .part-a-controls .segmented { flex:0 0 auto; margin:0; }
#mainWorkspace :is(.chapter-tabs,.course-navigation,.topic-pagination,.topic-contents) { border:0; }
#mainWorkspace .chapter-tabs { display:flex; flex-wrap:wrap; gap:8px; padding:6px; margin:0 0 16px; background:#fff; border-radius:18px; corner-shape:squircle; }
#mainWorkspace .chapter-tabs button { border:0; min-height:44px; padding:10px 16px; font-size:12pt; }
#mainWorkspace .chapter-tabs button.active { background:#e3f3e6; color:#195c38; }
#mainWorkspace .course-lesson { max-width:none; }
#mainWorkspace .course-navigation { margin:0; padding:0 0 12px; }
#mainWorkspace .course-navigation .button { font-size:12pt; min-height:44px; }
#mainWorkspace :is(.course-actions,.topic-pagination,.reading-tools) { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:10px; }
#mainWorkspace :is(.course-actions,.topic-pagination) { margin:16px 0 0; padding:0; }
#mainWorkspace :is(.course-actions,.topic-pagination) .button { flex:0 1 auto; margin:0; min-height:44px; white-space:normal; }
#mainWorkspace .course-section { border:0; }
#mainWorkspace .main-stage-heading { display:block; padding:0; margin:4px 0 16px; }
#mainWorkspace .main-stage-heading h3 { font-size:20pt; }
#mainWorkspace .main-stage-heading p { margin:0; }
#mainWorkspace .main-stage-card { padding:20px; }
#mainWorkspace .main-stage-card :is(h4,h5) { font-size:15pt; line-height:1.4; margin-bottom:10px; }
#mainWorkspace .main-stage-card p { margin-bottom:16px; }
#mainWorkspace .main-stage-detail { border:0; padding:24px; background:#fff; }
#mainWorkspace .main-stage-detail h3 { font-size:20pt; }
#mainWorkspace .main-stage-detail .course-section { padding:0; margin:0 0 16px; }
#mainWorkspace .verified-stories { display:block; padding:0; }
#mainWorkspace .verified-stories > header { margin:0 0 16px; padding:0; text-align:left; }
#mainWorkspace .verified-stories > header h2 { margin:0; }
#mainWorkspace .case-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
#mainWorkspace .story-card { min-width:0; padding:22px; border:0; background:#e1f2f5; }
#mainWorkspace .story-card:nth-child(4n+2) { background:#e3f3e6; }
#mainWorkspace .story-card:nth-child(4n+3) { background:#efdef7; }
#mainWorkspace .story-card:nth-child(4n+4) { background:#fcf0ce; }
#mainWorkspace .story-card h3 { margin:0 0 12px; font-size:15pt; }
#mainWorkspace .story-reflection { margin-top:16px; padding:14px; background:#ffffff99; border-radius:16px; corner-shape:squircle; }
#mainWorkspace .story-reflection h4 { font-size:12pt; margin:0 0 6px; }
/* Keep user-selected larger text sizes effective. */
#mainWorkspace .course-lesson[data-text-size="large"] .course-section :is(p,li) { font-size:21px; }
#mainWorkspace .course-lesson[data-text-size="largest"] .course-section :is(p,li) { font-size:24px; }
@media(max-width:767px) {
  #mainWorkspace .case-list { grid-template-columns:1fr; }
  #mainWorkspace :is(.story-card,.main-stage-detail,.main-stage-card) { padding:18px; }
  #mainWorkspace .chapter-tabs button { flex:1 1 auto; padding:10px 12px; }
  #mainWorkspace .course-navigation.has-main-stage > .button { flex:1 1 42%; }
}
#partAContent .part-a-controls { flex-direction:row; padding:0; }
#partAContent .chapter-intro { grid-template-columns:minmax(0,1fr); }
#mainWorkspace .part-heading h1 { margin-bottom:0; }
#mainWorkspace .part-heading { margin-bottom:12px; }

/* Compact navigation, with persistent context while reading. */
.site-header { position:sticky; top:0; z-index:60; border:0; box-shadow:0 2px 8px #203e2910; }
.main-workspace { padding-top:14px; }
#mainWorkspace .part-heading { padding-bottom:0; margin-bottom:10px; }
#partAContent .chapter-intro { margin:12px 0; }
#partAContent .part-a-controls { gap:8px 12px; align-items:center; }
#partAContent .part-a-controls > label { gap:4px; }
#mainWorkspace .chapter-tabs { position:sticky; top:var(--header-height,68px); z-index:45; gap:6px; padding:6px; margin-bottom:10px; box-shadow:0 3px 10px #203e2910; }
#mainWorkspace .chapter-tabs button { background:#edf2f8; border:1px solid #c7d3e0; padding:7px 12px; cursor:pointer; box-shadow:none; }
#mainWorkspace .chapter-tabs button.active { background:#237648; color:white; border-color:#195c38; box-shadow:inset 0 -3px #164829; }
#mainWorkspace .course-navigation { position:sticky; top:calc(var(--header-height,68px) + var(--chapter-nav-height,56px)); z-index:40; display:flex; flex-wrap:nowrap; overflow-x:auto; gap:6px; padding:6px; margin-bottom:10px; background:#f5f7f6; border-radius:14px; }
#mainWorkspace .course-navigation.has-main-stage > .button { flex:0 0 auto; min-width:0; padding:7px 12px; font-size:11pt; white-space:nowrap; }
#mainWorkspace .course-navigation .button.secondary { background:#e8edf6; color:#29425d; border:1px solid #b8c9dc; }
#mainWorkspace .course-navigation .button.primary { background:#237648; color:#fff; border:1px solid #195c38; box-shadow:inset 0 -3px #164829; }
#mainWorkspace :is(.chapter-tabs,.course-navigation) button:hover { filter:brightness(.95); }
#mainWorkspace :is(.chapter-tabs,.course-navigation) button:focus-visible { outline:3px solid #445cca; outline-offset:2px; }
#mainWorkspace :is(.main-stage-card,.story-card,.main-stage-detail) { padding:16px; }
#mainWorkspace .case-list { gap:12px; }
#mainWorkspace p { margin-bottom:10px; }
#mainWorkspace .course-section { scroll-margin-top:calc(var(--header-height,68px) + var(--chapter-nav-height,56px) + 70px); }
.back-to-top { position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:70; min-height:44px; padding:10px 14px; border:1px solid #195c38; border-radius:14px; corner-shape:squircle; background:#237648; color:#fff; box-shadow:0 3px 12px #183d3433; cursor:pointer; font:600 14px inherit; }
.back-to-top[hidden] { display:none; }
.back-to-top:focus-visible { outline:3px solid #445cca; outline-offset:3px; }
@media(max-width:767px) {
 #mainWorkspace .chapter-tabs { flex-wrap:nowrap; }
 #mainWorkspace .chapter-tabs button { flex:1 1 auto; padding:6px 8px; font-size:11pt; white-space:nowrap; }
 .main-workspace { padding-top:10px; }
}
#mainWorkspace .course-navigation { flex-wrap:wrap; overflow:visible; }
#mainWorkspace .course-extra-stages { min-width:0; }
#mainWorkspace .course-extra-stages summary { min-height:44px; padding:9px 12px; cursor:pointer; }
.back-to-top { font-family:inherit; font-size:14px; font-weight:600; }

/* Dashboard hierarchy: content titles lead; controls remain compact utilities. */
@media(min-width:1000px) {
 .site-header { height:60px; grid-template-columns:190px 1fr auto; }
 .primary-nav { align-self:center; justify-self:center; display:flex; gap:4px; padding:3px; background:#f1f4f5; border-radius:14px; }
 .primary-nav .nav-item { min-height:38px; padding:6px 18px; border-radius:11px; }
 .primary-nav .nav-item.active { background:#dcece2; }
 .primary-nav .nav-item::after { display:none; }
 #partAContent { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:24px; }
 #partAContent > * { grid-column:1 / -1; min-width:0; }
 #partAContent > .part-a-heading { grid-column:1; grid-row:1; align-self:center; margin:0; }
 #partAContent > .part-a-controls { grid-column:2; grid-row:1; justify-content:flex-end; }
 #partAContent .part-a-controls > label { flex:0 1 420px; display:flex; align-items:center; gap:8px; white-space:nowrap; font-size:11px; }
 #partAContent .part-a-controls select { min-width:0; min-height:38px; padding:7px 10px; font-size:13px; }
}
#mainWorkspace .part-a-heading h1 { font-size:15pt; color:#456353; }
#partAContent .part-a-controls .segmented { padding:3px; background:#e9eeec; border:0; border-radius:12px; }
#partAContent .part-a-controls .segmented button { min-height:36px; padding:6px 10px; font-size:12px; border:0; border-radius:9px; }
#partAContent .part-a-controls .segmented button.active { background:white; box-shadow:0 1px 4px #25413118; }
#partAContent .chapter-intro { display:block; margin:18px 0 10px; }
.chapter-eyebrow { display:block; width:fit-content; margin-bottom:6px; color:#28634b; background:#e3f3e6; padding:3px 9px; border-radius:8px; font-size:11px; font-weight:700; letter-spacing:.04em; }
#mainWorkspace .chapter-tabs { position:static; width:fit-content; max-width:100%; padding:3px; gap:3px; background:#e8eeeb; box-shadow:none; margin-bottom:12px; border-radius:13px; }
#mainWorkspace .chapter-tabs button { min-height:36px; padding:6px 12px; font-size:13px; background:transparent; border:1px solid transparent; border-radius:10px; color:#40554a; }
#mainWorkspace .chapter-tabs button.active { background:white; color:#195c38; border-color:#c9d9cf; box-shadow:0 1px 3px #26433012; }
#mainWorkspace .course-navigation { top:var(--header-height,60px); padding:5px 0; gap:5px; background:#f5f7f6f5; border-radius:0; margin-bottom:8px; align-items:center; }
#mainWorkspace .course-navigation.has-main-stage > .button { min-height:36px; padding:6px 10px; font-size:13px; border-radius:10px; }
#mainWorkspace .course-navigation .button.secondary { background:white; border-color:#d7e1dc; color:#40594a; }
#mainWorkspace .course-navigation .button.primary { background:#dbece1; color:#195c38; border-color:#a8c7b4; box-shadow:none; }
#mainWorkspace .course-extra-stages { flex:0 0 auto; padding:0; background:#eee5f5; border:1px solid #dacbe5; border-radius:10px; position:relative; }
#mainWorkspace .course-extra-stages summary { min-height:34px; padding:6px 10px; font-size:13px; }
#mainWorkspace .course-extra-stages > div { position:absolute; right:0; top:calc(100% + 6px); width:220px; padding:8px; background:#fff; border-radius:14px; box-shadow:0 6px 24px #26362e26; }
#mainWorkspace .course-extra-stages > div .button { width:100%; min-height:44px; font-size:13px; }
#mainWorkspace .main-stage-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 14px; margin:12px 0; }
#mainWorkspace .main-stage-heading h3 { font-size:20pt; margin:0; }
#mainWorkspace .main-stage-heading p { font-size:11pt; color:#637269; }
#mainWorkspace .main-stage-card { display:flex; flex-direction:column; align-items:flex-start; gap:0; }
#mainWorkspace .main-stage-card .button { margin-top:auto; min-height:36px; padding:6px 10px; font-size:13px; }
#mainWorkspace .course-section { scroll-margin-top:calc(var(--header-height,60px) + 60px); }
@media(max-width:767px) {
 #partAContent .part-a-controls { gap:6px; }
 #partAContent .part-a-controls > label { font-size:11px; }
 #partAContent .part-a-controls select { min-height:40px; padding:7px 10px; font-size:13px; }
 #mainWorkspace .chapter-tabs button { min-height:44px; padding:6px 9px; font-size:13px; }
 #mainWorkspace .course-navigation.has-main-stage > .button { min-height:44px; padding:6px 8px; font-size:12px; }
 #mainWorkspace .course-extra-stages { flex:0 0 auto; }
 #mainWorkspace .course-extra-stages summary { min-height:42px; padding:6px 8px; font-size:12px; }
 #mainWorkspace .main-stage-card .button { min-height:44px; }
}
#partAContent .part-a-controls .segmented button.active { color:#195c38; }
#mainWorkspace .main-stage-heading { justify-content:flex-start; }
#mainWorkspace .main-stage-heading > * { flex:0 1 auto; }
#mainWorkspace .course-main-stage { margin-top:0; }

/* Quiet headings and an ink/lavender palette; colour belongs to the material. */
:root { --bg:#f5f5f8; --text:#202126; --brand:#656ab2; --brand-strong:#292b42; }
body,.main-workspace { color:#202126; }
.site-header { background:#fff; }
.site-brand strong,.nav-item strong,.nav-item.active strong,.user-identity strong { color:#24252b; }
.primary-nav { background:#eeeef3; }
.primary-nav .nav-item.active { background:#e1e2f4; }
#mainWorkspace :is(h1,h2,h3,h4,h5,h6,p,li,label,summary) { color:#202126; }
#mainWorkspace .part-a-heading { margin:0 0 6px; }
#mainWorkspace .part-a-heading h1 { display:flex; align-items:baseline; gap:8px; font-size:12px; font-weight:600; line-height:1.4; color:#666873; }
#mainWorkspace .part-a-heading .heading-en { display:inline; margin:0; font-size:11px; font-weight:400; color:#777984; }
#partAContent .chapter-intro { margin:10px 0 8px; }
#partAContent .part-a-controls { gap:8px; justify-content:space-between; }
#partAContent .part-a-controls .segmented { background:#eaeaf1; }
#partAContent .part-a-controls .segmented button { color:#33343e; }
#partAContent .part-a-controls .segmented button.active { color:#22232d; background:#fff; }
.chapter-picker { position:relative; flex:0 0 auto; z-index:50; }
.chapter-picker > summary { cursor:pointer; min-height:36px; padding:8px 10px; border:1px solid #d8d9e3; background:#fff; border-radius:10px; font-size:12px; }
#partAContent .chapter-picker > label { position:absolute; left:0; top:calc(100% + 5px); display:grid; gap:6px; width:min(480px,calc(100vw - 28px)); padding:12px; background:#fff; box-shadow:0 6px 24px #28283d22; border-radius:14px; font-size:12px; }
.chapter-picker select { max-width:100%; }
#mainWorkspace .chapter-tabs { background:#eaeaf1; margin-bottom:6px; }
#mainWorkspace .chapter-tabs button { color:#42434d; }
#mainWorkspace .chapter-tabs button.active { color:#242530; border-color:#cbcddf; background:#fff; }
#mainWorkspace .course-navigation { background:#f5f5f8f5; margin-bottom:0; }
#mainWorkspace .course-navigation .button.secondary { color:#292a34; border-color:#d8dae6; }
#mainWorkspace .course-navigation .button.primary { color:#272837; background:#dddff5; border-color:#b9bde2; }
#mainWorkspace .course-extra-stages { background:#eee3f5; }
#mainWorkspace .main-stage-card:nth-child(5n+1),#mainWorkspace .story-card:nth-child(4n+1) { background:#e4edf8; }
#mainWorkspace .main-stage-card:nth-child(5n+2),#mainWorkspace .story-card:nth-child(4n+2) { background:#eee4f6; }
#mainWorkspace .main-stage-card:nth-child(5n+3),#mainWorkspace .story-card:nth-child(4n+3) { background:#fbf0d9; }
#mainWorkspace .main-stage-card:nth-child(5n+4),#mainWorkspace .story-card:nth-child(4n+4) { background:#e3f0eb; }
#mainWorkspace .main-stage-card:nth-child(5n+5) { background:#f6e4e7; }
#mainWorkspace .main-stage-card .button { color:#292a34; background:#ffffffc4; }
#mainWorkspace .main-stage-heading { margin:8px 0; }
#mainWorkspace .main-stage-heading p { font-size:12px; color:#70717c; }
.back-to-top { background:#303242; border-color:#303242; color:white; }
@media(min-width:1000px) { #partAContent .part-a-controls { justify-content:flex-end; } .chapter-picker > label { left:auto; right:0; } }
@media(max-width:767px) {
 .chapter-picker > summary { min-height:44px; padding:11px 10px; }
 #partAContent .part-a-controls .segmented button { min-height:44px; }
 #partAContent .part-a-controls .segmented { flex:0 0 auto; }
 #mainWorkspace .part-a-heading { padding:0; }
}
@media(max-width:767px) {
 #partAContent .part-a-controls { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; }
 #partAContent .part-a-controls .segmented { width:auto; min-width:0; justify-self:end; }
 #partAContent .part-a-controls .segmented button { padding-inline:9px; }
}
