/* Single sidebar contract. Pixel sizes intentionally do not inherit page rem scales.
   ID scope isolates the shared component from legacy page styles. */
body.app-teacher #sidebar {
    position:fixed; inset:0 auto 0 0; width:270px; min-width:0; max-width:none;
    height:100vh; height:100dvh; margin:0; padding:0; border:0;
    display:flex; flex-direction:column; overflow:hidden; z-index:1100;
    background:linear-gradient(165deg,#071a4d,#09285f 65%,#0c346d);
    color:#c3d2ea; box-shadow:5px 0 30px #061b4110; transform:none;
    font-family:'DM Sans',system-ui,sans-serif; font-size:14px; line-height:1.5; font-weight:500;
}
#sidebar *,#sidebar *::before,#sidebar *::after { box-sizing:border-box; }
#sidebar :where(a,button,span,strong,small,div,nav,form) { font-size:inherit; line-height:inherit; }
#sidebar a { text-decoration:none; }
#sidebar .sidebar-brand { display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:76px;height:76px;flex:0 0 76px;padding:0 20px;margin:0;border-bottom:1px solid #ffffff13; }
#sidebar .brand { display:flex;align-items:center;gap:10px;color:#fff; }
#sidebar .brand-icon { display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:12px;background:linear-gradient(135deg,#17a5fa,#6843dc);color:#fff;font-size:19px;box-shadow:0 6px 20px #00113040; }
#sidebar .brand-text { font-family:Manrope,'DM Sans',sans-serif;font-size:17px;line-height:24px;font-weight:800;color:#fff;letter-spacing:-.4px; }
#sidebar .brand-text span { color:#75c9ff;font-weight:600; }
#sidebar .sidebar-user { display:flex;align-items:center;gap:11px;flex:0 0 auto;margin:19px 15px 12px;padding:13px;border:1px solid #ffffff15;border-radius:15px;background:#ffffff09; }
#sidebar .sidebar-avatar { display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:linear-gradient(135deg,#187dd1,#8b64e5);font-size:16px;font-weight:800;color:#fff; }
#sidebar .sidebar-user-info { flex:1;min-width:0; }
#sidebar .sidebar-user-info strong { display:block;margin:0;font-size:14px;line-height:21px;font-weight:700;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis; }
#sidebar .sidebar-user-info span { display:block;margin:2px 0 0;font-size:11px;line-height:17px;color:#a2b9dc; }
#sidebar .sidebar-online { width:7px;height:7px;flex:0 0 7px;background:#33d0ad;border-radius:50%;box-shadow:0 0 0 4px #33d0ad15; }
#sidebar .sidebar-nav { flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0;padding:0 12px 18px;scrollbar-width:thin;scrollbar-color:#375881 transparent; }
#sidebar .sidebar-nav::-webkit-scrollbar { width:5px; }
#sidebar .sidebar-nav::-webkit-scrollbar-thumb { background:#375881;border-radius:10px; }
#sidebar .nav-label { margin:0;padding:17px 12px 8px;font-size:10px!important;line-height:15px;letter-spacing:1.3px;font-weight:700;color:#8faace; }
#sidebar .nav-item { position:relative;display:flex;align-items:center;gap:11px;min-height:46px;height:auto;margin:3px 0;padding:11px 12px;border:0;border-radius:11px;background:transparent;color:#c3d2ea;font-size:14px;line-height:22px;font-weight:600;letter-spacing:normal;box-shadow:none;transform:none;transition:background .2s,color .2s; }
#sidebar .nav-item:hover { background:#ffffff0c;color:#fff;transform:none; }
#sidebar .nav-item.active { background:linear-gradient(105deg,#1676d455,#8059eb30);box-shadow:inset 3px 0 #43bcff;color:#fff;font-size:14px;line-height:22px;font-weight:600; }
#sidebar .nav-item::before,#sidebar .nav-item::after { content:none; }
#sidebar .nav-icon { display:grid;place-items:center;width:22px;flex:0 0 22px;font-size:17px;line-height:22px;text-align:center;color:#8dc5ff; }
#sidebar .nav-item.active .nav-icon { color:#69d9ff; }
#sidebar .nav-badge { display:grid;place-items:center;margin:0 0 0 auto;min-width:24px;height:24px;padding:0 7px;border:0;border-radius:6px;background:#ffffff12;color:#9ed8ff;font-size:11px;line-height:16px;font-weight:700; }
#sidebar .course-shortcuts { display:block;gap:0;max-height:none;height:auto;overflow:visible;margin:0;padding:0 0 2px; }
#sidebar .nav-course-link { min-height:44px;padding:11px 12px;font-size:13px;line-height:22px; }
#sidebar .nav-course-name { flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis; }
#sidebar .course-dot,#sidebar .nav-context-dot { width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#4bd1df; }
#sidebar .nav-context-dot { margin-left:auto;background:#ffc061; }
#sidebar .nav-item-context { opacity:1; }
#sidebar .current-course-mini { display:flex;align-items:center;gap:9px;margin:10px 5px;padding:12px;border:1px solid #ffffff17;border-radius:12px;background:#ffffff06; }
#sidebar .current-course-mini>div { min-width:0; }
#sidebar .current-course-dot { width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#a18aff; }
#sidebar .current-course-mini small { display:block;font-size:10px;line-height:15px;letter-spacing:.8px;font-weight:700;color:#a5b9d8; }
#sidebar .current-course-mini strong { display:block;max-width:185px;font-size:12px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ecf4ff; }
#sidebar .sidebar-footer { flex:0 0 auto;margin:0;padding:13px 16px;border-top:1px solid #ffffff14;background:#061b4333; }
#sidebar .sidebar-footer form { margin:0; }
#sidebar .logout-link { display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;min-height:44px;margin:0;padding:11px 13px;border:0;border-radius:9px;background:transparent;box-shadow:none;color:#b9cbea;font-family:inherit;font-size:14px;line-height:22px;font-weight:600;cursor:pointer; }
#sidebar .logout-link:hover { background:#ffffff0b;color:#fff; }
#sidebar .sidebar-close { display:none;place-items:center;flex:0 0 32px;width:32px;height:36px;min-height:0;margin:0;padding:0;border:0;border-radius:9px;background:#ffffff0c;color:#dceaff;font-size:18px;cursor:pointer; }
#sidebar a:focus-visible,#sidebar button:focus-visible { outline:2px solid #77d9ff;outline-offset:-2px; }
body.app-teacher .main-area { margin-left:270px; }
@media(max-width:900px) {
    body.app-teacher #sidebar { width:min(290px,calc(100vw - 48px));transform:translateX(-105%);transition:transform .26s ease; }
    body.app-teacher.app-menu-open #sidebar { transform:translateX(0); }
    #sidebar .sidebar-close { display:grid; }
    body.app-teacher .main-area { margin-left:0; }
}
@media(prefers-reduced-motion:reduce) { body.app-teacher #sidebar,#sidebar * { transition:none!important; } }
@media print { body.app-teacher #sidebar { display:none!important; } body.app-teacher .main-area { margin-left:0!important; } }
