:root{--sidebar-width:240px}
body .app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
body .sidebar,body.student-mode .sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);height:100dvh;display:flex;flex-direction:column;gap:10px;padding:16px 12px 12px;overflow:hidden;z-index:30;transform:none}
body .main{grid-column:2;min-width:0}
body .sidebar .brand{flex:0 0 38px;min-height:0;padding:0 8px;gap:10px;white-space:nowrap}
body .sidebar .workspace-chooser{flex:0 0 auto;min-height:0}
body .sidebar .workspace-switch{min-height:42px;padding:8px 10px}
body .sidebar #mainNav,body.student-mode .sidebar #mainNav{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:0;overflow:hidden;scrollbar-width:none}
body .sidebar #mainNav .nav-section,body.student-mode .sidebar #mainNav .nav-section{display:flex;flex-direction:column;flex:var(--section-items,1) 1 0;gap:2px;margin:0;min-height:0}
body .sidebar #mainNav .nav-section-label,body.student-mode .sidebar #mainNav .nav-section-label{flex:0 0 16px;height:16px;padding:0 10px;margin:0;font-size:10px;line-height:16px;white-space:nowrap}
body .sidebar #mainNav .nav-section-label[hidden]{display:none}
body .sidebar #mainNav .nav-item,body.student-mode .sidebar #mainNav .nav-item{flex:1 1 0;height:auto;min-height:0;max-height:42px;margin:0;padding:4px 10px;font-size:12px;line-height:1.25;gap:9px;overflow:hidden}
body .sidebar #mainNav .nav-item>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body .sidebar .sidebar-foot,body.student-mode .sidebar .sidebar-foot{flex:0 0 auto;margin:0;padding-top:8px}
body .sidebar .sidebar-foot>.nav-item{min-height:30px;height:30px;padding:4px 10px;font-size:12px}
body .menu-btn{display:inline-grid!important;place-items:center;flex-shrink:0;font-size:18px;margin-right:10px}
body .topbar{justify-content:flex-start;gap:10px}body .topbar .top-actions{margin-left:auto}body .crumb{min-width:0}
body.sidebar-collapsed{--sidebar-width:76px}
body.sidebar-collapsed .sidebar{padding-inline:10px}
body.sidebar-collapsed .sidebar .brand{justify-content:center;padding:0}
body.sidebar-collapsed .brand-text,body.sidebar-collapsed .sidebar .workspace-switch small,body.sidebar-collapsed .sidebar .workspace-switch>span:last-child,body.sidebar-collapsed .sidebar .nav-item>span:not(:first-child),body.sidebar-collapsed .sidebar .nav-section-label{display:none!important}
body.sidebar-collapsed .sidebar .workspace-switch{padding:8px 2px;text-align:center;justify-content:center}
body.sidebar-collapsed .sidebar #roleName{font-size:10px;white-space:normal;line-height:1.3}
body.sidebar-collapsed .sidebar #mainNav .nav-item,body.sidebar-collapsed .sidebar .sidebar-foot>.nav-item{justify-content:center;padding:5px}
body.sidebar-collapsed .sidebar .nav-item>span:first-child{width:auto;font-size:18px}
body.sidebar-collapsed .sidebar .role-menu{position:fixed;top:104px;left:76px;right:auto;width:200px}
@media(max-height:650px){body .sidebar,body.student-mode .sidebar{gap:6px;padding-top:10px}body .sidebar #mainNav,body.student-mode .sidebar #mainNav{gap:4px}body .sidebar #mainNav .nav-section-label,body.student-mode .sidebar #mainNav .nav-section-label{flex-basis:13px;height:13px;line-height:13px;font-size:9px}body .sidebar #mainNav .nav-item,body.student-mode .sidebar #mainNav .nav-item{font-size:11px;padding-block:2px}}
@media(max-height:480px){body .sidebar .brand{display:none}body .sidebar #mainNav .nav-section-label{display:none!important}body .sidebar #mainNav,body.student-mode .sidebar #mainNav{gap:2px}body .sidebar .workspace-switch{min-height:30px;padding-block:3px}}
@media(max-width:900px){body .app-shell{display:block}body .main{width:100%}body .sidebar,body.student-mode .sidebar{width:240px;transform:translateX(-100%);box-shadow:12px 0 45px #101b3c22}body .sidebar.open,body.student-mode .sidebar.open{transform:translateX(0)}body .topbar{gap:4px}body .crumb>span{display:none}body .global-search{width:160px}}
@media(prefers-reduced-motion:no-preference){body .sidebar{transition:width .18s ease,transform .18s ease}body .app-shell{transition:grid-template-columns .18s ease}}
body.student-mode .app-shell{display:grid!important;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
@media(max-width:900px){body.student-mode .app-shell{display:block!important;grid-template-columns:none}}
