/* External courses: refine the existing TAU layout, without changing course data. */
.external-reading-page { --external-ink:#2a1b24; --external-secondary:#6e5c66; --external-line:#ded4d8; max-width:1080px; padding-top:32px; padding-bottom:72px; color:var(--external-ink); }
.external-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; color:var(--external-secondary); font-size:14px; line-height:1.5; margin-bottom:32px; }
.external-breadcrumb a,.external-instruction-link { color:#67152f; text-decoration:underline; text-underline-offset:4px; }
.external-eyebrow { font-size:14px; line-height:1.5; font-weight:500; color:var(--external-secondary); margin:0 0 12px; }
.external-intro { max-width:900px; padding-bottom:40px; }
.external-intro h1 { font-size:clamp(36px,3.6vw,48px); font-weight:600; line-height:1.16; letter-spacing:-.028em; margin:0 0 22px; overflow-wrap:anywhere; text-transform:none; text-wrap:balance; }
.external-intro h1:focus { outline:none; }
.external-summary { font-size:20px; line-height:1.6; max-width:64ch; margin:0 0 28px; white-space:normal; overflow-wrap:anywhere; }
.external-provider { display:flex; align-items:center; gap:24px; margin:24px 0 28px; }
.external-provider-image { width:120px; height:56px; object-fit:contain; object-position:left; flex:none; }
.external-provider dl { display:flex; gap:18px 40px; flex-wrap:wrap; margin:0; min-width:0; }
.external-provider dt { font-size:14px; line-height:1.4; color:var(--external-secondary); margin-bottom:5px; }
.external-provider dd { font-size:16px; font-weight:500; line-height:1.45; margin:0; overflow-wrap:anywhere; }
.external-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:24px; }
.external-reading-page .tau-button { min-height:48px; padding:13px 22px; font-size:16px; line-height:1.45; font-weight:500; max-width:100%; white-space:normal; text-align:center; }
.external-instruction-link { display:inline-flex; align-items:center; min-height:44px; font-size:16px; }
.external-disclaimer { font-size:15px; color:var(--external-secondary); line-height:1.6; margin:16px 0 0; max-width:74ch; }
.external-reading-section { border-top:1px solid var(--external-line); padding-top:34px; scroll-margin-top:100px; }
.external-reading-section>h2 { font-size:28px; font-weight:600; line-height:1.25; letter-spacing:-.018em; margin:0 0 28px; }
.external-reading-content { max-width:68ch; margin-inline:0; font-size:19px; line-height:1.65; overflow-wrap:anywhere; }
.external-reading-plain { white-space:pre-wrap; }
.external-reading-content :is(p,h1,h2,h3,h4,h5,h6,div,span) { text-align:left!important; font-family:inherit!important; color:inherit!important; }
.external-reading-content :is(p,div,span) { font-size:inherit!important; line-height:inherit!important; }
.external-reading-content p { margin:0 0 22px; }
.external-reading-content :is(h1,h2) { font-size:25px; line-height:1.3; font-weight:600; margin:32px 0 14px; }
.external-reading-content :is(h3,h4,h5,h6),.external-reading-content .external-inline-heading { font-size:23px!important; line-height:1.35!important; font-weight:600; margin:34px 0 16px; letter-spacing:-.012em; }
.external-reading-content .external-inline-heading { display:block; }
.external-reading-content>p:first-child>.external-inline-heading:first-child { margin-top:0; }
.external-reading-content .external-heading-break,.external-reading-content .external-empty-line { display:none; }
.external-reading-content img { display:block; width:auto!important; height:auto!important; max-width:100%!important; max-height:480px; object-fit:contain; object-position:left; margin:0; border-radius:0; }
.external-reading-content table { display:block; overflow-x:auto; max-width:100%; }
.external-reading-page .external-image-button { display:flex; flex-direction:column; align-items:flex-start; max-width:100%; padding:0; border:1px solid var(--external-line); border-radius:0; background:#fff; text-align:left; cursor:zoom-in; margin:24px 0; transition:border-color .18s; }
.external-image-button span { display:flex; align-items:center; min-height:44px; font-size:14px!important; font-weight:500; color:#67152f!important; padding:10px 12px; line-height:1.4!important; }
.external-reading-content a { color:#67152f; text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
.external-reading-content .external-readable-link { display:inline-flex; align-items:center; min-height:44px; max-width:100%; overflow-wrap:anywhere; font-size:17px; }
.external-bottom-action { display:flex; align-items:center; flex-wrap:wrap; gap:20px; padding-top:28px; margin-top:36px; border-top:1px solid var(--external-line); }
.external-bottom-action>span { color:var(--external-secondary); font-size:14px; overflow-wrap:anywhere; }
.external-image-dialog { width:calc(100% - 32px); max-width:1440px; height:94vh; height:94dvh; max-height:94vh; max-height:94dvh; border:0; padding:16px; background:#fff; color:#2a1b24; }
.external-image-dialog[open] { display:flex; flex-direction:column; }
html:has(.external-image-dialog[open]) { overflow:hidden; }
.external-image-dialog::backdrop { background:#25141dde; }
.external-image-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; flex:none; }
.external-image-controls { display:flex; align-items:center; gap:8px; }
.external-image-dialog .external-image-toolbar button { min-height:44px; min-width:44px; padding:10px 14px; border:1px solid #ded4d8; border-radius:0; background:#fff; cursor:pointer; color:#67152f; font-size:15px; line-height:1.4; }
.external-image-dialog .external-image-toolbar :is([data-image-minus],[data-image-plus]) { font-size:24px; line-height:1; padding:8px; }
.external-image-dialog .external-image-toolbar button:disabled { opacity:.45; cursor:default; }
.external-image-dialog [data-close-image] { margin-left:auto; }
.external-image-dialog [data-image-scale] { min-width:48px; font-size:14px; text-align:center; font-variant-numeric:tabular-nums; }
.external-image-hint { flex:none; font-size:14px; color:#6e5c66; line-height:1.5; margin:12px 0; }
.external-image-stage { flex:1; min-height:0; min-width:0; overflow:auto; overscroll-behavior:contain; background:#f4f1ee; touch-action:pan-x pan-y pinch-zoom; }
.external-image-dialog .external-image-stage img { display:block; max-width:none; max-height:none; width:var(--external-image-width,100%); height:auto; margin:0 auto; }
.external-image-stage:focus-visible { outline:3px solid #67152f; outline-offset:3px; }
@media(max-width:520px) { .external-image-dialog { width:calc(100% - 16px); padding:12px; } .external-image-toolbar { gap:8px; } .external-image-dialog .external-image-toolbar button { padding-inline:10px; font-size:14px; } .external-image-hint { font-size:13px; } }
.external-reading-page :is(a,button):focus-visible,.external-image-dialog button:focus-visible { outline:3px solid #67152f; outline-offset:4px; }
.external-image-button:hover { border-color:#67152f; }
html:has(.external-reading-page) { scroll-behavior:smooth; }
@media(max-width:767px) {
  .external-reading-page { padding-top:24px; padding-bottom:48px; }
  .external-breadcrumb { font-size:13px; margin-bottom:26px; }
  .external-eyebrow { font-size:13px; margin-bottom:10px; }
  .external-intro h1 { font-size:32px; line-height:1.17; margin-bottom:18px; }
  .external-summary { font-size:18px; line-height:1.6; margin-bottom:24px; }
  .external-provider { align-items:center; gap:18px; margin:24px 0; }
  .external-provider-image { width:88px; height:48px; }
  .external-provider dl { gap:14px; flex-direction:column; }
  .external-provider dd { font-size:16px; }
  .external-actions { gap:12px 20px; }
  .external-disclaimer { font-size:14px; }
  .external-reading-section>h2 { font-size:25px; margin-bottom:26px; }
  .external-reading-content { font-size:18px; line-height:1.65; }
  .external-reading-content :is(h3,h4,h5,h6),.external-reading-content .external-inline-heading { font-size:22px!important; margin-top:32px; }
  .external-reading-content img { max-height:440px; }
  .external-intro { padding-bottom:32px; }
}
@media(max-width:375px) { .external-intro h1 { font-size:30px; } }
@media(prefers-reduced-motion:reduce) { html:has(.external-reading-page) { scroll-behavior:auto; } .external-reading-page * { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
