:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#1e2b36;background:#f7f9fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:#116b65;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button{cursor:pointer}.site-header{background:white;border-bottom:1px solid #e0e8e8;position:relative;z-index:2}.head-row{height:66px;display:flex;align-items:center;justify-content:space-between;max-width:1550px;margin:auto;padding:0 29px}.brand{display:flex;align-items:center;gap:9px;font-weight:500;color:#173d40;font-size:21px;letter-spacing:-.6px}.brand:hover{text-decoration:none}.brand-logo{color:white;background:#12685d;width:36px;height:36px;display:grid;place-items:center;font-size:25px;border-radius:11px}.head-right{display:flex;align-items:center;gap:17px;font-size:13px}.institution-name{font-weight:600}.avatar{display:inline-grid;place-items:center;border-radius:50%;width:34px;height:34px;background:#d9eae7;color:#155d52;font-weight:700}.link-button{border:0;background:none;color:#597071;font-size:13px;padding:4px}.small-link{font-weight:600}.top-nav{padding:0 29px;max-width:1550px;margin:auto;display:flex;gap:11px;flex-wrap:wrap}.top-nav a{display:flex;align-items:center;gap:8px;font-size:14px;color:#52676c;padding:14px 17px;border-bottom:3px solid transparent}.top-nav a:hover,.top-nav a.active{border-bottom-color:#188275;color:#14695c;text-decoration:none;background:#f4f9f8}.footer{text-align:center;padding:28px;font-size:11px;color:#93a1a3}.main-container{max-width:1340px;padding:40px 30px 80px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.page-heading h1{font-size:34px;letter-spacing:-1.3px;margin:7px 0 4px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:10px;font-weight:800;color:#178577}.muted{color:#718087}.section h2,h2{font-size:23px;letter-spacing:-.5px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:23px}.course-card{border:1px solid #e2e9e9;background:white;border-radius:13px;overflow:hidden;box-shadow:0 6px 14px #183d3c08;color:inherit;transition:transform .15s}.course-card:hover{text-decoration:none;transform:translateY(-3px)}.course-art{height:130px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#28695f,#65ad93);color:white;font-size:60px}.course-art.theme-1{background:linear-gradient(135deg,#345d87,#9badd2)}.course-art.theme-2{background:linear-gradient(135deg,#775c85,#b298ca)}.course-art.theme-3{background:linear-gradient(135deg,#826747,#d4b18a)}.course-card-body{padding:21px}.course-card-body h3{margin:8px 0}.course-card-body p{font-size:13px;color:#738186;min-height:40px}.card-foot,.activity-header{display:flex;justify-content:space-between;gap:10px;align-items:center}.card-foot{margin-top:22px;font-size:12px;color:#196e63}.pill{font-size:11px;padding:5px 9px;border-radius:999px;background:#eff2f4;color:#6e777a;display:inline-flex;white-space:nowrap}.pill.live{background:#e0f3eb;color:#12775c}.quick-row,.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:45px}.quick-row article,.feature-grid article,.panel{background:white;border:1px solid #e3e9ea;border-radius:12px;padding:24px}.quick-row article p,.feature-grid article p{color:#79878e;font-size:13px;line-height:1.6}.button{background:#116d61;color:white;display:inline-block;border:1px solid #116d61;padding:11px 16px;border-radius:8px;font-size:13px;font-weight:700;white-space:nowrap}.button:hover{background:#0c554d;color:white;text-decoration:none}.button.secondary{background:white;color:#126b60;border-color:#b8d7d0}.button.secondary:hover{background:#e8f4f0}.button:disabled{opacity:.5;cursor:not-allowed}.button.full{width:100%;margin-top:14px}.button-row,.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.landing{max-width:1140px;margin:0 auto;padding:85px 25px}.hero{max-width:770px}.hero h1{font-size:clamp(38px,6vw,65px);letter-spacing:-2.5px;line-height:1.1;margin:16px 0}.hero p{font-size:20px;color:#718087;line-height:1.6}.note{margin-top:50px;color:#718087}.auth-wrap{min-height:calc(100vh - 190px);display:grid;place-items:start center;padding:60px 20px}.auth-card{border:1px solid #dde8e8;background:white;padding:36px;width:min(100%,480px);border-radius:15px;box-shadow:0 10px 40px #1f4e4a0a}.auth-card h1{font-size:30px;letter-spacing:-1px;margin:12px 0}.auth-card p{line-height:1.6;font-size:14px}.auth-card form,.panel form,.editor-box form{display:grid;gap:15px;margin-top:24px}label{display:grid;gap:7px;font-size:13px;font-weight:650}input,textarea,select{display:block;width:100%;background:white;color:#20393b;border:1px solid #cad8d9;padding:11px 12px;border-radius:7px;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid #9bd3c8;border-color:#157a6d}textarea{resize:vertical;line-height:1.5}small,.help{color:#859294;font-size:12px}.error{padding:13px;background:#fff0ef;color:#b6322c;border-radius:8px;margin-top:15px}.success{padding:15px;background:#e4f5ef;color:#206c52;border-radius:8px;margin:14px 0;overflow-wrap:anywhere}.success input{margin-top:10px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.panel h2{margin:0 0 10px}.panel h3{margin-top:0}.stat{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ecf1f2;padding:12px 0}.stat b{font-size:28px;color:#1b6d5e}.stat span{color:#789}.course-layout{display:grid;grid-template-columns:235px minmax(0,1fr);max-width:1550px;min-height:calc(100vh - 170px);margin:auto;background:#fff}.course-sidebar{background:#f7faf9;border-right:1px solid #e0e8e8;display:flex;flex-direction:column;padding:30px 15px}.course-small{padding:0 13px 22px;display:grid;gap:8px}.course-small strong{font-size:14px}.side-nav{display:grid;gap:5px}.side-nav a{display:flex;align-items:center;gap:11px;padding:13px 13px;border-radius:8px;font-size:14px;color:#52646a}.side-nav a.selected,.side-nav a:hover{background:#e4f2ee;color:#126e61;font-weight:700;text-decoration:none}.side-icon{font-size:21px;width:22px;text-align:center}.sidebar-bottom{margin-top:auto;padding:23px 10px;font-size:13px}.course-content{padding:37px clamp(20px,4vw,70px) 75px;min-width:0}.crumb{font-size:12px;color:#96a1a5;margin-bottom:22px}.crumb span{padding:0 8px}.course-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.course-title-row h1{font-size:clamp(25px,3vw,38px);letter-spacing:-1.4px;margin:3px 0 8px}.course-title-row p{line-height:1.5}.content-meta{display:flex;align-items:center;gap:15px;border-bottom:1px solid #e9eeee;margin:17px 0 28px;padding-bottom:24px;color:#89979a;font-size:11px;flex-wrap:wrap}.content-meta code{overflow-wrap:anywhere}.welcome-panel{background:#ecf6f3;padding:32px;border:1px solid #d4e8e0;border-radius:13px}.welcome-panel h2{margin:12px 0}.welcome-panel p{color:#5a7770;line-height:1.6}.two-panels{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.two-panels .panel p{border-bottom:1px solid #eef2f2;padding-bottom:13px;font-size:13px}.module-card{display:flex;gap:18px;padding:23px;background:white;border:1px solid #e0e8e8;border-radius:11px;margin-bottom:13px}.module-card h3{margin:0 0 9px}.module-number{border-radius:50%;display:grid;place-items:center;background:#dfefe9;color:#176d60;font-size:14px;font-weight:800;min-width:36px;height:36px}.prose{white-space:pre-wrap;line-height:1.7;overflow-wrap:anywhere}.editor-box{margin-top:22px;padding:20px;background:#f4f8f7;border:1px dashed #b2d3c9;border-radius:9px}.editor-box summary{font-weight:750;color:#166e60;cursor:pointer}.empty{padding:35px;border:1px dashed #ccd9dc;border-radius:10px;color:#86969a;background:#fff}.activity{margin-bottom:20px}.activity p{line-height:1.6}.discussion-list{margin-top:22px;display:grid;gap:12px}.comment-user{display:flex;align-items:center;gap:10px}.comment-user small{color:#829195}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;padding:13px 8px;border-bottom:1px solid #e7eded}th{color:#687c7d}.grade-form{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:end}.grade-form input{max-width:100%}@media(max-width:800px){.course-layout{grid-template-columns:1fr}.course-sidebar{padding:12px;display:block}.course-small{padding:5px}.side-nav{display:flex;overflow-x:auto;padding:7px 0}.side-nav a{white-space:nowrap}.sidebar-bottom{display:none}.course-content{padding:22px}.course-title-row{display:block}.head-row{padding:0 14px}.institution-name{display:none}.top-nav{padding:0 8px;gap:0}.top-nav a{padding:12px;font-size:12px}.admin-grid,.two-panels,.quick-row,.feature-grid{grid-template-columns:1fr}.grade-form{grid-template-columns:1fr}.page-heading{display:block}.main-container{padding:25px 18px}.auth-card{padding:24px}}@media(max-width:450px){.top-nav a{font-size:11px;padding:9px 8px}.top-nav a span{display:none}.brand{font-size:18px}.head-right{gap:7px}}

