.academy-library-main { max-width:1440px; margin:auto; padding:0 24px 64px; }
.academy-library-head { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0 16px; }
.academy-library-head h1 { font:600 24px/1.4 var(--serif); margin:0; }
.academy-library-head .academy-search { width:340px; max-width:100%; }
.academy-library-head .academy-search input { min-height:42px; border:1px solid var(--line); border-radius:4px; background:#fff; padding:10px 14px; width:100%; font:14px var(--sans); }
.academy-section-nav { display:flex; gap:26px; border-bottom:1px solid var(--line); }
.academy-section-nav button { padding:14px 0; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; color:var(--ink-soft); font:14px var(--sans); cursor:pointer; }
.academy-section-nav button[aria-pressed=true] { border-bottom-color:var(--gold); color:var(--jade); }
.academy-library-main [hidden] { display:none!important; }
.academy-library { display:grid; grid-template-columns:208px minmax(0,1fr); gap:32px; padding-top:24px; }
.academy-subjects summary { font:13px var(--sans); color:var(--ink-soft); margin-bottom:16px; cursor:pointer; }
.academy-subjects nav { display:grid; gap:4px; }
.academy-subjects button { display:grid; grid-template-columns:22px minmax(0,1fr) 24px; gap:8px; align-items:baseline; padding:12px 8px; text-align:left; color:var(--ink); border:0; border-radius:4px; background:transparent; font:13px/1.6 var(--sans); cursor:pointer; }
.academy-subjects button[aria-pressed=true] { background:#e0ebeb; color:var(--jade); font-weight:600; }
.academy-subjects button:hover { background:#eaf0f1; }
.academy-subject-index,.academy-subjects small { color:#73868a; font-size:11px; font-variant-numeric:tabular-nums; }
.academy-subjects small { text-align:right; }
.academy-results { min-width:0; }
.academy-results-toolbar { display:flex; align-items:center; gap:16px; min-height:36px; margin-bottom:18px; }
.academy-results-toolbar .academy-count { font:12px var(--sans); color:var(--ink-soft); margin:0 0 0 auto; white-space:nowrap; }
.academy-learning-filters,.academy-layout-toggle { display:flex; gap:6px; align-items:center; }
.academy-learning-filters button { padding:7px 8px; color:var(--ink-soft); border:0; border-bottom:1px solid transparent; background:transparent; font:12px var(--sans); cursor:pointer; white-space:nowrap; }
.academy-learning-filters button[aria-pressed=true] { border-bottom-color:var(--jade); color:var(--jade); }
.academy-layout-toggle button { display:grid; place-items:center; width:34px; height:34px; padding:0; font-size:20px; color:var(--ink-soft); border:1px solid var(--line); background:transparent; border-radius:4px; cursor:pointer; }
.academy-layout-toggle button[aria-pressed=true] { background:#e0ebeb; color:var(--jade); }
.academy-layout-toggle svg { width:16px; height:16px; }
.academy-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.academy-library-card { position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--line); background:#fff; border-radius:6px; transition:border-color 160ms,box-shadow 160ms; }
.academy-library-card:hover,.academy-library-card:focus-within { border-color:#8ba4a8; box-shadow:0 4px 16px #172c3009; }
.academy-course-cover { position:relative; display:grid; place-items:center; margin:0; padding:16px; aspect-ratio:1.75; overflow:hidden; background:#edf2f1; border-bottom:1px solid var(--line); }
.academy-course-cover img { width:100%; height:100%; min-height:0; object-fit:contain; transition:transform 220ms; }
.academy-library-card:hover .academy-course-cover img { transform:scale(1.025); }
.academy-course-cover figcaption { position:absolute; right:7px; bottom:5px; padding:2px 5px; background:#ffffffed; color:#546c70; font:10px var(--sans); max-width:calc(100% - 14px); overflow-wrap:anywhere; }
.academy-card-copy { display:flex; flex-direction:column; flex:1; padding:18px; }
.academy-card-category { color:var(--jade); font:11px var(--sans); margin:0 0 10px; }
.academy-card-copy h3 { margin:0; font:500 19px/1.55 var(--serif); }
.academy-card-copy h3 a { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; color:var(--ink); text-decoration:none; }
.academy-card-copy h3 a::after { content:""; position:absolute; inset:0; }
.academy-card-copy h3 a>span { flex-shrink:0; color:var(--ink-soft); font:18px var(--sans); margin-top:5px; }
.academy-card-summary { color:var(--ink-soft); font:13px/1.85 var(--sans); margin:12px 0 18px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.academy-card-meta { display:flex; align-items:center; gap:12px; margin-top:auto; color:var(--ink-soft); font:11px var(--sans); }
.academy-course-grid.is-list { grid-template-columns:1fr; gap:10px; }
.is-list .academy-library-card { flex-direction:row; }
.is-list .academy-course-cover { width:180px; flex:0 0 180px; aspect-ratio:auto; border-bottom:0; border-right:1px solid var(--line); }
.is-list .academy-card-summary { -webkit-line-clamp:2; margin:8px 0 14px; }
.academy-orientations { padding:24px 0; }
.academy-orientations h2 { font-size:22px; font-weight:500; }
.academy-orientations .academy-entry-tags { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:10px; margin-top:24px; }
.academy-orientations a { display:flex; flex-direction:column; align-items:center; gap:8px; padding:18px 12px; border:1px solid var(--line); background:#fff; border-radius:4px; color:var(--jade); text-decoration:none; }
.academy-orientations a strong { font-size:25px; font-weight:500; }
.academy-orientations a small { font:12px var(--sans); color:var(--ink-soft); }
.course-reader-shell { width:100%; max-width:1280px; margin:auto; padding:24px 24px 64px; }
.course-reader-shell .course-breadcrumb { margin-bottom:22px; font:12px/1.7 var(--sans); }
.course-reader-shell .course-reader-head { max-width:800px; margin:0 0 28px 240px; padding:0 0 22px; border-bottom:1px solid var(--line); }
.course-reader-shell .course-reader-head h1 { font:500 32px/1.5 var(--serif); margin:12px 0; letter-spacing:0; }
.course-reader-shell .course-reader-head .eyebrow { margin-bottom:0; }
.course-reader-shell .course-deck { font-size:15px; line-height:1.9; }
.course-reader-shell .course-reader-layout { display:grid; grid-template-columns:208px minmax(0,800px); gap:32px; align-items:start; justify-content:start; padding-top:0; border-top:0; }
.course-reader-shell .course-toc { position:sticky; top:86px; border:0; border-top:1px solid var(--line); border-radius:0; padding:16px 0 0; background:transparent; max-height:calc(100svh - 110px); overflow-y:auto; }
.course-toc summary { font:600 13px var(--sans); cursor:pointer; margin-bottom:12px; }
.course-toc nav { display:grid; gap:2px; }
.course-reader-shell .course-toc a { border-left:1px solid var(--line); padding:7px 10px; font:12px/1.6 var(--sans); color:var(--ink-soft); }
.course-reader-shell .course-toc a:hover { background:#eaf0f1; border-color:var(--jade); color:var(--jade); }
.course-reader-shell .course-body { min-width:0; padding:0; border:0; border-radius:0; background:transparent; font-size:16px; line-height:1.95; }
.course-reader-shell .course-body h2 { font-size:23px; margin-top:32px; scroll-margin-top:86px; }
.course-reader-shell .course-self-check { position:static; grid-column:2; padding:20px 0; margin:0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
.course-reader-shell .course-self-check .button { margin-top:16px; }
.course-reader-shell .related-courses { padding-top:30px; margin-top:30px; border-top:1px solid var(--line); }
.course-reader-shell .related-courses .section-title { font-size:22px; }
.course-reader-shell .course-source-card { box-shadow:none; border-radius:4px; background:#fff; }
.course-learning-actions { display:flex; gap:10px; margin-top:18px; }
.course-learning-actions button { padding:8px 12px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--ink-soft); font:12px var(--sans); cursor:pointer; }
.course-learning-actions button[aria-pressed=true] { color:var(--jade); background:#e0ebeb; border-color:#a9c4c4; }
@media(max-width:1180px) { .academy-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:820px) {
 .course-reader-shell .course-reader-head { margin-left:0; }
 .academy-library-main { padding:0 16px 40px; }.academy-library-head { flex-wrap:wrap; gap:16px; padding-top:20px; }.academy-library-head .academy-search { width:100%; }.academy-library { display:block; padding-top:18px; }
 .academy-subjects summary { margin-bottom:12px; }.academy-subjects nav { display:flex; overflow-x:auto; padding-bottom:12px; margin-bottom:14px; gap:6px; }.academy-subjects button { display:flex; flex:0 0 auto; padding:8px 10px; border:1px solid var(--line); }.academy-subject-index { display:none; }
 .academy-results-toolbar { gap:6px; flex-wrap:wrap; }.academy-learning-filters { gap:0; }.academy-layout-toggle { margin-left:auto; }.academy-orientations .academy-entry-tags { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .course-reader-shell { padding:20px 16px 40px; }.course-reader-shell .course-reader-head h1 { font-size:26px; }.course-reader-shell .course-reader-layout { display:block; }.course-reader-shell .course-toc { position:static; max-height:none; margin-bottom:24px; padding:14px 0; border-bottom:1px solid var(--line); }.course-toc nav { max-height:260px; overflow-y:auto; }.course-reader-shell .course-self-check { margin-top:24px; }
}
@media(max-width:540px) { .academy-course-grid { grid-template-columns:1fr; gap:14px; }.academy-course-cover { aspect-ratio:2; }.academy-card-copy h3 { font-size:20px; }.is-list .academy-course-cover { width:100px; flex-basis:100px; padding:6px; }.is-list .academy-course-cover figcaption { display:none; }.is-list .academy-card-copy { padding:12px; }.is-list .academy-card-copy h3 { font-size:17px; } }
@media(prefers-reduced-motion:reduce) { .academy-library-card,.academy-course-cover img { transition:none; }.academy-library-card:hover .academy-course-cover img { transform:none; } }
