/* ===== /assets/curriculum-navigator.css ===== */
/* Scoped lesson desk. Existing site fonts and teacher authorization remain shared. */
#curriculum-navigator {
  --cn-ink: #193e3b;
  --cn-ocean: #175da0;
  --cn-teal: #11675d;
  --cn-border: #d2dcd7;
  --cn-muted: #506662;
  color: var(--cn-ink);
  font-family: "Hanken Grotesk", sans-serif;
  scroll-margin-top: 5rem;
}
#curriculum-navigator *, #curriculum-navigator *::before, #curriculum-navigator *::after { box-sizing: border-box; }
#curriculum-navigator [hidden] { display: none !important; }
#curriculum-navigator :is(button, input, select, a, summary):focus-visible { outline: 3px solid var(--cn-ocean); outline-offset: 4px; }
#curriculum-navigator button, #curriculum-navigator input, #curriculum-navigator select { font: inherit; }
#curriculum-navigator .cn-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 0 1rem; }
#curriculum-navigator .cn-heading h2 { margin: 0; font-family: "Hanken Grotesk", sans-serif; font-size: 1.6rem; line-height: 1.25; }
#curriculum-navigator .cn-heading p { margin: 0.35rem 0 0; color: var(--cn-muted); font-size: 1rem; line-height: 1.45; }
#curriculum-navigator .cn-heading > a { display: inline-flex; align-items: center; min-height: 44px; color: var(--cn-ocean); font-size: 1rem; font-weight: 700; white-space: nowrap; text-underline-offset: 0.2em; }
#curriculum-navigator .cn-browser .search { position: relative; display: block; width: 100%; padding: 0; border: 0 !important; border-radius: 0; background: transparent !important; box-shadow: none !important; }
#curriculum-navigator .cn-browser .curr-search-clear { position: absolute; right: 3px; bottom: 2px; width: 44px; height: 44px; min-height: 44px; margin: 0; border-radius: 0.4rem; color: var(--cn-ink); background: #edf3f8; }
#curriculum-navigator .cn-browser #curr-search { padding-right: 3.2rem; }
#curriculum-navigator .cn-browser .search label { display: block; margin: 0 0 0.4rem; color: var(--cn-ink); font-size: 1rem; text-transform: none; letter-spacing: normal; }
#curriculum-navigator .cn-browser .controls { display: block; }
#curriculum-navigator .cn-filters > label { flex-basis: 100%; margin-bottom: -0.2rem; }
#curriculum-navigator .cn-filters > #nav-unit { width: auto; flex: 1 1 9rem; }
#curriculum-navigator .cn-layout { display: grid; grid-template-columns: minmax(17rem, 0.8fr) minmax(0, 1.35fr); gap: 0; align-items: stretch; }
#curriculum-navigator .cn-browser { min-width: 0; padding: 1.25rem; border: 1px solid var(--cn-border); border-radius: 8px; background: #fff; }
#curriculum-navigator .cn-browser label { display: block; margin-bottom: 0.4rem; font-weight: 700; }
#curriculum-navigator :is(#curr-search, #nav-unit, #nav-copy-url) { display: block; width: 100%; min-height: 48px; padding: 0.7rem 0.85rem; border: 1px solid #728ba3; border-radius: 0.65rem; color: var(--cn-ink); background: #fff; font-size: 1rem; }
#curriculum-navigator #curr-search { margin: 0; }
#curriculum-navigator .cn-filters { display: flex; gap: 0.6rem; align-items: end; flex-wrap: wrap; margin-top: 1rem; }
#curriculum-navigator .cn-unit-field { flex: 1 1 10rem; }
#curriculum-navigator :where(.cn-button, #nav-saved, #nav-reset, #nav-more, #nav-retry) { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; min-height: 46px; padding: 0.65rem 0.9rem; border: 1px solid #9ab0c5; border-radius: 0.65rem; background: #fff; color: var(--cn-ink); font-weight: 700; font-size: 1rem; line-height: 1.35; text-align: center; text-decoration: none; cursor: pointer; }
#curriculum-navigator :where(.cn-button, #nav-saved, #nav-reset, #nav-more, #nav-retry):hover { background: #eaf2f9; border-color: var(--cn-ocean); }
#curriculum-navigator :is(#nav-saved, .cn-save)[aria-pressed="true"] { color: #fff; background: var(--cn-teal); border-color: var(--cn-teal); }
#curriculum-navigator #nav-reset { border-color: transparent; background: transparent; text-decoration: underline; text-underline-offset: 0.2em; }
#curriculum-navigator #nav-results-status { margin: 1.2rem 0 0.7rem; color: var(--cn-muted); font-size: 1rem; line-height: 1.4; }
#curriculum-navigator #nav-results { display: grid; gap: 0; max-height: 29rem; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-gutter: stable; margin: 0; padding: 4px; list-style: none; }
#curriculum-navigator .cn-lesson-button { position: relative; display: flex; flex-direction: column; align-items: start; width: 100%; padding: 1rem 1.1rem; text-align: left; border: 0; border-bottom: 1px solid var(--cn-border); border-radius: 0; color: var(--cn-ink); background: #fff; cursor: pointer; transition: border-color 140ms ease, background 140ms ease; }
#curriculum-navigator .cn-lesson-button:hover { background: #eaf2f9; border-color: var(--cn-ocean); }
#curriculum-navigator .cn-lesson-button[aria-current="true"] { border: 0; border-bottom: 1px solid var(--cn-border); padding: 1rem 1.1rem; background: #e9f2fa; box-shadow: inset 4px 0 0 var(--cn-ocean); }
#curriculum-navigator .cn-result-meta { padding-right: 3.5rem; color: var(--cn-muted); font-size: 0.94rem; line-height: 1.4; }
#curriculum-navigator .cn-result-title { margin-top: 0.35rem; font-family: "Hanken Grotesk", sans-serif; font-size: 1.1rem; line-height: 1.35; }
#curriculum-navigator .cn-result-standard { margin-top: 0.4rem; font-size: 0.9rem; color: var(--cn-muted); }
#curriculum-navigator .cn-selected-label { position: absolute; top: 1rem; right: 0.9rem; color: var(--cn-ocean); font-size: 0.85rem; font-weight: 700; }
#curriculum-navigator #nav-more { width: 100%; margin-top: 0.8rem; }
#curriculum-navigator .cn-empty { padding: 0.5rem 0 1rem; line-height: 1.55; }
#curriculum-navigator #nav-preview { min-width: 0; min-height: 23rem; padding: clamp(1.3rem, 3vw, 2.25rem); border: 1px solid var(--cn-border); border-radius: 8px; background: #fff; box-shadow: 0 8px 28px #193e3b08; scroll-margin-top: 6rem; }
#curriculum-navigator #nav-preview:focus-visible { outline: 3px solid var(--cn-ocean); outline-offset: 4px; }
#curriculum-navigator .cn-eyebrow { margin: 0 0 0.6rem; color: var(--cn-teal); font-size: 0.9rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
#curriculum-navigator .cn-preview-title { margin: 0; font-family: "Hanken Grotesk", sans-serif; color: var(--cn-ink); font-size: clamp(1.5rem, 2.8vw, 2rem); line-height: 1.2; font-weight: 800; text-wrap: balance; }
#curriculum-navigator .cn-lesson-meta { margin: 0.8rem 0 0; color: var(--cn-muted); }
#curriculum-navigator .cn-preview-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; margin: 1.3rem 0; }
#curriculum-navigator .cn-primary { color: #fff; background: var(--cn-ocean); border-color: var(--cn-ocean); }
#curriculum-navigator .cn-primary:hover { color: #fff; background: var(--cn-ink); }
#curriculum-navigator .cn-target { margin: 1.4rem 0; padding: 1.1rem 1.25rem; border-left: 4px solid var(--cn-teal); border-radius: 0 0.7rem 0.7rem 0; background: #edf7f4; }
#curriculum-navigator .cn-group-title { margin: 0 0 0.65rem; font-family: "Hanken Grotesk", sans-serif; font-size: 1.08rem; font-weight: 800; line-height: 1.35; }
#curriculum-navigator .cn-target p { margin: 0; font-size: 1.13rem; line-height: 1.55; }
#curriculum-navigator .cn-language { margin-bottom: 1.3rem; border-bottom: 1px solid var(--cn-border); padding-bottom: 0.5rem; }
#curriculum-navigator summary { min-height: 46px; padding: 0.7rem 0; color: var(--cn-ocean); font-weight: 700; cursor: pointer; line-height: 1.4; }
#curriculum-navigator .cn-language p, #curriculum-navigator .cn-starter { font-size: 1.05rem; line-height: 1.65; }
#curriculum-navigator .cn-vocabulary { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.8rem 0 1rem; padding: 0; list-style: none; }
#curriculum-navigator .cn-vocabulary li { border-radius: 0.35rem; background: #edf3f8; padding: 0.3rem 0.6rem; line-height: 1.5; }
#curriculum-navigator .cn-frames { padding-left: 1.25rem; line-height: 1.65; }
#curriculum-navigator .cn-resource-group { margin: 1.3rem 0; }
#curriculum-navigator .cn-resources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
#curriculum-navigator .cn-resource { display: flex; align-items: center; min-height: 46px; height: 100%; padding: 0.65rem 0.75rem; border: 1px solid #d3dfe9; border-radius: 0.55rem; color: var(--cn-ocean); background: #f8fafc; font-size: 1rem; font-weight: 700; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
#curriculum-navigator .cn-resource:hover { background: #eaf2f9; border-color: var(--cn-ocean); text-decoration: underline; text-underline-offset: 0.15em; }
#curriculum-navigator .cn-variant { margin-bottom: 0.65rem; border: 1px solid var(--cn-border); border-radius: 0.65rem; overflow: hidden; }
#curriculum-navigator .cn-variant-main { border: 0; border-radius: 0; }
#curriculum-navigator .cn-variant-extras { padding: 0 0.8rem; }
#curriculum-navigator .cn-variant-extras[open] { padding-bottom: 0.8rem; }
#curriculum-navigator .cn-variant-extras summary { font-weight: 400; font-size: 0.97rem; }
#curriculum-navigator .cn-local-note { margin: 1.6rem 0 0; padding-top: 1rem; border-top: 1px solid var(--cn-border); color: var(--cn-muted); font-size: 0.92rem; line-height: 1.55; }
#curriculum-navigator #nav-message:not(:empty) { padding: 0.85rem 1rem; border-left: 4px solid var(--cn-ocean); background: #eaf2f9; color: var(--cn-ink); line-height: 1.5; }
#curriculum-navigator .cn-copy-fallback { padding: 1rem; border: 1px solid var(--cn-border); border-radius: 0.65rem; background: #fff; }
#curriculum-navigator .cn-copy-fallback label { display: block; margin-bottom: 0.5rem; font-weight: 700; }
#curriculum-navigator #nav-recent { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; margin-bottom: 1rem; }
#curriculum-navigator .cn-recent-label { margin-right: 0.4rem; color: var(--cn-muted); font-size: 0.94rem; }
#curriculum-navigator .cn-recent-link { min-height: 44px; max-width: 100%; padding: 0.6rem 0.8rem; border: 1px solid var(--cn-border); border-radius: 0.6rem; color: var(--cn-ocean); background: #fff; font-size: 0.94rem; line-height: 1.35; text-align: left; cursor: pointer; }
#curriculum-navigator .cn-recent-link:hover { background: #eaf2f9; }
@media (max-width: 780px) {
  #curriculum-navigator .cn-layout { grid-template-columns: 1fr; gap: 1rem; }
  #curriculum-navigator .cn-heading { flex-wrap: wrap; gap: 0.3rem; }
  #curriculum-navigator .cn-browser { padding: 1rem; }
  #curriculum-navigator #nav-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #curriculum-navigator .cn-lesson-button { height: 100%; }
  #curriculum-navigator .cn-result-meta { padding-right: 0; }
  #curriculum-navigator .cn-selected-label { position: static; margin-top: 0.35rem; }
  #curriculum-navigator .cn-empty { grid-column: 1 / -1; }
}
@media (max-width: 440px) {
  #curriculum-navigator #nav-results { grid-template-columns: 1fr; max-height: 25rem; }
  #curriculum-navigator .cn-resources { grid-template-columns: 1fr; }
  #curriculum-navigator .cn-preview-actions > * { flex: 1 1 100%; }
  #curriculum-navigator .cn-lesson-button { padding: 0.85rem; }
  #curriculum-navigator .cn-lesson-button[aria-current="true"] { padding: 0.85rem; }
}
@media (prefers-reduced-motion: reduce) { #curriculum-navigator * { transition: none !important; scroll-behavior: auto !important; } }
@media print {
  #curriculum-navigator .cn-layout { display: block; }
  #curriculum-navigator :is(.cn-browser, #nav-recent, #nav-message, #nav-retry, .cn-preview-actions, .cn-copy-fallback, .cn-local-note) { display: none !important; }
  #curriculum-navigator #nav-preview { padding: 0; border: 0; box-shadow: none; }
  #curriculum-navigator .cn-resource-group { break-inside: avoid; }
  #curriculum-navigator .cn-resource { background: transparent; border-color: #bbb; }
  #curriculum-navigator .cn-target { background: transparent; }
}

/* Keep the route back and feedback next to the lesson actions on every screen. */
#curriculum-navigator .cn-back { margin: 0 0 1rem; color: var(--cn-ocean); background: #fff; }
#curriculum-navigator .cn-action-message { margin: 0; line-height: 1.5; }
#curriculum-navigator .cn-action-message:not(:empty) { margin: 0 0 1rem; padding: 0.8rem 1rem; border-left: 4px solid var(--cn-ocean); border-radius: 0 0.4rem 0.4rem 0; color: var(--cn-ink); background: #eaf2f9; }
#curriculum-navigator .cn-result-translation { margin-top: 0.4rem; color: var(--cn-teal); font-size: 1rem; line-height: 1.4; }
#curriculum-navigator .cn-preview-translation { margin: 0.7rem 0 0; color: var(--cn-teal); font-size: 1.1rem; line-height: 1.4; }
#curriculum-navigator .cn-teach { border-color: var(--cn-teal); color: var(--cn-teal); }
@media print {
  #curriculum-navigator :is(.cn-back, .cn-action-message) { display: none !important; }
}

/* Two connected panes: a quiet index and a distinct lesson workspace. */
#curriculum-navigator .cn-layout { border: 1px solid var(--cn-border); border-radius: 8px; overflow: clip; background: #fff; }
#curriculum-navigator .cn-browser { border: 0; border-right: 1px solid var(--cn-border); border-radius: 0; }
#curriculum-navigator #nav-preview { border: 0; border-radius: 0; background: #fbfcf8; padding: 32px; }
#curriculum-navigator #nav-results { padding: 4px 0; scrollbar-gutter: auto; }
#curriculum-navigator .cn-result-title { margin-top: 3px; font-size: 18px; font-weight: 650; }
#curriculum-navigator .cn-result-standard { font-size: 15px; margin-top: 3px; }
#curriculum-navigator .cn-lesson-button { padding: 12px; background: transparent; min-height: 88px; }
#curriculum-navigator .cn-lesson-button[aria-current="true"] { padding: 12px; background: #edf4ef; }
#curriculum-navigator .cn-heading { padding-top: 8px; padding-bottom: 20px; }
#curriculum-navigator .cn-preview-title { font-size: clamp(1.6rem,2.8vw,2.15rem); letter-spacing: -.035em; font-weight: 650; }
#curriculum-navigator .cn-filters { margin-top: 12px; }
#curriculum-navigator .cn-filters > label { margin-bottom: -4px; }
#curriculum-navigator .cn-target { background: #eef4e9; border-left-color: #47745a; border-radius: 0; }
#curriculum-navigator .cn-resource { border-radius: 4px; background: #fff; }
#curriculum-navigator .cn-orientation { margin: 24px 0; padding: 0; list-style: none; counter-reset: step; }
#curriculum-navigator .cn-orientation li { display: grid; grid-template-columns: 34px 1fr; gap: 14px; padding: 14px 0; border-top: 1px solid #dbe4d9; counter-increment: step; }
#curriculum-navigator .cn-orientation li::before { content: counter(step,decimal-leading-zero); color: #316b58; font-size: 18px; font-weight: 600; padding-top: 1px; }
#curriculum-navigator .cn-orientation strong { display: block; font-weight: 650; font-size: 18px; }
#curriculum-navigator .cn-orientation span { color: var(--cn-muted); font-size: 16px; line-height: 1.45; }
#curriculum-navigator .cn-starter-links { display: flex; flex-wrap: wrap; gap: 4px 22px; }
#curriculum-navigator .cn-starter-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--cn-ocean); font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
#curriculum-navigator .cn-local-note { margin-top: 20px; padding-top: 16px; }
@media (max-width: 780px) {
  #curriculum-navigator .cn-layout { gap: 0; }
  #curriculum-navigator .cn-browser { border-right: 0; border-bottom: 1px solid var(--cn-border); }
  #curriculum-navigator #nav-preview { padding: 24px 20px; }
  #curriculum-navigator #nav-results { display: block; max-height: 20rem; }
  #curriculum-navigator .cn-selected-label { position: absolute; top: 12px; right: 12px; margin: 0; }
  #curriculum-navigator .cn-result-meta { padding-right: 60px; }
}

/* Today's lesson: the panel's opening state comes from the pacing plan. */
#curriculum-navigator .cn-today { margin-bottom: 8px; }
#curriculum-navigator .cn-today .cn-eyebrow { letter-spacing: 0.04em; }
#curriculum-navigator .cn-today-target { margin: 14px 0 0; padding: 12px 16px; border-left: 4px solid #47745a; background: #eef4e9; font-size: 17px; line-height: 1.5; }
#curriculum-navigator .cn-today + .cn-starter { margin: 20px 0 8px; padding-top: 16px; border-top: 1px solid #dbe4d9; color: var(--cn-muted); font-size: 16px; }

/* Each material says what it opens. */
#curriculum-navigator .cn-resource[data-kind] { justify-content: space-between; gap: 10px; }
#curriculum-navigator .cn-kind { flex: none; padding: 2px 8px; border-radius: 999px; background: #edf3f8; color: #2f4f6b; font-size: 13px; font-weight: 600; line-height: 1.5; text-decoration: none; }
#curriculum-navigator .cn-resource[data-kind="Interactive"] .cn-kind { background: #e3f1ec; color: #11574e; }
#curriculum-navigator .cn-resource[data-kind="Printable"] .cn-kind,
#curriculum-navigator .cn-resource[data-kind="PDF"] .cn-kind,
#curriculum-navigator .cn-resource[data-kind="Word"] .cn-kind { background: #f4efe4; color: #6a4f12; }
#curriculum-navigator .cn-resource[data-kind="Check"] .cn-kind { background: #f3e9f3; color: #6b2f6b; }

/* Small groups side by side so the two tables can be compared at a glance. */
#curriculum-navigator .cn-variants { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 10px; }
#curriculum-navigator .cn-variants > .cn-group-title { grid-column: 1 / -1; margin-bottom: 0; }
#curriculum-navigator .cn-variants .cn-variant { margin: 0; }
#curriculum-navigator .cn-variants .cn-resources { grid-template-columns: 1fr; }

/* Teacher-only quality flag on a result. */
#curriculum-navigator .cn-status { margin-top: 6px; padding: 2px 8px; border-radius: 999px; font-size: 13px; font-weight: 700; }
#curriculum-navigator .cn-status--missing { background: #fde4e1; color: #8f2a1f; }
#curriculum-navigator .cn-status--review { background: #fef0d8; color: #7a540e; }

/* The list stays beside the lesson on wide screens, so "Back to results" is only needed once they stack. */
@media (min-width: 781px) {
  #curriculum-navigator .cn-back { display: none; }
}
/* Stacked: put today's lesson above the long list instead of a screen below it. */
@media (max-width: 780px) {
  #curriculum-navigator.cn-idle #nav-preview { order: -1; border-bottom: 1px solid var(--cn-border); }
  #curriculum-navigator.cn-idle .cn-browser { border-bottom: 0; }
}

/* Today's panel carries its materials, so the desk is useful before a click. */
#curriculum-navigator.cn-idle .cn-today .cn-preview-actions { margin-bottom: 4px; }
#curriculum-navigator.cn-idle .cn-today + .cn-resource-group { margin-top: 22px; padding-top: 18px; border-top: 1px solid #dbe4d9; }
#curriculum-navigator.cn-idle .cn-resource-group { margin: 16px 0 0; }
#curriculum-navigator.cn-idle .cn-resource-group + .cn-starter { margin-top: 22px; }
#curriculum-navigator.cn-idle .cn-resources { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }
@media (max-width: 440px) {
  #curriculum-navigator.cn-idle .cn-resources { grid-template-columns: 1fr; }
}

/* Coming up: the next school days, one line each. */
#curriculum-navigator .cn-upcoming { margin: 0; padding: 0; list-style: none; }
#curriculum-navigator .cn-upcoming li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; min-height: 44px; padding: 4px 0; border-top: 1px solid #e3e9e4; }
#curriculum-navigator .cn-upcoming li:first-child { border-top: 0; }
#curriculum-navigator .cn-upcoming-day { flex: none; min-width: 7.5rem; color: var(--cn-muted); font-size: 15px; }
#curriculum-navigator .cn-upcoming-lesson { flex: 1 1 auto; min-height: 36px; padding: 4px 0; border: 0; background: transparent; color: var(--cn-ocean); font: inherit; font-size: 16px; font-weight: 600; text-align: left; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
#curriculum-navigator .cn-upcoming-lesson:hover { color: var(--cn-ink); }
#curriculum-navigator .cn-upcoming-note { flex: none; padding: 2px 8px; border-radius: 999px; background: #edf3f8; color: #2f4f6b; font-size: 13px; font-weight: 600; }
#curriculum-navigator .cn-upcoming-day + .cn-upcoming-note { background: transparent; padding: 0; color: var(--cn-ink); font-size: 16px; font-weight: 500; }

/* ===== /assets/curriculum-home.css ===== */
/* Curriculum landing: a lesson desk first, optional collections below it. */
body.curriculum-home {
  background: #f5f6f3;
  color: #14365b;
}
.curriculum-home .curriculum-guide {
  position: relative;
  padding: 28px 32px 22px;
  margin: 20px auto 0;
  border-radius: 20px 20px 0 0;
  box-shadow: none;
  border-bottom: 1px solid #d4e0ec;
}
.curriculum-home .curriculum-guide h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.12;
  margin: 6px 0 12px;
}
.curriculum-home .curriculum-guide__eyebrow {
  letter-spacing: 0.02em;
  text-transform: none;
  color: #11675d;
  font-size: 16px;
  margin: 0;
}
.curriculum-home .curriculum-guide__lede {
  font-size: 18px;
  line-height: 1.5;
  margin: 8px 0 16px;
  max-width: 76ch;
}
.curriculum-home #hub-mode-banner {
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin: 0 0 8px;
  font-size: 16px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: #475569;
}
.curriculum-home.teacher-mode #hub-mode-banner {
  display: none;
}
.curriculum-home .hub-shortcuts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: stretch;
}
.curriculum-home .hub-shortcuts > :is(a, button),
.curriculum-home .hub-reading-control > button {
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  min-height: 44px;
  border: 1px solid #c4d3e2;
  background: #f7fafd;
  color: #15487f;
  border-radius: 8px;
  padding: 10px 14px;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  width: auto;
}
.curriculum-home .hub-shortcuts > :is(a, button):hover {
  background: #e7f0fa;
  border-color: #175da0;
}
.curriculum-home .hub-shortcuts .curriculum-guide__action span {
  display: none;
}
.curriculum-home .hub-shortcuts strong {
  font: inherit;
  color: inherit;
}
.curriculum-home .hub-shortcuts [data-guide-teacher-view="today"] {
  color: #fff;
  background: #175da0;
  border-color: #175da0;
}
.hub-page {
  max-width: 1180px;
  margin: 0 auto 32px;
  padding: 0 32px 28px;
  border-radius: 0 0 20px 20px;
  background: #fff;
}
.hub-collection {
  margin: 12px 0;
  border: 1px solid #cbd8e6;
  border-radius: 12px;
  color: #14365b;
  background: #fff;
}
.hub-collection > summary {
  min-height: 56px;
  padding: 16px 18px;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  line-height: 1.4;
}
.hub-collection > summary span {
  display: block;
  font-size: 16px;
  font-weight: 400;
  color: #475569;
  margin: 4px 0 0 20px;
}
.hub-collection[open] {
  padding: 0 16px 16px;
}
.hub-collection[open] > summary {
  margin: 0 -16px 16px;
  border-bottom: 1px solid #d4e0ec;
  background: #f4f8fc;
  border-radius: 12px 12px 0 0;
}
.curriculum-home :is(a, button, input, select, summary):focus-visible {
  outline: 3px solid #175da0;
  outline-offset: 3px;
}
.curriculum-home .hub-collection :is(button, select, .tt-link, .mf-btn, .ctw-btn) {
  min-height: 44px;
}
.curriculum-home #hub-student-hint {
  display: none;
}
.curriculum-home #curriculum-navigator #hub-toolbar-sticky {
  position: static;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  margin: 0;
}
.curriculum-home #curriculum-navigator .controls {
  padding: 0;
  margin: 0;
  border: 0;
  box-shadow: none;
  background: none;
}
.curriculum-home .ctw-tools-drawer {
  display: block !important;
}
.curriculum-home .hub-collection .wrap {
  padding: 0;
  margin: 0;
}
.curriculum-home .hub-collection .tws-workspace {
  margin: 0;
}
.curriculum-home .hub-collection .curriculum-guide__actions {
  margin-top: 16px;
}
.curriculum-home .hub-collection .curriculum-guide__action :is(strong, span) {
  font-size: 16px;
}
.curriculum-home .hub-collection .mailbox-feature .mf-sub,
.curriculum-home .hub-collection .mailbox-feature .mf-text {
  color: #334155 !important;
}
.curriculum-home #enterprise-standards-compliance strong {
  color: #15487f !important;
}
.curriculum-home #enterprise-standards-compliance li {
  color: #334155;
  font-size: 16px;
}
.curriculum-home .hub-collection .cpu-contract {
  margin: 12px 0;
}
.curriculum-home #hub-manipulatives .ewl-presets-bar {
  margin: 0;
  padding: 0;
}
.curriculum-home #awardShowcaseOverlay {
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 18px;
  width: min(780px, 92vw);
  max-width: 92vw;
  max-height: 88vh;
  overflow: auto;
  color: #14365b;
}
.curriculum-home #awardShowcaseOverlay::backdrop {
  background: rgb(15 23 42 / 65%);
}
@media (max-width: 700px) {
  .curriculum-home .curriculum-guide {
    margin: 0;
    padding: 20px 16px;
    border-radius: 0;
  }
  .curriculum-home .curriculum-guide__lede {
    font-size: 16px;
  }
  .hub-page {
    padding: 0 16px 24px;
    border-radius: 0;
  }
  .hub-collection > summary {
    padding: 14px;
    font-size: 17px;
  }
  .hub-collection[open] {
    padding: 0 10px 10px;
  }
  .hub-collection[open] > summary {
    margin: 0 -10px 12px;
  }
  .curriculum-home .hub-shortcuts {
    gap: 6px;
  }
  .curriculum-home .hub-shortcuts > :is(a, button) {
    padding: 9px 11px;
  }
  .curriculum-home #udlFloatingLauncher {
    max-width: calc(100vw - 32px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .curriculum-home {
    scroll-behavior: auto;
  }
}
@media print {
  .curriculum-home .hub-shortcuts,
  .curriculum-home .hub-reading-control,
  .curriculum-home #hub-mode-banner,
  .curriculum-home .hub-collection,
  .curriculum-home .hub-supports-dock {
    display: none !important;
  }
  .curriculum-home,
  .hub-page,
  .curriculum-home .curriculum-guide {
    background: #fff;
    padding: 0;
    margin: 0;
    max-width: none;
    border: 0;
  }
}

.curriculum-home .hub-supports-panel[hidden] {
  display: none !important;
}
.curriculum-home .hub-reading-control {
  margin: 0;
  padding: 0;
}
.curriculum-home #udlFloatingLauncher {
  min-height: 44px;
  background: #f7fafd;
}
.curriculum-home #udlMenuPopover {
  position: absolute;
  right: 16px;
  z-index: 100;
  margin-top: 8px;
  width: min(340px, calc(100% - 32px));
  max-height: 70vh;
  overflow-y: auto;
  padding: 18px;
  border: 1px solid #b3c7dc;
  border-radius: 12px;
  background: #fff;
  color: #14365b;
  box-shadow: 0 12px 30px rgb(15 23 42 / 18%);
  font-size: 16px;
}
.curriculum-home #udlMenuPopover :is(label, a) {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
}
.curriculum-home #udlMenuPopover input[type="checkbox"] {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.curriculum-home #udlMenuPopover h2 {
  font-size: 18px !important;
  margin: 0 0 12px;
}
.curriculum-home #hub-teacher-banner {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 4px 0;
  color: #475569;
}
@media (min-width: 900px) {
  .curriculum-home .curriculum-guide {
    position: relative;
    padding-top: 24px;
  }
  .curriculum-home #hub-mode-banner,
  .curriculum-home #hub-teacher-banner {
    position: absolute;
    top: 16px;
    right: 32px;
  }
  .curriculum-home .curriculum-guide h1 {
    font-size: 44px;
  }
}
.curriculum-home #awardShowcaseOverlay button {
  min-height: 44px;
  min-width: 44px;
  flex-shrink: 0;
}

