/* v4: one teacher, flat navigation, softly sliding active row. */
.side { width:248px; min-height:0; display:flex; flex-direction:column; padding:24px 14px 12px; gap:16px; border-right:1px solid var(--line); background:var(--surface); }
.side .brand { gap:10px; padding:0 8px 20px; text-decoration:none; }
.side .brand i { width:36px; height:36px; border-radius:var(--r-md); background:var(--accent-grad); display:grid; place-items:center; color:var(--accent-ink); }
.side .brand i svg { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.75; }
.side .brand b { font-family:var(--font); font-weight:700; font-size:19px; }
.side .brand small { display:block; font-size:12px; color:var(--ink-3); margin-top:3px; }
.side .nav { position:relative; isolation:isolate; display:block; flex:1; overflow-y:auto; scrollbar-width:none; padding:0; border:0; border-radius:0; background:transparent; }
.side .pill { position:absolute; top:0; left:0; right:0; height:var(--sidebar-pill-height,40px); transform:translateY(var(--sidebar-pill-y,0px)); border-radius:var(--r-md); background:var(--accent-soft); opacity:0; transition:transform var(--duration-sidebar) var(--ease),height var(--duration-sidebar) var(--ease); z-index:0; pointer-events:none; }
.side .item { position:relative; z-index:1; display:flex; align-items:center; gap:11px; width:100%; min-height:38px; margin:2px 0; padding:8px 12px; border:0; border-radius:var(--r-md); background:transparent; color:var(--ink-2); font-size:13px; text-align:left; white-space:nowrap; box-shadow:none; }
.side .item.on,.side .item[aria-current="page"] { background:var(--accent-soft); color:var(--accent); font-weight:650; }
.side .nav[data-sliding="true"] .item.on { background:transparent; }
.side .nav[data-sliding="true"] .pill { opacity:1; }
.side .item svg { width:19px; height:19px; flex:none; }
.side .cnt { margin-left:auto; color:var(--ink-3); font-size:11px; font-family:var(--num); }
.side .item.on .cnt { color:var(--accent); }
.side .sec-h { font-size:11px; color:var(--ink-3); padding:16px 12px 5px; }
.side .side-foot { display:flex; align-items:center; border-top:1px solid var(--line); padding:10px 0 0; }
.side .side-foot > button { margin:0; }
@media (hover:hover) { .side .item:not(.on):hover { background:var(--bg); } }
@media (prefers-reduced-motion:reduce) { .side .pill,.side .item { transition:none !important; } }
