body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:#f7f8fc;color:#17224d}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex:0 0 220px;background:linear-gradient(180deg,#5b2bbf,#382080);color:#fff;padding:16px 10px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:1030;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.45) transparent}.brand{text-align:center;padding:3px 4px 18px;border-bottom:1px solid rgba(255,255,255,.18)}.brand-logo img{width:78px;height:78px;object-fit:contain;background:#fff;border-radius:8px}.brand-name{font-size:18px;font-weight:800;margin-top:8px}.brand-name small{display:block;font-size:13px}.menu-label{font-size:10px;font-weight:700;letter-spacing:.5px;opacity:.75;margin:14px 9px 6px}.nav-item{color:#fff;text-decoration:none;padding:9px 11px;border-radius:8px;display:flex;align-items:center;gap:10px;font-size:13px;margin:2px 0}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.16);color:#fff}.nav-item i{width:18px}.main{margin-left:220px;flex:1;min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid #e9eaf0;display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:1020}.top-title{display:flex;flex-direction:column;font-size:21px}.top-title small{font-size:12px;color:#6f7691}.top-actions{display:flex;align-items:center;gap:12px;font-size:13px;position:relative}.notification{background:#ef4444;color:#fff;border-radius:20px;font-size:9px;padding:2px 5px;margin-left:-18px;margin-top:-20px}.avatar{width:34px;height:34px;border-radius:50%;background:#efe8ff;display:grid;place-items:center;color:#5b2bbf}.content{padding:20px 22px}.card{border:1px solid #ebedf4;border-radius:12px;box-shadow:0 3px 12px rgba(28,32,60,.04)}.kpi{padding:16px;display:flex;gap:14px;align-items:center;height:112px}.kpi-icon{width:58px;height:58px;border-radius:12px;display:grid;place-items:center;font-size:27px;color:#fff}.kpi-icon.blue{background:#1677ff}.kpi-icon.green{background:#12b76a}.kpi-icon.purple{background:#7c3aed}.kpi-icon.orange{background:#f79009}.kpi-icon.red{background:#ef233c}.kpi h3{font-size:26px;margin:2px 0}.kpi small{color:#7a8098}.section-title{font-size:16px;font-weight:700}.calendar-box{min-height:420px}.schedule-row{padding:13px 4px;border-bottom:1px solid #edf0f5;display:grid;grid-template-columns:105px 1fr auto;gap:12px;align-items:center;font-size:13px}.schedule-row:last-child{border:0}.status{font-size:11px;padding:5px 9px;border-radius:6px;background:#f1eafe;color:#5b2bbf}.status.green{background:#e7f8ef;color:#11834d}.status.blue{background:#e8f1ff;color:#1463d6}.availability{height:22px;border-radius:5px;overflow:hidden;display:flex;background:#eee}.availability span{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px}.footer{padding:16px 22px;color:#6f7691;font-size:11px}.footer span{float:right}.sidebar-user{background:rgba(255,255,255,.10);padding:10px;border-radius:9px;display:flex;align-items:center;gap:9px;font-size:11px}.sidebar-user small{display:block;opacity:.75}.table thead th{font-size:11px;text-transform:uppercase;color:#737a91}.badge-soft{background:#f0e9ff;color:#5b2bbf;padding:6px 9px;border-radius:7px;font-size:11px}.btn-purple{background:#5b2bbf;color:#fff}.btn-purple:hover{background:#4a229e;color:#fff}@media(max-width:992px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.show{transform:translateX(0)}.main{margin-left:0}.content{padding:14px}.top-title{font-size:17px}.top-actions span:not(.notification){display:none}}

/* ===== RESPONSIVE MOBILE/TABLET ===== */
.mobile-overlay{display:none}
@media(max-width:991.98px){
.sidebar{width:250px;transform:translateX(-100%);box-shadow:12px 0 30px rgba(0,0,0,.18);transition:transform .25s ease;overflow-y:auto;overflow-x:hidden}
.sidebar.show{transform:translateX(0)}
.main{margin-left:0;width:100%}
.mobile-overlay{position:fixed;inset:0;background:rgba(20,15,40,.45);z-index:1035}
.mobile-overlay.show{display:block}
.topbar{height:64px;padding:0 14px}
.top-title{font-size:16px;min-width:0}.top-title small{font-size:10px}
.top-actions{gap:7px}.top-actions>span:not(.notification),.top-actions>.bi-chevron-down{display:none}
.content{padding:14px 12px}
.schedule-row{grid-template-columns:90px 1fr}.schedule-row .status{grid-column:2;justify-self:start}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.footer{padding:14px 12px}.footer span{float:none;display:block;margin-top:4px}
}
@media(max-width:575.98px){
.content{padding:10px}.topbar{padding:0 10px}.top-title{font-size:14px}.top-title small{display:none}
.kpi{height:auto;min-height:88px;padding:12px}.kpi-icon{width:46px;height:46px;font-size:21px}.kpi h3{font-size:21px}
.card.p-3,.card.p-4{padding:12px!important}
.table{font-size:12px}.table thead th{font-size:10px;white-space:nowrap}.btn{font-size:12px}
.schedule-row{grid-template-columns:1fr;gap:5px}.schedule-row .status{grid-column:auto}
.fc .fc-toolbar{flex-wrap:wrap;gap:8px}.fc .fc-toolbar-title{font-size:16px}.fc .fc-button{font-size:11px;padding:4px 7px}
}
@media(min-width:992px) and (max-width:1199px){.sidebar{width:205px}.main{margin-left:205px}.content{padding:16px}.kpi{height:100px;padding:13px}.kpi-icon{width:50px;height:50px;font-size:22px}.kpi h3{font-size:23px}}

.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.35);border-radius:10px}.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.55)}.sidebar-user{flex-shrink:0}
/* Dashboard polish + guaranteed sidebar scrolling */
.sidebar{height:100vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.35);border-radius:10px}.sidebar-user{margin-top:14px!important;flex-shrink:0}
.progress{background:#f0eef7}.min-w-0{min-width:0}
@media(max-width:575.98px){#calendar{font-size:12px}.calendar-box{min-height:0}.fc .fc-toolbar-title{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi{min-height:94px}.kpi small{font-size:10px}.kpi h3{font-size:20px}}

/* Icon font is optional; preserve compact icon boxes if CDN is unavailable. */
.bi{display:inline-block;width:1.15em;min-width:1.15em;height:1em;vertical-align:-.125em}