/* The legacy print view is now inside the complete-library disclosure. Keep
   its ancestor chain visible while printing only the selected planning view. */
@media print {
  body.curriculum-home.ctw-printing > main.hub-page,
  body.curriculum-home.ctw-printing #hub-library-collection {
    display: block !important;
    margin: 0;
    padding: 0;
    border: 0;
  }
  /* Weekly Pacing "Print week" runs from #curriculum-teacher-workflow (sibling of
     the library disclosure, inside .wrap). Hiding every main child except the
     library used to erase the workflow during print and fail the journey spec. */
  body.curriculum-home.ctw-printing main.hub-page > :not(#hub-library-collection):not(.wrap),
  body.curriculum-home.ctw-printing #hub-library-collection > :not(.ctw-panel) {
    display: none !important;
  }
  body.curriculum-home.ctw-printing #curriculum-navigator {
    display: none !important;
  }
}

/* Header mode controls already expose this action; keep the legacy JS bridge. */
.curriculum-home #hub-mode-toggle {
  display: none;
}

/* A compact course masthead; shortcuts read as supporting navigation. */
.curriculum-product.curriculum-home .curriculum-guide {
  background: transparent;
  border: 0;
  max-width: 1180px;
  padding-block: 30px 22px;
}
.curriculum-product.curriculum-home .curriculum-guide h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 650;
  letter-spacing: -0.04em;
  margin-block: 6px 12px;
}
.curriculum-product.curriculum-home .curriculum-guide__eyebrow {
  font-weight: 600;
}
.curriculum-product.curriculum-home .curriculum-guide__lede {
  font-size: 18px;
  color: var(--course-muted);
  max-width: 64ch;
  margin-bottom: 16px;
}
.curriculum-product.curriculum-home .hub-page {
  background: transparent;
}
.curriculum-product.curriculum-home .hub-shortcuts {
  gap: 4px 20px;
}
.curriculum-product.curriculum-home .hub-shortcuts > a,
.curriculum-product.curriculum-home .hub-reading-control > button {
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.curriculum-product.curriculum-home .hub-reading-control {
  margin-left: auto;
}
.curriculum-product.curriculum-home .hub-shortcuts > a:hover,
.curriculum-product.curriculum-home .hub-reading-control > button:hover {
  color: #0d4941;
}
@media (max-width: 780px) {
  .curriculum-product.curriculum-home .curriculum-guide {
    padding: 20px 16px 16px;
  }
  .curriculum-product.curriculum-home .hub-reading-control {
    margin-left: 0;
  }
  .curriculum-product.curriculum-home .curriculum-guide__lede {
    font-size: 17px;
  }
}

/* Phones: the shortcuts are one scrollable row of same-shaped chips. Mixed
   underlined links and boxed buttons wrapped into four uneven rows; the fade
   at the right edge says there is more. */
@media (max-width: 780px) {
  .curriculum-product.curriculum-home .hub-shortcuts {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    align-items: stretch;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 16px;
    scrollbar-width: none;
    margin: 0 -16px;
    padding: 4px 16px 8px;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
  }
  .curriculum-product.curriculum-home .hub-shortcuts::-webkit-scrollbar {
    display: none;
  }
  .curriculum-product.curriculum-home .hub-shortcuts > :is(a, button),
  .curriculum-product.curriculum-home .hub-shortcuts .hub-reading-control > button {
    flex: none;
    scroll-snap-align: start;
    white-space: nowrap;
    min-height: 44px;
    padding: 9px 14px;
    border: 1px solid #c4d3e2;
    border-radius: 999px;
    background: #fff;
    color: #15487f;
    font-weight: 700;
    text-decoration: none;
  }
  .curriculum-product.curriculum-home .hub-shortcuts [data-guide-teacher-view="today"] {
    color: #fff;
    background: #175da0;
    border-color: #175da0;
  }
  .curriculum-product.curriculum-home .hub-reading-control {
    flex: none;
    margin-left: 0;
  }
  .curriculum-product.curriculum-home .hub-shortcuts .hub-reading-control > button {
    max-width: none;
  }
  .curriculum-home #udlMenuPopover {
    right: 16px;
    left: 16px;
    width: auto;
  }
}
/* The docked Prepare Supports bar is fixed to the bottom edge on phones;
   leave room so the last control on the page is never under it. */
