/* The course menu puts the whole course within reach without crowding the weekly page. */
.primary-nav .course-menu-button{display:inline-flex;align-items:center;gap:.6rem;font-size:.9rem;font-weight:700;white-space:nowrap;min-height:44px;padding:.6rem .8rem;border:1px solid #a2bcbc;border-radius:4px;background:transparent;color:var(--teal)}
.course-menu-button:hover,.course-menu-button[aria-expanded=true]{background:var(--soft);border-color:var(--teal)}
.course-menu-button>span{font-size:1rem;line-height:1}
.course-menu-backdrop{position:fixed;inset:0;z-index:100;background:#142c38a8;backdrop-filter:blur(2px)}
.cp-course-rail{position:fixed;inset:0 auto 0 0;z-index:101;width:min(25rem,91vw);height:100dvh;overflow:auto;overscroll-behavior:contain;background:var(--paper);border-right:1px solid var(--line);box-shadow:10px 0 40px #102f3833;padding:1.6rem 1.5rem 1.3rem;scrollbar-gutter:stable}
.course-menu-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:.8rem}
.course-menu-top p{margin:0 0 .45rem;font:700 .65rem/1.4 Arial,sans-serif;letter-spacing:.1em;color:var(--muted)}
.course-menu-top h2{font:normal 1.9rem/1.2 Georgia,serif;margin:0}
.course-menu-close{display:flex;align-items:center;gap:.65rem;min-height:44px;padding:.4rem .7rem;border-color:var(--line);font-size:.82rem;background:transparent}
.course-menu-close>span{font-size:1.35rem}
.course-menu-links>a,.course-menu-group>a{display:flex;align-items:center;gap:.7rem;min-height:46px;padding:.5rem .65rem;border-radius:3px;text-decoration:none;font-size:1rem;line-height:1.4}
.course-menu-links>a:hover,.course-menu-group>a:hover{background:var(--soft)}
.course-menu-links a[aria-current]{font-weight:700;background:var(--soft);box-shadow:inset 3px 0 var(--teal)}
.course-menu-links>a:first-child{font-weight:700}
.course-menu-group{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}
.course-menu-group h3{font:700 .72rem/1.4 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 .65rem .45rem}
.course-menu-links .course-award-link{border:1px solid #adc3d7;background:#eef5fb;margin:.6rem 0;color:#285476;font-weight:700;min-height:54px;padding:.45rem .65rem}
.course-menu-links .course-award-link:hover{background:#dfedf8}
.course-menu-links .course-honors-link{border-color:#cdb56b;background:#fff7df;color:#6d5318}
.course-menu-links .course-honors-link:hover{background:#fbefc9}
.course-medallion{flex-shrink:0;display:block}
.course-menu-footer{margin:1.5rem .65rem 0;border-top:1px solid var(--line);padding-top:1rem;font-size:.86rem}
.course-calendar-page{max-width:1180px;padding-top:2.4rem}
.calendar-heading{position:relative;border-bottom:2px solid var(--teal);padding-bottom:1.35rem;margin-bottom:0}
.calendar-heading h1{font-size:clamp(2.4rem,5vw,3.5rem);margin:.4rem 0 .5rem;max-width:none}
.calendar-heading>p:not(.eyebrow){font-size:1.1rem;margin:.45rem 0;color:var(--muted)}
.calendar-current-jump{display:inline-block;margin-top:.5rem;font-size:.88rem;font-weight:700}
.course-calendar table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.92rem;line-height:1.55}
.course-calendar th,.course-calendar td{text-align:left;vertical-align:top;padding:1.25rem 1rem;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.course-calendar thead th{padding:.85rem 1rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700;background:var(--paper)}
.course-calendar thead th:first-child{width:14%}.course-calendar thead th:nth-child(2){width:43%}.course-calendar thead th:nth-child(3){width:19%}.course-calendar thead th:last-child{width:24%}
.course-calendar tbody th{font-weight:400}.calendar-week-link{font-size:1rem;font-weight:700;text-decoration:none}.calendar-dates{display:block;color:var(--muted);font-size:.8rem;margin-top:.25rem;white-space:nowrap}
.calendar-aim>a{color:var(--ink);text-decoration:none;font:normal 1.14rem/1.5 Georgia,serif}.calendar-aim>a:hover{text-decoration:underline;color:var(--teal)}
.calendar-reading>a{display:block;text-decoration:none;margin-bottom:.65rem}.calendar-reading>a:last-child{margin-bottom:0}.calendar-reading strong{font-weight:400}.calendar-reading span{display:block;font-size:.79rem;color:var(--muted)}
.calendar-reading>a.calendar-mobile-words{display:none}
.calendar-words>a:not(.calendar-all-words){display:inline-block;text-decoration:none;font-size:.82rem;line-height:1.45;margin:0 .4rem .35rem 0;border-bottom:1px solid #b9cecd}
.calendar-words .calendar-all-words{display:block;font-size:.77rem;font-weight:700;margin-top:.3rem}
.course-calendar tr[data-calendar-week]{scroll-margin-top:calc(var(--header-height) + 1rem)}
.course-calendar tr[aria-current=date]{background:#edf5f3}.course-calendar tr[aria-current=date]>th{box-shadow:inset 3px 0 var(--teal)}
.calendar-current-badge{display:inline-block;font:700 .62rem/1.5 Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--teal);margin-top:.5rem;padding:.12rem .4rem;border:1px solid #9fbeb9;border-radius:2px;white-space:nowrap}
.calendar-endnote{font-size:.8rem;color:var(--muted);margin:1.2rem 0}
@media(max-width:700px){.course-calendar-page{padding-top:1.4rem}.calendar-heading{padding-bottom:1rem}.course-calendar thead th{padding:.75rem .45rem}.course-calendar th,.course-calendar td{padding:1rem .45rem}.course-calendar thead th:first-child{width:18%}.course-calendar thead th:nth-child(2){width:48%}.course-calendar thead th:nth-child(3){width:34%}.course-calendar thead th:last-child{display:none}.course-calendar td.calendar-words{display:none}.calendar-reading>a.calendar-mobile-words{display:block;margin-top:.6rem;font-size:.72rem;font-weight:700;text-decoration:underline}.calendar-aim>a{font-size:1rem}.calendar-reading>a{font-size:.82rem}.calendar-reading span,.calendar-dates{font-size:.72rem}.calendar-dates{white-space:normal}.calendar-week-link{font-size:.88rem}.calendar-current-badge{font-size:.53rem;padding:.1rem .25rem}}
@media(max-width:600px){.primary-nav .course-menu-button{font-size:.84rem;padding:.45rem .6rem;gap:.4rem}.primary-nav{gap:.1rem}.cp-course-rail{padding:1.3rem 1rem}.calendar-heading h1{font-size:2.4rem}}
@media(max-width:420px){.course-calendar thead th:first-child{width:23%}.course-calendar thead th:nth-child(2){width:45%}.course-calendar thead th:nth-child(3){width:32%}.primary-nav a{font-size:.8rem;padding-inline:.45rem}.primary-nav .course-menu-button{font-size:.8rem}.course-menu-button>span{display:none}.course-calendar th,.course-calendar td{padding-inline:.35rem}.course-calendar thead th{font-size:.6rem;padding-inline:.35rem}.calendar-aim>a{font-size:.93rem}.calendar-reading>a{font-size:.75rem}}
@media(prefers-reduced-motion:no-preference){.cp-course-rail:not([hidden]){animation:course-menu-enter .18s ease-out}@keyframes course-menu-enter{from{transform:translateX(-2rem);opacity:.2}to{transform:translateX(0);opacity:1}}}
@media print{.cp-course-rail,.course-menu-backdrop,.course-menu-button,.course-menu-fallback,.calendar-current-jump{display:none!important}.course-calendar-page{max-width:none;padding:0}.course-calendar table{font-size:9pt}.course-calendar th,.course-calendar td{padding:.65rem .4rem}.calendar-aim>a{font-size:11pt}.course-calendar tr{break-inside:avoid}.course-calendar td.calendar-words{display:table-cell}.course-calendar thead th:last-child{display:table-cell}.calendar-current-badge{display:none!important}}
