/* Product Canvas: shared workspace surfaces and interaction feedback. */
body.dashboard-body{--ink:#102958;--navy:#102958;--orange:#ff7900;--cyan:#009fda;--line:#e4eef7;background:#f3faff;color:#102958}
body.dashboard-body .concept-sidebar{width:270px;background:#fff;border-right:1px solid #e7eff6;padding:26px 16px;scrollbar-color:#c9deec transparent}
body.dashboard-body .concept-main{margin-left:270px}
body.dashboard-body .concept-sidebar .original-brand{width:236px;height:78px;border-radius:0;margin-bottom:24px}
body.dashboard-body .concept-sidebar .original-brand img{width:410px!important;left:-82px!important;top:-70px!important}
body.dashboard-body .side-caption{color:#456280;background:#f4faff;border:1px solid #e5f0f8;border-radius:12px;padding:13px;margin:16px 0;font-size:11px;letter-spacing:.4px}
body.dashboard-body .concept-sidebar nav a{color:#405679;font-size:13px;padding:12px 16px;border-radius:10px;min-height:44px}
body.dashboard-body .concept-sidebar nav a i{color:#6781a0;font-size:17px}
body.dashboard-body .concept-sidebar nav a:hover,body.dashboard-body .concept-sidebar nav a.selected{color:#007ed3;background:#eaf7ff;box-shadow:inset 3px 0 #0da7f4}
body.dashboard-body .concept-sidebar nav a.selected i{color:#009ff0}
body.dashboard-body .concept-topbar{height:76px;padding:0 30px;background:#faffffed;border-bottom:1px solid #e5eef6;color:#102958}
body.dashboard-body .workspace-search{background:#fff;border:1px solid #dce9f4;color:#6982a2;border-radius:12px}
body.dashboard-body .initial-avatar{background:#e1f5ff;color:#008ddd;width:42px;height:42px}
body.dashboard-body #live-bell{color:#567297}body.dashboard-body #live-bell b{background:#ff7900;color:white}
body.dashboard-body #concept-toggle{color:#12375a}
body.dashboard-body .concept-content{padding:30px!important;max-width:1800px}
body.dashboard-body .concept-title{font-size:clamp(27px,3vw,43px);font-weight:800;color:#092458;letter-spacing:-1.3px}
body.dashboard-body .concept-subtitle{color:#7389aa;font-size:16px}
body.dashboard-body :is(.concept-card,.dash-card,.stat-card,.form-card,.table-card,.glass-card,.class-card,.detail-card,.settings-card){border:1px solid #e3eef7!important;background:white!important;border-radius:17px!important;box-shadow:0 8px 26px #1799dd05!important}
body.dashboard-body .concept-card h2{font-size:19px;color:#092458;margin-bottom:8px}
body.dashboard-body .concept-card h2 i{color:#099ee6;margin-right:9px}
body.dashboard-body .concept-stat{background:#fff;border:1px solid #e4eef8;border-radius:16px;padding:24px 18px;box-shadow:0 6px 22px #12a9ec05;gap:16px}
body.dashboard-body .concept-stat>i{display:grid;place-items:center;flex-shrink:0;width:58px;height:64px;background:#e5f6ff;color:#04a0df;border-radius:14px;font-size:27px}
body.dashboard-body .concept-stat:nth-child(2)>i{background:#e8f9ef;color:#17ac69}body.dashboard-body .concept-stat:nth-child(3)>i{background:#f1eafe;color:#8750e8}body.dashboard-body .concept-stat:nth-child(4)>i{background:#fff1e7;color:#ff7800}
body.dashboard-body .concept-stat b{font-size:30px;color:#0a2557;line-height:1.4}.canvas-stat{text-decoration:none}.canvas-stat span{font-size:11px;color:#00865b}.canvas-stat small{font-size:13px!important;color:#375273!important}
.canvas-platform-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:22px}.canvas-platform-grid>.concept-card{margin:0;min-width:0;padding:24px}
.canvas-card-heading{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:18px}.canvas-card-heading p,.canvas-platform-grid .muted{font-size:13px;color:#7086a2;margin:4px 0}.canvas-card-heading a{font-size:12px;white-space:nowrap;text-decoration:none;color:#008ddc}
.canvas-chart{width:100%;height:auto;display:block}.canvas-chart text{font:11px Arial,sans-serif;fill:#64809c}.canvas-data{font-size:12px;color:#55748c;margin-top:8px}.canvas-data summary{cursor:pointer}
.canvas-plan-layout{display:flex;align-items:center;justify-content:center;gap:24px;min-height:235px;flex-wrap:wrap}.canvas-donut{width:170px;height:170px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.canvas-donut>div{width:118px;height:118px;border-radius:50%;display:grid;align-content:center;justify-items:center;background:white}.canvas-donut b{font-size:27px}.canvas-donut small{color:#7187a2}.canvas-legend{padding:0;margin:0;list-style:none;flex:1;min-width:140px}.canvas-legend li{display:flex;align-items:center;gap:9px;font-size:12px;margin:17px 0}.canvas-legend li>span{width:12px;height:12px;border-radius:50%;flex-shrink:0}.canvas-legend b{margin-left:auto}
body.dashboard-body .concept-card table{border-spacing:0;font-size:12px;width:100%}body.dashboard-body .concept-card th{background:#f5f9fd;padding:12px;color:#667d9b}body.dashboard-body .concept-card td{background:white;padding:14px 10px;border-bottom:1px solid #edf3f9;border-radius:0}
.canvas-status{display:inline-block;border-radius:30px;padding:4px 10px;font-size:11px}.canvas-status.is-active{background:#e1f9ed;color:#07804f}.canvas-status.is-pending{background:#fff3dc;color:#9e6000}.canvas-queue{text-decoration:none;color:#163354;align-items:center}.canvas-queue>span:last-child{margin-left:auto}.canvas-empty{padding:26px 16px;background:#f4fbff;border-radius:12px;color:#65819a;font-size:14px}
body.dashboard-body .tutor-welcome{background:#e9f7ff!important;color:#103663!important;border:1px solid #dcedf8!important}body.dashboard-body .tutor-welcome h2{color:#103663!important}body.dashboard-body .tutor-welcome p,body.dashboard-body .tutor-eyebrow{color:#51748c!important}
/* Shared controls include legacy Bootstrap modals and native confirmation dialogs. */
body :is(.btn-primary,.btn-react-primary,.btn-primary-grad,.btn-premium:not(.btn-premium-outline),.btn-create,.btn-modal-confirm,.orange-button){background:#ff7900!important;border-color:#ff7900!important;border-radius:11px!important;box-shadow:0 5px 14px #ff790018!important;color:#fff!important}
body :is(.btn-primary,.btn-react-primary,.btn-primary-grad,.btn-premium:not(.btn-premium-outline),.btn-create,.btn-modal-confirm,.orange-button):hover{background:#df6500!important;border-color:#df6500!important}
body :is(.modal-content,.kj-confirm){background:#fff!important;border:1px solid #e1edf7!important;border-radius:20px!important;box-shadow:0 24px 80px #123b6533!important;color:#102958}
body .modal-header{background:#f4faff!important;border-bottom:1px solid #e5eff8!important;border-radius:20px 20px 0 0;padding:22px 26px}body .modal-title,body .kj-confirm h2{color:#102958!important;font-weight:750}body .modal-body{padding:26px}body .modal-footer{background:#faffff!important;border-top:1px solid #e5eff8!important;padding:18px 26px;border-radius:0 0 20px 20px}
body .kj-confirm{max-width:480px;width:calc(100% - 32px);padding:0}body .kj-confirm-body{padding:30px}body .kj-confirm-icon{background:#e8f7ff;color:#029fe5;border-radius:16px}body .kj-confirm-actions{padding:18px 26px;background:#f4faff;border-top:1px solid #e3eff7;display:flex;justify-content:flex-end;gap:12px}
body .modal-backdrop{background:#123252}body .kj-confirm::backdrop{background:#12325266;backdrop-filter:blur(4px)}
body #live-toast{background:transparent!important;padding:0!important;max-width:min(390px,calc(100vw - 32px));right:20px;bottom:24px;z-index:1090}
body .kj-toast,body .toast{background:#fff!important;color:#102958!important;border:1px solid #dcecf7!important;border-radius:16px!important;box-shadow:0 14px 45px #10365a22!important}body .kj-toast{border-left:4px solid #05a3e8!important}body .kj-toast-icon{background:#e5f7ff!important;color:#049bde!important;border-radius:12px}body .kj-toast strong{color:#112c59}body .kj-toast p,body .kj-toast small{color:#627c96}body .kj-toast a{color:#0084ce}body .kj-toast-close{color:#657c95;background:#f2f8fc;border-radius:8px;min-width:32px;min-height:32px}
body .alert{border-radius:13px!important;box-shadow:none!important;padding:16px 20px}body .alert-success{background:#edfcf3!important;color:#176b47!important;border:1px solid #c9edd9!important}body :is(.alert-danger,.alert-error){background:#fff1f1!important;color:#a32b36!important;border:1px solid #f4d4d8!important}body .alert-warning{background:#fff8e9!important;color:#875900!important;border:1px solid #f7e3b8!important}body .alert-info{background:#edf8ff!important;color:#1b648c!important;border:1px solid #cce9f9!important}
body .modal :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border:1px solid #d8e7f3;border-radius:10px;padding:11px;background:#fcfeff}body :is(button,a,input,select,textarea):focus-visible{outline:3px solid #009fda;outline-offset:3px}
@media(max-width:1150px){.canvas-platform-grid{grid-template-columns:1fr}.canvas-plan-layout{min-height:190px}body.dashboard-body .concept-stats{grid-template-columns:1fr 1fr}body.dashboard-body .concept-sidebar{width:240px}body.dashboard-body .concept-main{margin-left:240px}body.dashboard-body .concept-sidebar .original-brand{width:208px}}
@media(max-width:760px){body.dashboard-body .concept-main{margin-left:0}body.dashboard-body .concept-sidebar{width:270px;z-index:60}body.dashboard-body .concept-content{padding:22px 16px!important}body.dashboard-body .concept-topbar{padding:0 16px;height:74px}body.dashboard-body .concept-stat{padding:16px 12px;gap:10px}body.dashboard-body .concept-stat>i{width:36px;height:44px;font-size:19px}body.dashboard-body .concept-stat b{font-size:24px}.canvas-stat span{display:none}.canvas-platform-grid>.concept-card{padding:20px 16px}.canvas-card-heading{flex-wrap:wrap}body #live-toast{bottom:82px;right:16px}body .modal-dialog{margin:16px}.canvas-plan-layout{gap:18px}body .kj-confirm-actions{flex-wrap:wrap}.concept-heading{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){body *,body *::before,body *::after{animation:none!important;transition:none!important}}
body.dashboard-body .concept-sidebar .original-brand{width:236px!important}
@media(min-width:761px) and (max-width:1150px){body.dashboard-body .concept-sidebar .original-brand{width:208px!important}body.dashboard-body .concept-sidebar .original-brand img{width:350px!important;left:-70px!important;top:-58px!important}}
/* Role dashboards and legacy module surfaces. */
.canvas-role-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:24px}.canvas-role-grid>*,.canvas-role-grid aside{min-width:0}.canvas-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 26px}.canvas-actions>a{display:flex;align-items:center;gap:12px;border:1px solid #e0edf7;border-radius:14px;background:white;padding:16px;text-decoration:none;color:#13315b;font-size:13px;font-weight:600}.canvas-actions span,.canvas-course-icon{display:grid;place-items:center;background:#e6f6ff;color:#079fdf;border-radius:12px;width:44px;height:44px;flex-shrink:0}.canvas-actions>a:nth-child(2) span{background:#e8faef;color:#22ac6a}.canvas-actions>a:nth-child(3) span{background:#fff1e3;color:#ff7900}.canvas-actions>a:nth-child(4) span{background:#f3eaff;color:#8953e5}.canvas-actions b{margin-left:auto;color:#6b839b}.canvas-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.canvas-course{padding:20px;border:1px solid #e0edf7;border-radius:14px;background:linear-gradient(135deg,#fff,#f9fdff)}.canvas-course h3{font-size:17px;color:#12305b;margin:16px 0 9px}.canvas-course p{font-size:13px;color:#668099;min-height:32px}.canvas-course a{display:block;border:1px solid #dceaf5;border-radius:9px;text-align:center;padding:9px;color:#008cd6;text-decoration:none;font-size:12px}.canvas-session{display:flex;gap:14px;padding:17px 0;border-bottom:1px solid #edf3f8}.canvas-session strong{font-size:13px}.canvas-session p,.canvas-session small{font-size:12px;color:#7085a0;margin:4px 0}.canvas-child-strip{background:#fff;border:1px solid #e0edf7;border-radius:16px;display:flex;justify-content:space-between;align-items:center;padding:22px;gap:20px;margin:0 0 24px}.canvas-child-strip>div{display:flex;gap:16px;align-items:center}.canvas-child-strip p{margin:3px 0;color:#7086a0;font-size:12px}.canvas-child-strip form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.canvas-child-strip label{font-size:12px}.canvas-child-strip select{border:1px solid #dce9f3;border-radius:10px;padding:10px;max-width:200px}.canvas-result{display:flex;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid #ecf3f8}.canvas-result>div{flex:1}.canvas-result strong{font-size:14px}.canvas-result small{display:block;color:#72879f;font-size:12px}.canvas-result progress{width:35%;height:10px;accent-color:#0ca4ed}.canvas-result b{font-size:14px}.canvas-help{background:#effaff!important}.canvas-help p{font-size:13px;color:#62839a}.canvas-help a{font-size:12px;line-height:2.3}.canvas-bars{display:flex;gap:20px;align-items:flex-end;height:210px;padding:20px 5px 35px}.canvas-bars:empty{display:none}.canvas-bars>div{height:140px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.canvas-bars span{display:block;width:min(52px,85%);background:linear-gradient(#18baf3,#0698df);border-radius:6px 6px 0 0;flex-shrink:0}.canvas-bars b{font-size:12px;color:#167ca8}.canvas-bars small{position:absolute;bottom:-25px;font-size:11px;color:#68849c}
body.dashboard-body :is(.page-header,.hero-header,.profile-header){background:#f1f9ff!important;color:#12305b!important;border:1px solid #e2eff8!important;border-radius:17px!important;padding:26px!important;box-shadow:none!important;margin-bottom:26px}
body.dashboard-body :is(.page-header,.hero-header,.profile-header) :is(h1,h2,h3,.page-header-title){color:#12305b!important;text-shadow:none!important}body.dashboard-body :is(.page-header-sub,.dash-stat-label){color:#6c839c!important}
body.dashboard-body :is(.card,.card-table,.modal-card,.announcement-card,.event-card,.profile-card,.role-card,.preview-card,.blog-card,.report-card,.package-card,.edit-card,.room-info-card,.expiration-card,.detail-card){background:#fff!important;border:1px solid #e1edf7!important;border-radius:16px!important;box-shadow:0 8px 25px #158dd908!important;color:#17385d}
body.dashboard-body :is(.card-header,.dash-card-header,.table-header){background:#faffff!important;border-bottom:1px solid #e6eff7!important;border-radius:16px 16px 0 0!important;color:#12305b!important;padding:20px 24px!important}
body.dashboard-body :is(.data-table,.grades-table,.detail-table,.table){color:#254368!important;border-collapse:collapse;width:100%}body.dashboard-body :is(.data-table,.grades-table,.detail-table,.table) th{background:#f3f9fe!important;color:#627e9e!important;border-bottom:1px solid #dfecf6!important;font-size:12px;padding:14px!important}body.dashboard-body :is(.data-table,.grades-table,.detail-table,.table) td{border-bottom:1px solid #edf3f9!important;background:#fff!important;padding:14px!important;font-size:13px}body.dashboard-body :is(.data-table,.table) tr:hover td{background:#f6fbff!important}
body.dashboard-body :is(.data-table-wrap,.table-responsive,.timetable-wrapper){overflow-x:auto;border-radius:14px}body.dashboard-body :is(.dash-stat,.stat-card){background:#fff!important;border:1px solid #e0edf7!important;border-radius:16px!important;color:#102958!important}body.dashboard-body .dash-stat-icon{background:#e5f6ff!important;color:#039de1!important;border-radius:13px!important}body.dashboard-body :is(.dash-stat-value,.stat-value){color:#102958!important}body.dashboard-body :is(.status-badge,.badge-status,.time-badge,.room-badge){border-radius:30px!important;font-size:11px!important;padding:5px 11px!important}
body.dashboard-body :is(.form-control,.form-select,.form-input,.form-group input:not([type=checkbox]):not([type=radio]),.form-group select,.form-group textarea){background:#fcfeff!important;border:1px solid #dbe9f4!important;border-radius:10px!important;color:#163353;min-height:44px}
body.dashboard-body :is(.filter-bar,.filters-bar,.search-bar,.search-filter-bar){border:1px solid #e2edf6!important;background:#fff!important;border-radius:14px!important;padding:16px!important;gap:12px;flex-wrap:wrap}body.dashboard-body .empty-state{background:#f4faff!important;border:1px dashed #d4e7f6!important;border-radius:14px!important;color:#6c839a!important}
body.dashboard-body .breadcrumb{font-size:12px;color:#72859c}.canvas-breadcrumb{font-size:12px;color:#6b83a0;white-space:nowrap;margin-right:auto}.canvas-breadcrumb a{text-decoration:none;color:#224a71}.canvas-breadcrumb span{margin:0 10px;color:#a3b4c7}
@media(max-width:1150px){.canvas-role-grid{grid-template-columns:1fr}.canvas-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.canvas-child-strip{flex-wrap:wrap}.canvas-breadcrumb{display:none}}
@media(max-width:760px){.canvas-course-grid{grid-template-columns:1fr}.canvas-actions{gap:10px}.canvas-actions>a{padding:12px;font-size:11px}.canvas-actions span{width:32px;height:36px}.canvas-result{gap:10px}.canvas-result progress{width:25%}.canvas-child-strip{padding:18px}.canvas-child-strip form{width:100%}.canvas-bars{gap:8px}.canvas-bars small{font-size:9px}}
.canvas-result progress{appearance:none;border:0;border-radius:10px;overflow:hidden;background:#e8f0f7}.canvas-result progress::-webkit-progress-bar{background:#e8f0f7;border-radius:10px}.canvas-result progress::-webkit-progress-value{background:#08a5eb;border-radius:10px}.canvas-result progress::-moz-progress-bar{background:#08a5eb;border-radius:10px}
