:root{color-scheme:light;--ink:#15302e;--muted:#516663;--paper:#f5f5ec;--card:#fffef9;--line:#cfdbd2;--accent:#175e50;font:17px/1.6 system-ui,sans-serif;background:var(--paper);color:var(--ink)}
*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}
button,input,select{font:inherit}button,select,input{border:1px solid #879f95;border-radius:.4rem;padding:.5rem .65rem;background:white;color:var(--ink)}
button{cursor:pointer}button:hover{background:#e3eee8}button:disabled{opacity:.6;cursor:default}
:focus-visible{outline:3px solid #ad6400;outline-offset:3px}input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--accent)}
.skip-link{position:absolute;left:1rem;top:-5rem;background:white;padding:.5rem;z-index:3}.skip-link:focus{top:1rem}
.site-header{border-bottom:1px solid var(--line);background:#fffef9}.header-inner{max-width:1440px;margin:auto;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.brand{font-size:1.2rem;font-weight:750;text-decoration:none}.primary-nav,.locale-switcher{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.locale-switcher a{padding:.3rem .6rem;border-radius:.3rem}.locale-switcher a[aria-current=page]{background:var(--ink);color:white;text-decoration:none}
main{max-width:1440px;margin:auto;padding:1.6rem 2rem 3rem}h1{font:600 clamp(1.9rem,4vw,2.9rem)/1.15 Georgia,serif;letter-spacing:-.02em;margin:.4rem 0 1rem}
h2{font:600 1.6rem/1.25 Georgia,serif}h3{font:600 1.5rem/1.25 Georgia,serif;margin:.4rem 0 1rem}h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;margin:.8rem 0 .3rem}
p{margin:.5rem 0 1rem}.intro{max-width:850px}.intro p{color:var(--muted)}.offline-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1rem 0}.offline-bar a{font-weight:700}
.filters{background:#e7ece3;padding:1rem;border-radius:.7rem;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:1rem}
label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.filters input,.filters select{width:100%;min-width:0}.filter-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:.7rem 0 1.4rem}
.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.course-card{border:1px solid var(--line);border-radius:.7rem;background:var(--card);padding:1.35rem;scroll-margin-top:1rem}
.card-top{display:flex;align-items:center;gap:1rem;justify-content:space-between;font-size:.8rem;color:var(--muted)}.course-code{font:700 .9rem ui-monospace,monospace;letter-spacing:.04em}
.course-card>p{color:var(--muted)}.course-edges{border-top:1px solid var(--line);padding-top:.2rem;font-size:.87rem}.course-edges a{display:block;margin:.2rem 0}.course-edges p{color:var(--muted);font-size:.85rem}
details{border-top:1px solid var(--line);margin-top:.8rem;padding-top:.7rem}summary{cursor:pointer;font-weight:650}summary:hover{color:var(--accent)}
.resource-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.8rem}.resource-group{display:flex;flex-direction:column;gap:.5rem}.resource-group h4{margin:.45rem 0 0}.resource-group[data-access-group=authoritative-original] .resource-link{border-color:#8aa99d;background:#f0f5f0}.resource-link{display:flex;flex-direction:column;padding:.65rem .8rem;border:1px solid var(--line);border-radius:.4rem;text-decoration:none;overflow-wrap:anywhere}
.resource-link small{font-size:.72rem;opacity:.85}.resource-link.primary{background:var(--accent);border-color:var(--accent);color:white}.resource-link:hover{box-shadow:0 0 0 1px currentColor}
.binding-note,.footnote{font-size:.85rem;color:var(--muted)}.course-progress{font-size:.85rem;background:#eff4ee;padding:.65rem .8rem;border-radius:.4rem}
.course-progress p{margin:0 0 .35rem}.course-progress label{display:flex;flex-direction:row;align-items:center;gap:.5rem}
.progress-panel{border:1px solid var(--line);border-radius:.7rem;padding:1rem 1.25rem;margin:1.3rem 0;background:#fffef9}
.progress-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.claim-form{display:flex;flex-direction:column;gap:.5rem}.claim-form select{width:100%;min-width:0}
.progress-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.progress-actions label{border:1px solid var(--line);padding:.5rem .65rem;border-radius:.4rem}
.progress-actions input{max-width:100%}#claims li{margin:.4rem 0}#claims button{font-size:.75rem;padding:.2rem .5rem}
footer{border-top:1px solid var(--line);padding:2rem;max-width:1440px;margin:auto;font-size:.9rem;color:var(--muted)}footer nav{display:flex;flex-wrap:wrap;gap:1rem}
.js-only{display:none}.js .js-only{display:block}.js .filters{display:grid}.js .filter-footer{display:flex}.js .no-js-note{display:none}
@media(min-width:1250px){.course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.filters{grid-template-columns:1fr 1fr}.progress-controls{grid-template-columns:1fr}.header-inner,main{padding:1rem}.primary-nav{gap:.65rem;font-size:.9rem}}
@media(max-width:550px){.course-grid,.filters{grid-template-columns:1fr}.site-header .header-inner{align-items:flex-start}.course-card{padding:1rem}.filter-footer{align-items:flex-start;flex-direction:column}.locale-switcher{gap:.4rem}.locale-switcher span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.js-only,.primary-nav,.locale-switcher,.offline-bar,.progress-panel{display:none!important}.course-grid{display:block}.course-card{break-inside:avoid;margin-bottom:1rem}a{color:inherit}.resource-link{padding:.25rem}}
