.sp{background:var(--bg);min-height:100dvh;color:var(--text);flex:1;font-size:14px;display:flex;position:relative}.sp *,.sp :before,.sp :after{box-sizing:border-box}.sp svg{flex-shrink:0}.sp a{text-decoration:none}.sp :is(button,input,select,textarea,a,summary):focus-visible{outline:2px solid var(--primary);outline-offset:3px}.sp-desktop-sidebar{background:var(--side);flex:0 0 248px}.sp-side{scrollbar-width:thin;scrollbar-color:var(--side-active) transparent;background:var(--side);height:100dvh;color:var(--side-text);flex-direction:column;gap:14px;padding:20px 14px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sp-school{align-items:center;gap:12px;padding:0 8px;display:flex}.sp-school-mark{background:var(--school-accent);width:40px;height:40px;color:var(--accent-ink);border-radius:12px;flex-shrink:0;place-items:center;font-size:15px;font-weight:800;display:grid}.sp-school-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.sp-school-copy strong{color:#fff;font-size:14px;font-weight:700;line-height:1.25}.sp-school-copy>span{color:var(--side-muted);font-size:12px}.sp-nav,.sp-nav-group{flex-direction:column;gap:2px;display:flex}.sp-nav-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted);padding:10px 12px 3px;font-size:11px;font-weight:700}.sp-nav a{color:var(--side-text);border-radius:10px;align-items:center;gap:12px;padding:7px 10px 7px 12px;font-weight:500;line-height:20px;display:flex}.sp-nav a>svg{color:var(--side-muted)}.sp-nav a:hover,.sp-nav a[aria-current=page]{background:var(--side-active)}.sp-nav a[aria-current=page]{color:#fff;box-shadow:inset 3px 0 0 var(--school-accent);font-weight:600}.sp-nav a[aria-current=page]>svg{color:var(--school-accent)}.sp-nav-label{flex:1;min-width:0}.sp-badge{background:var(--school-accent);min-width:22px;height:20px;color:var(--accent-ink);text-align:center;border-radius:999px;padding:0 7px;font-size:11px;font-weight:800}.sp-badge-warning{color:#2a1a00;background:#f5b547}.sp-support{background:var(--side-active);border-radius:12px;margin-top:auto}.sp-support summary{color:#fff;cursor:pointer;align-items:center;gap:10px;padding:12px;font-size:13px;font-weight:600;display:flex}.sp-support svg{color:var(--school-accent)}.sp-support p{color:var(--side-muted);margin:0;padding:0 12px 12px;font-size:12px}.sp-workspace{flex-direction:column;flex:1;min-width:0;display:flex}.sp-top{z-index:5;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 32px;display:flex;position:sticky;top:0}.sp-search{border:1px solid var(--border);background:var(--surface-2);max-width:420px;height:42px;color:var(--muted-foreground);border-radius:12px;flex:260px;align-items:center;gap:10px;padding:0 14px;display:flex}.sp-search:focus-within{outline:2px solid var(--primary);outline-offset:2px}.sp-search input{min-width:0;color:var(--text);background:0 0;border:0;flex:1;font-size:14px}.sp-search input:focus-visible{outline:none}.sp-search input::placeholder{color:var(--muted-foreground);opacity:1}.sp-search kbd{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:6px;flex:none;padding:2px 7px;font-family:inherit;font-size:11px;font-weight:700}.sp-header-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.sp-academic-year{background:var(--primary-soft);height:42px;color:var(--primary);white-space:nowrap;border-radius:12px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.sp-icon-button{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sp-icon-button:hover{background:var(--surface-2)}.sp-user{align-items:center;gap:10px;padding-left:6px;display:flex}.sp-avatar{background:var(--primary);width:40px;height:40px;color:var(--on-primary);border-radius:50%;place-items:center;font-weight:700;display:grid}.sp-user-copy{flex-direction:column;display:flex}.sp-user-copy strong{font-size:14px;font-weight:600}.sp-user-copy>span{color:var(--muted-foreground);font-size:12px}.sp-notifications{position:relative}.sp summary{list-style:none}.sp summary::-webkit-details-marker{display:none}.sp-notification-panel{border:1px solid var(--border);background:var(--surface);width:260px;box-shadow:var(--shadow);border-radius:12px;padding:18px;position:absolute;top:calc(100% + 10px);right:0}.sp-notification-panel p{color:var(--muted-foreground);margin-top:8px;font-size:13px}.sp-content{flex:1;min-width:0;padding:28px 32px 40px}.sp-empty{border:2px dashed var(--border);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;min-height:480px;padding:24px;display:flex}.sp-empty h1{margin:0;font-size:16px;font-weight:700}.sp-empty p{max-width:620px;color:var(--muted-foreground);margin:0;font-size:13px}.sp-skip-link{z-index:20;background:var(--surface);color:var(--primary);border-radius:8px;padding:12px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.sp-skip-link:focus{transform:translateY(0)}.sp-menu-button{display:none}.sp-mobile-menu{background:var(--side);width:min(300px,90vw);max-width:none;height:100dvh;max-height:none;color:var(--side-text);border:0;margin:0;padding:0;position:fixed;inset:0 auto 0 0}.sp-mobile-menu::backdrop{background:#00000080}.sp-mobile-menu .sp-side{height:auto;min-height:100%;padding-top:68px;position:static;overflow:visible}.sp-close-menu{position:absolute;top:12px;right:14px}@media (max-width:1199px){.sp-academic-year{display:none}}@media (max-width:899px){.sp-desktop-sidebar{display:none}.sp-menu-button{display:flex}.sp-top{padding:12px 20px}.sp-search{flex:180px}.sp-user-copy{display:none}.sp-content{padding:24px 20px}}@media (max-width:539px){.sp-top{gap:10px;padding:12px 16px}.sp-search{flex-basis:100%;order:3;max-width:none}.sp-header-actions{gap:8px}.sp-content{padding:20px 16px}.sp-empty{min-height:360px}}@media (min-width:900px){.sp-mobile-menu[open]{display:none}}
