.app-shell { align-items: start; }
.app-shell > aside { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.app-shell > aside nav { min-height: 0; overflow-y: auto; }
.app-shell > aside form { flex: 0 0 auto; margin-top: auto; }
.nav-group { display: block; margin: 1.15rem .8rem .35rem; color: #8fa6bc; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.quick-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0 1.5rem; }
.task-list { display: grid; gap: .75rem; }
.task-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border: 1px solid #dce5ee; border-radius: 10px; }
.task-item.warning { border-left: 4px solid #d97706; }
.assignment-editor { position: fixed; z-index: 1000; top: 6vh; left: max(260px, calc(50% - 430px)); width: min(860px, calc(100vw - 280px)); max-height: 88vh; overflow: auto; box-shadow: 0 20px 60px #10182855; border: 2px solid #1769aa; }
button:disabled { cursor: not-allowed; opacity: .55; }
@media (max-width: 800px) {
    .app-shell > aside { position: static; height: auto; overflow: visible; }
    .app-shell > aside nav { overflow: visible; }
    .assignment-editor { left: 4vw; top: 4vh; width: 92vw; max-height: 92vh; }
}
