/* Campus-wide design system, shared with the materials library. */
:root{
 --brand-gradient:linear-gradient(115deg,#f0935b 0%,#eb4c3f 100%);
 --brand-gradient-reverse:linear-gradient(115deg,#eb4c3f 0%,#f0935b 100%);
 --campus-line:rgba(235,76,63,.18);
 --campus-tint:rgba(240,147,91,.08);
 --campus-hover:rgba(240,147,91,.13);
 --campus-shadow:0 8px 28px rgba(74,34,24,.045);
 --bs-border-color:var(--campus-line);
}
/* Rounded gradient banners carry the same hierarchy into every module. */
#layoutSidenav_content main>.page-header-light{
 position:relative;isolation:isolate;overflow:hidden;width:calc(100% - 3rem);max-width:1392px;
 margin:1.5rem auto 0;border:0!important;border-radius:1.35rem;
 background:var(--brand-gradient)!important;color:#171210;
}
#layoutSidenav_content main>.page-header-light>.container-xl{position:relative;z-index:1;padding:2.25rem 2.75rem!important}
#layoutSidenav_content main>.page-header-light:after{
 content:"";position:absolute;z-index:0;pointer-events:none;width:390px;height:390px;right:-170px;top:-200px;
 border:1px solid rgba(255,255,255,.24);border-radius:50%;background:transparent;
 box-shadow:0 0 0 55px rgba(255,255,255,.06),0 0 0 110px rgba(255,255,255,.04);
}
#layoutSidenav_content main>.page-header-light .page-header-title{color:#171210!important;font-size:clamp(1.65rem,2.5vw,2.2rem);font-weight:750;line-height:1.2;letter-spacing:-.035em}
#layoutSidenav_content main>.page-header-light .text-primary{color:#231612!important;font-size:.67rem;letter-spacing:.15em;font-weight:800}
#layoutSidenav_content main>.page-header-light .text-muted{color:#231612!important;line-height:1.75;font-size:.88rem}
#layoutSidenav_content main>.page-header-light a:not(.btn){color:#171210!important}
#layoutSidenav_content main>.page-header-light .btn{min-height:42px;border-color:rgba(0,0,0,.17);background:rgba(255,255,255,.9);color:#171210!important;box-shadow:none}
#layoutSidenav_content main>.page-header-light .btn:hover{background:#fff;box-shadow:0 5px 14px rgba(74,34,24,.1)}
/* Surfaces stay quiet, with thin borders, gentle shadows and warm accents. */
.card{
 border:1px solid var(--campus-line);border-radius:1rem;
 background-color:var(--brand-surface);box-shadow:var(--campus-shadow);
}
.card:hover{border-color:rgba(235,76,63,.3)}
.card>.card-header{
 padding:1.1rem 1.4rem;border:0;border-bottom:1px solid var(--campus-line);
 background:var(--brand-surface)!important;box-shadow:inset 3px 0 #eb4c3f;
 border-radius:calc(1rem - 1px) calc(1rem - 1px) 0 0;font-weight:700;
}
.card>.card-header small{margin-top:.25rem;line-height:1.5}
.card>.card-footer{border-color:var(--campus-line);background:var(--brand-surface);padding:1rem 1.4rem}
.card>.card-footer:last-child{border-radius:0 0 calc(1rem - 1px) calc(1rem - 1px)}
.course-card,.institution-card,.event-card,.class-card,.assignment-card,.certificate-card{transition:transform .18s,box-shadow .18s,border-color .18s}
.course-card:hover,.institution-card:hover,.event-card:hover,.class-card:hover,.assignment-card:hover,.certificate-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(74,34,24,.08)}
.kpi-card,.grade-kpi,.progress-kpi,.class-kpi,.quiz-kpi,.assignment-kpi,.enrollment-kpi{border-top:3px solid #f0935b}
.kpi-card .icon-stack,.course-admin-icon,.module-order,.lesson-play,.date-box,.event-date{background:linear-gradient(135deg,rgba(240,147,91,.16),rgba(235,76,63,.06));color:var(--brand-coral);border:1px solid var(--campus-line);border-radius:.75rem}
.kpi-number{letter-spacing:-.035em;font-weight:750}.kpi-card .text-muted{font-size:.78rem}
/* Primary actions share the library gradient; secondary controls stay outlined. */
.btn{border-radius:.65rem;transition:background-color .18s,box-shadow .18s,transform .18s}
.btn.btn-primary,.btn.btn-orange{
 --bs-btn-color:#171210;--bs-btn-hover-color:#171210;--bs-btn-active-color:#171210;
 --bs-btn-disabled-color:#171210;--bs-btn-border-color:transparent;
 background:var(--brand-gradient);border-color:transparent;color:#171210;font-weight:700;box-shadow:none;
}
.btn.btn-primary:hover,.btn.btn-orange:hover{background:var(--brand-gradient-reverse);color:#171210;box-shadow:0 5px 14px rgba(235,76,63,.2);transform:translateY(-1px)}
.btn.btn-primary:active,.btn.btn-orange:active{background:var(--brand-gradient);color:#171210;transform:none}
.btn.btn-primary:disabled,.btn.btn-orange:disabled{background:var(--brand-gradient);color:#171210;opacity:.55}
.btn.btn-outline-primary,.btn.btn-outline-secondary,.btn.btn-outline-info,.btn.btn-light{background:var(--brand-surface);border-color:var(--campus-line);color:var(--brand-ink);font-weight:600}
.btn.btn-outline-primary:hover,.btn.btn-outline-secondary:hover,.btn.btn-outline-info:hover,.btn.btn-light:hover{background:var(--campus-hover);border-color:#f0935b;color:var(--brand-ink)}
.btn.btn-secondary,.btn.btn-success,.btn.btn-info,.btn.btn-warning{background:var(--campus-tint);border-color:var(--campus-line);color:var(--brand-ink);font-weight:600}
.btn.btn-secondary:hover,.btn.btn-success:hover,.btn.btn-info:hover,.btn.btn-warning:hover{background:#f0935b;border-color:#f0935b;color:#171210}
.btn.btn-danger{background:#eb4c3f;border-color:#eb4c3f;color:#171210}.btn.btn-danger:hover{background:#171210;border-color:#171210;color:#fff}
.btn:focus-visible,a:focus-visible{outline:2px solid #eb4c3f;outline-offset:3px}
/* Consistent filters, search fields and form controls. */
.form-label{font-size:.78rem;font-weight:650;color:var(--brand-ink)}
.form-control,.form-select,.input-group-text{background-color:var(--brand-surface);border-color:var(--campus-line);border-radius:.65rem;color:var(--brand-ink)}
.form-control:not(textarea):not([type=color]),.form-select{min-height:42px}
.form-control-sm,.form-select-sm{min-height:34px!important}
.form-control:focus,.form-select:focus{border-color:#eb4c3f;box-shadow:0 0 0 3px rgba(235,76,63,.12);color:var(--brand-ink)}
.form-control::placeholder{color:var(--brand-muted)}
.input-group-joined{border-color:var(--campus-line);border-radius:.65rem;background:var(--brand-surface)}
.input-group-joined:focus-within{border-color:#eb4c3f;box-shadow:0 0 0 3px rgba(235,76,63,.12)}
.input-group-joined .form-control:focus{box-shadow:none}
form.card.card-body{padding:1.4rem 1.5rem;border-radius:1rem;box-shadow:var(--campus-shadow)}
.filter-pills,.quiz-status-filters{padding:.35rem;border:1px solid var(--campus-line);border-radius:.75rem;background:var(--brand-surface)}
.filter-pills .btn,.nav-pills .nav-link,.quiz-status-filters button{border-radius:.5rem;color:var(--brand-muted)}
.filter-pills .btn.active,.nav-pills .nav-link.active,.quiz-status-filters button.active{background:var(--brand-gradient);color:#171210;font-weight:700}
.filter-pills .btn:not(.active):hover,.nav-pills .nav-link:not(.active):hover{background:var(--campus-tint);color:var(--brand-ink)}
/* Navigation and supporting panels reuse the same light touch. */
.topnav{border-bottom:2px solid #f0935b;box-shadow:none!important}
.sidenav{border-right:1px solid var(--campus-line)}
.sidenav-light .sidenav-menu .nav-link{border-radius:.75rem;box-shadow:none}
.sidenav-light .sidenav-menu .nav-link.active{background:var(--brand-gradient);border:0;box-shadow:inset 3px 0 #eb4c3f;color:#171210!important}
.sidenav-light .sidenav-menu .nav-link.active .nav-link-icon{color:#171210!important}
.sidenav-light .sidenav-menu .nav-link:not(.active):hover{background:var(--campus-tint);color:var(--brand-ink)!important}
.sidenav-light .sidenav-menu .nav-link:not(.active):hover .nav-link-icon{color:var(--brand-coral)!important}
.sidenav-light .sidenav-footer{border:0;background:var(--brand-surface)!important}
.support-card,.demo-access{border:1px solid var(--campus-line);border-left:3px solid #eb4c3f;background:var(--campus-tint);border-radius:.9rem}
.topnav .input-group-joined{background:var(--campus-tint);border:1px solid var(--campus-line)}
.topnav .input-group-solid .form-control,.topnav .input-group-solid .input-group-text{background:transparent}
.avatar-initials,.user-avatar,.institution-logo{background:var(--brand-gradient);color:#171210;border-color:var(--campus-line)}
/* Tables, conversations, calendars and learning content. */
.table{--bs-table-bg:var(--brand-surface);--bs-table-color:var(--brand-ink);--bs-table-border-color:var(--campus-line);--bs-table-hover-bg:var(--campus-tint);--bs-table-hover-color:var(--brand-ink)}
.table>thead th{padding:1rem;background:var(--campus-tint);color:var(--brand-muted);border-bottom:1px solid var(--campus-line);font-size:.67rem;letter-spacing:.04em;font-weight:700}
.table>tbody td{border-color:var(--campus-line)}.table-hover>tbody>tr:hover>td:first-child{box-shadow:inset 3px 0 #eb4c3f}
.page-link{border-color:var(--campus-line);color:var(--brand-ink);border-radius:.4rem}
.active>.page-link,.page-link.active{background:var(--brand-gradient);border-color:transparent;color:#171210}
.progress{background:var(--campus-hover);border-radius:1rem}.progress-bar{background:var(--brand-gradient);border-radius:1rem}
.course-cover:not(:has(.course-cover-image)){background:linear-gradient(135deg,rgba(240,147,91,.2),rgba(235,76,63,.07))!important}
.course-status{border:1px solid var(--campus-line);border-radius:2rem;color:#171210;font-size:.6rem;letter-spacing:.04em}
.course-hero:not(.has-cover),.event-banner,.class-cover.live,.class-cover.recorded{background:var(--brand-gradient);color:#171210}
.course-hero:not(.has-cover) h1,.course-hero:not(.has-cover) .text-white,.course-hero:not(.has-cover) .text-white-50,.event-banner h3{color:#171210!important}
.course-progress-panel,.grade-feedback,.quiz-explanation,.quiz-settings div,.material-location,.subscription-bar{background:var(--campus-tint);border-color:var(--campus-line);border-radius:.7rem}
.accordion{--bs-accordion-border-color:var(--campus-line);--bs-accordion-active-bg:var(--campus-tint);--bs-accordion-active-color:var(--brand-ink)}
.accordion-button:not(.collapsed){background:var(--campus-tint);color:var(--brand-ink);box-shadow:inset 3px 0 #eb4c3f}
.list-group{--bs-list-group-border-color:var(--campus-line);--bs-list-group-action-hover-bg:var(--campus-tint)}
.calendar-toolbar{padding:1.25rem;border-color:var(--campus-line)}.calendar-weekdays span{background:var(--campus-tint);color:var(--brand-muted)}
.calendar-day,.calendar-day.outside,.student-lesson,.info-line,.conversation-item,.message-header,.message-composer,.message-sidebar{border-color:var(--campus-line)}
.calendar-day.today>b{background:var(--brand-gradient);color:#171210}.calendar-event{background:var(--campus-tint);color:var(--brand-ink)}
.conversation-item.active,.conversation-item:hover,.notification-item.unread{background:var(--campus-tint);color:var(--brand-ink)}
.message-bubble{border:1px solid var(--campus-line);box-shadow:none}.message-bubble.mine{background:var(--brand-gradient);color:#171210;border:0}
.certificate-accent{background:var(--brand-gradient)}.verify-card{border-top:4px solid #eb4c3f}.verification-code{background:var(--campus-tint);border:1px solid var(--campus-line)}
.modal-content,.dropdown-menu{border:1px solid var(--campus-line);border-radius:1rem;box-shadow:0 16px 50px rgba(74,34,24,.12)}
.modal-header{border-top:3px solid #eb4c3f;border-bottom:1px solid var(--campus-line);background:var(--campus-tint);border-radius:calc(1rem - 1px) calc(1rem - 1px) 0 0}
.modal-title{font-size:1.15rem;font-weight:750}.modal-footer{border-color:var(--campus-line)}
.alert{border:1px solid var(--campus-line);border-left:3px solid #eb4c3f;border-radius:.8rem;background:var(--campus-tint);color:var(--brand-ink)}
/* Access and public verification use the same gradient and framed surfaces. */
.auth-showcase{background:var(--brand-gradient);color:#171210!important}
.auth-showcase:after{display:block;width:500px;height:500px;border:1px solid rgba(255,255,255,.24);box-shadow:0 0 0 70px rgba(255,255,255,.05);pointer-events:none}
.praxis-auth .login-box{border:1px solid var(--campus-line);box-shadow:var(--campus-shadow);border-radius:1.25rem}
.praxis-auth .input-group-joined{border-color:var(--campus-line)}
/* Neutral dark surfaces preserve contrast with the warm accents. */
[data-theme=dark]{--campus-line:rgba(240,147,91,.23);--campus-tint:rgba(240,147,91,.07);--campus-hover:rgba(240,147,91,.13);--campus-shadow:none;--bs-border-color:var(--campus-line)}
[data-theme=dark] .card,[data-theme=dark] .modal-content,[data-theme=dark] .dropdown-menu,[data-theme=dark] .accordion-item,[data-theme=dark] .list-group-item{border-color:var(--campus-line)!important}
[data-theme=dark] .card>.card-header,[data-theme=dark] .card>.card-footer,[data-theme=dark] .modal-header,[data-theme=dark] .modal-footer{border-color:var(--campus-line)}
[data-theme=dark] .btn.btn-light{background:var(--brand-surface)!important;border-color:var(--campus-line)!important;color:var(--brand-ink)!important}
[data-theme=dark] .btn.btn-light:hover{background:var(--campus-hover)!important}
/* Banner actions keep a light surface behind their dark text. */
[data-theme=dark] #layoutSidenav_content main>.page-header-light .btn.btn-light{background:rgba(255,255,255,.9)!important;border-color:rgba(0,0,0,.17)!important;color:#171210!important}
[data-theme=dark] #layoutSidenav_content main>.page-header-light .btn.btn-light:hover,[data-theme=dark] #layoutSidenav_content main>.page-header-light .btn.btn-light:focus-visible{background:#fff!important}
[data-theme=dark] .btn.btn-secondary,[data-theme=dark] .btn.btn-success,[data-theme=dark] .btn.btn-info,[data-theme=dark] .btn.btn-warning{color:var(--brand-ink)}
[data-theme=dark] .btn.btn-secondary:hover,[data-theme=dark] .btn.btn-success:hover,[data-theme=dark] .btn.btn-info:hover,[data-theme=dark] .btn.btn-warning:hover{color:#171210}
[data-theme=dark] .form-control,[data-theme=dark] .form-select,[data-theme=dark] .input-group-text{border-color:var(--campus-line)!important}
[data-theme=dark] .form-control:focus,[data-theme=dark] .form-select:focus{border-color:#f0935b!important;box-shadow:0 0 0 3px rgba(240,147,91,.15)}
[data-theme=dark] .sidenav-light .sidenav-menu .nav-link.active,[data-theme=dark] .sidenav-light .sidenav-menu .nav-link.active .nav-link-icon{background:var(--brand-gradient);color:#171210!important}
[data-theme=dark] .sidenav-light .sidenav-menu .nav-link.active .nav-link-icon{background:transparent}
[data-theme=dark] .sidenav-light .sidenav-menu .nav-link:not(.active):hover{background:var(--campus-tint);color:var(--brand-ink)!important}
[data-theme=dark] .table{--bs-table-bg:var(--brand-surface);--bs-table-border-color:var(--campus-line);--bs-table-hover-bg:var(--campus-tint)}
[data-theme=dark] .table>thead th,[data-theme=dark] .calendar-weekdays span{background:var(--campus-tint)!important;color:var(--brand-muted)!important;border-color:var(--campus-line)}
[data-theme=dark] .table>:not(caption)>*>*,[data-theme=dark] .student-lesson,[data-theme=dark] .calendar-day{border-color:var(--campus-line)}
[data-theme=dark] .message-bubble.mine{background:var(--brand-gradient)!important;color:#171210}
[data-theme=dark] .course-progress-panel,[data-theme=dark] .grade-feedback,[data-theme=dark] .quiz-explanation,[data-theme=dark] .quiz-settings div,[data-theme=dark] .subscription-bar,[data-theme=dark] .verification-code{background:var(--campus-tint)!important;border-color:var(--campus-line)!important}
[data-theme=dark] .support-card,[data-theme=dark] .demo-access{background:var(--campus-tint)!important;border-color:var(--campus-line)!important}
/* Keep actions usable when long titles or many controls share a banner. */
@media(max-width:1199.98px){#layoutSidenav_content main>.page-header-light .d-flex.flex-md-row{flex-wrap:wrap;gap:1rem}}
@media(max-width:767.98px){
 #layoutSidenav_content main>.page-header-light{width:calc(100% - 2rem);margin-top:1rem;border-radius:1rem;padding:0!important}
 #layoutSidenav_content main>.page-header-light>.container-xl{padding:1.75rem 1.5rem!important}
 #layoutSidenav_content main>.page-header-light .page-header-title{font-size:1.65rem}
 #layoutSidenav_content main>.page-header-light .btn{min-height:42px;white-space:normal}
 .card>.card-header,.card>.card-footer{padding:1rem 1.15rem}
 form.card.card-body{padding:1.25rem}.filter-pills{max-width:100%;overflow-x:auto}
 .modal-dialog{margin:.75rem}.course-hero>.container-xl{padding-top:2rem!important;padding-bottom:2rem!important}
}
@media(prefers-reduced-motion:reduce){.btn,.course-card,.institution-card,.event-card,.class-card,.assignment-card,.certificate-card{transition:none;transform:none!important}}
/* Dense directories scroll as tables instead of breaking names into letters. */
@media(max-width:767.98px){
 .table-responsive:not(.enrollment-results)>table:has(>thead>tr>th:nth-child(5)){min-width:800px}
 #layoutSidenav_content main>.page-header-light .d-flex.flex-wrap.gap-2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:.5rem!important}
 #layoutSidenav_content main>.page-header-light .d-flex.flex-wrap.gap-2>.btn{display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:.55rem;font-size:.73rem;line-height:1.4}
 #layoutSidenav_content main>.page-header-light .d-flex.flex-wrap.gap-2>.btn svg{flex:0 0 14px;width:14px;height:14px}
}
[data-theme=dark] .form-select:not([multiple]){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23f0935b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}
[data-theme=dark] .btn-close{filter:invert(1) grayscale(1)}
.filter-pills .btn{border-color:transparent!important;border-radius:.5rem!important;box-shadow:none}

/* Match RedPraxis sidebar colors without changing the campus content palette. */
#layoutSidenav_nav{--sidebar-surface:#fff;--sidebar-text:#292322;--sidebar-muted:#716563;--sidebar-soft:#fff0e6;--sidebar-border:#eadcd5;--sidebar-accent:#b8342a}
[data-theme=dark] #layoutSidenav_nav{--sidebar-surface:#242124;--sidebar-text:#f6eeea;--sidebar-muted:#c0b1ab;--sidebar-soft:#382724;--sidebar-border:#493b38;--sidebar-accent:#ffab88}
#layoutSidenav_nav .sidenav-light{background:var(--sidebar-surface)!important;border-right-color:var(--sidebar-border)}
#layoutSidenav_nav .sidenav-menu-heading{color:var(--sidebar-accent)!important}
#layoutSidenav_nav .sidenav-light .sidenav-menu .nav-link,#layoutSidenav_nav .sidenav-light .sidenav-menu .nav-link .nav-link-icon{background:transparent;color:var(--sidebar-muted)!important}
#layoutSidenav_nav .sidenav-light .sidenav-menu .nav-link.active,#layoutSidenav_nav .sidenav-light .sidenav-menu .nav-link:hover{background:var(--sidebar-soft);color:var(--sidebar-text)!important}
#layoutSidenav_nav .sidenav-light .sidenav-menu .nav-link.active{box-shadow:inset 3px 0 #eb4c3f}
#layoutSidenav_nav .sidenav-light .sidenav-menu .nav-link.active .nav-link-icon,#layoutSidenav_nav .sidenav-light .sidenav-menu .nav-link:hover .nav-link-icon{background:transparent;color:var(--sidebar-text)!important}
#layoutSidenav_nav .sidenav-light .sidenav-footer{background:var(--sidebar-soft)!important;color:var(--sidebar-text)}
#layoutSidenav_nav .support-card{background:var(--sidebar-surface)!important;border-color:var(--sidebar-border)!important;color:var(--sidebar-text)!important}
#layoutSidenav_nav .support-card small{color:var(--sidebar-muted)!important}
#layoutSidenav_nav .support-card a,#layoutSidenav_nav .support-card svg{color:var(--sidebar-accent)!important}
/* Logos: preserve original colors and switch the header image with the theme. */
.topnav .navbar-brand img.topnav-logo{display:block;width:auto;height:40px;object-fit:contain;filter:none;flex:0 0 auto}
.topnav .navbar-brand img.topnav-logo-dark{display:none}
[data-theme=dark] .topnav .navbar-brand img.topnav-logo-light{display:none}
[data-theme=dark] .topnav .navbar-brand img.topnav-logo-dark{display:block}
.praxis-auth .auth-showcase .brand img{filter:none}
@media(max-width:575.98px){.topnav .navbar-brand img.topnav-logo{height:34px}}