@media (max-width: 640px) {
  body.curriculum-home.teacher-mode .hub-page {
    padding-bottom: 96px;
  }
}

/* Year at a glance: the ten units in teaching order, width by length, today
   marked. Decorative colour only — each segment names its unit in text. */
.course-timeline {
  position: relative;
  margin: 0 0 18px;
}
.course-timeline__track {
  display: flex;
  gap: 3px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.course-timeline__track li {
  flex: 1 1 0;
  min-width: 34px;
}
.course-timeline__track a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 6px;
  background: var(--tl-accent, #5b6470);
  color: #fff;
  /* 19px bold is large text (3:1), which every unit accent meets with white.
     It used to be 15px at 62% opacity: Unit 10 measured 2.71:1. */
  font-size: 19px;
  font-weight: 700;
  text-decoration: none;
}
.course-timeline__track a:hover,
.course-timeline__track a:focus-visible {
  filter: brightness(0.92);
}
.course-timeline__track .is-current a {
  box-shadow:
    0 0 0 2px #fff,
    0 0 0 4px var(--tl-accent, #5b6470);
}
.course-timeline__today {
  position: absolute;
  top: -12px;
  width: 2px;
  height: 12px;
  margin-left: -1px;
  background: #193e3b;
  border-radius: 1px;
  pointer-events: none;
}
.course-timeline__today::before {
  content: "";
  position: absolute;
  top: -5px;
  left: -4px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #193e3b;
}
.course-timeline__caption {
  margin: 10px 0 0;
  color: var(--course-muted, #506662);
  font-size: 15px;
  line-height: 1.5;
}
.curriculum-home .visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 780px) {
  .course-timeline__track {
    gap: 2px;
  }
  .course-timeline__track li {
    min-width: 30px;
  }
  .course-timeline__track a {
    min-height: 40px;
    border-radius: 5px;
  }
}
@media print {
  .course-timeline__today {
    display: none;
  }
  .course-timeline__track a {
    color: #000;
    background: transparent;
    border: 1px solid #999;
    opacity: 1;
  }
}

/* Footer link reaches the 44px target; the phone back-to-top button sits above
   the docked Prepare Supports bar instead of on top of it. */
.curriculum-home footer.hub a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 2px;
}
@media (max-width: 640px) {
  body.curriculum-home.teacher-mode .hub-back-to-top {
    right: auto;
    left: 12px;
    bottom: 76px;
  }
}

/* Audience switcher (Student / Family / Teacher). Visibility is class-driven:
   .hub-for-student and .hub-for-family are the two learner views; Teacher is
   body.teacher-mode, which already drives .hub-teacher-only. */
.curriculum-home .hub-audience {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 4px 0 14px;
}
.curriculum-home .hub-audience__label {
  flex-basis: 100%;
  font-size: 15px;
  font-weight: 600;
  color: var(--course-muted, #506662);
}
.curriculum-home .hub-audience__btn {
  min-height: 44px;
  padding: 6px 16px;
  line-height: 1.25;
  border: 1px solid #9ab0c5;
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}
.curriculum-home .hub-audience__btn [lang="es"] {
  display: block;
  color: inherit;
  font-size: 13px;
  font-weight: 500;
}
.curriculum-home .hub-audience__btn:hover {
  background: #eaf2fa;
}
.curriculum-home .hub-audience__btn[aria-pressed="true"] {
  background: #175da0;
  border-color: #175da0;
  color: #fff;
}
.curriculum-home #hub-teacher-banner {
  display: none !important;
}
body.curriculum-home.teacher-mode :is(.hub-for-student, .hub-for-family),
body.curriculum-home.hub-aud-family .hub-for-student,
body.curriculum-home:not(.hub-aud-family) .hub-for-family {
  display: none !important;
}
/* Learners get the short page: the cards below replace the resource search,
   the teaching workflows and the full tool library, which are teacher views. */
body.curriculum-home:not(.teacher-mode) :is(#curriculum-resources, #hub-workflows, #hub-library-collection) {
  display: none;
}
.curriculum-home :is(.hub-now, .hub-panel, .curriculum-guide__lede, .course-overview) [lang="es"] {
  color: var(--course-muted, #506662);
}
.curriculum-home .curriculum-guide__lede [lang="es"] {
  display: block;
  font-size: 16px;
}
/* Student-safe shortcuts stay available; hub-teacher-only hides teacher actions. */

/* Now / Next */
.curriculum-home .hub-now {
  padding: 24px 0 8px;
}
.curriculum-home .hub-now h2,
.curriculum-home .hub-panel h2 {
  margin: 0 0 12px;
  font-size: 24px;
}
.curriculum-home .hub-now__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 12px;
}
.curriculum-home .hub-now__card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 18px;
  border: 1px solid var(--course-border, #d2dcd7);
  border-radius: 8px;
  background: #fff;
}
.curriculum-home .hub-now__card--today {
  border-color: #175da0;
  box-shadow: inset 0 4px 0 #175da0;
}
.curriculum-home .hub-now__card p,
.curriculum-home .hub-now__card h3 {
  margin: 0;
}
.curriculum-home .hub-now__when {
  font-size: 15px;
}
.curriculum-home .hub-now__title {
  font-size: 20px;
  line-height: 1.3;
}
.curriculum-home .hub-now__title a {
  color: #15487f;
}
.curriculum-home .hub-now__card > .hub-es {
  display: block;
  font-size: 15px;
}
.curriculum-home .hub-now__unit {
  color: var(--course-muted, #506662);
  font-size: 15px;
}
.curriculum-home .hub-now__guide {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  font-weight: 700;
  color: #15487f;
}

/* Learner panels: a handful of cards, then plain links. */
.curriculum-home .hub-panel {
  padding: 20px 0 8px;
}
.curriculum-home .hub-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.curriculum-home .hub-card {
  display: flex;
  flex-direction: column;
  gap: 2px;
  height: 100%;
  min-height: 44px;
  padding: 14px 16px;
  border: 1px solid var(--course-border, #d2dcd7);
  border-radius: 8px;
  background: #fff;
  color: var(--course-ink, #193e3b);
  text-decoration: none;
}
.curriculum-home .hub-card:hover {
  border-color: #175da0;
  background: #f5f9fd;
}
.curriculum-home .hub-card strong {
  color: #15487f;
  font-size: 18px;
}
.curriculum-home .hub-card strong [lang="es"] {
  font-weight: 500;
  font-size: 15px;
}
.curriculum-home .hub-card > span {
  font-size: 15px;
}
.curriculum-home .hub-more__title {
  margin: 18px 0 6px;
  font-size: 18px;
}
.curriculum-home .hub-more {
  display: flex;
  flex-wrap: wrap;
  gap: 0 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.curriculum-home .hub-more a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: #15487f;
  font-weight: 600;
}

/* Course cards in teaching order: finished units step back (colour, not
   opacity, so text keeps its contrast); a unit not taught this year reads
   as such rather than as upcoming. */
.curriculum-home .course-unit-list li.is-done a {
  background: #f1f4f2;
  box-shadow: inset 0 4px 0 #c9d3ce;
}
.curriculum-home .course-unit-list li.is-done :is(.course-unit-number, .course-unit-title) {
  color: var(--course-muted, #506662);
}
.curriculum-home .course-unit-list li[data-unscheduled] a {
  background: repeating-linear-gradient(135deg, #fff 0 10px, #f4f6f5 10px 20px);
  box-shadow: inset 0 4px 0 #c9d3ce;
}
.curriculum-home .course-unit-list li[data-unscheduled] .course-unit-dates {
  font-weight: 700;
  color: var(--course-ink, #193e3b);
}
.course-timeline__track li.is-done a {
  background: #dfe5e2;
  color: #33423f;
}

/* Reading supports live in the course bar (tools/lib/curriculum-shell.mjs) so
   they are reachable at every width without scrolling a row of chips. */
.curriculum-home .ewl-course-tools .hub-reading-control {
  position: relative;
  margin: 0;
}
.curriculum-home .ewl-course-tools #udlFloatingLauncher {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #c4d3e2;
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.curriculum-home .ewl-course-tools #udlFloatingLauncher:hover {
  background: #eaf2fa;
}
.curriculum-home .ewl-course-tools #udlMenuPopover {
  right: 0;
  top: 100%;
}
@media (max-width: 780px) {
  .curriculum-home .ewl-course-tools .hub-reading-control {
    position: static;
  }
  .curriculum-home .ewl-course-tools #udlMenuPopover {
    top: auto;
    left: 16px;
    right: 16px;
    width: auto;
  }
}

/* Student quick actions, "pick up where you left off", and the rest-day card */
.curriculum-home .hub-now__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 0;
}
.curriculum-home .hub-now__action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  padding: 6px 14px;
  border: 1px solid #175da0;
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  font-weight: 700;
  text-decoration: none;
}
.curriculum-home .hub-now__action:hover,
.curriculum-home .hub-now__action:focus-visible {
  background: #eaf2fb;
}
.curriculum-home .hub-now__action--play {
  margin-top: 8px;
  align-self: flex-start;
}
.curriculum-home .hub-now__card--continue {
  border-color: #0f6b4f;
  box-shadow: inset 0 4px 0 #0f6b4f;
}
.curriculum-home .hub-now__bar {
  display: block;
  height: 8px;
  margin-top: 6px;
  border-radius: 4px;
  background: #dbe5e0;
  overflow: hidden;
}
.curriculum-home .hub-now__bar::after {
  content: "";
  display: block;
  width: var(--pct, 0%);
  height: 100%;
  background: #0f6b4f;
}
.curriculum-home .hub-now__dismiss {
  align-self: flex-start;
  min-height: 44px;
  margin-top: 4px;
  padding: 6px 4px;
  border: 0;
  background: none;
  color: var(--course-muted, #506662);
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

/* Lesson finder */
.curriculum-home .hub-find[hidden] {
  display: none;
}
.curriculum-home .hub-find {
  margin: 0 0 14px;
}
.curriculum-home .hub-find__label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
}
.curriculum-home .hub-find__input {
  box-sizing: border-box;
  width: 100%;
  max-width: 480px;
  min-height: 48px;
  padding: 8px 14px;
  border: 2px solid #175da0;
  border-radius: 8px;
  font: inherit;
  background: #fff;
}
.curriculum-home .hub-find__status {
  min-height: 1.4em;
  margin: 6px 0 0;
  color: var(--course-muted, #506662);
  font-size: 15px;
}
.curriculum-home .hub-find__results {
  display: grid;
  gap: 6px;
  max-width: 640px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.curriculum-home .hub-find__link {
  display: block;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--course-border, #d2dcd7);
  border-radius: 8px;
  background: #fff;
  color: #15487f;
  text-decoration: none;
}
.curriculum-home .hub-find__link:hover,
.curriculum-home .hub-find__link:focus-visible {
  background: #eaf2fb;
}
.curriculum-home .hub-find__word {
  display: block;
  margin-top: 2px;
  color: var(--course-muted, #506662);
  font-size: 14px;
}

/* ===== /assets/curriculum-resources.css ===== */
/* A visible resource shelf, scoped to the curriculum hub. */
#curriculum-resources { color: #14365b; padding: 24px 0 28px; border-top: 2px solid #b5cfda; scroll-margin-top: 24px; }
#curriculum-resources *, #curriculum-resources *::before, #curriculum-resources *::after { box-sizing: border-box; }
#curriculum-resources [hidden] { display: none !important; }
#curriculum-resources :is(a, button, input):focus-visible { outline: 3px solid #175da0; outline-offset: 4px; }
#curriculum-resources h2 { font-size: 26px; line-height: 1.2; margin: 0 0 8px; }
#curriculum-resources p { font-size: 16px; line-height: 1.5; }
#curriculum-resources .cr-intro { max-width: 74ch; margin: 0 0 20px; color: #475c71; }
#curriculum-resources a { color: #15518a; text-underline-offset: 3px; }
#curriculum-resources .cr-search-row { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
#curriculum-resources .cr-search-field { flex: 1 1 340px; }
#curriculum-resources label { display: block; font-size: 16px; font-weight: 700; margin-bottom: 6px; }
#curriculum-resources input { display: block; width: 100%; min-height: 48px; font: inherit; font-size: 16px; color: #14365b; background: #fff; border: 1px solid #728ba3; border-radius: 8px; padding: 10px 12px; }
#curriculum-resources button { font: inherit; font-size: 16px; line-height: 1.35; min-height: 44px; padding: 9px 13px; border: 1px solid #9ab0c5; border-radius: 8px; background: #fff; color: #14365b; cursor: pointer; }
#curriculum-resources button:hover { background: #edf4f7; border-color: #11675d; }
#curriculum-resources button[aria-pressed="true"] { color: #fff; background: #11675d; border-color: #11675d; }
#curriculum-resources button:disabled { opacity: .65; cursor: default; }
#cr-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
#curriculum-resources #cr-status { color: #475c71; margin: 12px 0; }
#cr-results { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
#cr-results > li { min-width: 0; padding: 18px; border: 1px solid #c9d6e2; border-radius: 10px; background: #f7fafc; display: flex; flex-direction: column; }
#curriculum-resources .cr-kind { color: #11675d; margin: 0 0 8px; font-size: 16px; }
#cr-results h3 { font-size: 21px; line-height: 1.3; margin: 0 0 10px; }
#cr-results h3 a { display: inline-block; padding: 3px 0; }
#curriculum-resources .cr-description { margin: 0 0 16px; color: #334b61; }
#curriculum-resources .cr-card-actions { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; margin-top: auto; }
#curriculum-resources .cr-card-actions a { min-height: 44px; display: inline-flex; align-items: center; font-size: 16px; font-weight: 700; }
#curriculum-resources .cr-card-actions button { margin-left: auto; }
#cr-results .cr-empty { grid-column: 1 / -1; font-size: 17px; line-height: 1.5; }
#cr-more { margin-top: 16px; }
#curriculum-resources #cr-notice { color: #11675d; margin: 12px 0; }
#curriculum-resources #cr-notice:empty { margin: 0; }
#curriculum-resources .cr-footer { display: flex; gap: 8px 24px; flex-wrap: wrap; margin: 16px 0 0; }
#curriculum-resources .cr-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; }
#cr-fallback { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 0; list-style: none; }
#cr-fallback a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; }
.curriculum-home .hub-shortcuts .hub-resource-shortcut { background: #e7f3ef; color: #0f5b52; border-color: #78a69e; }
@media (max-width: 1000px) { #cr-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { #cr-results { grid-template-columns: minmax(0, 1fr); } #curriculum-resources .cr-search-field { flex-basis: 100%; } #curriculum-resources h2 { font-size: 24px; } }
@media print { #curriculum-resources { display: none !important; } }
#curriculum-navigator .cn-heading p a[href="#curriculum-resources"] { text-decoration: underline; text-underline-offset: 3px; }
