/* Academic workbook follows the established club workbook geometry. */
.academic-view-tools{display:flex;flex-wrap:wrap;align-items:end;gap:12px 20px;padding:18px 20px;margin:20px 0;background:#e7edf1;border:1px solid #bacad5;border-top:4px solid #365c73}
.academic-view-tools label{display:grid;gap:6px;font:600 13px/1.4 system-ui;color:#27485c;min-width:170px}
.academic-view-tools select,.academic-view-tools button{min-height:44px;padding:10px 14px;border:1px solid #9aadb9;background:#fffdf9;color:#27485c;font:14px/1.4 system-ui;border-radius:3px;margin:0;width:auto}
.academic-view-tools button{cursor:pointer}.academic-view-tools button:hover{background:#d8e3e9}.academic-view-tools :focus-visible,.academic-sheet:focus-visible{outline:3px solid #365c73;outline-offset:3px}
.academic-view-tools [hidden],.academic-workbook-view[hidden],#course-map-view[hidden],#course-directory-view[hidden]{display:none!important}
.academic-workbook-note{font:13px/1.6 system-ui;color:#4f585e;margin:12px 0 18px;max-width:none!important}
.academic-sheet{max-width:100%;max-height:70vh;overflow:auto;overscroll-behavior:contain;border:1px solid #bacad5;background:#fffdf9;margin:16px 0 28px;scroll-padding-top:60px}
.academic-workbook{width:100%;min-width:1050px;border-collapse:separate;border-spacing:0;table-layout:fixed;font:14px/1.5 system-ui;color:#282e32}
.academic-workbook caption{text-align:left;padding:14px 18px;font:600 13px/1.5 system-ui;background:#e7edf1;color:#27485c}
.academic-workbook th,.academic-workbook td{padding:16px 18px;text-align:left;vertical-align:top;border-bottom:1px solid #d8e0e5;border-right:1px solid #e0e6ea;overflow-wrap:anywhere}
.academic-workbook thead th{position:sticky;top:0;z-index:2;background:#365c73;color:#fffaf1;font-weight:600}
.academic-workbook th:first-child{width:21%}.academic-workbook th:last-child{width:16%}
.academic-workbook tbody th{font-weight:600}.academic-workbook tbody tr:nth-child(even){background:#f1f5f6}.academic-workbook tbody tr:hover{background:#e4edf1}
.academic-workbook p{font:inherit;margin:8px 0!important;max-width:none!important;color:inherit}.academic-workbook small{display:block;font:12px/1.5 system-ui;color:#59636a;margin-top:8px}
.academic-workbook summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:8px 0;color:#27485c;font-weight:600;gap:8px}.academic-workbook summary::before{content:'+'}.academic-workbook details[open]>summary::before{content:'−'}
.academic-workbook a{color:#27485c;text-underline-offset:3px}.academic-workbook ul{padding-left:18px;margin:10px 0}.academic-workbook li{margin:8px 0}
.academic-workbook .sheet-actions{display:grid;gap:10px}.academic-workbook .sheet-actions a,.academic-workbook .sheet-actions button{display:flex;align-items:center;justify-content:flex-start;min-height:44px;box-sizing:border-box;border:1px solid #91a6b4;border-radius:3px;background:#fffdf9;padding:10px 12px;color:#27485c;text-decoration:none;font:14px/1.45 system-ui;margin:0;cursor:pointer}
.academic-workbook .sheet-actions :hover{background:#dbe7ed}.academic-workbook :focus-visible{outline:3px solid #365c73;outline-offset:2px}
#list:has(.academic-sheet){display:block}
@media(max-width:600px){.academic-view-tools{padding:16px;gap:14px}.academic-view-tools label{flex:1;min-width:130px}.academic-view-tools select{font-size:16px;min-height:48px;width:100%}.academic-view-tools button{width:100%}.academic-workbook{min-width:1000px}.academic-workbook th,.academic-workbook td{padding:16px}.academic-sheet{max-height:65vh}}
/* Labels carry meaning even without color; courses can have several subjects. */
.subject-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.subject-chip{background:var(--subject-wash)!important;color:var(--subject-ink)!important;border:1px solid var(--subject-ink)!important;border-left:4px solid var(--subject-ink)!important;padding:9px 12px!important;border-radius:3px;font:600 12px/1.45 system-ui!important;text-align:left;margin:0!important;white-space:normal}
button.subject-chip{min-height:44px;cursor:pointer}button.subject-chip:hover{filter:brightness(.96)}
.requirement-dialog{width:min(1100px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:24px;border:2px solid #365c73;background:#fffdf9;color:#282e32;box-sizing:border-box;font:14px/1.6 system-ui;overflow:auto}
.requirement-dialog::backdrop{background:rgba(31,35,39,.6)}.requirement-dialog-bar{display:flex;align-items:start;justify-content:space-between;gap:20px;border-bottom:1px solid #bdcbd5;padding-bottom:18px;margin-bottom:20px}
.requirement-dialog h2{font:normal 26px/1.3 Georgia;margin:0;color:#27485c}.requirement-dialog h3{font:normal 21px/1.4 Georgia;color:#27485c;margin:0 0 10px}.requirement-dialog p{max-width:none!important;margin:12px 0!important;color:inherit}
.requirement-dialog button,.requirement-foot a{min-height:44px;padding:10px 14px;background:#fffdf9;color:#27485c;border:1px solid #91a6b4;border-radius:3px;font:14px/1.5 system-ui;cursor:pointer}.requirement-dialog-bar button{flex-shrink:0}
.requirement-selected{padding:20px;background:#e7edf1;border-left:4px solid #365c73;margin-bottom:20px}
.requirement-structure{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
.requirement-branch{padding:20px;border:1px solid #b4c5d1;background:#e7edf1;border-top:5px solid #365c73}.requirement-branch.breadth{background:#eee5f1;border-color:#b8a2bf;border-top-color:#604470}.requirement-branch.electives{background:#e3eee1;border-color:#adc1a8;border-top-color:#435947}.requirement-branch.has-match{outline:3px solid #800000;outline-offset:2px}
.requirement-branch ul{padding-left:18px;margin:16px 0 0}.requirement-branch li{padding:4px 0}.requirement-match{font-weight:700}.requirement-match span{font-size:12px}.requirement-dialog small{display:block;font:12px/1.5 system-ui;margin-top:6px}
.requirement-line{padding:16px 0;border-top:1px solid #bdcbd5}.requirement-line summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:650;color:#27485c}.requirement-line summary::before{content:'+ ';margin-right:10px}.requirement-line[open]>summary::before{content:'− '}.requirement-line ul{padding-left:20px}.requirement-line li{margin:12px 0}.requirement-line a{color:#27485c;display:inline-flex;align-items:center;min-height:44px;padding:6px 0;text-underline-offset:3px}
.requirement-foot{border-top:1px solid #bdcbd5;padding-top:20px;margin-top:20px;display:flex;gap:12px;flex-wrap:wrap}.requirement-foot p{flex-basis:100%}.requirement-foot a{display:inline-flex;align-items:center;text-decoration:none}.requirement-dialog :focus-visible{outline:3px solid #365c73;outline-offset:3px}
@media(max-width:700px){.requirement-structure{grid-template-columns:1fr}.requirement-dialog{padding:20px}.requirement-dialog h2{font-size:22px}.requirement-dialog-bar{gap:12px}.requirement-dialog button{font-size:16px}}
/* Keep the comparison controls in one desktop band instead of a tall preamble. */
.academic-view-tools label{flex:1 1 170px;min-width:150px;max-width:300px}.academic-view-tools select{width:100%;min-width:0;max-width:100%}.academic-view-tools button{flex:0 1 auto}.academic-view-tools{gap:12px 16px}.academic-workbook-note{margin:10px 0 12px}
@media(max-width:600px){.academic-view-tools label{max-width:none;flex-basis:130px}.academic-view-tools button{flex:1 1 100%}}
