/* CampusOne Student Experience V3 -------------------------------------------------- */
.co-ui-v3 .co-desktop-sidebar-toggle{display:none!important}

/* Sidebar course dropdown */
.co-course-nav-group{margin:0;padding:0;border:0}
.co-course-nav-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:0 12px;border-radius:7px;color:var(--co-sidebar-text,#cbd5db);cursor:pointer;font-weight:600;transition:background .15s ease,color .15s ease}
.co-course-nav-summary::-webkit-details-marker{display:none}
.co-course-nav-summary:hover,.co-course-nav-group[open]>.co-course-nav-summary{background:rgba(255,255,255,.055);color:#fff}
.co-summary-main{display:flex;align-items:center;gap:12px;min-width:0}.co-summary-main>.co-icon{width:18px;height:18px;flex:0 0 18px}.co-course-nav-chevron{width:14px;height:14px;transition:transform .16s ease}.co-course-nav-group[open] .co-course-nav-chevron{transform:rotate(90deg)}
.co-course-nav-children{display:grid;gap:2px;padding:4px 0 6px 38px}.co-course-nav-children a{display:flex!important;align-items:baseline!important;gap:7px!important;min-height:31px!important;padding:5px 9px!important;border-radius:6px!important;font-size:12px!important;color:#aebcc3!important}.co-course-nav-children a:hover,.co-course-nav-children a.is-active{background:rgba(31,133,99,.18)!important;color:#ecfff8!important}.co-course-nav-children a.is-active{box-shadow:inset 2px 0 #43b98d}.co-course-nav-children strong{font-size:11px;color:inherit}.co-course-nav-children span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-course-nav-all{font-weight:700}.co-course-nav-empty{padding:6px 9px;font-size:11px;color:#82939b}
.co-sidebar-collapsed .co-course-nav-summary{justify-content:center;padding:0}.co-sidebar-collapsed .co-course-nav-summary .co-summary-main>span,.co-sidebar-collapsed .co-course-nav-chevron,.co-sidebar-collapsed .co-course-nav-children{display:none!important}.co-sidebar-collapsed .co-course-nav-summary .co-icon{margin:0}

/* Explicit course completion */
.co-course-item-v3 .co-course-copy{min-width:0}.co-course-completion-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;font-size:10px;color:#71818b}.co-course-completion-label strong{font-size:10px;color:#126f55}.co-course-item-v3 .co-progress{margin-top:4px}

/* ManageBac-inspired two-week academic board */
.co-two-week-panel{margin-top:12px;background:#fff;border:1px solid #d7e0e4;border-radius:8px;overflow:hidden}.co-two-week-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px 12px;border-bottom:1px solid #e3eaed}.co-two-week-head h2{margin:2px 0 2px;font-size:16px}.co-two-week-head p{margin:0;color:#6e7d86;font-size:11px}.co-panel-eyebrow{text-transform:uppercase;letter-spacing:.09em;color:#12805e;font-size:9px;font-weight:800}.co-two-week-tools{display:flex;align-items:center;gap:8px;white-space:nowrap}.co-two-week-tools>strong{min-width:142px;text-align:center;font-size:11px}.co-two-week-tools .co-text-link{font-size:11px;font-weight:700;color:#117457;margin-left:3px}
.co-assessment-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:8px 16px;background:#fafcfc;border-bottom:1px solid #e5ebee;font-size:10px;color:#64747d}.co-assessment-legend span{display:flex;align-items:center;gap:5px}.co-assessment-legend i{width:8px;height:8px;border-radius:2px;display:block}.co-assessment-legend i.assignment{background:#309d6c}.co-assessment-legend i.quiz{background:#3478c9}.co-assessment-legend i.test{background:#d69a28}.co-assessment-legend i.exam{background:#c84a4a}.co-assessment-legend i.general{background:#8b9aa2}
.co-two-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(2,minmax(108px,auto));border-left:1px solid #e3e9ec}.co-two-day{min-width:0;border-right:1px solid #e3e9ec;border-bottom:1px solid #e3e9ec;background:#fff;padding:8px}.co-two-day.is-weekend{background:#fbfcfc}.co-two-day.is-today{box-shadow:inset 0 3px #16815f;background:#fbfffd}.co-two-day-head{display:flex;align-items:baseline;gap:4px;margin-bottom:7px;color:#75848c}.co-two-day-head span{font-size:9px;text-transform:uppercase;font-weight:800}.co-two-day-head strong{font-size:16px;color:#26353d}.co-two-day-head small{font-size:9px;text-transform:uppercase}.co-two-day.is-today .co-two-day-head strong{color:#0f7354}.co-two-day-events{display:grid;gap:4px}.co-two-no-event{font-size:11px;color:#c4cdd1}.co-two-event{display:flex;align-items:flex-start;gap:5px;padding:4px 5px;border-radius:5px;text-decoration:none!important;font-size:9px;line-height:1.2;border:1px solid transparent;min-width:0}.co-two-event .co-event-dot{width:5px;height:5px;border-radius:50%;margin-top:3px;flex:0 0 5px}.co-two-event-copy{display:block;min-width:0}.co-two-event-copy strong{display:block;font-size:8px;letter-spacing:.02em}.co-two-event-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-two-event.assignment{background:#ebf7f1;color:#176a4e;border-color:#cfeadb}.co-two-event.assignment .co-event-dot{background:#309d6c}.co-two-event.quiz{background:#eef5fd;color:#265f9f;border-color:#d8e7f7}.co-two-event.quiz .co-event-dot{background:#3478c9}.co-two-event.test{background:#fff6e5;color:#966514;border-color:#f1dfbb}.co-two-event.test .co-event-dot{background:#d69a28}.co-two-event.exam{background:#fdf0f0;color:#9c3636;border-color:#f1d1d1}.co-two-event.exam .co-event-dot{background:#c84a4a}.co-two-event.general{background:#f2f5f6;color:#596970;border-color:#e2e7e9}.co-two-event.general .co-event-dot{background:#8b9aa2}
.co-upcoming-strip{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:12px 16px}.co-upcoming-title{padding-top:3px}.co-upcoming-title strong{display:block;font-size:12px}.co-upcoming-title small{display:block;margin-top:3px;color:#7a8991;font-size:10px}.co-upcoming-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.co-upcoming-item{display:grid;grid-template-columns:34px auto minmax(0,1fr);align-items:center;gap:8px;padding:7px 8px;border:1px solid #e1e7ea;border-radius:6px;text-decoration:none!important;color:inherit}.co-upcoming-item:hover{border-color:#a9cabb;background:#fcfffd}.co-upcoming-date{text-align:center;border-right:1px solid #e4eaed;padding-right:7px}.co-upcoming-date strong{display:block;font-size:15px;line-height:1}.co-upcoming-date span{font-size:8px;text-transform:uppercase;color:#6e7c84}.co-type-pill{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:3px 5px;border-radius:4px}.co-type-pill.assignment{background:#e6f5ed;color:#176a4e}.co-type-pill.quiz{background:#e9f2fc;color:#265f9f}.co-type-pill.test{background:#fff3d9;color:#966514}.co-type-pill.exam{background:#fbe8e8;color:#9c3636}.co-type-pill.general{background:#edf1f2;color:#596970}.co-upcoming-copy{min-width:0}.co-upcoming-copy strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-upcoming-copy small{display:block;margin-top:2px;font-size:9px;color:#798890}

/* Persistent in-course workspace navigation */
.co-course-workspace-bar{position:sticky;top:49px;z-index:34;background:#fff;border-bottom:1px solid #dbe3e6;box-shadow:0 2px 7px rgba(25,45,54,.035)}.co-course-workspace-inner{max-width:1180px;margin:0 auto;min-height:66px;padding:8px 16px;display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:18px}.co-course-workspace-title{display:flex;align-items:center;gap:9px;text-decoration:none!important;color:#203039;min-width:0}.co-course-workspace-code{display:grid;place-items:center;min-width:47px;height:37px;padding:0 7px;border-radius:6px;background:#e8f4ef;color:#116e52;font-size:10px;font-weight:900}.co-course-workspace-title>span:last-child{min-width:0}.co-course-workspace-title strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-course-workspace-title small{display:block;margin-top:2px;color:#7a8991;font-size:9px}.co-course-tabs{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none}.co-course-tabs::-webkit-scrollbar{display:none}.co-course-tab{position:relative;padding:10px 9px 9px;text-decoration:none!important;color:#63727a;font-size:10px;font-weight:700;white-space:nowrap;border-radius:5px}.co-course-tab:hover{background:#f4f8f6;color:#176d53}.co-course-tab.is-active{color:#116f53;background:#edf7f2}.co-course-tab.is-active:after{content:"";position:absolute;left:9px;right:9px;bottom:2px;height:2px;border-radius:2px;background:#16815f}.co-course-exit{font-size:10px;font-weight:700;color:#607078;text-decoration:none!important;white-space:nowrap}.co-course-exit:hover{color:#117457}

/* Timetable */
.co-weekly-timetable .co-panel-title>div h2{margin:0}.co-weekly-timetable .co-panel-title>div small{display:block;color:#7a8991;font-size:9px;margin-top:2px}.co-session-count{font-size:9px;color:#63747c;background:#f1f5f4;border-radius:20px;padding:4px 8px}.co-timetable-scroll{overflow-x:auto}.co-timetable-days{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));min-width:1085px}.co-timetable-day{border-right:1px solid #e1e8eb;min-height:340px}.co-timetable-day:last-child{border-right:0}.co-timetable-day>header{min-height:58px;padding:9px 10px;border-bottom:1px solid #e1e8eb;background:#fafcfc}.co-timetable-day>header span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#7b8990;font-weight:800}.co-timetable-day>header strong{display:block;font-size:12px;margin-top:2px}.co-timetable-day>header small{display:inline-block;margin-top:3px;color:#117457;font-size:8px;font-weight:800}.co-timetable-day.is-today>header{background:#edf7f2;box-shadow:inset 0 3px #16815f}.co-timetable-sessions{padding:7px;display:grid;gap:7px}.co-timetable-session{border:1px solid #dce5e8;border-left:3px solid #16815f;border-radius:6px;padding:8px;background:#fff}.co-session-time{display:flex;gap:3px;align-items:baseline;color:#405058}.co-session-time strong{font-size:11px;color:#142a34}.co-session-time span{font-size:9px}.co-session-course{margin-top:5px}.co-session-course strong{display:block;font-size:10px;color:#126f55}.co-session-course span{display:block;font-size:9px;line-height:1.25;margin-top:1px}.co-session-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.co-session-meta span{font-size:8px;padding:2px 4px;border-radius:3px;background:#f0f4f5;color:#5f7078}.co-session-lecturers{font-size:8px;color:#75858d;margin-top:5px}.co-no-classes{padding:18px 6px;text-align:center;color:#a4afb4;font-size:9px}.co-timetable-empty{padding:46px 20px;text-align:center;color:#65757d}.co-timetable-empty>.co-icon{width:28px;height:28px;color:#16815f}.co-timetable-empty h3{margin:9px 0 4px;font-size:14px;color:#24353d}.co-timetable-empty p{max-width:650px;margin:0 auto;font-size:11px;line-height:1.55}

@media (max-width:1100px){.co-two-week-grid{overflow-x:auto;grid-template-columns:repeat(7,minmax(125px,1fr));min-width:875px}.co-two-week-panel{overflow:hidden}.co-two-window{overflow-x:auto}.co-upcoming-strip{grid-template-columns:1fr}.co-upcoming-items{grid-template-columns:1fr}.co-course-workspace-inner{grid-template-columns:1fr auto}.co-course-tabs{grid-column:1/-1;order:3}.co-course-exit{grid-column:2;grid-row:1}}
@media (max-width:900px){.co-course-workspace-bar{top:49px}.co-course-workspace-inner{padding-inline:12px}.co-course-workspace-title{max-width:70vw}.co-course-exit{display:none}.co-two-week-head{align-items:flex-start;flex-direction:column}.co-two-week-tools{width:100%;justify-content:flex-start;overflow-x:auto}.co-two-week-tools .co-text-link{margin-left:auto}.co-two-week-grid{grid-template-columns:repeat(7,minmax(118px,1fr));min-width:826px}.co-course-nav-group{margin:0 4px}.co-course-nav-children{padding-left:36px}}
@media (max-width:620px){.co-two-week-grid{grid-template-columns:repeat(7,minmax(108px,1fr));min-width:756px}.co-assessment-legend{gap:10px}.co-upcoming-item{grid-template-columns:32px auto minmax(0,1fr)}.co-course-workspace-title small{display:none}.co-course-workspace-inner{gap:8px}.co-course-tab{padding-inline:7px}.co-timetable-days{grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px}}
