/* Archival sources. Every light panel declares its own text color. */
.source-collage { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 30px; margin-top: 24px; background: white; color: var(--navy); border: 1px solid var(--line); border-radius: 3px; }
.source-collage h3, .source-collage blockquote { color: var(--navy); }
.source-collage p, .source-collage figcaption, .source-collage .translation-label { color: var(--muted); }
.source-collage-copy .tag { color: var(--blue); }
.source-collage-copy h3 { font-size: 32px; margin: 16px 0 18px; }
.source-collage-copy p { font-size: 14px; }
.source-collage-copy blockquote { font-size: 23px; letter-spacing: -.02em; line-height: 1.5; margin: 24px 0 12px; }
.source-small { font-size: 12px; line-height: 1.75; color: var(--muted); }
.source-collage-copy .source-small { font-size: 12px; margin: 20px 0 0; }
.original-score-mosaic { padding: 22px; background: var(--ice); align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.mosaic-scores { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: center; }
.mosaic-scores > a { display: flex; align-items: center; justify-content: center; padding: 10px; background: white; border: 1px solid var(--line); }
.mosaic-scores img { width: 100%; }
.source-collage .mosaic-message { width: 100%; height: auto; margin: 25px auto 0; }
.source-collage figcaption { font-size: 10px; line-height: 1.7; letter-spacing: .03em; margin-top: 16px; }
.voice-section { margin-top: 35px; }
.voice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; color: white; }
.voice-grid figure { padding-top: 10px; color: white; }
.quote-mark { display: block; font-family: Georgia,serif; font-size: 54px; color: #b8cbf7; line-height: 1; }
.voice-grid blockquote { color: white; font-size: 17px; line-height: 1.65; margin: 0 0 20px; }
.voice-grid figcaption { color: var(--muted-dark); font-size: 12px; line-height: 1.65; }
/* Course plan and report */
.source-page-links { display: flex; flex-wrap: wrap; gap: 12px 25px; margin-top: 24px; font-size: 14px; }
.source-page-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--blue); text-decoration: underline; text-underline-offset: 6px; text-decoration-color: #a1b5d6; }
.archive-method-band { background: var(--ice); border-block: 1px solid var(--line); }
.study-sequence { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; list-style: none; padding: 0; margin: 32px 0; }
.study-sequence li { border-top: 1px solid #b9c8dd; padding-top: 22px; }
.study-sequence span { font-size: 11px; letter-spacing: .08em; font-weight: 700; color: var(--blue); }
.study-sequence h3 { font-size: 25px; margin: 17px 0 14px; }
.study-sequence p { font-size: 15px; margin: 0; }
.wide-source { margin: 34px 0 19px; }
.wide-source img { width: 100%; border: 1px solid #c2cedf; background: white; }
.wide-source figcaption, .report-adaptation figcaption, .source-disclosure figcaption { font-size: 11px; line-height: 1.7; color: var(--muted); margin-top: 13px; letter-spacing: .015em; }
.report-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: center; }
.report-adaptation { align-self: start; }
.report-sheet { background: white; color: var(--navy); border: 1px solid #c2cedf; border-radius: 3px; padding: 30px; }
.report-sheet-heading { border-bottom: 2px solid var(--blue); padding-bottom: 22px; }
.report-sheet-heading > span { display: block; font-size: 11px; letter-spacing: .07em; color: var(--blue); margin-bottom: 12px; }
.report-sheet-heading > strong { font-size: 23px; letter-spacing: -.025em; line-height: 1.2; }
.report-score-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; padding: 28px 0; }
.report-score-summary > div { display: flex; flex-direction: column; }
.report-score-summary small { font-size: 10px; font-weight: 650; letter-spacing: .05em; color: var(--muted); margin-bottom: 5px; }
.report-score-summary strong { font-size: 30px; line-height: 1.25; font-weight: 550; margin-bottom: 9px; }
.report-score-summary > div:first-child strong { font-size: 58px; letter-spacing: -.05em; color: var(--blue); }
.report-score-summary span { color: var(--muted); font-size: 12px; }
.report-field { display: flex; gap: 18px; border-top: 1px solid var(--line); padding: 18px 0; }
.report-field > span { font-size: 11px; color: var(--blue); padding-top: 3px; }
.report-field strong { font-size: 15px; }
.report-field p { font-size: 13px; line-height: 1.7; margin: 7px 0 0; }
.report-annotations { list-style: none; margin: 0; padding: 0; }
.report-annotations li { display: flex; gap: 22px; padding: 26px 0; border-top: 1px solid var(--line); }
.report-annotations li > span { color: var(--blue); font-size: 12px; font-weight: 700; padding-top: 3px; }
.report-annotations h3 { font-size: 25px; line-height: 1.2; margin-bottom: 14px; }
.report-annotations p { font-size: 15px; margin: 0; }
.report-section > .source-small { margin: 23px 0 0; max-width: 900px; }
/* Student reflections: source excerpts stay distinct from Eric's notes. */
.consulting-voices { padding: 26px; background: var(--ice); color: var(--navy); margin: 28px 0; border-radius: 3px; }
.consulting-voices figure { padding-block: 22px; border-top: 1px solid #c2cedf; }
.consulting-voices blockquote { margin-bottom: 16px; font-size: 18px; line-height: 1.7; color: var(--navy); }
.consulting-voices figcaption { font-size: 12px; line-height: 1.7; color: var(--muted); }
.consulting-voices .source-small { font-size: 12px; margin-bottom: 0; }
.archive-quote { margin-block: 26px; padding: 8px 0 8px 22px; border-left: 3px solid var(--blue); }
.archive-quote blockquote { margin-bottom: 15px; font-size: 21px; line-height: 1.6; color: var(--navy); }
.archive-quote figcaption { font-size: 12px; color: var(--muted); }
.source-disclosure { border: 1px solid var(--line); background: white; color: var(--navy); margin-top: 25px; border-radius: 3px; }
.source-disclosure summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 21px; min-height: 55px; color: var(--blue); font-size: 14px; font-weight: 600; }
.source-disclosure summary::-webkit-details-marker { display: none; }
.source-disclosure summary span { color: var(--blue); font-size: 22px; }
.source-disclosure[open] summary span { transform: rotate(45deg); }
.source-disclosure figure { padding: 0 21px 21px; }
.source-disclosure figure img { max-height: 650px; width: auto; margin: auto; border: 1px solid var(--line); }
.archive-document-links { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; padding-block: 40px 15px; border-top: 1px solid var(--line); }
.archive-document-links h3 { font-size: 29px; }
.archive-document-links p:not(.eyebrow) { font-size: 15px; max-width: 450px; }
.archive-document-links > div:last-child { display: flex; flex-direction: column; }
.archive-document-links a { display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding: 18px 0; color: var(--blue); font-size: 15px; }
@media (max-width: 960px) {
  .source-collage { gap: 25px; padding: 25px; }
  .source-collage-copy h3 { font-size: 28px; }
  .source-collage-copy blockquote { font-size: 21px; }
  .voice-grid { gap: 25px; }
  .voice-grid blockquote { font-size: 16px; }
  .report-layout { gap: 38px; }
  .report-sheet { padding: 25px; }
  .report-annotations h3 { font-size: 22px; }
  .study-sequence { gap: 24px; }
  .study-sequence h3 { font-size: 23px; }
  .archive-document-links { gap: 38px; }
}
@media (max-width: 720px) {
  .source-collage { grid-template-columns: 1fr; gap: 25px; padding: 24px; }
  .source-collage-copy h3 { font-size: 30px; }
  .source-collage-copy blockquote { font-size: 23px; }
  .original-score-mosaic { padding: 18px; }
  .voice-grid { grid-template-columns: 1fr; gap: 26px; }
  .voice-grid figure { padding-bottom: 24px; border-bottom: 1px solid #53657d; }
  .voice-grid figure:last-child { padding-bottom: 0; border: 0; }
  .voice-grid blockquote { font-size: 18px; margin-bottom: 15px; }
  .quote-mark { font-size: 47px; }
  .study-sequence { grid-template-columns: 1fr; gap: 25px; margin-block: 27px; }
  .study-sequence h3 { font-size: 25px; }
  .report-layout { grid-template-columns: 1fr; gap: 26px; }
  .report-annotations li { padding-block: 23px; }
  .report-annotations h3 { font-size: 25px; }
  .consulting-voices { padding: 22px; }
  .consulting-voices blockquote { font-size: 17px; }
  .archive-quote blockquote { font-size: 20px; }
  .archive-document-links { grid-template-columns: 1fr; gap: 10px; padding-top: 30px; }
  .archive-document-links .eyebrow { margin-bottom: 16px; }
  .source-page-links { font-size: 13px; gap: 8px 22px; }
}
@media (max-width: 400px) {
  .source-collage { padding: 20px; }
  .original-score-mosaic { padding: 13px; }
  .mosaic-scores { gap: 9px; }
  .mosaic-scores > a { padding: 7px; }
  .report-sheet { padding: 22px; }
  .report-sheet-heading > strong { font-size: 21px; }
  .report-score-summary { gap: 17px; }
  .report-score-summary > div:first-child strong { font-size: 52px; }
}

/* A family-facing report example, drawn from verified archival totals. */
.report-history { border-top: 1px solid var(--line); padding-block: 20px 17px; }
.report-history-title { color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .06em; margin-bottom: 14px; }
.score-history { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; list-style: none; margin: 0; padding: 0; }
.score-history li { min-width: 0; text-align: center; }
.score-history strong { display: block; color: var(--navy); font-size: 14px; font-variant-numeric: tabular-nums; margin-bottom: 5px; }
.score-history-bar { display: flex; align-items: flex-end; justify-content: center; height: 82px; border-bottom: 1px solid #90a4bf; }
.score-history-bar i { display: block; width: 70%; background: var(--blue); border-radius: 2px 2px 0 0; }
.score-history li > span:last-child { display: block; margin-top: 7px; font-size: 11px; color: var(--muted); }
.report-history-note { margin: 12px 0 0; font-size: 11px; color: var(--muted); line-height: 1.6; }
.family-partnership { margin-top: 35px; padding: 27px 30px; background: var(--ice); color: var(--navy); border: 1px solid var(--line); border-radius: 3px; }
.family-partnership .eyebrow { margin-bottom: 12px; }
.family-partnership h3 { font-size: 27px; margin-bottom: 24px; }
.family-partnership dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; margin: 0; }
.family-partnership dl > div { padding-top: 17px; border-top: 1px solid #b9c8dd; }
.family-partnership dt { font-size: 16px; font-weight: 650; color: var(--blue); }
.family-partnership dd { margin: 9px 0 0; font-size: 14px; line-height: 1.7; color: var(--muted); }
@media (max-width: 720px) {
  .family-partnership { padding: 25px; margin-top: 28px; }
  .family-partnership dl { grid-template-columns: 1fr; gap: 19px; }
  .family-partnership h3 { font-size: 26px; }
  .score-history { gap: 9px; }
}
@media (max-width: 400px) {
  .score-history { gap: 6px; }
  .score-history strong { font-size: 13px; }
  .score-history li > span:last-child { font-size: 10px; }
}
