:root{--purple:#34214f;--purple-2:#50356d;--purple-light:#f0ebf5;--gold:#c5a36a;--ink:#282634;--muted:#7d7986;--border:#e9e6e8;--paper:#fff;--bg:#f8f7f5;--shadow:0 10px 36px rgba(41,31,52,.035)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b49ad4;outline-offset:2px}.app-shell{display:flex;min-height:100vh}.sidebar{width:252px;flex-shrink:0;background:#322148;color:white;padding:32px 17px 26px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:13px;padding:0 13px 47px}.brand-mark{height:43px;width:43px;display:grid;place-items:center;background:#fff;border-radius:12px;color:var(--purple);font-size:25px;font-weight:850;letter-spacing:-3px}.brand-mark span{color:var(--gold)}.brand strong{display:block;font-size:21px;letter-spacing:2px;line-height:1.2}.brand small{display:block;color:#c2b9cb;font-size:10px;margin-top:4px}.side-label{color:#a99bb8;font-size:10px;letter-spacing:2px;font-weight:700;padding:0 15px 15px}.nav-item{border:0;width:100%;text-align:left;background:transparent;color:#cfc6d8;padding:12px 15px;border-radius:10px;display:flex;gap:14px;align-items:center;margin-bottom:5px;font-weight:500}.nav-item:hover,.nav-item.active{background:#4b3662;color:#fff}.nav-item.active{box-shadow:inset 3px 0 0 var(--gold)}.nav-icon{font-size:20px;width:21px;text-align:center;line-height:1}.sidebar-bottom{margin-top:auto;padding:20px 13px 0}.sidebar-note{font-size:12px;color:#e7dfe9;line-height:1.8;border-bottom:1px solid #564466;padding-bottom:22px}.sidebar-note small{color:#aea2bb;font-size:10px}.note-dot{display:inline-block;background:#b9cbb5;border-radius:50%;height:7px;width:7px;margin-right:5px}.uni-lockup{padding-top:23px;font-family:Georgia,serif;font-size:15px;font-weight:bold;letter-spacing:-.4px;line-height:1.05}.uni-lockup span{color:var(--gold)}.main-shell{flex:1;min-width:0}.topbar{height:81px;background:rgba(255,255,255,.82);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,80px)}.breadcrumb{font-size:13px;color:#8b8792}.breadcrumb span{padding:0 12px;color:#c3bcc8}.breadcrumb b{color:#4d415c;font-weight:600}.top-right{display:flex;align-items:center;gap:22px}.term-pill{font-size:12px;color:#67556f;background:#f4f0f5;padding:8px 14px;border-radius:30px}.avatar{height:36px;width:36px;background:#e7ddec;color:#5e4178;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}.main-content{max-width:1320px;margin:0 auto;padding:49px clamp(22px,5vw,80px) 55px;min-height:calc(100vh - 141px)}.eyebrow{font-size:11px;color:#97794b;letter-spacing:2.1px;text-transform:uppercase;font-weight:800;margin:0 0 9px}.page-title{font-family:Georgia,"Times New Roman",serif;font-size:clamp(29px,3vw,41px);font-weight:500;letter-spacing:-1.2px;line-height:1.25;margin:0}.subtitle{color:var(--muted);margin:12px 0 0;max-width:700px;font-size:14px}.page-header{margin-bottom:34px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.section-title{font-family:Georgia,serif;font-size:21px;font-weight:500;margin:0}.text-link{border:0;background:none;color:#674b83;font-weight:650;font-size:12px;padding:6px}.text-link:hover{text-decoration:underline}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:36px}.card{background:var(--paper);border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow)}.stat-card{padding:23px 25px;min-height:135px}.stat-label{font-size:12px;color:var(--muted);margin:0 0 13px}.stat-number{font-family:Georgia,serif;font-size:35px;line-height:1.1;color:var(--purple)}.stat-foot{font-size:11px;color:#9b96a0;margin-top:10px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:26px}.course-list,.deadline-list{overflow:hidden}.course-row{width:100%;display:flex;align-items:center;gap:15px;border:0;border-bottom:1px solid #f0edf0;background:#fff;padding:20px;text-align:left;color:inherit}.course-row:last-child,.deadline-row:last-child{border-bottom:0}.course-row:hover,.deadline-row:hover{background:#fcfafc}.course-icon{flex:0 0 43px;height:43px;border-radius:12px;display:grid;place-items:center;font-size:17px;font-weight:700}.purple{background:#eee7f5;color:#79569a}.gold{background:#f7f0e5;color:#a17d45}.rose{background:#f8ebed;color:#b77787}.sage{background:#eaf2ed;color:#668a77}.course-details{min-width:0;flex:1}.course-code{font-size:10px;font-weight:800;letter-spacing:1px;color:#9989a4}.course-name{font-size:14px;font-weight:650;margin-top:3px}.course-meta{font-size:11px;color:#98939c;margin-top:4px}.chevron{color:#b8b1bf;font-size:22px}.deadline-row{display:flex;gap:15px;align-items:center;border-bottom:1px solid #f0edf0;padding:19px 20px}.date-tile{width:48px;flex-shrink:0;text-align:center;border-radius:10px;background:#f6f3f7;padding:6px 0}.date-tile strong{font-family:Georgia,serif;display:block;color:#4b355f;font-size:21px;line-height:1.2}.date-tile span{display:block;color:#927da0;font-size:10px;text-transform:uppercase;letter-spacing:1px}.deadline-name{font-weight:650;font-size:13px}.deadline-course{color:#99939e;font-size:11px;margin-top:3px}.deadline-info{flex:1;min-width:0}.tag{display:inline-flex;align-items:center;padding:5px 9px;border-radius:6px;font-size:10px;background:#f3f0f6;color:#6d5283;font-weight:700;white-space:nowrap}.tag.urgent{background:#fff2e8;color:#a76d3b}.panel-pad{padding:25px}.callout{border-radius:14px;padding:24px;background:#f1ecf5;border:1px solid #e9e0ee;margin-top:26px;display:flex;justify-content:space-between;gap:16px;align-items:center}.callout strong{font-family:Georgia,serif;font-size:20px;font-weight:500;color:#4b365d}.callout p{margin:5px 0 0;color:#81758b;font-size:12px}.button{border:0;border-radius:9px;padding:10px 15px;background:var(--purple);color:white;font-size:12px;font-weight:650}.button:hover{background:#53346e}.filter-bar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:21px}.filter{background:#fff;border:1px solid var(--border);border-radius:25px;padding:9px 15px;color:#766d7e;font-size:12px}.filter.active{background:var(--purple);color:white;border-color:var(--purple)}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.course-card{padding:24px;text-align:left;cursor:pointer;width:100%;color:inherit}.course-card:hover{border-color:#c6b5d5;transform:translateY(-1px)}.course-card h3{font-family:Georgia,serif;font-size:21px;font-weight:500;margin:18px 0 8px}.course-card p{font-size:12px;color:var(--muted);min-height:38px}.course-card-footer{border-top:1px solid var(--border);padding-top:15px;margin-top:20px;display:flex;justify-content:space-between;color:#89808e;font-size:11px}.detail-top{display:flex;gap:15px;align-items:center;margin-bottom:24px}.back-button{background:none;border:0;color:#6b5082;padding:0 0 19px;font-size:13px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.info-line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:12px 0;font-size:12px}.info-line:last-child{border:0}.info-line span{color:var(--muted)}.assessment-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.assessment-table th{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#928a98;font-weight:700;background:#faf9fa}.assessment-table td,.assessment-table th{padding:17px 19px;border-bottom:1px solid #f0edf0}.assessment-table tr:last-child td{border:0}.assessment-table td:first-child{font-weight:650}.search-row{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.search{border:1px solid var(--border);background:#fff;border-radius:10px;padding:11px 14px;width:280px;max-width:100%;font-size:12px}.empty{padding:40px 25px;color:var(--muted);font-size:13px;text-align:center}.progress-track{height:8px;background:#f0edf2;border-radius:20px;overflow:hidden;min-width:95px}.progress-fill{height:100%;background:#8b6ca5;border-radius:20px}.grade-value{font-weight:800;color:#54356f}.notice{font-size:12px;color:#857d88;background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 17px;margin-top:20px}.footer{border-top:1px solid var(--border);padding:20px 30px;text-align:center;color:#a49ca8;font-size:10px}.footer span{padding:0 7px}.mobile-only{display:none}@media(max-width:1050px){.sidebar{width:218px}.dashboard-grid{grid-template-columns:1fr}.main-content{padding-top:35px}}@media(max-width:720px){.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:10;transform:translateX(-105%);transition:transform .2s;width:250px}.sidebar.open{transform:translateX(0)}.mobile-only{display:block}.icon-button{border:0;background:none;font-size:20px;color:var(--purple);padding:5px}.topbar{padding:0 18px;height:70px}.top-left{display:flex;align-items:center;gap:10px}.term-pill{display:none}.main-content{padding:30px 18px 45px}.stats-grid{grid-template-columns:1fr 1fr;gap:11px}.stat-card{padding:18px;min-height:118px}.stat-card:last-child{grid-column:span 2}.stat-number{font-size:30px}.course-grid,.detail-grid{grid-template-columns:1fr}.callout{align-items:flex-start;flex-direction:column}.assessment-table{display:block;overflow-x:auto}.footer{line-height:1.8}}

/* SPOT v2 familiarity, SPOT 3.0 visual language */
.main-content{padding-top:32px}
.page-header{margin-bottom:24px}
.page-title{font-size:clamp(28px,2.6vw,36px)}
.spot-switcher{background:#fff;border:1px solid var(--border);border-radius:14px;margin-bottom:14px;padding:10px 17px;box-shadow:var(--shadow)}
.spot-year-strip,.spot-course-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:38px}
.spot-year-strip{border-bottom:1px solid #f0edf0;padding-bottom:7px;margin-bottom:7px}
.strip-label{font-size:11px;font-weight:700;color:#938a9a;min-width:106px}
.year-tab,.course-tab{border:1px solid transparent;border-radius:7px;background:transparent;padding:6px 11px;font-size:12px;color:#685976}
.year-tab:hover,.course-tab:hover{background:#f5f0f8}
.year-tab.selected{background:var(--purple);color:#fff}
.course-tab{background:#f7f4f8;border-color:#f0eaf3;color:#684b82;font-size:11px;font-weight:650}
.spot-student-bar{display:flex;align-items:center;gap:13px;border:1px solid var(--border);background:#fff;border-radius:13px;padding:13px 18px;margin-bottom:27px}
.student-avatar-mini{width:36px;height:36px;display:grid;place-items:center;background:#eee7f5;border-radius:10px;color:#6b4b83;font-weight:700;font-size:12px}
.spot-student-bar strong{display:block;font-size:13px}
.spot-student-bar span:not(.demo-chip){display:block;font-size:11px;color:#928998}
.demo-chip{margin-left:auto;font-size:10px;color:#8b7b97;background:#f6f2f8;border-radius:6px;padding:5px 9px}
.spot-section{margin-bottom:27px}
.spot-section .section-head{margin-bottom:1px}
.section-help{font-size:11px;color:#99909d;margin:0 0 12px}
.table-scroll{overflow-x:auto}
.spot-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}
.spot-table th{font-size:10px;letter-spacing:.5px;color:#7c7086;background:#f6f3f7;padding:11px 16px;font-weight:700}
.spot-table td{padding:11px 16px;border-top:1px solid #f0edf0;color:#514b58}
.spot-table tbody tr:hover{background:#fcfafc}
.spot-table td:nth-child(2){white-space:normal;min-width:185px}
.table-course-link{border:0;background:none;color:#694b85;font-weight:700;font-size:11px;padding:0}
.table-course-link:hover{text-decoration:underline}
.extension-label{color:#755392;font-weight:600;font-size:11px}
.total-row{background:#faf8fb;font-weight:700}
@media(max-width:720px){.spot-switcher{padding:10px}.strip-label{min-width:100%;margin-top:4px}.spot-table{min-width:650px}.spot-student-bar{padding:12px}.main-content{padding-top:25px}}

/* Compact academic workspace refinement */
.main-content{padding-top:25px}.page-header{margin-bottom:15px}.subtitle{margin-top:5px}.spot-student-bar{margin-bottom:12px}.spot-switcher{margin-bottom:22px}.spot-section{margin-bottom:20px}.spot-table td{padding:9px 16px}.spot-table th{padding:10px 16px}.spot-section .section-title{font-size:20px}.back-button{margin-right:15px}.uni-lockup{display:flex;gap:9px;align-items:center;font-size:13px}.uni-gold-mark{font-family:Arial,sans-serif;font-size:24px;color:#c5a36a}.sidebar-bottom{padding-bottom:10px}.weighting-summary{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.weighting-item{flex:1 1 190px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}.weighting-item span{font-size:12px;color:#6f6476;display:block}.weighting-item strong{font:28px Georgia,serif;color:var(--purple);display:block;margin:7px 0}.weighting-item small{font-size:11px;color:#8d8394}.weight-track{height:6px;background:#f0ebf4;border-radius:9px;overflow:hidden;margin-bottom:7px}.weight-track>div{height:100%;background:#a58abd;border-radius:9px}.muted-grade{color:#938a99;font-size:11px}

.overview-course-name{font-size:11px;color:#928b99;font-weight:400;margin-top:3px}.grade-pending{display:inline-block;background:#f5f2f6;color:#85758e;padding:5px 9px;border-radius:6px;font-size:11px;white-space:nowrap}.overview-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f1ecf5;border:1px solid #e8e0ed;border-radius:13px;padding:19px 22px;margin-top:19px}.overview-bottom strong{font-family:Georgia,serif;font-size:17px;font-weight:500;color:#483557}.overview-bottom p{font-size:12px;color:#7e7288;margin:4px 0 0}@media(max-width:720px){.overview-bottom{align-items:flex-start;flex-direction:column}}

.uni-lockup{display:block;width:100%;padding-top:16px;text-decoration:none}.uni-lockup img{display:block;width:100%;max-width:196px;height:auto;object-fit:contain;border-radius:0}.sidebar-bottom{padding-left:10px;padding-right:10px}

.inline-course-panel{margin-top:16px;background:#fff;border:1px solid #e8e0ec;border-radius:15px;overflow:hidden;box-shadow:0 10px 30px rgba(50,30,70,.045)}.inline-course-top{display:flex;align-items:flex-start;justify-content:space-between;padding:23px 25px 17px}.inline-course-top h3{font-family:Georgia,serif;font-size:25px;color:#30253e;margin:5px 0 9px}.inline-course-top p{font-size:13px;color:#7c7085;margin:5px 0}.inline-close{background:#f4f0f6;border:0;border-radius:9px;color:#5b4572;font-size:24px;cursor:pointer;width:34px;height:34px}.inline-course-foot{padding:15px 25px;text-align:right;color:#554367;font-weight:600;font-size:13px;background:#f9f7fa;border-top:1px solid #ece7ef}

/* Subtle SPOT-style reveal when switching between course details and overview. */
.spot-section > .inline-course-panel,.spot-section > .card.table-scroll{animation:spot-content-reveal 520ms ease-out both;transform-origin:top center}
@keyframes spot-content-reveal{from{opacity:.88;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.spot-section > .inline-course-panel,.spot-section > .card.table-scroll{animation:none}}

.spot-course-strip{display:flex;align-items:flex-start;flex-wrap:wrap;gap:16px;padding-top:14px;padding-bottom:14px}.spot-course-strip>.strip-label{flex:0 0 100%;margin-bottom:-5px}.semester-group{display:flex;flex-direction:column;gap:8px;min-width:0}.semester-label{font-size:11px;font-weight:700;letter-spacing:.055em;text-transform:uppercase;color:#6f607e}.semester-courses{display:flex;gap:7px;flex-wrap:wrap}.semester-locked{opacity:.48}.semester-locked .course-tab{cursor:not-allowed;filter:grayscale(.35)}.semester-group .course-tab.selected{background:#e8dff0;color:#47305f;border-color:#c7b3d7;font-weight:700}@media(max-width:760px){.spot-course-strip{gap:13px}.semester-group{width:100%}}

/* University branding and accessible course presentation */
body{font-size:16px;line-height:1.6}.spot-table th,.spot-table td{font-size:14px}.subtitle,.section-help{font-size:15px}.course-tab,.year-tab{font-size:14px}.inline-course-panel{margin-top:0}.inline-course-top{position:relative;justify-content:center;padding:29px 55px 26px}.course-heading-centered{text-align:center;width:100%}.inline-course-top h3{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:clamp(22px,2.3vw,29px);font-weight:650;letter-spacing:-.55px;line-height:1.3;margin:5px 0 19px}.course-facts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px 0;color:#665c70;font-size:14px}.course-facts span{padding:0 14px;line-height:1.35;border-right:1px solid #d5cbdc}.course-facts span:last-child{border-right:0}.inline-close{position:absolute;right:19px;top:20px}.semester-locked{opacity:.67}.semester-locked .course-tab{cursor:pointer;filter:none}.uni-lockup-top{padding:4px 13px 0;margin:0 0 27px}.uni-lockup-top img{max-width:190px}.brand{padding-bottom:36px}@media(max-width:650px){.inline-course-top{padding:26px 43px 24px}.course-facts span{padding:5px 9px}}

/* Restore compact original course strip; semester two is subtly muted. */
.spot-course-strip{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:9px;padding-top:12px;padding-bottom:12px}.spot-course-strip>.strip-label{flex:0 0 auto;margin:0 16px 0 0}.spot-course-strip .course-tab{flex:0 0 auto}.spot-course-strip .course-upcoming{opacity:.48}@media(max-width:760px){.spot-course-strip{gap:8px}.spot-course-strip>.strip-label{width:auto;flex:0 0 auto}}

/* Academic year and semester responsive presentation */
.spot-course-strip{display:flex;align-items:flex-start;gap:20px;padding:20px 20px 21px;flex-wrap:nowrap}
.spot-course-strip>.strip-label{flex:0 0 108px;margin:22px 0 0!important;white-space:nowrap}
.semester-clusters{display:flex;flex:1;flex-wrap:wrap;align-items:flex-start;gap:17px 24px;min-width:0}
.course-semester-cluster{display:flex;flex-direction:column;gap:9px;min-width:0}
.course-semester-label{font-size:12px;line-height:1.3;font-weight:750;letter-spacing:.045em;color:#766782;text-transform:uppercase}
.course-semester-tabs{display:flex;gap:8px;flex-wrap:wrap}
.course-semester-tabs .course-tab{opacity:1!important;filter:none!important;white-space:nowrap;font-size:14px;padding:11px 14px}
.course-semester-tabs .course-tab.selected{background:#392452;color:white;border-color:#392452}
.spot-table th,.spot-table td{font-size:15px;line-height:1.5;padding-top:13px;padding-bottom:13px}
.overview-course-name{font-size:14px;margin-top:3px}
.section-help,.subtitle{font-size:16px}
.split-cell{max-width:210px;min-width:148px}
.split-parts{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#64516f;font-weight:600}
.split-parts b{font-weight:650}
.split-track{display:block;height:7px;border-radius:20px;background:#e8e1ed;overflow:hidden;margin-top:9px}
.split-track>span{display:block;height:100%;background:#76588f;border-radius:20px 0 0 20px}
.split-unavailable{font-size:13px;color:#978b9f}
.historic-note{border:1px solid #e9e1ef;border-radius:12px;padding:12px 17px;background:#faf7fc;color:#786b81;font-size:13px;margin-bottom:15px}
.course-detail-code{font-size:13px;letter-spacing:.06em;font-weight:750;color:#7b608d}
.course-heading-centered h3{font-size:clamp(24px,2.3vw,30px)}
.no-assessments{padding:22px!important;color:#8b7f92}
.deadline-preview{margin-top:30px}
.preview-deadlines{border:1px solid #ece6ef;border-radius:15px;background:#fff;overflow:hidden}
.preview-deadline{display:flex;align-items:center;gap:22px;padding:17px 20px;border-bottom:1px solid #f0ebf1}
.preview-deadline:last-child{border-bottom:0}
.preview-date{flex:0 0 95px;font-weight:700;color:#5d4a6d;font-size:13px}
.preview-detail{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.preview-detail strong{font-size:14px;overflow-wrap:anywhere;color:#382f42}
.preview-detail small{font-size:12px;color:#8c7f92}
.days-pill{display:inline-block;white-space:nowrap;font-size:12px;font-weight:700;color:#675477;background:#f3edf7;padding:6px 10px;border-radius:9px}
.days-warning{background:#fff0e8;color:#a64e23}
.deadline-warning{background:#fffaf6}
.submission-success{color:#2c805a;font-weight:700}
.submission-success+span{display:inline-block;animation:submitted-pop .65s ease-out both;color:#2c805a}
@keyframes submitted-pop{0%{transform:scale(.75);opacity:.2}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
.git-tag,.feedback-trigger{border:1px solid #e5d9ed;border-radius:7px;background:#f7f1fb;color:#644c77;padding:3px 7px;margin-left:8px;font:inherit;font-size:12px;cursor:pointer}
.feedback-dialog{border:1px solid #e6ddea;border-radius:18px;max-width:min(620px,calc(100vw - 30px));width:100%;padding:25px;box-shadow:0 20px 70px #22102a33;color:#3c3243}
.feedback-dialog::backdrop{background:#221a2b88}
.feedback-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:16px}
.feedback-dialog-head h2{font-size:21px;margin:0}
.feedback-dialog-head button{border:0;background:#f3edf7;border-radius:8px;font-size:25px;cursor:pointer;padding:0 10px}
.feedback-dialog h3{font-size:15px;color:#765b88}
.feedback-dialog p{white-space:pre-wrap;line-height:1.7}
@media(max-width:850px){.spot-course-strip{flex-direction:column;gap:12px}.spot-course-strip>.strip-label{flex:auto;margin:0!important}.semester-clusters{width:100%;gap:16px}.course-semester-cluster{max-width:100%}}
@media(max-width:600px){.preview-deadline{flex-wrap:wrap;gap:8px 14px}.preview-date{flex:0 0 100%}.days-pill{margin-left:auto}.spot-table th,.spot-table td{font-size:13px}}
@media(prefers-reduced-motion:reduce){.submission-success+span{animation:none}}

.component-summary{background:#fff;border:1px solid #e9e1eb;border-radius:18px;padding:25px 28px;margin:22px 0 28px}
.component-summary h2{font-size:20px;color:#33263f;margin:0 0 6px}
.component-summary p{color:#82758c;font-size:14px;margin:0 0 22px}
.component-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.component-stat{display:flex;flex-direction:column;gap:5px;background:#f8f5fa;border:1px solid #eee7f0;border-radius:12px;padding:17px 20px}
.component-stat span{font-size:14px;font-weight:700;color:#6e597e}
.component-stat strong{font-size:34px;color:#3d2758;line-height:1.15}
.component-stat small{color:#8b7c94;font-size:12px}
.component-track{height:12px;border-radius:20px;background:#e9e1ed;overflow:hidden}
.component-track span{display:block;height:100%;background:#8566a0}
.assessment-component-title{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin:28px 0 16px}
.assessment-component-title h2{font-size:23px;margin:0;color:#30283b}
.assessment-component-title>span{font-size:13px;color:#775d8a;font-weight:700}
.weighting-item strong small{font-size:12px;font-weight:500;color:#877b90}
.weighting-item>small{font-size:12px;color:#735d83}
.exam-component-panel{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid #e8deef;background:#f8f4fb;border-radius:16px;padding:22px 26px;margin:20px 0 30px}
.exam-component-panel .exam-eyebrow{font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;color:#826b91}
.exam-component-panel h3{font-size:20px;margin:6px 0;color:#362745}
.exam-component-panel p{font-size:13px;color:#776a81;margin:0}
.exam-component-panel>strong{font-size:35px;color:#55356e}
@media(max-width:650px){.component-summary-grid{grid-template-columns:1fr}.component-summary{padding:18px}.exam-component-panel{padding:18px}}

/* Explicit coursework and exam bar key */
.split-parts b{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.split-dot{display:inline-block;width:9px;height:9px;border-radius:3px;flex-shrink:0}
.cw-dot{background:#76588f}
.exam-dot{background:#c9b3d9}
.split-track{display:flex;background:#c9b3d9}
.split-track>span{background:#76588f}

/* Historical SPOT indicators: mitigation and GitLab tag instructions */
.mitigation-wrap,.git-tag-wrap{position:relative;display:inline-flex;align-items:center;vertical-align:middle;margin-left:7px}
.mitigation-badge{border:1px dashed #79638a;border-radius:4px;background:#f8f4fa;color:#513a67;font-size:11px;line-height:18px;font-weight:800;padding:0 5px;cursor:help}
.special-badge{display:inline-block;margin-left:7px;background:#20a4d8;color:white;border-radius:4px;font-size:11px;padding:2px 5px;font-weight:800}
.mitigation-tooltip,.git-tag-tooltip{position:absolute;z-index:20;bottom:calc(100% + 11px);left:50%;transform:translateX(-50%);background:#28232e;color:white;border-radius:11px;padding:12px 15px;box-shadow:0 12px 25px #21172c33;max-width:min(330px,85vw);min-width:220px;font-size:12px;font-weight:500;line-height:1.55;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s}
.mitigation-tooltip:after,.git-tag-tooltip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:#28232e}
.mitigation-wrap:hover .mitigation-tooltip,.mitigation-wrap:focus-within .mitigation-tooltip,.git-tag-wrap:hover .git-tag-tooltip,.git-tag-wrap:focus-within .git-tag-tooltip{opacity:1;visibility:visible}
.git-tag{margin-left:0!important;background:#f2eaf8!important;color:#65427e!important;border:1px solid #d8c5e5!important;font-size:12px!important;font-weight:750!important;padding:4px 8px!important}
.git-tag-tooltip{min-width:265px;max-width:320px;display:flex;flex-direction:column;gap:7px;white-space:normal;text-align:left}
.git-tag-tooltip strong{color:#fff;font-size:13px;overflow-wrap:anywhere}
.git-tag-tooltip span{color:#e5dfe9}
.git-tag-tooltip em{color:#dfc8ed;font-style:normal;font-weight:700}
.git-tag-tooltip small{color:#ffcf9f}
@media(max-width:600px){.git-tag-tooltip{left:auto;right:-30px;transform:none;min-width:220px}.git-tag-tooltip:after{left:auto;right:35px}}

/* Compact historical component results beneath the existing weighting bar */
.split-results{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;font-size:11px;color:#8a7c90;white-space:nowrap}
.split-results span{display:inline-flex;gap:4px;align-items:baseline}
.split-results strong{color:#584568;font-size:12px;font-weight:750}
@media(max-width:780px){.split-results{flex-wrap:wrap;gap:3px 12px;white-space:normal}}

/* Compact course facts at the start of each course page */
.course-facts-top{display:block;margin:10px 0 22px}
.course-facts-top>section{display:block}
.course-facts-top .section-head{margin:0 0 9px}
.course-facts-top .section-title{font-size:18px}
.course-facts-top .panel-pad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:12px 18px;gap:10px 18px}
.course-facts-top .info-line{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:5px 0;border:0}
.course-facts-top .info-line span{font-size:11px}
.course-facts-top .info-line b{font-size:13px}
.course-card h3{margin-top:0}
.course-card .course-card-footer{margin-top:26px}
@media(max-width:720px){.course-facts-top .panel-pad{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Visible semester sections within the academic overview */
.spot-table .semester-divider-row td{padding:11px 22px;background:#f4eef8;border-top:1px solid #e6dced;border-bottom:1px solid #e6dced;text-align:left}
.semester-divider-row span{font-size:11px;letter-spacing:.095em;text-transform:uppercase;font-weight:800;color:#735789}

/* Semester labels as small left-aligned tags rather than full-width table bands */
.spot-table .semester-divider-row,
.spot-table .semester-divider-row:hover{background:transparent}
.spot-table .semester-divider-row td{background:transparent;border-top:0;border-bottom:0;padding:17px 10px 7px;text-align:left}
.spot-table .semester-divider-row:first-child td{padding-top:15px}
.semester-divider-row span{display:inline-block;position:relative;left:-2px;background:#eee6f3;border:1px solid #e3d5ec;border-radius:7px;padding:5px 11px;color:#705187;font-size:11px;font-weight:750;letter-spacing:.025em;text-transform:none;line-height:1.2}

/* Restore full-width lavender semester divider bands (pre-tag design). */
.spot-table .semester-divider-row td{padding:11px 22px;background:#f4eef8;border-top:1px solid #e6dced;border-bottom:1px solid #e6dced;text-align:left}
.spot-table .semester-divider-row:hover td{background:#f4eef8}
.semester-divider-row span{display:inline;position:static;left:auto;background:transparent;border:0;border-radius:0;padding:0;color:#735789;font-size:11px;font-weight:800;letter-spacing:.095em;text-transform:uppercase;line-height:inherit}

/* Historical status and accessible tooltip portal */
.submission-missing{color:#c93b46!important;font-weight:650}
.submission-info{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:0;border:0;background:transparent;color:#84669a;font-size:14px;cursor:help;vertical-align:middle}
.spot-floating-hint{position:fixed;z-index:99999;width:max-content;max-width:min(300px,calc(100vw - 24px));padding:9px 12px;background:#33283d;color:#fff;border-radius:8px;box-shadow:0 5px 18px #24142b2b;font-size:12px;line-height:1.5;white-space:normal;pointer-events:none}
.mitigation-badge{cursor:help}

/* Course selector: each semester owns a complete row, not a floating heading over a single tile */
.spot-course-strip .semester-clusters{display:flex;flex-direction:column;align-items:stretch;gap:17px;width:100%}
.spot-course-strip .course-semester-cluster{display:grid;grid-template-columns:125px minmax(0,1fr);align-items:center;gap:12px;width:100%}
.spot-course-strip .course-semester-label{font-size:11px;letter-spacing:.07em;color:#796787;white-space:nowrap}
.spot-course-strip .course-semester-tabs{display:flex;flex-wrap:wrap;gap:9px}
.spot-course-strip .course-semester-tabs .course-tab{transition:background .15s,border-color .15s,transform .15s}
.spot-course-strip .course-semester-tabs .course-tab:hover{border-color:#d1bddd;background:#eee7f3;transform:translateY(-1px)}
@media(max-width:700px){.spot-course-strip .course-semester-cluster{grid-template-columns:1fr;gap:7px}}

/* Subtle purple edge accents for the three-deadline overview preview */
.deadline-preview .preview-deadlines{border:1px solid #e8ddeb;border-radius:16px;box-shadow:0 8px 25px rgba(73,43,93,.035);overflow:hidden}
.deadline-preview .preview-deadline{position:relative;padding:19px 22px 19px 27px;border-bottom:1px solid #eee7f0;background:#fff;transition:background .18s ease}
.deadline-preview .preview-deadline::before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:4px;border-radius:0 5px 5px 0;background:#c7b1d6}
.deadline-preview .preview-deadline:nth-child(2)::before{background:#a88abd}
.deadline-preview .preview-deadline:nth-child(3)::before{background:#83619c}
.deadline-preview .preview-deadline:hover{background:#fcf9fd}
.deadline-preview .preview-deadline:last-child{border-bottom:0}
.deadline-preview .preview-date{color:#684b7d}
.deadline-preview .days-pill{background:#f3ebf7;border:1px solid #eee2f4;color:#684e7a}
.deadline-preview .deadline-warning{background:#fffaf6}
.deadline-preview .days-warning{background:#fff0e8;border-color:#f5d7c7;color:#a64e23}

/* Tighter academic-year course picker while keeping clear semester grouping */
.spot-switcher{padding-top:14px!important;padding-bottom:14px!important}
.spot-course-strip{align-items:flex-start!important;gap:12px!important;min-height:0!important}
.spot-course-strip .semester-clusters{gap:8px!important}
.spot-course-strip .course-semester-cluster{grid-template-columns:110px minmax(0,1fr);gap:10px!important;min-height:0}
.spot-course-strip .course-semester-tabs{gap:7px!important}
.spot-course-strip .course-semester-tabs .course-tab{font-size:12px!important;padding:8px 11px!important;border-radius:7px;line-height:1.35}
.spot-course-strip .course-semester-label{font-size:10px!important;letter-spacing:.07em}
.spot-year-strip{padding-bottom:9px!important;margin-bottom:10px!important}
.spot-course-strip>.strip-label{margin-top:8px!important}
@media(max-width:700px){.spot-course-strip .course-semester-cluster{grid-template-columns:1fr;gap:6px!important}}
/* Deadlines: two-line course identifiers and truthful extension actions */
.extension-apply{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 11px;background:#eee6f5;color:#64447e;font-size:12px;font-weight:750;border:1px solid #e1d2ec;border-radius:7px;text-decoration:none}
.extension-apply:hover{background:#e3d6ee;color:#4a2f65}
.extension-unavailable{color:#8b8091;font-size:12px;white-space:nowrap}

/* Coursework countdown: only visible for unfinished assessments due within 10 days */
.weighting-item-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
.weighting-item-heading>span:first-child{min-width:0;overflow-wrap:anywhere}
.assessment-soon-tag{flex-shrink:0;white-space:nowrap;display:inline-block;background:#f0e5f7;color:#68437e;border:1px solid #e4d3ef;border-radius:6px;padding:4px 6px;font-size:10px;line-height:1.2;font-weight:800;letter-spacing:.02em}
@media(max-width:1100px){.weighting-item-heading{flex-wrap:wrap}}

/* Clean portal identity */
.profile-display{font-size:13px;font-weight:700;color:#59476a;padding:9px 13px;border-radius:22px;background:#f4eff6;white-space:nowrap}
.brand{gap:0}
.brand>div:last-child{display:flex;flex-direction:column}
.brand small{letter-spacing:0}
.spot-year-strip .year-tab{white-space:nowrap}
.page-header .eyebrow:empty{display:none}
@media(max-width:600px){.profile-display{font-size:11px;padding:7px 9px}}

/* Restrained academic table typography, replacing overly heavy headings */
.spot-table thead th{font-family:inherit!important;font-size:12px!important;font-weight:650!important;letter-spacing:.005em!important;color:#71667b!important;text-transform:none!important}
.spot-table .deadline-date-cell{font-family:inherit!important;font-size:13px!important;font-weight:500!important;letter-spacing:0!important;color:#51485a!important;white-space:nowrap}
.assessment-component-title>span{display:none!important}
/* Floating countdown tab straddles top edge; cards remain aligned */
.weighting-summary{align-items:stretch!important;gap:14px!important;padding-top:12px!important}
.weighting-item{position:relative!important;display:flex!important;flex-direction:column!important;min-width:0!important;padding-top:22px!important;overflow:visible!important}
.weighting-item-heading{display:block!important;min-height:54px!important}
.weighting-item-heading>span:first-child{display:block;overflow-wrap:anywhere}
.weighting-item .assessment-soon-tag{position:absolute!important;top:-12px!important;right:13px!important;z-index:2;display:inline-flex;align-items:center;border-radius:7px!important;background:#eee3f4!important;border:1px solid #dac4e8!important;color:#684c7d!important;padding:5px 10px!important;font-size:11px!important;font-weight:750!important;letter-spacing:0!important;text-transform:none!important;box-shadow:0 2px 3px rgba(52,29,69,.04)}
.weighting-item .weighting-due{margin-top:auto!important;padding-top:12px}

/* Compact course-year selector: maintain clear groups without a tall empty panel */
.spot-switcher{padding:11px 17px 13px!important}
.spot-year-strip{min-height:30px!important;padding-bottom:7px!important;margin-bottom:7px!important;gap:5px!important}
.spot-year-strip .year-tab{padding:5px 10px!important;font-size:12px!important}
.spot-course-strip{gap:10px!important;align-items:flex-start!important}
.spot-course-strip .semester-clusters{display:flex!important;flex-direction:column!important;gap:5px!important;flex:1!important}
.spot-course-strip .course-semester-cluster{display:grid!important;grid-template-columns:105px minmax(0,1fr)!important;align-items:center!important;gap:8px!important}
.spot-course-strip .course-semester-tabs{gap:5px!important}
.spot-course-strip .course-semester-tabs .course-tab{font-size:11px!important;padding:6px 9px!important;line-height:1.25!important}
.spot-course-strip .course-semester-label{font-size:10px!important;line-height:1.2!important}
.spot-course-strip>.strip-label{margin-top:7px!important}
.spot-student-bar{padding-top:10px!important;padding-bottom:10px!important}
@media(max-width:700px){.spot-course-strip .course-semester-cluster{grid-template-columns:1fr!important;gap:4px!important}}
/* Uniform due-date typography on deadline table, overriding inherited table cells */
.spot-table tbody td.deadline-date-cell,.spot-table td.deadline-date-cell{font-family:Arial,Helvetica,sans-serif!important;font-size:13px!important;font-weight:400!important;letter-spacing:0!important;line-height:1.45!important;color:#51485a!important;font-variant-numeric:tabular-nums}

/* Deadline tabs sit over the rounded upper-right corner of each assessment card. */
.weighting-item .assessment-soon-tag{right:-1px!important;top:-13px!important;border-radius:9px 13px 5px 9px!important}
/* University resource shortcuts in the left navigation */
.sidebar-quicklinks{margin-top:auto;padding:18px 8px 2px;border-top:1px solid rgba(255,255,255,.13)}
.quicklinks-heading{display:block;color:#ab9fba;font-size:10px;font-weight:750;letter-spacing:1.6px;margin:0 0 12px 6px}
.quicklinks-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.quicklinks-grid a{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px 6px;border-radius:8px;text-decoration:none;color:#cfc6d8;transition:background .15s,color .15s}
.quicklinks-grid a:hover,.quicklinks-grid a:focus-visible{background:#4b3662;color:white}
.quicklinks-grid a>span{font-family:Arial,sans-serif;font-size:19px;font-weight:700;line-height:1.2}
.quicklinks-grid a small{font-size:9px;white-space:nowrap}

/* The academic picker should size to its controls, not stretch its course grid across the viewport. */
.spot-switcher{padding:10px 15px 11px!important}
.spot-course-strip{display:flex!important;align-items:flex-start!important;gap:14px!important}
.spot-course-strip>.strip-label{flex:0 0 100px!important;min-width:100px!important;margin-top:7px!important}
.spot-course-strip .semester-clusters{flex:0 1 auto!important;width:max-content!important;max-width:calc(100% - 114px)!important;align-items:flex-start!important;gap:4px!important}
.spot-course-strip .course-semester-cluster{width:max-content!important;max-width:100%!important;grid-template-columns:98px max-content!important;gap:9px!important}
.spot-course-strip .course-semester-tabs{width:max-content!important;max-width:100%!important;flex-wrap:wrap!important}
.spot-course-strip .course-semester-tabs .course-tab{padding:5px 9px!important;font-size:11px!important}
@media(max-width:700px){.spot-course-strip>.strip-label{flex-basis:100%!important}.spot-course-strip .semester-clusters{max-width:100%!important;width:100%!important}.spot-course-strip .course-semester-cluster{grid-template-columns:1fr!important;width:100%!important}.spot-course-strip .course-semester-tabs{width:100%!important}}

/* Calm, consistent academic-results typography */
.spot-section .spot-table thead th{font-family:Arial,Helvetica,sans-serif!important;font-size:12px!important;font-weight:600!important;letter-spacing:0!important;line-height:1.45!important;color:#6e6378!important}
.spot-section .spot-table .total-row td{font-family:Arial,Helvetica,sans-serif!important;font-size:13px!important;font-weight:600!important;letter-spacing:0!important;line-height:1.5!important;color:#5a5063!important}
.spot-section .spot-table .total-row td:nth-child(2){font-weight:700!important;color:#39274f!important}
/* Countdown tab anchored at top-left, bisecting the card border */
.weighting-item .assessment-soon-tag{left:16px!important;right:auto!important;top:-14px!important;transform:none!important;border-radius:9px!important;padding:5px 11px!important}
.weighting-item{padding-top:29px!important}

/* Deadline table body only: clean and legible assessment names and dates. */
.spot-table tbody td.deadline-assessment-cell,
.spot-table tbody td.deadline-date-cell{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-size:13px!important;
  font-weight:400!important;
  letter-spacing:-.01em!important;
  line-height:1.55!important;
  color:#4f4958!important;
  text-transform:none!important;
}
.spot-table tbody td.deadline-assessment-cell{overflow-wrap:anywhere}
.spot-table tbody td.deadline-date-cell{font-variant-numeric:normal!important;white-space:nowrap}

/* Actual whitespace fix: limit the white selector panel itself to its content. */
@media(min-width:901px){
.spot-switcher{width:max-content!important;max-width:100%!important;min-width:0!important;display:block!important;padding:10px 18px 12px!important}
.spot-year-strip{width:100%!important}
.spot-course-strip{width:max-content!important;max-width:100%!important;padding:8px 0 0!important;gap:12px!important}
.spot-course-strip .semester-clusters{max-width:100%!important}
}
@media(max-width:900px){.spot-switcher{width:100%!important}.spot-course-strip{padding-top:8px!important;padding-bottom:4px!important}}

/* Explicit shrink-to-fit sizing (including on wide and mid-size screens). */
.spot-switcher{display:inline-block!important;width:fit-content!important;max-width:100%!important;min-width:0!important;vertical-align:top!important}
.spot-switcher .spot-year-strip{width:auto!important;max-width:100%!important}
.spot-switcher .spot-course-strip{width:fit-content!important;max-width:100%!important;flex-wrap:nowrap!important;padding:8px 0 2px!important}
.spot-switcher .spot-course-strip .semester-clusters{flex:0 0 auto!important;width:fit-content!important;max-width:100%!important}
.spot-switcher .spot-course-strip .course-semester-cluster{width:fit-content!important;max-width:100%!important}
@media(max-width:700px){.spot-switcher{display:block!important;width:100%!important}.spot-switcher .spot-course-strip{flex-wrap:wrap!important}.spot-switcher .spot-course-strip .semester-clusters{width:100%!important;flex:1 1 100%!important}}

/* Academic serif typography for inline course details (option 04). */
.inline-course-panel .inline-course-top h3{
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(25px,2.5vw,35px)!important;
  font-weight:400!important;
  letter-spacing:-.025em!important;
  line-height:1.2!important;
  color:#332348!important;
}
.inline-course-panel .inline-course-foot{
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:16px!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:1.45!important;
  color:#584568!important;
}

/* Align student identity and academic picker as one coherent column. */
.spot-student-bar,.spot-switcher{
  width: min(100%, 800px)!important;
  max-width:800px!important;
  margin-left:0!important;
  margin-right:0!important;
}
.spot-switcher{display:block!important}
@media(max-width:700px){
  .spot-student-bar,.spot-switcher{width:100%!important;max-width:100%!important}
}

/* Readable deadlines: measured scale, not oversized or heavy. */
.deadlines-table-wrap .spot-table thead th{
 font-size:13px!important;font-weight:650!important;line-height:1.5!important;
}
.deadlines-table-wrap .spot-table tbody td{
 font-size:15px!important;line-height:1.55!important;padding-top:15px!important;padding-bottom:15px!important;
}
.deadlines-table-wrap .spot-table tbody td.deadline-assessment-cell,
.deadlines-table-wrap .spot-table tbody td.deadline-date-cell{
 font-family:Georgia,"Times New Roman",serif!important;
 font-size:16px!important;font-weight:400!important;letter-spacing:0!important;
 line-height:1.55!important;color:#43394c!important;
}
.deadlines-table-wrap .spot-table .table-course-link{
 font-size:13px!important;font-weight:700!important;
}
.deadlines-table-wrap .spot-table .overview-course-name{
 font-size:14px!important;line-height:1.5!important;color:#766d7f!important;
}
.deadlines-table-wrap .spot-table .extension-apply{font-size:13px!important;padding:7px 12px!important}

/* Deadline readability pass: clearly visible at ordinary browser zoom. */
.deadlines-table-wrap .spot-table tbody td.deadline-assessment-cell,
.deadlines-table-wrap .spot-table tbody td.deadline-date-cell{
 font-family:Georgia,"Times New Roman",serif!important;
 font-size:18px!important;
 font-weight:400!important;
 line-height:1.55!important;
 color:#342b40!important;
}
.deadlines-table-wrap .spot-table .table-course-link{font-size:15px!important}
.deadlines-table-wrap .spot-table .overview-course-name{font-size:16px!important;color:#61576a!important}
.deadlines-table-wrap .spot-table thead th{font-size:14px!important}
.deadlines-table-wrap .spot-table .extension-apply{font-size:14px!important}

/* Restore the original clean sans-serif style while keeping improved readability. */
.deadlines-table-wrap .spot-table tbody td.deadline-assessment-cell,
.deadlines-table-wrap .spot-table tbody td.deadline-date-cell{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-size:18px!important;
  font-weight:400!important;
  letter-spacing:-.01em!important;
  line-height:1.55!important;
  color:#43394c!important;
}

/* Restore the original compact deadline typography; retain clean sans-serif styling. */
.deadlines-table-wrap .spot-table tbody td.deadline-assessment-cell,
.deadlines-table-wrap .spot-table tbody td.deadline-date-cell{
 font-size:13px!important;
 font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
 font-weight:400!important;
 letter-spacing:-.01em!important;
}
.deadlines-table-wrap .spot-table .table-course-link{font-size:12px!important}
.deadlines-table-wrap .spot-table .overview-course-name{font-size:13px!important}
.deadlines-table-wrap .spot-table thead th{font-size:12px!important}
.deadlines-table-wrap .spot-table .extension-apply{font-size:12px!important}
.deadlines-table-wrap .spot-table tbody td{padding-top:11px!important;padding-bottom:11px!important}

/* Academic overview: a single compact selector, not two large empty cards. */
.spot-switcher.compact-academic-picker{
 display:inline-flex!important;flex-direction:column!important;
 width:max-content!important;max-width:100%!important;min-width:0!important;
 padding:12px 16px!important;margin-bottom:16px!important;
}
.compact-academic-picker .spot-year-strip{
 width:auto!important;display:flex!important;align-items:center!important;
 min-height:0!important;gap:6px!important;margin:0 0 9px!important;
 padding:0 0 9px!important;
}
.compact-academic-picker .spot-course-strip{
 width:max-content!important;max-width:100%!important;min-height:0!important;
 display:flex!important;align-items:flex-start!important;gap:12px!important;
 padding:0!important;margin:0!important;
}
.compact-academic-picker .spot-course-strip>.strip-label{
 flex:0 0 82px!important;min-width:82px!important;margin:6px 0 0!important;
}
.compact-academic-picker .spot-course-strip .semester-clusters{
 flex:0 0 auto!important;width:max-content!important;max-width:100%!important;
 gap:4px!important;
}
.compact-academic-picker .spot-course-strip .course-semester-cluster{
 grid-template-columns:92px max-content!important;gap:8px!important;
 width:max-content!important;max-width:100%!important;
}
.compact-academic-picker .spot-course-strip .course-semester-tabs{
 gap:5px!important;width:max-content!important;max-width:100%!important;
}
.compact-academic-picker .spot-course-strip .course-semester-tabs .course-tab{
 padding:5px 9px!important;
}
@media(max-width:700px){
 .spot-switcher.compact-academic-picker{display:flex!important;width:100%!important}
 .compact-academic-picker .spot-year-strip{flex-wrap:wrap!important}
 .compact-academic-picker .spot-course-strip{flex-wrap:wrap!important}
 .compact-academic-picker .spot-course-strip>.strip-label{flex-basis:100%!important}
 .compact-academic-picker .spot-course-strip .semester-clusters{width:100%!important}
 .compact-academic-picker .spot-course-strip .course-semester-cluster{grid-template-columns:1fr!important;width:100%!important}
}

/* Identity belongs in the academic selector, without a second full-width card. */
.compact-academic-picker .compact-profile-row{
 display:flex;align-items:center;gap:12px;
 padding:2px 2px 11px;margin-bottom:10px;
 border-bottom:1px solid #eee9f0;
}
.compact-academic-picker .compact-profile-row .student-avatar-mini{
 width:39px;height:39px;min-width:39px;border-radius:11px;
 display:flex;align-items:center;justify-content:center;
 background:#eee6f4;color:#694b82;font-size:13px;font-weight:750;
}
.compact-academic-picker .compact-profile-info{
 display:flex;flex-direction:column;gap:2px;min-width:0;
}
.compact-academic-picker .compact-profile-info strong{
 font-size:14px;line-height:1.3;color:#30283a;font-weight:700;
}
.compact-academic-picker .compact-profile-info span{
 font-size:12px;line-height:1.35;color:#857b8e;
}

/* Sidebar typography: refined academic wordmark and calmer navigation. */
.sidebar .brand strong{
 font-family:Georgia,"Times New Roman",serif!important;
 font-size:29px!important;
 font-weight:500!important;
 letter-spacing:.025em!important;
 line-height:1.15!important;
}
.sidebar .brand small{
 font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif!important;
 font-size:12px!important;
 font-weight:400!important;
 letter-spacing:.01em!important;
}
.sidebar .nav-item{
 font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif!important;
 font-size:15px!important;
 font-weight:500!important;
 letter-spacing:-.015em!important;
 line-height:1.45!important;
}
.sidebar .nav-item.active{font-weight:650!important}

/* Overview: distinct slim profile card and breathable, content-sized course picker. */
.overview-profile-card{
 display:flex;align-items:center;gap:13px;
 background:#fff;border:1px solid var(--border);border-radius:15px;
 padding:13px 18px;margin:0 0 12px;box-shadow:var(--shadow);
 width:fit-content;max-width:100%;min-width:min(100%,420px);
}
.overview-profile-card .student-avatar-mini{
 width:43px;height:43px;flex:0 0 43px;border-radius:12px;
 display:grid;place-items:center;background:#eee6f4;color:#694b82;
 font-size:14px;font-weight:750;
}
.overview-profile-card .compact-profile-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.overview-profile-card .compact-profile-info strong{font-size:15px;font-weight:700;line-height:1.35;color:#30283a}
.overview-profile-card .compact-profile-info span{font-size:13px;line-height:1.4;color:#857b8e}
.spot-switcher.compact-academic-picker{padding:16px 20px!important}
.compact-academic-picker .spot-year-strip{gap:10px!important;margin-bottom:14px!important;padding-bottom:13px!important}
.compact-academic-picker .spot-course-strip{gap:20px!important}
.compact-academic-picker .spot-course-strip>.strip-label{flex:0 0 90px!important;min-width:90px!important}
.compact-academic-picker .spot-course-strip .semester-clusters{
 display:flex!important;flex-direction:column!important;align-items:stretch!important;
 gap:10px!important;width:auto!important;
}
.compact-academic-picker .spot-course-strip .course-semester-cluster{
 display:grid!important;grid-template-columns:120px minmax(0,1fr)!important;
 gap:14px!important;width:100%!important;align-items:center!important;
}
.compact-academic-picker .spot-course-strip .course-semester-tabs{
 display:flex!important;flex-wrap:wrap!important;gap:9px!important;
 width:auto!important;max-width:100%!important;
}
.compact-academic-picker .spot-course-strip .course-semester-tabs .course-tab{
 padding:8px 12px!important;font-size:12px!important;line-height:1.35!important;
}
@media(max-width:700px){
 .overview-profile-card{width:100%;min-width:0}
 .compact-academic-picker .spot-course-strip .semester-clusters{width:100%!important}
 .compact-academic-picker .spot-course-strip .course-semester-cluster{
  grid-template-columns:1fr!important;gap:7px!important;
 }
}

/* Calm, non-bold sidebar typography. */
.sidebar .brand strong{
 font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif!important;
 font-size:24px!important;font-weight:400!important;letter-spacing:.045em!important;
}
.sidebar .nav-item,.sidebar .nav-item.active{
 font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif!important;
 font-size:15px!important;font-weight:400!important;letter-spacing:0!important;
}
.sidebar .nav-item.active{color:#fff!important}
/* Course names: smaller, lighter editorial serif instead of oversized bold Georgia. */
.inline-course-top h3,.course-heading-centered h3{
 font-family:Georgia,"Times New Roman",serif!important;
 font-size:clamp(25px,2.6vw,36px)!important;
 font-weight:400!important;letter-spacing:-.025em!important;
 line-height:1.22!important;
}

/* Centre the module heading against the full card, independently of the close control. */
.inline-course-panel .inline-course-top{
 position:relative!important;display:grid!important;
 grid-template-columns:minmax(0,1fr)!important;
 justify-items:center!important;
 padding-left:28px!important;padding-right:28px!important;
}
.inline-course-panel .course-heading-centered{
 box-sizing:border-box!important;width:100%!important;
 margin-inline:auto!important;text-align:center!important;
}
.inline-course-panel .course-heading-centered h3{
 display:block!important;width:100%!important;
 margin-left:auto!important;margin-right:auto!important;
 text-align:center!important;
}
.inline-course-panel .inline-close{position:absolute!important;right:19px!important;top:20px!important}

/* Grades & progress dashboard */
.progress-year-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.progress-year-card{padding:23px 25px!important}
.progress-year-label{font-size:13px;color:#74657e;font-weight:600}
.progress-year-value{font:400 39px/1.3 Georgia,"Times New Roman",serif;color:#34214f;margin:10px 0 4px}
.progress-year-note{font-size:12px;color:#8a8090}
.progress-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.progress-panel{padding:24px 26px!important;margin-bottom:16px}
.progress-dashboard-grid .progress-panel{margin-bottom:0}
.progress-panel h2{font:400 24px/1.3 Georgia,"Times New Roman",serif;color:#30253e;margin:0 0 7px}
.progress-panel>p,.progress-target-panel>div>p{color:#7b7182;font-size:13px;margin:0 0 22px;line-height:1.6}
.progress-chart{display:flex;flex-direction:column;gap:18px;margin:24px 0}
.progress-chart-row,.progress-credit-row{display:grid;grid-template-columns:62px minmax(0,1fr) 60px;gap:12px;align-items:center;font-size:13px;color:#655870}
.progress-chart-row strong{font-weight:600;text-align:right}
.progress-credit-row{grid-template-columns:55px minmax(0,1fr) 95px}
.progress-credit-row>span:last-child{text-align:right;font-size:12px}
.progress-chart-track{height:10px;background:#f0eaf3;border-radius:20px;overflow:hidden}
.progress-chart-fill{height:100%;background:#9776b2;border-radius:20px}
.progress-caption{font-size:11px;color:#8b8191;line-height:1.6;margin-top:16px}
.progress-big-stat{font:400 37px/1.3 Georgia,"Times New Roman",serif;color:#34214f;margin-top:12px}
.progress-big-stat small{font:400 12px/1.4 Inter,ui-sans-serif,sans-serif;color:#827788}
.progress-target-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.progress-target-fields label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#6b5b77;font-weight:600}
.progress-target-fields input{border:1px solid #e7deec;border-radius:10px;padding:10px 12px;background:#fbf9fc;color:#34214f;font-size:16px;width:100%;max-width:100%}
.progress-target-result{background:#f3eef7;color:#49315d;padding:15px 17px;border-radius:11px;margin-top:18px;font-size:14px;line-height:1.5}
@media(max-width:820px){.progress-dashboard-grid,.progress-year-grid{grid-template-columns:1fr}.progress-target-fields{grid-template-columns:1fr}}

/* Module grade planner */
.planner-top{display:flex;justify-content:space-between;align-items:end;gap:18px;flex-wrap:wrap;margin:22px 0}
.planner-top>label{display:flex;flex-direction:column;gap:7px;min-width:240px;flex:1;font-size:12px;color:#756680;font-weight:600}
.planner-top select{border:1px solid #e7deec;border-radius:10px;padding:12px 13px;background:#fbf9fc;color:#38234f;font:inherit;max-width:100%;width:100%}
.planner-goals{display:flex;flex-wrap:wrap;gap:7px}
.planner-goal{border:1px solid #e7ddec;border-radius:9px;padding:10px 13px;color:#6b507f;background:#faf7fc;font-size:12px;font-weight:500}
.planner-goal.selected{background:#34214f;border-color:#34214f;color:#fff}
.planner-assessment-head,.planner-assessment-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 130px;align-items:center;gap:14px}
.planner-assessment-head{font-size:11px;color:#8c8192;font-weight:600;padding:12px 14px;background:#f7f3f8;border-radius:9px}
.planner-assessment-row{padding:11px 14px;border-bottom:1px solid #eee8f0;color:#51475a;font-size:13px}
.planner-assessment-row>span:first-child{overflow-wrap:anywhere}
.planner-assessment-row input{min-width:0;width:100%;border:1px solid #e8dfec;background:#fff;border-radius:8px;padding:9px 10px;color:#34214f;font-size:13px}
.planner-result{background:#f5f0f8;border-radius:12px;padding:19px 20px;margin-top:20px;color:#49365b}
.planner-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.planner-metrics>div{display:flex;flex-direction:column;gap:4px}
.planner-metrics span{font-size:11px;color:#81708d}
.planner-metrics strong{font:400 22px/1.4 Georgia,"Times New Roman",serif}
.planner-result p{font-size:13px;margin:15px 0 0;line-height:1.6}
@media(max-width:650px){.planner-assessment-head,.planner-assessment-row{grid-template-columns:minmax(0,1fr) 48px 90px;gap:7px}.planner-metrics{grid-template-columns:1fr}.planner-top>label{min-width:0}}

/* Overview: use previously empty upper-right area for a compact deadline list. */
.overview-top-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr);gap:20px;align-items:start;margin-bottom:20px}
.overview-academic-column{min-width:0}
.overview-top-grid .overview-profile-card{width:100%;max-width:100%;margin-bottom:12px}
.overview-top-grid .compact-academic-picker{box-sizing:border-box;width:100%!important;max-width:100%!important;margin-bottom:0!important}
.overview-top-grid .spot-course-strip .semester-clusters{min-width:0}
.overview-deadline-column{min-width:0}
.overview-deadline-column .deadline-preview{margin:0!important;padding:0!important}
.overview-deadline-column .deadline-preview .section-head{margin:0 0 8px!important;gap:8px}
.overview-deadline-column .deadline-preview .section-title{font-size:23px!important}
.overview-deadline-column .deadline-preview .section-help{font-size:12px!important;margin:0 0 12px!important}
.overview-deadline-column .preview-deadlines{border-radius:14px}
.overview-deadline-column .preview-deadline{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;padding:13px 15px 13px 19px!important}
.overview-deadline-column .preview-date{flex:auto!important;font-size:12px!important;font-weight:600!important}
.overview-deadline-column .preview-detail{min-width:0;gap:4px}
.overview-deadline-column .preview-detail strong{font-size:12px!important;font-weight:550!important;line-height:1.45!important;overflow-wrap:anywhere}
.overview-deadline-column .preview-detail small{font-size:11px!important;line-height:1.35!important}
.overview-deadline-column .days-pill{align-self:flex-start;margin:2px 0 0!important;font-size:11px!important}
@media(max-width:1050px){.overview-top-grid{grid-template-columns:1fr}.overview-deadline-column .preview-deadline{flex-direction:row!important;align-items:center!important;flex-wrap:wrap!important}.overview-deadline-column .preview-date{flex:0 0 100px!important}.overview-deadline-column .preview-detail{flex:1 1 170px}}
@media(max-width:600px){.overview-top-grid{gap:15px}.overview-deadline-column .preview-deadline{flex-direction:column!important;align-items:stretch!important}.overview-deadline-column .preview-date{flex:auto!important}}

/* Restore the full-sized, readable deadlines card: no clipping or internal scrollbar. */
@media(min-width:1051px){
 .overview-top-grid{position:static!important;align-items:start!important}
 .overview-top-grid .overview-deadline-column{position:static!important;width:auto!important;max-height:none!important;overflow:visible!important}
 .overview-deadline-column .preview-deadline{padding:11px 15px 11px 19px!important;gap:4px!important}
 .overview-deadline-column .deadline-preview .section-help{margin-bottom:7px!important}
 .overview-top-grid{margin-bottom:8px!important}
}


/* Restored overview layout; compact two-item viewport for deadline list. */
@media(min-width:1051px){
 .overview-top-grid{grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr)!important}
}
.overview-deadline-column .preview-deadlines{
 max-height:224px!important;overflow-y:auto!important;overscroll-behavior:contain;
 scrollbar-width:thin;scrollbar-color:#c9b5d3 #f5f0f7;
}
.overview-deadline-column .preview-deadline{
 min-height:112px!important;box-sizing:border-box!important;
}
@media(max-width:1050px){
 .overview-deadline-column .preview-deadlines{max-height:224px!important}
 .overview-deadline-column .preview-deadline{min-height:112px!important}
}

/* Comfortable breathing room before Course results without changing deadline card. */
.overview-top-grid + .spot-section{margin-top:30px!important}
@media(max-width:700px){.overview-top-grid + .spot-section{margin-top:24px!important}}