.role-view{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:#edf6f4;border:1px solid #c9e3dc;padding:12px 15px;border-radius:12px;margin:15px 0}.role-view span{color:#425b54;flex:1}.role-view .button{font-size:.82rem;padding:8px 12px}.syllabus-field{margin:18px 0}.syllabus-field label{display:block;margin-bottom:7px}.syllabus-field textarea{width:100%;box-sizing:border-box;white-space:pre-wrap}.syllabus-section{border-top:1px solid #e1e5e8;padding:16px 0}.syllabus-section h3{margin:0 0 8px}.syllabus-section .prose{white-space:pre-wrap}

.module-unit{background:#fff;border:1px solid #dae5e3;border-radius:14px;padding:22px;margin:18px 0}.module-top{display:flex;align-items:flex-start;gap:16px}.module-top h3{margin:0}.module-entries{margin:18px 0 10px 52px;display:grid;gap:12px}.module-entry{padding:16px;background:#fafdfc;border:1px solid #e3edeb;border-radius:10px}.module-entry-heading{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.kind-tag{font-size:11px;font-weight:750;color:#166b60;background:#e3f2ed;padding:5px 9px;border-radius:6px}.entry-meta{font-size:12px;color:#738784;margin:10px 0}.module-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.module-controls form{margin:0}.module-controls button{padding:6px 9px;font-size:11px}.module-reply{margin-top:14px!important;display:grid;gap:9px}.module-reply button{justify-self:start}.topic-replies{margin:12px 0;border-left:3px solid #d1e8df;padding-left:14px;font-size:13px}.topic-replies p{margin:8px 0}@media(max-width:800px){.module-entries{margin-left:0}.module-unit{padding:14px}}
.lecture-block{margin:16px 0}.flip-card{padding:18px;border:1px solid #cbd5e1;border-radius:12px;background:#eff6ff}.flip-card summary{cursor:pointer}.flip-back{background:white;padding:20px;border-radius:8px;margin-top:12px}.video-frame{aspect-ratio:16/9;max-width:850px}.video-frame iframe{width:100%;height:100%;border:0;border-radius:12px}

/* Academy emblem reused in header and browser favicon */
.brand-mark{width:36px;height:36px;object-fit:contain;display:inline-block;flex:none;border-radius:10px}

/* Build .0015 lecture composer and private image blocks */
.lecture-section-title{margin-top:28px}.lecture-block{position:relative}.lecture-block h3{margin:12px 0 15px}
.lecture-text{font-size:15px;line-height:1.8}.lecture-image{margin:16px 0;max-width:100%;display:grid;gap:10px}
.lecture-image img{display:block;max-width:100%;max-height:680px;width:auto;height:auto;border-radius:10px;border:0;object-fit:contain}
.lecture-image figcaption{font-size:13px;color:#5a7371;line-height:1.5}
.lecture-composer [hidden]{display:none!important}.lecture-composer form{gap:14px}
.lecture-check{max-width:500px;margin-top:18px}.lecture-check button{justify-self:start}

/* Activity scheduling controls */
.schedule-fields { border:1px solid var(--border, #cbd5e1); border-radius:10px; padding:12px; margin:14px 0; }
.schedule-fields legend { font-weight:700; padding:0 8px; }
.schedule-fields label { display:block; margin:8px 0; }
.schedule-fields small { display:block; opacity:.78; margin-top:8px; }

/* Course lifecycle administration */
.retention-table{overflow-x:auto;margin:18px 0}.retention-table table{min-width:680px}.retention-table td{vertical-align:top}.retention-table label{font-size:12px;margin-bottom:8px}.retention-table form{margin:0;gap:8px}.retention-table input{max-width:235px}.retention-table .button{padding:8px 12px}.panel#course-retention,.panel#course-availability{margin-top:22px}.panel#course-retention>form{max-width:680px}.panel#course-retention label:has(input[type=checkbox]){display:flex;align-items:center;gap:12px}.panel#course-retention input[type=checkbox]{width:18px;height:18px;flex:none}

/* Discussion scheduling: always show all four independent dates. */
.discussion-schedule{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px;margin:14px 0 18px}
.discussion-date{background:#f2f7f6;border:1px solid #d9e8e3;border-radius:9px;padding:11px;display:grid;gap:5px;min-width:0}
.discussion-date .date-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#496861;font-weight:750}
.discussion-date strong{font-size:12px;color:#253d38;overflow-wrap:anywhere}
.discussion-next{background:#edf6f3;border-left:3px solid #287769;padding:10px 12px;color:#28574f;font-size:12px;line-height:1.6}
.post-stage{font-size:11px;display:inline-block;border:1px solid #accfc6;border-radius:20px;padding:1px 7px;color:#126456;vertical-align:middle}
.post-late{font-size:11px;font-weight:700;display:inline-block;border-radius:20px;background:#fff0da;color:#80520b;padding:1px 7px;vertical-align:middle}


/* .0031 Native interactive lesson layout — reference-inspired, original Harbor Learn CSS. */
.lecture-stream{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px;max-width:920px;margin-top:26px;align-items:start;--lesson-accent:#ff642c}
.lecture-stream .lecture-wide-unit{grid-column:1/-1}
.lecture-stream .lecture-flash-unit{grid-column:auto;min-width:0}
.lecture-stream .lecture-block{margin:0;box-shadow:none;border:0;border-radius:0;padding:16px 0 20px;background:transparent}
.lecture-stream .lecture-block-heading{color:#162c33;font-family:ui-sans-serif,system-ui,sans-serif;font-size:clamp(23px,2.6vw,32px);font-weight:680;letter-spacing:-.035em;line-height:1.22;margin:0 0 16px}
.lecture-stream .lecture-text,.lecture-stream .lecture-intro{font-family:Georgia,"Times New Roman",serif;line-height:1.7;font-size:clamp(16px,1.6vw,19px);color:#172331;margin:12px 0 26px;white-space:pre-wrap}
.lecture-stream .lecture-intro{white-space:pre-line}
.lecture-stream .lecture-flash-unit{padding:0;display:flex;flex-direction:column;border:0}
.lecture-stream .lecture-flash-unit .lecture-block-heading{font-size:18px;margin:0;padding:0 6px 12px;line-height:1.4}
.lecture-stream .lecture-flash-unit .lecture-edit-meta{padding:8px}
.lecture-stream .flip-card{position:relative;border:1px solid #d7dfe0;border-top:3px solid var(--lesson-accent);border-radius:0;background:#fff;min-height:240px;height:100%;padding:0;box-shadow:0 7px 20px #11182708}
.lecture-stream .flip-card summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:235px;padding:35px 27px;text-align:center;gap:12px}
.lecture-stream .flip-card summary::-webkit-details-marker{display:none}
.lecture-stream .flip-face{font-size:clamp(18px,2vw,24px);font-weight:350;line-height:1.5;color:#252c2f;overflow-wrap:anywhere;white-space:pre-wrap}
.lecture-stream .flip-toggle{position:absolute;right:14px;top:10px;font-size:25px;line-height:1;color:#2b383d}
.lecture-stream .flip-instruction{color:#687a7d;font-size:11px;letter-spacing:.02em}
.lecture-stream .flip-card[open] summary{min-height:0;padding:14px 22px 10px;border-bottom:1px solid #ececec}.lecture-stream .flip-card[open] summary .flip-face{font-size:14px}
.lecture-stream .flip-back{background:white;border:0;padding:24px;min-height:150px;display:flex;flex-direction:column;justify-content:center;text-align:center;align-items:center;gap:15px}
.lecture-stream .flip-back .flip-face{font-size:18px}
.lecture-accordion{border:0;margin:22px auto;max-width:790px;background:transparent}
.lecture-accordion-item{border:0;border-radius:9px;margin-bottom:10px;background:#f6f9f8}
.lecture-accordion-item:last-child{border-bottom:0}
.lecture-accordion-item[open]{background:#f3f8f6}
.lecture-accordion-item summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:26px 30px;font-weight:730;list-style:none;color:#152f39}
.lecture-accordion-item summary::-webkit-details-marker{display:none}
.accordion-toggle::before{content:'+';font-size:25px;font-weight:350;color:#637377}
.lecture-accordion-item[open] .accordion-toggle::before{content:'−'}
.lecture-accordion-item .accordion-detail{font-family:Georgia,"Times New Roman",serif;white-space:pre-wrap;font-size:17px;line-height:1.65;padding:0 30px 28px;color:#20313d}
.lecture-numbered{list-style:none;display:grid;gap:25px;margin:28px 0;padding:0}
.lecture-numbered li{display:grid;grid-template-columns:54px minmax(0,1fr);gap:20px;align-items:start;font-family:Georgia,"Times New Roman",serif;line-height:1.65;font-size:18px}
.lecture-numbered strong{font-weight:750}.lecture-number{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:var(--lesson-accent);color:white;font:700 15px ui-sans-serif,system-ui,sans-serif}
.lecture-stream .lecture-kind-check{border:0;padding:30px 0 44px}
.lecture-question{font-family:Georgia,"Times New Roman",serif;font-size:19px;line-height:1.5;margin:12px 0 20px;padding-bottom:8px;border:0}
.lecture-stream .lecture-check{max-width:none;display:grid;gap:22px;margin:0}
.lecture-choices{padding:0;border:0;margin:0;display:grid;gap:9px}
.lecture-choice{display:flex;flex-direction:row;gap:18px;align-items:center;padding:13px 14px;border:0;border-radius:6px;cursor:pointer;font:400 17px Georgia,"Times New Roman",serif}
.lecture-choice:hover,.lecture-choice:has(input:checked){background:#fff4ed}
.lecture-choice input{width:20px;height:20px;accent-color:#ee5b25;flex:none;margin:0}
.lecture-stream .lecture-submit{justify-self:center;min-width:170px;background:var(--lesson-accent);border-color:var(--lesson-accent);border-radius:999px;text-transform:uppercase;letter-spacing:.03em;color:#151515}
.lecture-stream .lecture-submit:hover{background:#ec5520}
.lecture-answer-feedback{border-radius:6px;padding:15px;margin:20px 0 5px;line-height:1.5;font-weight:650}
.lecture-answer-success{color:#155d41;background:#e3f5eb}.lecture-answer-retry{color:#8c4b11;background:#fff0df}
.lecture-check-note{font-size:12px;color:#637577;line-height:1.5}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lecture-stream .editor-box{margin-top:15px}
@media (max-width:900px){.lecture-stream{gap:24px 16px}.lecture-stream .lecture-block{padding:13px 0 17px}}
@media (max-width:620px){.lecture-stream{grid-template-columns:1fr;gap:20px}.lecture-stream .lecture-flash-unit{grid-column:1/-1}.lecture-stream .lecture-block{padding:12px 0}.lecture-numbered li{grid-template-columns:42px minmax(0,1fr);gap:9px}.lecture-accordion-item summary{padding:22px 17px}.lecture-accordion-item .accordion-detail{padding:0 18px 23px}}
@media (prefers-reduced-motion:reduce){.lecture-stream *, .lecture-stream *::before,.lecture-stream *::after{animation:none!important;transition:none!important}}

/* Interaction clarity and accessibility: native details/summary works without JS. */
.lecture-stream .flip-instruction-back{display:none}
.lecture-stream .flip-card[open] .flip-instruction-front{display:none}
.lecture-stream .flip-card[open] .flip-instruction-back{display:inline}
.lecture-stream .flip-card[open] summary .flip-face{display:none}
.lecture-stream .flip-card[open] summary{min-height:0;align-items:flex-end;justify-content:flex-end;padding:15px 22px 8px;border-bottom:0}
.lecture-stream .flip-card[open] .flip-back{min-height:188px;padding:25px 25px 40px}
.lecture-stream .flip-card[open] .flip-back .flip-instruction{display:none}
.lecture-stream .flip-card:focus-within{outline:2px solid #d14b16;outline-offset:3px}
.lecture-stream .flip-card summary:focus-visible, .lecture-accordion-item summary:focus-visible, .lecture-choice:focus-within{outline:3px solid #145f56;outline-offset:3px}
.lecture-stream .lecture-choice:has(input:checked){background:#fff3e8}
.lecture-stream .lecture-choice input:focus-visible{outline:2px solid #145f56;outline-offset:4px}
@media print{.lecture-stream{display:block}.lecture-stream .lecture-block{margin-bottom:20px;page-break-inside:avoid}.lecture-stream .flip-card{min-height:180px}.lecture-stream .lecture-kind-check button{display:none}}

/* .0032 independent 3D flip-card interaction: front/back stay stacked in the same card. */
.lecture-stream button.flip-card{display:block;appearance:none;-webkit-appearance:none;cursor:pointer;text-align:initial;font:inherit;color:inherit;width:100%;height:255px;min-height:255px;padding:0;border:0;border-radius:6px;background:transparent;perspective:1100px;box-shadow:none}
.lecture-stream .flip-card-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .68s cubic-bezier(.25,.7,.25,1)}
.lecture-stream .flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}
.lecture-stream .flip-card-side{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:15px;padding:28px 26px;box-sizing:border-box;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:0;border-radius:10px;background:#f7f9f8;box-shadow:0 6px 19px #1118270c}
.lecture-stream .flip-card-back{transform:rotateY(180deg);background:#f6fbfa}
.lecture-stream .flip-card .flip-instruction{font-size:12px;color:#627772}
.lecture-stream .flip-card:hover .flip-card-side{box-shadow:0 10px 24px #11182716}
.lecture-stream .flip-card:focus-visible{outline:3px solid #145f56;outline-offset:5px}
.lecture-stream .flip-card .flip-toggle{position:absolute;right:14px;top:12px}
.lecture-stream .lecture-choices legend{font-weight:650;color:#354b4c;margin-bottom:8px;font-size:14px}
@media (prefers-reduced-motion:reduce){.lecture-stream .flip-card-inner{transition:none}}
@media print{.lecture-stream button.flip-card{height:auto;min-height:0}.lecture-stream .flip-card-inner{height:auto;transform:none!important;display:grid;gap:10px}.lecture-stream .flip-card-side{position:static;min-height:160px;transform:none!important;backface-visibility:visible;box-shadow:none}.lecture-stream .flip-card .flip-instruction{display:none}}

/* .0033: Seamless lesson canvas. Only authoring tools retain a dashed edit boundary. */
.lecture-stream .lecture-wide-unit{min-width:0}
.lecture-stream .lecture-image{margin:6px 0 15px}
.lecture-stream .video-frame{border:0;overflow:hidden;border-radius:9px}
.lecture-stream .lecture-edit-meta{margin-bottom:12px}
.lecture-stream .lecture-block:focus-within{scroll-margin-top:18px}
.lecture-stream .lecture-accordion-item summary:hover{background:#edf4f1;border-radius:9px}
.lecture-stream .lecture-accordion-item summary:focus-visible{outline:3px solid #145f56;outline-offset:2px}
@media print{.lecture-stream .lecture-block,.lecture-stream .flip-card-side,.lecture-stream .lecture-accordion-item{border:0!important;box-shadow:none!important}}

/* .0034: independently selected lecture-component heading typography. */
.lecture-heading-settings{border:1px solid #d9e5e1;border-radius:10px;padding:14px 16px;margin:10px 0 18px}
.lecture-heading-settings legend{font-weight:700;padding:0 7px;color:#23463f}
.lecture-heading-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.lecture-heading-toggles{display:flex;flex-wrap:wrap;gap:12px 22px;margin:14px 0}
.lecture-heading-toggles label{display:inline-flex;align-items:center;gap:7px;cursor:pointer;margin:0}
.lecture-heading-toggles input{width:18px;height:18px;accent-color:#12665c}
.lecture-stream .lecture-block-heading.heading-font-arial{font-family:Arial,Helvetica,sans-serif}
.lecture-stream .lecture-block-heading.heading-font-georgia{font-family:Georgia,serif}
.lecture-stream .lecture-block-heading.heading-font-times{font-family:"Times New Roman",Times,serif}
.lecture-stream .lecture-block-heading.heading-font-verdana{font-family:Verdana,Geneva,sans-serif}
.lecture-stream .lecture-block-heading.heading-font-trebuchet{font-family:"Trebuchet MS",Arial,sans-serif}
.lecture-stream .lecture-block-heading.heading-font-tahoma{font-family:Tahoma,Geneva,sans-serif}
.lecture-stream .lecture-block-heading.heading-regular{font-weight:400}
.lecture-stream .lecture-block-heading.heading-italic{font-style:italic}
.lecture-stream .lecture-block-heading.heading-underline{text-decoration:underline;text-decoration-thickness:from-font;text-underline-offset:.13em}
.lecture-stream .lecture-block-heading.heading-size-16,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-16{font-size:16px}
.lecture-stream .lecture-block-heading.heading-size-18,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-18{font-size:18px}
.lecture-stream .lecture-block-heading.heading-size-20,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-20{font-size:20px}
.lecture-stream .lecture-block-heading.heading-size-24,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-24{font-size:24px}
.lecture-stream .lecture-block-heading.heading-size-28,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-28{font-size:28px}
.lecture-stream .lecture-block-heading.heading-size-32,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-32{font-size:32px}
.lecture-stream .lecture-block-heading.heading-size-36,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-36{font-size:36px}
.lecture-stream .lecture-block-heading.heading-size-40,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-40{font-size:40px}
.lecture-stream .lecture-block-heading.heading-size-48,.lecture-stream .lecture-flash-unit .lecture-block-heading.heading-size-48{font-size:48px}
@media(max-width:620px){.lecture-heading-settings-grid{grid-template-columns:1fr}}

/* 2026.10.09.0035 — question bank and student assessment */
.bank-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.bank-tools{display:grid;gap:18px}.bank-import-guide{overflow-wrap:anywhere;background:var(--surface-alt,#f3f6f5);padding:14px;border-radius:10px;margin:14px 0}
.bank-question{padding:18px 0;border-bottom:1px solid var(--line,#dde3e0)}.bank-question p{margin:7px 0}
.bank-pick,.bank-answer{display:flex;align-items:flex-start;gap:12px;padding:10px 8px;cursor:pointer}
.bank-pick span{display:grid;gap:4px}.bank-pick small{color:var(--muted,#53635e)}
.bank-pick input,.bank-answer input{width:auto;margin-top:4px;flex:none}.bank-quiz-question{border:0;border-bottom:1px solid var(--line,#dde3e0);padding:18px 0;margin:0 0 18px}
.bank-quiz-question legend{font-weight:650;font-size:1.05rem;line-height:1.6}.bank-quiz-question legend small{font-weight:400;color:var(--muted,#53635e)}
.bank-quiz fieldset[disabled]{opacity:.8}

/* 2026.10.09.0036 — make Question Bank import templates immediately discoverable */
.bank-import-panel h3{margin:0 0 8px}
.bank-template-downloads{display:grid;gap:10px;padding:16px;margin:16px 0;background:#fff;border-radius:10px}
.bank-template-downloads strong{font-size:14px;color:#1c534b}
.bank-template-links{display:flex;flex-wrap:wrap;gap:12px}
.bank-template-links .button{white-space:normal;text-align:center}
.bank-template-downloads small{line-height:1.5}
.bank-upload-title{margin:22px 0 2px;font-size:14px}
@media(max-width:540px){.bank-template-links{display:grid;grid-template-columns:1fr}.bank-template-links .button{width:100%}}

/* .0038: quiz subsection navigation, author-only; student quiz pages show no tools. */
.quiz-tools-nav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px;border-bottom:1px solid #dbe6e2;padding:0 0 10px}
.quiz-tools-nav a{display:inline-flex;align-items:center;padding:9px 16px;border-radius:8px;color:#285b52;text-decoration:none;font-weight:650}
.quiz-tools-nav a:hover{background:#e9f3f0}
.quiz-tools-nav a.selected{background:#e6f2ee;color:#0d5546}
.quiz-tools-nav a:focus-visible{outline:3px solid #136455;outline-offset:3px}

/* .0039: One continuous syllabus, no independent availability/content cards. */
.syllabus-availability-summary,.syllabus-content,.syllabus-builder,.syllabus-availability-editor{
  border:0;box-shadow:none;border-radius:0;background:transparent;padding:0;
}
.syllabus-availability-summary{margin:22px 0 0;}
.syllabus-availability-summary h3{margin:0 0 12px;}
.syllabus-availability-summary p{margin:0;line-height:1.7;}
.syllabus-content{margin:20px 0 0;}
.syllabus-content .syllabus-section:first-child{border-top:0;padding-top:8px;}
.syllabus-content .syllabus-section{padding:22px 0;}
.syllabus-availability-editor{margin:20px 0 12px;}
.syllabus-availability-editor summary{font-weight:750;color:#166e60;cursor:pointer;}
.syllabus-availability-editor form,.syllabus-builder form{display:grid;gap:15px;margin-top:20px;}
.syllabus-builder{margin:26px 0;}
.syllabus-builder h3{margin:0 0 12px;}

/* .0040: Modules link existing items only; no duplicate creation editors. */
.module-linker {margin-top:1rem}
.module-link-row {display:flex;align-items:end;gap:0.75rem;flex-wrap:wrap;padding:0.5rem 0}
.module-link-row label {flex:1 1 240px;margin:0}
.module-link-row .button {flex:0 0 auto}
.module-link-row small {flex-basis:100%}


/* .0043 Module drag-and-drop ordering, scoped to developer workspace only. */
.js-module-sort .module-entry{transition:background .16s ease,border-color .16s ease,opacity .16s ease}
.module-entry-heading .module-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:29px;height:34px;flex:none;border-radius:6px;font:700 24px ui-sans-serif,system-ui,sans-serif;line-height:1;color:#367468;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.module-entry-heading .module-drag-handle:hover{background:#e6f2ed}
.module-entry-heading .module-drag-handle:active{cursor:grabbing}
.js-module-sort .module-entry.is-dragging{opacity:.52}
.js-module-sort .module-entry.drop-above{box-shadow:0 -4px 0 #20806e}
.js-module-sort .module-entry.drop-below{box-shadow:0 4px 0 #20806e}
.js-module-sort.is-saving{pointer-events:none;opacity:.8}
.module-order-status{font-size:12px;color:#1b6b58;min-height:1em;margin:6px 0 0}
.module-order-status.is-error{color:#b42318;font-weight:650}
@media(prefers-reduced-motion:reduce){.js-module-sort .module-entry{transition:none}}

/* 2026.10.09.0045: linked module assessments open as full, focused pages. */
.activity-detail-navigation{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:22px 0 26px}
.activity-detail{max-width:960px}
.activity-detail .activity-header{margin-bottom:16px}
.activity-detail form{margin-top:18px}
.activity-detail .bank-quiz-question{margin:18px 0}

/* 2026.10.09.0046 — module assessment titles are direct, keyboard-accessible links. */
.module-activity-title{color:#175c50;font-weight:750;text-decoration:none;text-underline-offset:3px}
.module-activity-title:hover,.module-activity-title:focus-visible{text-decoration:underline}
.module-activity-title:focus-visible{outline:2px solid #177d6d;outline-offset:3px;border-radius:3px}
.module-entry:target{border-color:#20806e;box-shadow:0 0 0 2px #d1e8df;scroll-margin-top:24px}

/* .0047: Independent, course-scoped drag ordering of full modules. */
.js-course-module-sort > .module-unit{transition:background .16s ease,border-color .16s ease,opacity .16s ease}
.module-top .module-unit-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:29px;height:36px;flex:none;border-radius:6px;font:700 24px ui-sans-serif,system-ui,sans-serif;line-height:1;color:#367468;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.module-top .module-unit-drag-handle:hover{background:#e6f2ed}
.module-top .module-unit-drag-handle:active{cursor:grabbing}
.module-top .module-unit-title{flex:1;min-width:0}
.module-unit-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto}
.module-unit-controls form{margin:0}
.module-unit-controls button{font-size:11px;padding:7px 9px}
.js-course-module-sort > .module-unit.is-dragging{opacity:.5}
.js-course-module-sort > .module-unit.drop-above{box-shadow:0 -4px 0 #20806e}
.js-course-module-sort > .module-unit.drop-below{box-shadow:0 4px 0 #20806e}
.js-course-module-sort.is-saving{pointer-events:none;opacity:.8}
.course-module-order-status{font-size:12px;color:#1b6b58;min-height:1em;margin:8px 0}
.course-module-order-status.is-error{color:#b42318;font-weight:650}
.module-sorting-help{font-size:12px}
@media(max-width:850px){.module-unit-controls{width:100%;margin-left:0;padding-left:42px}.module-top{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.js-course-module-sort > .module-unit{transition:none}}

/* .0048: assignment attempt history remains legible for long submission lists. */
.attempt-history{margin-top:28px;display:grid;gap:12px}
.attempt-history h3{margin:0 0 4px}
.attempt-record{border-left:3px solid #287b67;padding:14px 16px}
.attempt-record p{overflow-wrap:anywhere}
.attempt-record a{overflow-wrap:anywhere}
.attempt-record .grade-form{margin-top:12px}

/* .0049 course templates and reuse controls */
.course-copy-tools { display:flex; gap:.8rem; flex-wrap:wrap; align-items:flex-start; margin:1rem 0 1.4rem; }
.course-copy-tools > details { flex:1 1 290px; min-width:260px; margin:0; }
.course-copy-tools > form { flex:1 1 230px; }
.course-copy-tools > a { align-self:center; }
.course-template-flag small {display:block; max-width:30rem; margin-top:.5rem; }
.course-template-grid {display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));}
.template-heading {display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;}
.template-heading h2 {margin:0;}
.inline-choice {display:flex; align-items:center; gap:.6rem;}
.inline-choice input {width:auto;}
.template-preview-list {display:flex; gap:.5rem; flex-wrap:wrap;}

/* .0054 institution-scoped header branding */
.brand-institution-logo{display:block;max-width:min(260px,45vw);height:48px;max-height:48px;width:auto;object-fit:contain;object-position:left center}
.logo-settings-preview{max-width:320px;max-height:100px;height:100px;width:auto}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:450px){.brand-institution-logo{max-width:145px;height:40px}}
/* Grading category controls — wraps cleanly on narrow viewports. */
.grade-category-item,.grade-category-controls{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap;margin:.7rem 0;padding:.7rem;border-bottom:1px solid var(--border,#d7dce3)}
.grade-category-item label,.grade-category-controls label{flex:1 1 280px;min-width:170px}
.grade-category-controls form{display:flex;align-items:end;gap:.6rem;flex-wrap:wrap}

/* Grading scheme validation: focus-managed modal with readable explanatory copy. */
.grading-error-dialog{max-width:min(92vw,30rem);border:1px solid #d0d9e7;border-radius:12px;padding:1.5rem;box-shadow:0 20px 60px rgba(0,0,0,.28);color:#152d45;background:white}
.grading-error-dialog::backdrop{background:rgba(5,20,36,.56)}
.grading-error-dialog h3{margin-top:0}
.grading-weight-total{margin:.65rem 0;padding:.5rem .75rem;border:1px solid #d7dce3;border-radius:6px}
.grading-invalid{color:#9e3127}
.grading-template-save-form,[data-scheme-apply-form]{display:flex;gap:1rem;align-items:end;flex-wrap:wrap;margin:.75rem 0}
.grading-template-save-form label,[data-scheme-apply-form] label{flex:1 1 260px}

/* .0061: tightly aligned platform administration controls and account management. */
.institution-actions{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-top:15px}
.institution-actions>form,.platform-admin-actions form{display:flex;align-items:end;gap:12px;margin:0}
.institution-suspend-form{flex:1 1 360px;max-width:650px}
.institution-suspend-form label{flex:1;min-width:175px}
.institution-actions .button{min-height:43px}
.platform-admin-create{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:20px 0 26px}
.platform-admin-create>div{border:1px solid #e0e8e8;border-radius:10px;padding:20px;min-width:0}
.platform-admin-account{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid #e3e9ea}
.platform-admin-account p{margin:7px 0 0;overflow-wrap:anywhere}
.platform-admin-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.platform-delete-confirm{max-width:365px}
.platform-delete-confirm summary{cursor:pointer;color:#a12b2b;font-weight:700}
.platform-delete-confirm form{display:grid;margin-top:12px}
.button.danger{background:#9e2828;border-color:#9e2828}
@media(max-width:850px){.platform-admin-create{grid-template-columns:1fr}.platform-admin-account{align-items:stretch;flex-direction:column}.institution-actions{align-items:stretch}.institution-actions>form,.institution-suspend-form{flex-wrap:wrap;align-items:stretch}.institution-suspend-form label{flex-basis:100%}}

/* .0062 — Platform administration: consistent, accessible expandable heading rows. */
.platform-workspace{max-width:1200px}
.platform-page-heading{margin-bottom:10px}
.platform-workspace-intro{font-size:14px;margin:0 0 20px}
.platform-section{background:#fff;border:1px solid #dfe9e8;border-radius:12px;overflow:hidden;margin:0 0 12px}
.platform-section[open]{border-color:#c5dfd8;box-shadow:0 4px 16px #153d3509}
.platform-section-heading,.platform-item-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;list-style:none;min-width:0}
.platform-section-heading::-webkit-details-marker,.platform-item-heading::-webkit-details-marker{display:none}
.platform-section-heading{padding:19px 22px;min-height:82px}
.platform-section-heading:hover,.platform-item-heading:hover{background:#f5faf8}
.platform-section-heading:focus-visible,.platform-item-heading:focus-visible{outline:3px solid #188b7e;outline-offset:-4px}
.platform-section-title{display:flex;align-items:center;gap:16px;min-width:0}
.platform-section-title>span:last-child,.platform-item-title{display:grid;gap:5px;min-width:0}
.platform-section-title strong{font-size:18px;letter-spacing:-.3px;color:#193d3c}
.platform-section-title small,.platform-item-title small{font-size:12px;color:#687d80;line-height:1.4;overflow-wrap:anywhere}
.platform-section-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:#e9f4f0;color:#116d61;font-weight:bold;font-size:22px}
.platform-section-right{display:flex;align-items:center;gap:20px;flex-shrink:0}
.platform-section-count{font-size:12px;color:#52686a;background:#f1f5f5;padding:5px 10px;border-radius:30px;white-space:nowrap}
.platform-chevron{width:10px;height:10px;border-right:2px solid #55716d;border-bottom:2px solid #55716d;transform:rotate(45deg);transition:transform .15s;margin-right:5px;flex-shrink:0}
[open]>.platform-section-heading .platform-chevron,[open]>.platform-item-heading .platform-chevron{transform:rotate(225deg)}
.platform-section-content{padding:22px;border-top:1px solid #e7eeee}
.platform-section-content>p:first-child{margin-top:0;line-height:1.6}
.platform-section-content h3{margin:20px 0 10px}
.platform-section-content h3:first-child{margin-top:0}
.platform-subsection{padding:18px 20px;background:#f8fbfa;border:1px solid #e4eeeb;border-radius:10px}
.platform-simple-form{max-width:750px}
.platform-compact-list{display:grid;gap:9px;margin-top:18px}
.platform-item{border:1px solid #e1e9e8;border-radius:9px;background:#fff;overflow:hidden;min-width:0}
.platform-item[open]{border-color:#bcdcd4}
.platform-item-heading{padding:15px 17px;min-height:62px}
.platform-item-title strong{font-size:15px;color:#193d3c}
.platform-item-content{padding:15px 18px 18px;border-top:1px solid #e9efee}
.platform-item-content>p:first-child{margin-top:0}
.platform-status{font-size:12px;font-weight:700;border-radius:30px;padding:6px 11px;white-space:nowrap}
.platform-status-active{background:#e1f4e9;color:#176c48}
.platform-status-suspended{background:#fff0e9;color:#994735}
.platform-admin-create{margin:18px 0 25px}
.platform-admin-create>details{padding:0;min-width:0}
.platform-admin-create .platform-item-heading{min-height:80px}
.platform-admin-account{display:block;padding:0}
.platform-admin-account .platform-item-heading{flex-direction:row;align-items:center}
.platform-admin-account .platform-item-content{display:block}
.platform-list-entry{padding:16px 0;border-bottom:1px solid #e7eded}
.platform-entry-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.platform-entry-heading small,.platform-audit-line{font-size:12px;color:#647b7e}
.platform-audit-line{padding:10px 0;border-bottom:1px solid #e7eded;overflow-wrap:anywhere}
@media(max-width:700px){.platform-section-heading{padding:15px;min-height:72px}.platform-section-content{padding:15px}.platform-section-title{gap:10px}.platform-section-title strong{font-size:15px}.platform-section-icon{width:32px;height:32px;font-size:18px}.platform-section-count{display:none}.platform-section-right{gap:9px}.platform-item-heading{padding:13px}.platform-item-content{padding:13px}.platform-page-heading form{margin-top:12px}}

/* .0068: course-scoped Student View action beside the signed-in person's name. */
.head-right .user-name{font-weight:600;white-space:nowrap;max-width:30ch;overflow:hidden;text-overflow:ellipsis}
.head-right .header-preview-form{display:flex;align-items:center;margin:0;flex:0 0 auto}
.head-right .header-student-view{font-size:12px;padding:8px 12px}
@media(max-width:680px){.head-row{height:auto;min-height:66px;gap:12px;padding:10px 16px;flex-wrap:wrap}.head-right{gap:10px;flex-wrap:wrap;justify-content:flex-end}.head-right .user-name{max-width:22ch}}

/* .0069: explicit, student-owned unread alerts and accessible acknowledgement. */
.alert-read-form{margin:12px 0 0;display:flex;align-items:center}
.alert-read-form .button{font-size:13px;padding:8px 14px}
.alert-read-status{display:inline-flex;align-items:center;margin-top:10px;font-size:13px;font-weight:600;color:#24665e}
.side-nav a{white-space:normal}

.course-settings-nav{margin-top:14px;border-top:1px solid #dae6e4;padding-top:17px!important}
.course-settings-availability{margin-bottom:22px}

/* 0072: grouped, horizontally scrollable instructor gradebook. */
.gradebook-matrix-wrap{max-width:100%;overflow:auto;border:1px solid #d8e5e3;border-radius:10px;margin-top:20px;background:#fff;max-height:75vh}
.gradebook-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.gradebook-matrix th,.gradebook-matrix td{min-width:130px;border-bottom:1px solid #e7eeec;border-right:1px solid #edf2f1;padding:12px;text-align:center;background:#fff}
.gradebook-matrix thead th{position:sticky;top:0;z-index:2;background:#eef6f3;color:#1d6158;vertical-align:middle}
.gradebook-matrix thead tr:nth-child(2) th{top:43px;background:#f5faf8;z-index:2}
.gradebook-matrix th.gradebook-student-col{position:sticky;left:0;min-width:190px;max-width:230px;text-align:left;z-index:3;background:#fafdfc}
.gradebook-matrix thead th.gradebook-student-col{z-index:5;background:#e6f3ee}
.gradebook-activity-col span{display:block;min-width:115px;max-width:190px;white-space:normal;overflow-wrap:anywhere}
.gradebook-activity-col small{display:block;margin-top:6px}
.gradebook-activity-kind{font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#5e7b77;margin-bottom:4px}
.gradebook-category{font-weight:750;background:#deeee8!important;border-bottom:2px solid #a2cbbf!important}
.gradebook-grade-link{display:inline-flex;padding:8px 12px;border-radius:8px;font-weight:750;min-width:64px;justify-content:center}
.gradebook-grade-link.needs-grade{background:#fff1d9;color:#825100}
.gradebook-grade-link.is-graded{background:#e1f2ea;color:#0e6552}
.gradebook-grade-link:hover{text-decoration:underline;outline:1px solid currentColor}
.gradebook-no-submission{color:#9aa8aa}
.gradebook-legend{margin:13px 0 18px}
.grade-review-page{max-width:980px;margin:auto;padding:30px 22px 60px}
.grade-review-response{padding:18px 0;border-top:1px solid #e0e8e8}
.grade-review-response .grade-form{margin:12px 0 24px}
@media(max-width:800px){.gradebook-matrix th.gradebook-student-col{min-width:140px;max-width:160px}.gradebook-matrix-wrap{max-height:70vh}}

/* .0073: live grading summary in syllabus; compact, scrollable on mobile. */
.syllabus-grading-summary{max-width:640px;overflow-x:auto}.syllabus-grading-summary h4{margin:14px 0 6px}.syllabus-grading-summary table{width:100%;border-collapse:collapse}.syllabus-grading-summary th,.syllabus-grading-summary td{padding:8px 10px;text-align:left;border-bottom:1px solid #dde6e2}.syllabus-grading-summary th:last-child,.syllabus-grading-summary td:last-child{text-align:right}.syllabus-grading-summary p{margin:6px 0 12px}.syllabus-legacy-notes{border-top:1px solid #dde6e2;padding-top:12px}.syllabus-legacy-notes summary{cursor:pointer;font-weight:700}.syllabus-legacy-notes .prose{white-space:pre-wrap}

/* .0075: staff-only course roster and class-section management */
.course-roster-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; align-items:end; }
.course-roster-form label { min-width:0; }
.course-roster-form select[multiple] { min-height:145px; }
.roster-section-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.roster-section-change { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.roster-section-change select { max-width:210px; }

/* .0076 threaded discussions */
.forum-content{min-width:0}.forum-list-header,.forum-hero-title,.forum-topic-heading,.forum-post-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.forum-topic-list{display:grid;gap:15px;margin-top:20px}.forum-topic-card h3{margin:4px 0 12px;font-size:20px}.forum-topic-kicker{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:750;color:#187768;margin:0 0 4px}.forum-topic-excerpt{white-space:pre-wrap;overflow-wrap:anywhere;max-width:850px}.forum-topic-meta{display:flex;gap:10px 20px;flex-wrap:wrap;font-size:12px;color:#657980;margin:15px 0}.forum-topic-card .button{margin-top:8px}.forum-hero h1{margin:6px 0 13px;font-size:clamp(24px,3vw,33px)}.forum-prompt{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.forum-moderation-actions,.forum-post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.forum-moderation-actions form,.forum-post-actions form{margin:0}.forum-post-section{margin-top:26px}.forum-post-section-heading{margin-bottom:12px}.forum-post{margin-bottom:14px;padding:20px}.forum-post-heading{display:flex;align-items:center;gap:12px}.forum-post-byline{font-size:12px;color:#667980;margin-top:3px}.forum-post-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;padding:4px 0}.forum-children{border-left:3px solid #d2e9e3;margin-top:18px;padding-left:18px}.forum-children>.forum-post{background:#fbfefd;margin-top:13px;margin-bottom:0}.forum-post-hidden{border-style:dashed;background:#f6f7f7}.forum-reply-panel{min-width:150px}.forum-reply-panel summary{cursor:pointer;font-weight:650;color:#146c61;font-size:13px}.forum-reply-panel form{padding:12px 0;max-width:640px}.forum-reply-panel textarea,.forum-composer textarea{width:100%}@media(max-width:700px){.forum-children{padding-left:9px}.forum-post{padding:14px}.forum-hero{padding:16px}.forum-topic-meta{gap:6px 15px}}

.forum-legacy-archive{margin-top:22px}.forum-legacy-post{border-top:1px solid #e3eded;padding:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}

/* .0078 — clear course-level enrollment and instructor handoff controls. */
.roster-manage-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:22px; }
.roster-manage-grid>div { min-width:0; }
.roster-table-wrap { max-width:100%; overflow-x:auto; }
.roster-actions { display:flex; gap:8px; flex-direction:column; align-items:flex-start; min-width:210px; }
.roster-actions form { margin:0; }
.roster-swap { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.roster-swap select { max-width:270px; }

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }


/* .0080 — compact Course People roster and responsive administrator actions */
.roster-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.roster-panel-head h3{margin-bottom:4px}.roster-panel-head .muted{margin:0 0 12px}
.roster-help{max-width:960px;margin-top:2px}
.roster-bulk-pointer{margin:10px 0 18px;font-size:.9rem}
.roster-table{width:100%;table-layout:auto;min-width:0}
.roster-table th,.roster-table td{padding:14px 12px;vertical-align:middle;text-align:left}
.roster-table th:nth-child(1){width:30%}.roster-table th:nth-child(2){width:13%}
.roster-table th:nth-child(3){width:27%}.roster-table th:nth-child(4){width:30%}
.roster-table .roster-person{min-width:150px;overflow-wrap:anywhere}
.roster-email{display:block;max-width:360px;font-size:12px;line-height:1.5;overflow-wrap:anywhere;margin-top:3px}
.roster-role{display:inline-flex;align-items:center;border:1px solid #dfe8e6;background:#f7faf9;border-radius:99px;padding:3px 9px;font-size:12px;font-weight:650;color:#476661;white-space:nowrap}
.roster-role-instructor{background:#eaf5f1;border-color:#d0e6dd;color:#165f54}
.roster-table-wrap{overflow-x:auto;max-width:100%}
.roster-section-cell{min-width:170px}.roster-section-change{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin:0}
.roster-section-change select{flex:1 1 155px;min-width:120px;max-width:240px;width:100%;padding:8px 9px}
.roster-actions{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.roster-actions form{margin:0}.roster-small-button,.roster-actions .button{width:auto;min-height:36px;padding:8px 11px;font-size:12px;line-height:1.3;white-space:nowrap;text-align:center}
.roster-remove{color:#9a3b37;border-color:#dbc4c1;background:white}
.roster-remove:hover{color:#7a2828;border-color:#b9837e;background:#fff9f8}
.roster-replace{min-width:0}.roster-replace>summary{list-style:none;display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.roster-replace>summary::-webkit-details-marker{display:none}
.roster-replace>summary::after{content:'⌄';color:#53756d;font-size:15px;line-height:1}
.roster-replace[open]>summary::after{content:'⌃'}
.roster-replace[open]{flex:1 1 100%;padding:6px 0}
.roster-replace[open] .roster-swap{display:grid;grid-template-columns:minmax(160px,1fr) auto;align-items:end;gap:8px;max-width:470px;margin-top:10px}
.roster-replace .roster-swap label{grid-column:1/-1;font-size:12px;font-weight:650;margin:0}
.roster-replace .roster-swap select{min-width:0;width:100%;max-width:none;padding:8px 9px}
.bulk-upload-form{max-width:800px;align-items:end}
.bulk-upload-form input[type=file]{width:100%;max-width:100%}
.bulk-upload-form>small{grid-column:1/-1;line-height:1.6}
.bulk-upload-form>button{justify-self:start}
@media(max-width:920px){
 .roster-table th,.roster-table td{padding:11px 8px}
 .roster-section-change{flex-wrap:wrap}.roster-section-change select{flex-basis:170px}
}
@media(max-width:660px){
 .roster-table,.roster-table tbody,.roster-table tr,.roster-table td{display:block;width:100%}
 .roster-table thead{display:none}
 .roster-table tr{border:1px solid #e3ebeb;border-radius:10px;margin:0 0 12px;padding:9px 12px;background:#fff}
 .roster-table td{display:grid;grid-template-columns:94px minmax(0,1fr);gap:8px;align-items:start;border:0;padding:7px 0;min-width:0}
 .roster-table td::before{content:attr(data-label);font-size:11px;letter-spacing:.01em;color:#627779;font-weight:700;padding-top:6px}
 .roster-table td.roster-person{min-width:0}
 .roster-section-change{flex-wrap:wrap}.roster-section-change select{min-width:0;flex:1}
 .roster-table tr td[colspan]{display:block}
 .roster-actions{gap:7px}.roster-replace[open] .roster-swap{grid-template-columns:minmax(0,1fr);width:100%}
 .bulk-upload-form{grid-template-columns:1fr}
}
/* Override the generic .panel form grid and spacing for compact inline roster controls. */
.roster-panel .roster-section-change {display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin:0}
.roster-panel .roster-section-change select {width:auto;flex:1 1 auto;min-width:96px;max-width:none}
.roster-panel .roster-section-change .roster-small-button {width:auto;flex:0 0 auto}
.roster-panel .roster-actions form{margin:0}
.roster-panel .roster-replace .roster-swap {display:grid;margin-top:9px}
@media(max-width:920px){
 .roster-panel .roster-section-change{flex-wrap:wrap}
}
@media(max-width:800px){
 .course-layout{grid-template-columns:minmax(0,1fr)}
 .course-content{min-width:0}
 .roster-table-wrap{min-width:0;max-width:100%;overflow-x:auto}
}
@media(max-width:660px){
 .roster-panel .roster-section-change{flex-wrap:nowrap}
 .roster-panel .roster-section-change select{min-width:0}
 .roster-table td{min-width:0}
 .roster-table td>*{min-width:0}
}

/* .0081 — course-level offering section code in Settings */
.course-identifier-panel{margin-bottom:18px}
.course-identifier-form{max-width:560px}
.course-identifier-form input[name="section_code"]{max-width:240px;text-transform:uppercase}
.course-display-code{white-space:normal;overflow-wrap:anywhere}
/* .0083: responsive, read-only institutional reporting */
.report-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin:14px 0}
.report-stat{display:flex;flex-direction:column;gap:6px;margin:0;padding:18px}
.report-stat strong{font-size:1.75rem;font-weight:700;line-height:1.2;color:#00655d}
.report-stat span{font-size:.88rem;color:#526667}
.report-table-scroller{width:100%;overflow-x:auto}
.report-table{width:100%;border-collapse:collapse;min-width:750px}
.report-table th,.report-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #e2e9e9;vertical-align:top;font-size:.9rem}
.report-table th{white-space:nowrap;color:#3a595d;font-weight:650;background:#f5f8f8}
.report-table tbody tr:hover{background:#f7fafa}
.report-subtitle{display:block;font-size:.82rem;color:#5c7378;margin-top:3px}
.report-filter-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}
.report-filter-form label{flex:1 1 210px;max-width:400px;margin:0}
.report-filter-form select{width:100%}
.report-export{margin-top:12px}
.report-footnote{font-size:.85rem;margin-top:12px}
@media(max-width:650px){.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter-form label,.report-filter-form>div{flex:1 1 100%;max-width:none}.report-header>.button{width:auto}}

/* 0086: horizontal, student-by-date attendance matrix with a sticky name column. */
.attendance-matrix{max-width:100%;overflow:auto;max-height:70vh;border:1px solid var(--border,#d9d9d6);border-radius:8px}
.attendance-matrix .report-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}
.attendance-matrix .report-table thead th{position:sticky;top:0;background:var(--card,#fff);z-index:2;white-space:nowrap}
.attendance-matrix .attendance-student-heading{position:sticky;left:0;z-index:1;min-width:175px;max-width:235px;text-align:left;background:var(--card,#fff);box-shadow:2px 0 3px rgba(0,0,0,.06)}
.attendance-matrix thead .attendance-student-heading{z-index:3}
.attendance-matrix td.attendance-cell{min-width:95px;text-align:center;font-weight:600}
.attendance-present{color:#146c3c}.attendance-absent{color:#b01d29}.attendance-late{color:#785a00}.attendance-excused{color:#315780}
.attendance-date-links{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:680px){.attendance-matrix .attendance-student-heading{min-width:130px;max-width:175px}.attendance-matrix td.attendance-cell{min-width:78px}}
/* .0087 — reporting workspace: a single concise report at a time */
.reports-workspace{max-width:1320px}
.report-page-heading{margin-bottom:20px}
.report-view-nav{display:flex;gap:5px;align-items:center;flex-wrap:wrap;padding:5px;margin:0 0 18px;border:1px solid #dfe9e8;border-radius:11px;background:#fff}
.report-view-nav a{display:inline-flex;padding:11px 15px;font-size:13px;font-weight:650;white-space:nowrap;border-radius:8px;color:#466164}
.report-view-nav a:hover,.report-view-nav a.selected{background:#e9f4f1;color:#0e675c;text-decoration:none}
.report-view-nav a.selected{box-shadow:inset 0 0 0 1px #b3d8d0}
.report-panel{margin-bottom:18px}
.report-panel h2{font-size:21px}
.report-intro{font-size:13px;line-height:1.5;margin:0 0 12px}
.report-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.report-choice{border:1px solid #dce8e5;background:#fafcfc;border-radius:10px;padding:17px;display:flex;flex-direction:column;gap:7px;min-width:0}
.report-choice:hover{border-color:#9acbc3;background:#f0faf7;text-decoration:none}
.report-choice strong{display:flex;justify-content:space-between;gap:12px;color:#0d6a5f}
.report-choice small{line-height:1.5;font-size:12px;color:#647577}
.report-compact-table{min-width:620px}
.report-compact-table td{line-height:1.45}
.report-compact-table .report-subtitle{overflow-wrap:anywhere}
.report-simple-filter{display:flex!important;align-items:end;flex-wrap:wrap;gap:12px!important;margin:18px 0 2px!important}
.report-simple-filter label{flex:1 1 210px;max-width:410px}
.report-simple-filter .button{justify-self:start;margin:0 0 1px;height:42px}
.report-empty-selection{background:#f8fbfb;border:1px dashed #cfdfdf;border-radius:10px;text-align:center;padding:22px;margin:19px 0 0;font-size:14px;color:#647578}
.report-empty-selection span{font-size:26px}
.report-empty-selection p{margin-bottom:0}
.report-row-details summary{color:#176c61;font-weight:600;cursor:pointer;font-size:13px}
.report-row-details div{padding-top:8px;color:#5d7173;font-size:12px;line-height:1.5}
.report-corrections{margin:0 0 18px}
.report-corrections>summary{cursor:pointer;list-style-position:inside}
.report-corrections>.report-header{margin:12px 0}
.report-legend{font-size:12px;color:#586c70;margin:14px 0}
@media(max-width:750px){.report-choice-grid{grid-template-columns:1fr}.report-view-nav{gap:2px}.report-view-nav a{padding:10px 12px}.report-page-heading h1{font-size:30px}.report-simple-filter .button{width:100%}}

.report-extra-download{font-size:13px;margin:0 0 14px}
.report-admin-settings .inline-choice{display:flex;align-items:center;gap:10px;font-weight:600}
.report-admin-settings .inline-choice input{width:auto;flex:0 0 auto}

/* 0088: institution-scoped bulk course import */
.bulk-course-workspace {max-width:1180px}
.bulk-course-layout {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);gap:1rem;margin-bottom:1rem;align-items:start}
.bulk-course-upload {display:flex;flex-direction:column;align-items:stretch;gap:.6rem}
.bulk-course-upload input[type=file] {max-width:100%;padding:.8rem;border:1px dashed #b1b3b3;border-radius:8px}
.bulk-course-upload button,.bulk-course-confirm button {align-self:flex-start}
.bulk-course-term-list {display:flex;flex-wrap:wrap;gap:.5rem}
.bulk-term-pill {display:inline-flex;gap:.25rem;align-items:center;border:1px solid #d9d9d6;border-radius:6px;padding:.35rem .6rem;font-size:.9rem}
.bulk-course-institution-list {display:grid;gap:.6rem}
.bulk-course-institution {display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid #d9d9d6;padding:.5rem 0}
.bulk-course-institution form {margin:0}
.bulk-course-confirm {border-top:1px solid #d9d9d6;padding-top:1rem;margin-top:1rem}
@media(max-width:750px){.bulk-course-layout{grid-template-columns:minmax(0,1fr)}.bulk-course-institution{align-items:flex-start;flex-direction:column}}

/* Bulk course import .0090: a visible, non-actionable confirm button when blocked. */
.bulk-import-decision{margin:16px 0 20px;background:#f7faf9}
.bulk-import-decision h2{margin-top:0}
.bulk-import-action-row,.bulk-import-bottom-action{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.bulk-import-action-row{margin-top:14px}
.bulk-import-bottom-action{padding-top:14px;margin-top:16px;border-top:1px solid #d9d9d6}
.bulk-import-bottom-action p{flex:0 0 100%;margin:0}
.bulk-course-workspace button.button:disabled{cursor:not-allowed;opacity:.50;background:#63666a;border-color:#63666a;color:#fff;box-shadow:none}
@media(max-width:550px){.bulk-import-action-row .button,.bulk-import-bottom-action .button{width:100%;text-align:center}}

/* 0091: editable, accessible bulk import review; no CSV reupload needed. */
.bulk-row-editor-list{display:grid;gap:.65rem;margin-top:1rem}
.bulk-edit-row{border:1px solid #d9d9d6;border-radius:10px;background:#fff;overflow:hidden}
.bulk-edit-row.bulk-edit-error{border-left:4px solid #ce1126}
.bulk-edit-row>summary{cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.85rem 1rem;list-style-position:inside}
.bulk-edit-row>summary:hover{background:#f7faf9}
.bulk-edit-row>summary::marker{color:#63666a}
.bulk-edit-status{white-space:nowrap;color:#145a49;font-size:.84rem;font-weight:600}
.bulk-status-error{color:#9b1c2b}
.bulk-row-editor-body{padding:1rem;border-top:1px solid #d9d9d6}
.bulk-edit-issues{border:1px solid #edb4be;background:#fff7f8;border-radius:6px;padding:.75rem 1rem;margin:0 0 1rem;color:#751827}
.bulk-edit-issues ul{margin:.4rem 0 0;padding-left:1.3rem}
.bulk-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem}
.bulk-edit-grid label{display:flex;flex-direction:column;gap:.2rem;font-size:.92rem;font-weight:600;min-width:0}
.bulk-edit-grid label small{color:#63666a;font-size:.78rem;line-height:1.35;font-weight:400;min-height:2.1em}
.bulk-edit-grid input{width:100%;box-sizing:border-box;min-width:0}
.bulk-sync-offering{display:flex;align-items:flex-start;gap:.6rem;margin:.9rem 0;font-size:.9rem}
.bulk-sync-offering input{flex:none;margin-top:.15rem}
@media(max-width:650px){.bulk-edit-grid{grid-template-columns:minmax(0,1fr)}.bulk-edit-row>summary{align-items:flex-start;flex-direction:column;gap:.35rem}}
/* Keep correction forms compact despite the general .panel form grid rule. */
.panel form.bulk-edit-form{display:block;margin:0}
.panel form.bulk-edit-form .bulk-edit-grid{display:grid}
.panel form.bulk-edit-form .bulk-sync-offering{display:flex;align-items:center;min-height:35px;gap:.55rem;margin:12px 0;font-weight:500}
.panel form.bulk-edit-form .bulk-sync-offering input[type=checkbox]{display:inline-block;width:18px;height:18px;min-width:18px;flex:0 0 18px;padding:0;margin:0}

/* 0094: concise, auditable preview normalizations */
.bulk-autofixes{border-left:4px solid #145a49}
.bulk-autofixes summary{cursor:pointer;font-weight:600;padding:.4rem 0}
.bulk-autofixes table td{word-break:break-word;max-width:260px}

/* .0095: highlight authoritative existing-term dates without disrupting editor columns. */
.bulk-term-verified{grid-column:1/-1;margin:0;padding:.65rem .8rem;border:1px solid #bcded7;border-radius:7px;background:#f3faf7;color:#24574c;font-size:.85rem;line-height:1.5}

/* .0096: clear status for existing vs new institutional terms. */
.bulk-term-autofill-status {grid-column:1/-1;margin:0;padding:.55rem .75rem;border:1px solid #b1d7cf;border-radius:8px;background:#f2f8f6;color:#135c51;font-size:.87rem}
.bulk-edit-form input[readonly] {background:#f0f3f3;border-color:#d5dddd;cursor:default}

/* .0099 Institutional Admin: compact dashboard and progressive disclosure. */
.admin-hub{max-width:1180px}.admin-hub-heading{margin-bottom:18px}.admin-hub-heading .muted{margin:7px 0 0}
.admin-hub-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0 18px}
.admin-hub-stats>div{background:#fff;border:1px solid #e0e9e8;border-radius:11px;padding:17px;display:grid;gap:4px;min-width:0}
.admin-hub-stats b{font-size:24px;color:#155f55;overflow-wrap:anywhere}.admin-hub-stats span{color:#60777b;font-size:12px}
.admin-hub-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 23px}
.admin-hub-shortcuts a{background:#fff;border:1px solid #dbe6e5;border-radius:10px;padding:15px;display:grid;gap:3px;color:#193d3d;min-width:0}
.admin-hub-shortcuts a:hover,.admin-hub-shortcuts a:focus-visible{border-color:#1b786a;background:#f2faf6;text-decoration:none}
.admin-hub-shortcuts a>span{font-size:21px;color:#176a5f}.admin-hub-shortcuts a strong{font-size:14px}.admin-hub-shortcuts a small{font-size:12px;color:#697c80;line-height:1.4}
.admin-hub-section{background:#fff;border:1px solid #dfe7e8;border-radius:12px;margin:12px 0;overflow:visible}
.admin-hub-summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:20px 22px;gap:16px}
.admin-hub-summary::-webkit-details-marker{display:none}.admin-hub-summary-heading{display:grid;gap:4px;min-width:0}
.admin-hub-summary-heading strong{font-size:18px;letter-spacing:-.35px;color:#1c3539}.admin-hub-summary-heading small{color:#6a7a7e;font-size:12px}
.admin-hub-chevron{border-right:2px solid #5a7770;border-bottom:2px solid #5a7770;transform:rotate(45deg);width:9px;height:9px;flex:none;transition:transform .12s}
.admin-hub-section[open]>.admin-hub-summary>.admin-hub-chevron{transform:rotate(225deg)}
.admin-hub-body{padding:0 22px 22px;border-top:1px solid #e7eeee}.admin-pane{padding:18px 0 20px;min-width:0}
.admin-pane h2{font-size:18px;margin:0 0 6px}.admin-pane p.muted{font-size:13px;line-height:1.5}
.admin-pane-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.admin-hub-tool{border-top:1px solid #edf0f1}.admin-hub-tool>summary{cursor:pointer;list-style:none;padding:18px 3px;color:#1c5d56}
.admin-hub-tool>summary::-webkit-details-marker{display:none}.admin-hub-tool>summary>span{display:grid;gap:3px}
.admin-hub-tool>summary>span>small{font-size:12px;color:#728288;font-weight:400}
.admin-hub-tool>summary::after{content:'+';float:right;font-size:20px;font-weight:400;line-height:1;margin-top:-22px}
.admin-hub-tool[open]>summary::after{content:'−'}
.admin-hub-tool-body{padding:0 3px 19px}.admin-hub-tool-body .admin-pane{max-width:810px;padding:8px 0}
.admin-hub-tool-body .admin-pane form{max-width:770px}
.admin-course-list{display:grid;margin-top:14px}
.admin-course-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(140px,auto);align-items:center;gap:14px;border-bottom:1px solid #e8eeee;padding:13px 2px;min-width:0}
.admin-course-row:last-of-type{border-bottom:none}
.admin-course-identity{min-width:0;display:grid;gap:4px}.admin-course-name{font-size:14px;font-weight:700;overflow-wrap:anywhere}.admin-course-meta{display:flex;gap:8px 16px;flex-wrap:wrap;color:#708085;font-size:11px;overflow-wrap:anywhere}
.admin-course-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end}.admin-course-actions .button{padding:8px 11px;font-size:12px}
.admin-course-actions .admin-delete-trigger{background:#fff;border-color:#d6bbbb;color:#9e2828}.admin-course-actions .admin-delete-trigger:hover{background:#fff2f1}
.admin-delete-dialog{width:min(92vw,530px);max-height:min(85vh,850px);overflow-y:auto;border:1px solid #dbe5e5;border-radius:14px;padding:24px;box-shadow:0 20px 75px #12232b42;color:#1e3036}
.admin-delete-dialog::backdrop{background:rgba(10,22,26,.55)}.admin-dialog-heading{display:flex;gap:14px;align-items:flex-start}.admin-dialog-heading h2{font-size:23px;margin:2px 0 4px}
.admin-dialog-icon{width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#fff0ed;color:#a3342a;font-size:23px;font-weight:800;display:grid;place-items:center}
.admin-delete-warning{background:#fff8f6;border:1px solid #f0d9d6;border-radius:8px;padding:12px;font-size:13px;line-height:1.6;margin:17px 0}
.admin-delete-dialog form.admin-delete-form{display:grid;gap:16px;margin:0}.admin-delete-dialog input{width:100%}.admin-delete-dialog label{font-size:13px}
.admin-delete-dialog .admin-delete-ack{display:flex;align-items:flex-start;gap:10px;line-height:1.5;font-weight:500}
.admin-delete-ack input{width:17px;flex:none;margin:3px 0 0}.admin-dialog-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.admin-dialog-actions .button{width:auto}.admin-hub :target{scroll-margin-top:28px}
@media(max-width:820px){.admin-hub-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-hub-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.admin-hub-summary{padding:17px}.admin-hub-body{padding:0 15px 15px}.admin-course-row{grid-template-columns:minmax(0,1fr) auto;row-gap:7px}.admin-course-row>.pill{grid-column:2;grid-row:1}.admin-course-actions{grid-column:1/-1;justify-content:flex-start}.admin-hub-shortcuts{gap:8px}.admin-hub-shortcuts a{padding:12px}.admin-dialog-actions{display:grid;grid-template-columns:1fr}.admin-dialog-actions .button{width:100%}.admin-delete-dialog{padding:18px}}
@media(prefers-reduced-motion:reduce){.admin-hub-chevron{transition:none}}

/* Accessible role workspaces: table layout, keyboard navigation and progress. */
.skip-to-content{position:absolute;left:1rem;top:-100px;z-index:9999;padding:.7rem 1rem;background:#fff;color:#082d42;border:2px solid #082d42;border-radius:.5rem}
.skip-to-content:focus{top:0.5rem}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #087e97;outline-offset:3px}
.workbench-table-wrap{overflow-x:auto;max-width:100%}
.workbench-table{border-collapse:collapse;width:100%;min-width:640px;margin-top:1rem}
.workbench-table :is(th,td){padding:.8rem .65rem;border-bottom:1px solid #d5e4e9;vertical-align:top;text-align:left}
.workbench-table th{background:#edf6f7;color:#183c50}
.workbench-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin:1rem 0}
.workbench-metrics .panel{display:flex;flex-direction:column;gap:.4rem}
.workbench-metrics strong{font-size:2rem;line-height:1.2}
progress{width:min(100%,420px);height:1rem;vertical-align:middle;accent-color:#067c89;margin-right:.6rem}
@media(max-width:650px){.workbench-table{min-width:540px}.workbench-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Release .0123: accessible, responsive teaching and learning workflow filters. */
.workbench-filter{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:1rem 0}
.workbench-filter select{max-width:100%;min-width:min(100%,16rem);padding:.6rem;border:1px solid #648a9b;border-radius:.4rem;background:#fff;color:#173447}
.workbench-pages{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem;margin:1.25rem 0 .25rem}
.workbench-pages a,.workbench-tabs a{color:#135c68;text-decoration:underline}
.workbench-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}
.workbench-tabs a{padding:.6rem .85rem;border:1px solid #9dbfc9;border-radius:.5rem;background:#fff}
.workbench-tabs a.active{background:#e0f5f3;border-color:#197b77;font-weight:700;color:#0e4f4a;text-decoration:none}
.workbench-overdue{color:#9a2716;font-weight:700}

/* Retention confirmation feedback stays visible inside the expanded settings panel. */
.retention-form-feedback{line-height:1.55;margin:14px 0;padding:14px 16px;border-radius:9px;border:1px solid transparent}
.retention-form-feedback.error{border-color:#efb5ae;background:#fff2f0;color:#9b2420}
.retention-form-feedback.success{border-color:#b1dfcb;background:#e9f8f0;color:#185b41}
.retention-form-feedback[hidden]{display:none}
#retention-policy-form input[aria-invalid="true"]{border-color:#b6322c;outline:2px solid #f0c7c3}

/* 2026.11.02.0211 — Public, human-readable status (scoped; no effect on course UI). */
.hl-status-page{--hl-status-ink:#173c39;--hl-status-muted:#5a706d;--hl-status-line:#dce8e4;max-width:1100px;margin:0 auto;padding:48px 24px 75px;color:var(--hl-status-ink)}
.hl-status-shell{overflow:hidden;background:#fff;border:1px solid #dce8e4;border-radius:18px;box-shadow:0 16px 48px rgba(25,61,53,.065)}
.hl-status-topline{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:18px 35px;border-bottom:1px solid var(--hl-status-line)}
.hl-status-eyebrow{display:flex;gap:9px;align-items:center;font-size:11px;font-weight:800;letter-spacing:.11em;color:#2a655b}
.hl-status-monogram{display:grid;place-items:center;background:#125e54;color:#fff;border-radius:8px;width:27px;height:27px;font-size:16px;letter-spacing:0}
.hl-status-separator{color:#a2bbb4;margin:0 3px}
.hl-status-refresh,.hl-status-home{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;color:#145c52;text-decoration:none;font-weight:750;font-size:13px;border:1px solid #c4ddd5;border-radius:9px;background:#f6faf8}
.hl-status-refresh:hover,.hl-status-home:hover{background:#e8f5f0}
.hl-status-hero{padding:35px;display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(130deg,#f8fcfa,#e9f5f1)}
.hl-status-label{font-size:11px;letter-spacing:.14em;font-weight:850;color:#3e8175}
.hl-status-hero h1{margin:9px 0 9px;font-size:clamp(26px,3.3vw,41px);letter-spacing:-.04em;color:#113f39;line-height:1.16}
.hl-status-hero p{margin:0;color:#58716a;font-size:14px;line-height:1.6}
.hl-status-summary{display:flex;gap:13px;align-items:center;border-radius:13px;border:1px solid #c8e8d8;background:#e5f5ed;padding:18px 20px;min-width:260px}
.hl-status-summary.hl-status-bad{background:#fff1ec;border-color:#f3c5b8}
.hl-status-summary strong{display:block;font-size:15px;color:#145b40}.hl-status-summary.hl-status-bad strong{color:#953d2f}
.hl-status-summary small{display:block;font-size:12px;margin-top:4px;color:#4b7360;line-height:1.4}.hl-status-summary.hl-status-bad small{color:#915c51}
.hl-status-indicator{height:14px;width:14px;background:#238653;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 5px #c6e8d5}.hl-status-bad .hl-status-indicator{background:#b64d39;box-shadow:0 0 0 5px #f6d1c5}
.hl-status-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--hl-status-line);border-bottom:1px solid var(--hl-status-line)}
.hl-status-meta>div{display:grid;gap:6px;padding:18px 35px;min-width:0}.hl-status-meta>div+div{border-left:1px solid var(--hl-status-line)}
.hl-status-meta span{font-size:12px;font-weight:650;color:var(--hl-status-muted)}.hl-status-meta strong{font-size:13px;overflow-wrap:anywhere;color:#1a4842}
.hl-status-section{padding:28px 35px 0}.hl-status-section-header{display:flex;gap:14px;align-items:start;justify-content:space-between;margin-bottom:16px}
.hl-status-section h2{color:#184840;font-size:19px;margin:0 0 5px}.hl-status-section p{font-size:13px;color:#617873;margin:0}
.hl-status-key{font-size:11px;font-weight:700;border-radius:20px;padding:6px 12px;background:#e9f5ef;color:#247047;white-space:nowrap}.hl-status-key-muted{background:#f0f3f3;color:#657371}
.hl-status-services{padding:0;margin:0;list-style:none;border:1px solid var(--hl-status-line);border-radius:12px;overflow:hidden}
.hl-status-services li{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;background:#fff}
.hl-status-services li+li{border-top:1px solid #e7eeeb}
.hl-status-services li>div{display:grid;gap:4px}.hl-status-services strong{font-size:14px;color:#274b45}.hl-status-services li>div span{font-size:12px;color:#617874}
.hl-status-state{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;font-weight:750;padding:7px 10px;border-radius:8px}
.hl-status-state-good{background:#eaf6ef;color:#23764a}.hl-status-state-bad{background:#fff0eb;color:#ad4531}.hl-status-state-unknown{background:#f2f5f4;color:#596e6a}
.hl-status-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.hl-status-bottom{margin:28px 35px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f7faf8;border:1px solid #e4ece7;border-radius:12px;padding:19px 20px}
.hl-status-bottom strong{font-size:13px;color:#284b43}.hl-status-bottom p{font-size:12px;margin:5px 0 0;line-height:1.6;color:#62766f}.hl-status-bottom a:not(.hl-status-home){color:#176c5b;text-decoration:underline;text-underline-offset:2px}
.hl-status-home{white-space:nowrap;background:white}
.hl-status-page a:focus-visible{outline:3px solid #1a806d;outline-offset:3px}
@media(max-width:760px){.hl-status-page{padding:20px 12px 45px}.hl-status-topline,.hl-status-hero{padding:22px}.hl-status-hero{align-items:stretch;flex-direction:column}.hl-status-summary{min-width:0}.hl-status-meta{grid-template-columns:1fr}.hl-status-meta>div{padding:12px 22px}.hl-status-meta>div+div{border-left:0;border-top:1px solid var(--hl-status-line)}.hl-status-section{padding:24px 19px 0}.hl-status-services li{padding:14px;gap:10px}.hl-status-section-header{flex-wrap:wrap}.hl-status-bottom{margin:24px 19px;flex-direction:column;align-items:stretch}}
@media(prefers-reduced-motion:reduce){.hl-status-page *{scroll-behavior:auto!important;transition:none!important}}


/* 2026.11.02.0251 — responsive card, navigation and form alignment design system.
   Use explicit card containers instead of forcing every panel/form into two columns.
   This preserves the grading table, editorial flow and student submission forms. */
:root{--hl-layout-gap:clamp(14px,1.6vw,22px);--hl-layout-border:#dce7e6;--hl-layout-ink:#244442}
:is(.course-layout,.course-content,.main-container,.panel,.editor-box,.admin-grid,.two-panels,.course-grid,.quick-row,.feature-grid,.workbench-metrics,.hl-card-grid,.hl-feature-grid)>*{min-width:0}
:is(.course-content,.main-container,.platform-section-content) :is(.panel,.module-card,.course-card,.course-alert,.report-panel){overflow-wrap:anywhere}
.hl-card-grid,.hl-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--hl-layout-gap);align-items:stretch;min-width:0}
.hl-card-grid>*{min-width:0;min-height:0}
.hl-grid-full{grid-column:1/-1}
.hl-card-grid .course-alert{display:flex;flex-direction:column;min-width:0;margin:0;padding:22px;border:1px solid var(--hl-layout-border);border-radius:12px;background:#fff;box-shadow:0 4px 15px rgba(15,72,65,.035)}
.hl-card-grid .course-alert :is(h3,p){overflow-wrap:anywhere}
.hl-card-grid .course-alert .prose{margin-bottom:0;white-space:pre-wrap}
.hl-card-grid .course-alert .activity-header{align-items:flex-start;flex-wrap:wrap;gap:10px}
.hl-card-grid .course-alert .activity-header h3{margin:0;flex:1 1 14rem;min-width:0}
.hl-card-grid .course-alert .activity-header .pill{white-space:normal;text-align:center;max-width:100%}
.hl-card-grid .course-alert .alert-read-form,.hl-card-grid .course-alert .alert-read-status{margin-top:auto;padding-top:12px}
.hl-card-grid .empty{margin:0}
.course-announcement-grid{margin-top:16px}
.platform-announcement-grid{margin-top:18px}
.calendar-task-grid{margin-top:16px}
.hl-feature-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);margin-top:var(--hl-layout-gap)}
.hl-feature-grid>.panel{margin:0}
.admin-action-layout .button{max-width:100%;white-space:normal;text-align:center}
/* Give standalone panels and sections consistent separation across all role views. */
.main-container>:is(.panel,.section,.quick-row,.admin-grid,.workbench-metrics,.hl-feature-grid)+:is(.panel,.section,.quick-row,.admin-grid,.workbench-metrics,.hl-feature-grid),
.course-content>:is(.panel,.section,.module-card,.editor-box)+:is(.panel,.section,.module-card,.editor-box){margin-top:var(--hl-layout-gap)}
.panel> :is(.panel,.course-alert)+:is(.panel,.course-alert){margin-top:var(--hl-layout-gap)}
:is(.admin-grid,.two-panels,.platform-admin-create,.report-choice-grid,.workbench-metrics){align-items:start;min-width:0}
:is(.course-grid,.quick-row,.feature-grid){align-items:stretch;min-width:0}
.course-grid .course-card{height:100%}
.course-card-body{display:flex;flex-direction:column;height:calc(100% - 130px);min-width:0}
.course-card-body .card-foot{margin-top:auto;padding-top:20px;flex-wrap:wrap}
/* Shared navigations: fixed icon column in each view; no mismatched text indentation. */
.side-nav{min-width:0;gap:4px}
.side-nav>a{display:grid;grid-template-columns:25px minmax(0,1fr);align-items:center;column-gap:10px;min-height:45px;padding:10px 12px;min-width:0;line-height:1.4;overflow-wrap:anywhere}
.side-nav>a>.side-icon{grid-column:1;display:flex;align-items:center;justify-content:center;width:25px;min-width:25px;line-height:1.2;font-size:19px}
.side-nav>a:not(:has(>.side-icon))::before{content:'•';grid-column:1;text-align:center;font-size:16px;color:#688481;line-height:1}
.side-nav>a.selected{box-shadow:inset 3px 0 0 #158072}
.side-nav>a:focus-visible{outline:2px solid #128479;outline-offset:-2px}
.course-sidebar{min-width:0}
/* Common cards, controls, and tables avoid collisions at narrow widths. */
:is(.panel,.editor-box,.course-content,.main-container) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select){max-width:100%}
:is(.panel,.editor-box) .button-row{align-items:center;flex-wrap:wrap}
:is(.panel,.editor-box) :is(.button-row,.actions)>*{min-width:0;max-width:100%}
:is(.panel,.editor-box) :is(.activity-header,.section-head){min-width:0;flex-wrap:wrap;row-gap:10px}
:is(.panel,.editor-box) :is(.activity-header,.section-head)>*{min-width:0}
:is(.panel,.editor-box) :is(h2,h3,p){overflow-wrap:anywhere}
:is(.panel,.editor-box) form{min-width:0}
:is(.panel,.editor-box) :is(table,pre){max-width:100%}
/* Existing scroll containers retain their horizontal scrolling; never compress gradebook columns. */
.workbench-table-wrap,.gradebook-matrix-wrap,.retention-table{max-width:100%;overflow-x:auto}
@media(max-width:1050px){
 .hl-feature-grid{grid-template-columns:1fr}
 .course-announcement-grid{grid-template-columns:1fr}
}
@media(max-width:800px){
 .hl-card-grid,.hl-feature-grid{grid-template-columns:1fr}
 .side-nav>a{display:inline-flex;flex:0 0 auto;min-height:42px;white-space:nowrap;gap:8px}
 .side-nav>a:not(:has(>.side-icon))::before{display:none}
 .side-nav>a>.side-icon{width:22px;min-width:22px}
 .course-title-row{min-width:0}
 .course-content,.main-container{overflow-wrap:anywhere}
}
@media(max-width:480px){
 .panel{padding:17px}
 .hl-card-grid .course-alert{padding:17px}
 .hl-card-grid .course-alert .activity-header{display:block}
 .hl-card-grid .course-alert .activity-header .pill{margin-top:10px}
 .admin-grid,.two-panels,.platform-admin-create,.workbench-metrics{grid-template-columns:1fr}
 .section-head>.button{white-space:normal}
}
/* Prevent role banners from squeezing a long staff-role description into a narrow column. */
@media(max-width:760px){
 .role-view{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-items:start}
 .role-view>span{flex:none;min-width:0;max-width:100%;overflow-wrap:anywhere}
 .course-sidebar .side-nav{scrollbar-width:thin}
}

/* .0252: unified browser-only error experience; APIs keep their JSON contract. */
.hl-error-main{max-width:1080px;margin:0 auto;padding-top:clamp(26px,4vw,64px);padding-bottom:100px;min-height:55vh}
.hl-error-panel{max-width:780px;margin:0 auto;padding:clamp(24px,5vw,52px);border:1px solid #d9e7e3;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(20,64,57,.06)}
.hl-error-panel .eyebrow{letter-spacing:.1em;margin:0 0 12px;color:#54736c;font-size:12px;font-weight:800}
.hl-error-panel h1{font-size:clamp(27px,4vw,38px);line-height:1.2;letter-spacing:-.03em;margin:0 0 12px;color:#102f2e}
.hl-error-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:30px;font-weight:800;background:#fff0e5;color:#a54d1d;margin-bottom:20px}
.hl-error-explanation{font-size:16px;line-height:1.65;overflow-wrap:anywhere;max-width:70ch;margin:0 0 13px}
.hl-error-help{line-height:1.65;max-width:70ch}
.hl-error-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:28px}
.hl-error-actions .button{text-decoration:none;text-align:center;max-width:100%;white-space:normal}
@media(max-width:520px){.hl-error-actions{display:grid;grid-template-columns:1fr}.hl-error-actions .button{width:100%}.hl-error-panel{padding:24px 19px}}

/* Public read-only status refresh and CPU-only private draft progress. */
.hl-status-poll-feedback{font-size:12px;color:#5a706d;margin:0 35px 25px}
.hl-ai-progress{display:flex;gap:12px;align-items:flex-start;margin:16px 0 0;padding:16px;border:1px solid #a6d8ce;background:#eaf8f4;border-radius:10px;color:#124e45}
.hl-ai-progress strong{display:block;margin-bottom:5px}
.hl-ai-progress p{margin:6px 0 0;line-height:1.45;font-size:13px}
.hl-ai-spinner{width:21px;height:21px;border:3px solid #acd9d0;border-top-color:#086f5c;border-radius:50%;flex:none;animation:hl-ai-spin 1s linear infinite}
@keyframes hl-ai-spin{to{transform:rotate(360deg)}}
#hl-ai-client-error{margin-top:14px}
.hl-ai-progress[hidden],#hl-ai-client-error[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.hl-ai-spinner{animation:none;border-top-color:#086f5c}}

/* .0261 institutional colors use a curated accessible accent palette. */
body[style*="--hl-institution-accent"] .button:not(.secondary){background:var(--hl-institution-accent,#116d61);border-color:var(--hl-institution-accent,#116d61)}
body[style*="--hl-institution-accent"] .top-nav a.active{border-bottom-color:var(--hl-institution-accent,#116d61)}
.hl-studio-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start}
.hl-studio-items{margin:10px 0 0 0;padding:0;list-style:none}
.hl-studio-items li{padding:11px 0;border-top:1px solid #e0e7e7;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.hl-studio-module{margin-bottom:18px;padding:20px;border:1px solid #dbe6e5;border-radius:12px;background:white}
.hl-studio-module h3{margin:0 0 14px}
.hl-studio-links{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}
.hl-studio-warning{border:1px solid #ebdba9;background:#fff8e7;padding:14px;border-radius:9px}
@media(max-width:880px){.hl-studio-grid{grid-template-columns:1fr}}

/* .0266: Institutional landing page hero, with logo top-aligned to Welcome title. */
.institution-entry-layout{display:block;margin-top:16px}
.institution-entry-layout.has-logo{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,340px);align-items:start;gap:clamp(24px,5vw,56px)}
.institution-entry-copy{min-width:0}
.institution-entry-copy h1{margin:0 0 16px;overflow-wrap:break-word}
.institution-entry-copy p{margin-top:0}
.institution-entry-logo{min-width:0;align-self:start;display:flex;justify-content:flex-end;align-items:flex-start}
.institution-entry-logo img{display:block;max-width:100%;width:auto;height:auto;max-height:220px;object-fit:contain;object-position:top right}
@media(max-width:720px){.institution-entry-layout.has-logo{grid-template-columns:minmax(0,1fr);gap:24px}.institution-entry-logo{justify-content:flex-start}.institution-entry-logo img{max-width:min(100%,320px);max-height:180px;object-position:top left}}

/* Large-wave gradebook roster filtering must hide table rows even if table styles set display. */
#gradebook-matrix-body tr[hidden] { display: none !important; }
