.dashboard-root{--shell-sidebar-w:var(--sidebar-w);--shell-drawer-w:min(300px,86vw);--shell-content-top:clamp(16px,1.8vw,28px);--shell-content-bottom:clamp(32px,4vw,56px);--student-topbar-height:var(--topbar-h);--student-sidebar-width:var(--sidebar-w);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--topbar-h) minmax(0,1fr);grid-template-areas:"topbar" "main";align-items:start;width:100%;min-height:100vh;min-height:100dvh;color:var(--text);background:transparent}.dashboard-main{grid-area:main;min-width:0;background:transparent}.dashboard-main:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--bg-tint)}.dashboard-topbar{grid-area:topbar;position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-topbar);height:var(--topbar-h);min-height:0;padding-block:0;padding-inline:max(var(--page-gutter),calc((100% - var(--content-max)) / 2));background:var(--glass);-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--border);box-shadow:none}.dashboard-topbar,.student-topbar-brand{display:flex;align-items:center;gap:var(--space-3);min-width:0}.student-topbar-brand{flex:none}.student-topbar-logo{display:flex;align-items:center;animation:fade-in var(--dur-3) var(--ease-out) both}.student-topbar-logo>a{display:flex;align-items:center;height:44px;border-radius:var(--r-sm)}.student-topbar-logo img{display:block;width:76px;height:44px;object-fit:contain}.student-drawer-close,.student-menu-toggle{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--r-md);color:var(--ink-700);background:transparent;cursor:pointer;transition:background-color var(--dur-1) ease,color var(--dur-1) ease,transform var(--dur-2) var(--ease-out)}.student-menu-toggle:hover{color:var(--navy-900);background:var(--surface-3)}.student-topbar-brand>.student-menu-toggle{-webkit-margin-start:-10px;margin-inline-start:-10px}.student-drawer-close:active,.student-menu-toggle:active{transform:scale(.96)}.student-menu-icon{position:relative;display:block;width:20px;height:20px}.student-menu-icon>span{position:absolute;left:2px;top:9px;width:16px;height:2px;border-radius:2px;background:currentColor;transform-origin:center;transition:transform var(--dur-3) var(--ease-out),opacity var(--dur-1) ease}.student-menu-icon>span:first-child{transform:translateY(-5px)}.student-menu-icon>span:last-child{transform:translateY(5px)}.student-menu-icon.is-open>span:first-child{transform:rotate(45deg)}.student-menu-icon.is-open>span:nth-child(2){opacity:0;transform:scaleX(0)}.student-menu-icon.is-open>span:last-child{transform:rotate(-45deg)}.dashboard-topbar-actions{position:static;display:flex;align-items:center;gap:var(--space-1);flex:1 1 auto;min-width:0;width:auto}.topbar-search-wrap{position:relative;flex:1 1 auto;min-width:0;max-width:480px;margin:0 auto 0 0}.dashboard-search{display:flex;align-items:center;gap:var(--space-2);width:100%;height:40px;margin:0;padding:0 8px 0 12px;border:1px solid transparent;border-radius:var(--r-md);color:var(--text-3);background:var(--surface-3);box-shadow:none;cursor:text;transition:background-color var(--dur-1) ease,border-color var(--dur-1) ease,box-shadow var(--dur-2) var(--ease-out)}.dashboard-search:hover{border-color:var(--border)}.dashboard-search:focus-within{color:var(--navy-700);background:var(--surface);border-color:var(--navy-600);box-shadow:var(--ring-navy)}.dashboard-search>svg{width:17px;height:17px;flex:none}.dashboard-search input{flex:1 1;width:100%;min-width:0;height:100%;padding:0;border:0;outline:0;color:var(--text);background:transparent;font-size:var(--fs-md);text-overflow:ellipsis}.dashboard-search input::placeholder{color:var(--text-3);opacity:1}.dashboard-topbar .dashboard-search input:focus,.dashboard-topbar .dashboard-search input:focus-visible{outline:none}.dashboard-search kbd{display:inline-flex;align-items:center;flex:none;height:22px;padding:0 7px;border:1px solid var(--border);border-radius:var(--r-xs);color:var(--text-3);background:var(--surface);box-shadow:var(--shadow-xs);font-family:var(--font-sans);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.02em;white-space:nowrap}.dashboard-search:focus-within kbd{opacity:0}.dashboard-topbar-actions>.topbar-search-toggle{display:none}.student-search-results{position:absolute;top:calc(100% + 8px);left:0;z-index:var(--z-popover);width:max(100%,360px);max-width:calc(100vw - 24px);max-height:min(440px,70dvh);overflow:auto;padding:6px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-lg);transform-origin:top left;animation:pop-in var(--dur-2) var(--ease-out) both}.student-search-results>div:first-child{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);margin-bottom:4px;padding:2px 4px 8px 8px;border-bottom:1px solid var(--border)}.student-search-results>div:first-child strong{color:var(--text-3);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.student-search-results>div:first-child>button{margin-left:auto}.search-results-count{display:inline-grid;place-items:center;min-width:20px;height:18px;margin-left:-2px;padding:0 6px;border-radius:var(--r-full);color:var(--text-2);background:var(--surface-3);font-size:var(--fs-2xs);font-weight:var(--fw-bold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.student-search-results button{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--r-sm);color:var(--text-3);background:transparent}.student-search-results button:hover{color:var(--text);background:var(--surface-3)}.student-search-results a{display:flex;align-items:center;gap:var(--space-3);padding:7px 8px;border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-md);line-height:var(--lh-snug);transition:background-color var(--dur-1) ease}.search-hit-icon{display:grid;place-items:center;flex:none;width:32px;height:32px;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--navy-600);background:var(--surface-2);transition:color var(--dur-1) ease,background-color var(--dur-1) ease,border-color var(--dur-1) ease}.search-hit-copy{display:grid;grid-gap:1px;gap:1px;min-width:0}.student-search-results a:is(:hover,:focus-visible) .search-hit-icon{border-color:var(--gold-200);color:var(--gold-700);background:var(--gold-50)}.student-search-results a+a{margin-top:2px}.student-search-results a:focus-visible,.student-search-results a:hover{background:var(--surface-3)}.student-search-results a:focus-visible{outline:2px solid var(--gold-500);outline-offset:-2px}.student-search-results a strong{font-weight:var(--fw-semibold);overflow-wrap:break-word}.student-search-results a small{color:var(--text-3);font-size:var(--fs-xs)}.student-search-results p{margin:0;padding:10px;color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-normal)}.student-search-results p[role=alert]{color:var(--danger-700)}.topbar-icon-button{position:relative;display:inline-grid;place-items:center;flex:none;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--r-md);color:var(--ink-600);background:transparent;box-shadow:none;transition:background-color var(--dur-1) ease,color var(--dur-1) ease,transform var(--dur-2) var(--ease-out)}.topbar-icon-button:hover{color:var(--navy-900);background:var(--surface-3);box-shadow:none;transform:none}.topbar-icon-button:active{transform:scale(.96)}.topbar-icon-button[aria-expanded=true]{color:var(--navy-700);background:var(--navy-50)}.topbar-icon-button svg{width:19px;height:19px}.topbar-icon-button.has-notification>i{position:absolute;top:3px;right:2px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-full);color:var(--navy-950);background:var(--gold-400);box-shadow:0 0 0 2px var(--surface);font-family:var(--font-sans);font-size:var(--fs-2xs);font-style:normal;font-weight:var(--fw-bold);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;animation:pop-in var(--dur-3) var(--ease-spring) both}.dashboard-topbar-actions>.topbar-logout{margin-inline:var(--space-1) -10px}.topbar-divider{flex:none;width:1px;height:24px;margin:0 var(--space-2);background:var(--border)}.dashboard-topbar .topbar-popover :is(button,a):focus-visible,.dashboard-topbar :is(.topbar-icon-button,.student-menu-toggle,.student-topbar-logo a):focus-visible{outline:2px solid var(--gold-500);outline-offset:2px}.dashboard-topbar .user-chip{margin:0}.user-avatar{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:var(--r-full);color:var(--gold-300);background:var(--grad-navy);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--gold-200);font-family:var(--font-display);word-spacing:var(--word-display);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.02em}.user-avatar.has-photo{overflow:hidden;background:var(--surface-3)}.user-avatar.has-photo img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}.user-menu-identity{display:flex;align-items:center;gap:var(--space-3);margin:0 0 6px;padding:10px 10px 12px;border-bottom:1px solid var(--border)}.user-menu-identity .user-avatar{width:40px;height:40px;font-size:var(--fs-sm)}.user-identity-copy{display:grid;justify-items:start;grid-gap:1px;gap:1px;min-width:0;line-height:1.3}.user-identity-copy>:is(strong,small){max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-menu-identity strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:break-word;color:var(--text);font-family:var(--font-display);word-spacing:var(--word-display);font-size:var(--fs-md);font-weight:var(--fw-bold)}.user-menu-identity small{color:var(--text-3);font-size:var(--fs-xs)}.user-identity-role{margin-top:4px;padding:2px 8px;border:1px solid var(--gold-200);border-radius:var(--r-full);color:var(--gold-800);background:var(--gold-50);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);line-height:1.35;white-space:nowrap}.dashboard-topbar .user-chip-copy{display:grid;grid-gap:1px;gap:1px;min-width:0;max-width:176px;text-align:left;line-height:1.25}.dashboard-topbar .user-chip-copy strong{overflow:hidden;color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;text-overflow:ellipsis}.dashboard-topbar .user-chip-copy span{overflow:hidden;color:var(--text-3);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis}.dashboard-topbar-actions>.ops-error{position:absolute;top:calc(100% + 8px);right:max(var(--page-gutter),calc((100% - var(--content-max)) / 2));z-index:var(--z-popover);display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);max-width:min(440px,calc(100vw - 24px));margin:0;padding:10px 12px;border:1px solid var(--danger-100);border-radius:var(--r-md);background:var(--danger-50);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);animation:pop-in var(--dur-2) var(--ease-out) both}.dashboard-topbar-actions>.ops-error button{min-height:32px;padding:0 12px;border:1px solid var(--danger-100);border-radius:var(--r-sm);color:var(--danger-700);background:var(--surface);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.topbar-popover-wrap{position:relative;flex:none}.topbar-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:var(--z-popover);width:320px;max-width:calc(100vw - 24px);max-height:calc(100dvh - var(--topbar-h) - 24px);overflow:auto;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-2);background:var(--surface);box-shadow:var(--shadow-lg);transform-origin:top right;animation:pop-in var(--dur-2) var(--ease-out) both}.notification-popover{width:360px}.topbar-popover-head{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);margin:-2px 0 var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.topbar-popover-head strong{color:var(--text);font-family:var(--font-display);font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:0;word-spacing:var(--word-display)}.topbar-popover-count{display:inline-grid;place-items:center;min-width:22px;height:20px;margin-left:calc(-1 * var(--space-1));padding:0 7px;border-radius:var(--r-full);color:var(--gold-800);background:var(--gold-100);font-size:var(--fs-2xs);font-weight:var(--fw-bold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.topbar-popover-head button{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;margin-left:auto;padding:0;border:0;border-radius:var(--r-sm);color:var(--text-3);background:transparent;transition:background-color var(--dur-1) ease,color var(--dur-1) ease}.topbar-popover-head button:hover{color:var(--text);background:var(--surface-3)}.topbar-popover p{margin:var(--space-3) 0 0;color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-normal)}.notification-popover>p:last-child{color:var(--text-3);font-size:var(--fs-xs)}.topbar-popover a{color:var(--link);font-weight:var(--fw-semibold)}.topbar-popover a:hover{color:var(--link-hover)}.topbar-popover>span{display:inline-flex;margin-top:var(--space-3);padding:2px 8px;border-radius:var(--r-full);color:var(--text-3);background:var(--surface-3);font-size:var(--fs-2xs);font-weight:var(--fw-semibold)}.ops-notifications{display:grid;grid-gap:var(--space-3);gap:var(--space-3);margin-top:var(--space-3)}.topbar-popover .ops-notifications p{margin:0}.ops-notification-alert{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:8px 10px 8px 12px;border:1px solid var(--danger-100);border-radius:var(--r-sm);color:var(--danger-700);background:var(--danger-50);font-size:var(--fs-xs);line-height:1.45}.ops-notification-alert .ops-text-button{display:inline-flex;align-items:center;gap:4px;flex:none;white-space:nowrap}.topbar-popover .ops-notification-loading{color:var(--text-3);font-size:var(--fs-sm)}.ops-notification-list{display:grid;grid-gap:2px;gap:2px;max-height:min(340px,50dvh);margin:0 -6px;padding:0;overflow-y:auto;list-style:none}.ops-notification-item{display:grid;grid-template-columns:8px minmax(0,1fr) 30px;align-items:center;grid-gap:var(--space-3);gap:var(--space-3);padding:9px 6px 9px 10px;border-radius:var(--r-sm);transition:background-color var(--dur-1) ease}.ops-notification-item:hover{background:var(--surface-2)}.ops-notification-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--ink-300)}.ops-notification-item.is-unread .ops-notification-dot{background:var(--gold-500);box-shadow:0 0 0 3px var(--gold-100)}.topbar-popover .ops-notification-item>a{display:grid;grid-gap:2px;gap:2px;min-width:0;color:var(--text);font-weight:var(--fw-semibold);text-decoration:none}.ops-notification-item>a strong{overflow-wrap:anywhere;font-size:var(--fs-sm);line-height:var(--lh-snug)}.ops-notification-item>a small{color:var(--text-3);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.ops-notification-item.is-unread>a small{color:var(--gold-800)}.topbar-popover .ops-notification-item>a:hover strong{color:var(--navy-600)}.ops-notification-open,.ops-notification-read{justify-self:center}.ops-notification-read{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-3);background:var(--surface);transition:color var(--dur-1) ease,border-color var(--dur-1) ease,background-color var(--dur-1) ease}.ops-notification-read:hover:not(:disabled){border-color:var(--success-100);color:var(--success-700);background:var(--success-50)}.ops-notification-read:focus-visible{outline:none;box-shadow:var(--ring)}.ops-notification-open{color:var(--text-3)}.ops-notification-empty{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 2px}.ops-notification-empty>svg{flex:none;width:36px;height:36px;padding:8px;border-radius:var(--r-md);color:var(--success-700);background:var(--success-50)}.ops-notification-empty strong{color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.topbar-popover .ops-notification-empty p{margin:2px 0 0;color:var(--text-3);font-size:var(--fs-xs)}.ops-notification-footer{display:grid;grid-gap:var(--space-2);gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}.ops-notification-preference{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.ops-notification-preference>span{display:grid;flex:1 1;grid-gap:1px;gap:1px}.ops-notification-preference strong{color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.ops-notification-preference small{color:var(--text-3);font-size:var(--fs-xs);line-height:1.4}.ops-notification-preference input{flex:none;position:relative;width:34px;height:20px;margin:0;border-radius:var(--r-full);background:var(--ink-300);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:background-color var(--dur-2) ease}.ops-notification-preference input:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-xs);transition:transform var(--dur-2) var(--ease-out)}.ops-notification-preference input:checked{background:var(--navy-700)}.ops-notification-preference input:checked:after{transform:translateX(14px)}.ops-notification-preference input:focus-visible{outline:none;box-shadow:var(--ring)}.ops-notification-preference input:disabled{opacity:.6}.topbar-popover .ops-notification-note{color:var(--text-3);font-size:var(--fs-xs);line-height:1.45}.dashboard-sidebar{position:relative;z-index:var(--z-sidebar);display:flex;flex-direction:column;min-width:0;min-height:0;padding:0;overflow:hidden;color:var(--text-inverse);background:linear-gradient(180deg,var(--navy-900) 0,var(--navy-950) 100%);border:0;box-shadow:none}.dashboard-sidebar:before{content:"";position:absolute;inset:0 0 auto;z-index:-1;height:240px;pointer-events:none;background:radial-gradient(260px 180px at 18% -20px,var(--gold-glow),transparent 70%)}.dashboard-sidebar:after{display:none}.dashboard-sidebar-header{display:flex;align-items:center;gap:var(--space-3);flex:none;height:var(--topbar-h);padding:0 20px;border-bottom:1px solid var(--on-navy-line)}.dashboard-brand{display:flex;align-items:center;flex:none;padding:0;border:0}.dashboard-brand a{display:flex;align-items:center;border-radius:var(--r-sm)}.dashboard-brand img{display:block;width:84px;height:48px;object-fit:contain;filter:none}.dashboard-brand-caption{min-width:0;padding-left:var(--space-3);border-left:1px solid var(--on-navy-line);color:var(--gold-300);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps);line-height:1.35;text-transform:uppercase}.dashboard-brand-mark{display:none;place-items:center;width:40px;height:40px;border:1px solid var(--gold-line);border-radius:var(--r-md);color:var(--gold-300);background:var(--gold-glow);font-family:var(--font-display);word-spacing:var(--word-display);font-size:var(--fs-md);font-weight:var(--fw-heavy);letter-spacing:-.02em}.student-sidebar-menu{gap:0}.dashboard-nav,.student-sidebar-menu{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.dashboard-nav{gap:2px;margin:0;padding:14px 12px 12px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--on-navy-scrollbar) transparent}.dashboard-nav-section{display:flex;flex-direction:column;gap:2px}.dashboard-nav-section+.dashboard-nav-section{margin-top:var(--space-3)}.dashboard-nav-group{display:block;padding:4px 12px 6px;color:var(--ink-300);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-caps);line-height:1.3;text-transform:uppercase;white-space:nowrap}.dashboard-nav button{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);flex:none;width:100%;min-height:40px;height:auto;padding:8px 12px;border:0;border-radius:10px;color:var(--text-inverse-2);background:transparent;box-shadow:none;font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:1.3;text-align:left;transform:none;transition:background-color var(--dur-1) ease,color var(--dur-1) ease}.dashboard-nav button>span:first-child{display:grid;place-items:center;flex:none;width:20px;height:20px;color:var(--ink-300);background:transparent;transition:color var(--dur-1) ease,transform var(--dur-2) var(--ease-out)}.dashboard-nav button svg{width:18px;height:18px;stroke-width:1.8}.dashboard-nav button>.dashboard-nav-label{display:block;flex:1 1;min-width:0;color:inherit;background:transparent;overflow-wrap:anywhere}.dashboard-nav button:hover{color:var(--text-inverse);background:var(--on-navy-hover);transform:none}.dashboard-nav button:hover>span:first-child{color:var(--text-inverse)}.dashboard-nav button:active>span:first-child{transform:scale(.92)}.dashboard-nav button.active{color:var(--text-inverse);background:var(--on-navy-active);box-shadow:none;font-weight:var(--fw-semibold)}.dashboard-nav button.active>span:first-child{color:var(--gold-400)}.dashboard-nav button.active:before{content:"";position:absolute;top:9px;bottom:9px;left:-12px;width:3px;border-radius:0 3px 3px 0;background:var(--grad-gold);animation:shell-indicator var(--dur-3) var(--ease-spring) both}.dashboard-sidebar .dashboard-nav button:focus-visible,.dashboard-sidebar :is(.student-sidebar-support,.student-drawer-close,.dashboard-brand a):focus-visible{outline:2px solid var(--gold-300);outline-offset:-2px}.student-sidebar-account{display:flex;align-items:center;gap:var(--space-3);flex:none;margin:0 12px;padding:12px 10px 10px;border-top:1px solid var(--on-navy-line)}.student-sidebar-account .user-avatar{box-shadow:0 0 0 2px var(--navy-950),0 0 0 3px var(--gold-line)}.student-sidebar-account strong{color:var(--text-inverse);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.student-sidebar-account .user-identity-role{margin-top:0;padding:0;border:0;color:var(--text-inverse-2);background:transparent;font-size:var(--fs-xs);font-weight:var(--fw-medium)}.student-sidebar-support{display:flex;align-items:center;gap:var(--space-3);flex:none;width:auto;min-height:52px;margin:4px 12px 14px;padding:8px 10px;border:1px solid var(--on-navy-line);border-radius:var(--r-md);color:var(--text-inverse);background:var(--on-navy-hover);text-align:left;transition:background-color var(--dur-1) ease,border-color var(--dur-1) ease}.student-sidebar-support:hover{background:var(--on-navy-active);border-color:var(--gold-line)}.student-sidebar-support-icon{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:10px;color:var(--gold-400);background:var(--gold-glow)}.student-sidebar-support>span:nth-child(2){display:grid;flex:1 1;grid-gap:1px;gap:1px;min-width:0}.student-sidebar-support strong{font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1.3}.student-sidebar-support small{color:var(--text-inverse-2);font-size:var(--fs-xs);line-height:1.35}.student-sidebar-support>svg:last-child{flex:none;color:var(--ink-300);transition:transform var(--dur-2) var(--ease-out)}.student-sidebar-support:hover>svg:last-child{transform:translateX(2px)}.student-menu-backdrop{position:fixed;inset:0;z-index:calc(var(--z-drawer) - 1);padding:0;border:0;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;cursor:default;transition:opacity var(--dur-3) var(--ease-out),visibility 0s linear var(--dur-3)}.student-menu-backdrop.is-visible{opacity:1;visibility:visible;transition:opacity var(--dur-3) var(--ease-out),visibility 0s}.dashboard-content{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;grid-gap:var(--section-gap);gap:var(--section-gap);width:100%;max-width:calc(var(--content-max) + 2 * var(--page-gutter));margin:0 auto;padding:var(--shell-content-top) var(--page-gutter) var(--shell-content-bottom)}.dashboard-root .dashboard-content>*{grid-column:1/-1;min-width:0;margin-block:0}.dashboard-content>:is(button,a.ops-button,label.ops-field){justify-self:start;width:auto}:where(.dashboard-content>*){animation:rise var(--dur-4) var(--ease-out) backwards}:where(.dashboard-content>:nth-child(2)){animation-delay:calc(1 * var(--stagger))}:where(.dashboard-content>:nth-child(3)){animation-delay:calc(2 * var(--stagger))}:where(.dashboard-content>:nth-child(4)){animation-delay:calc(3 * var(--stagger))}:where(.dashboard-content>:nth-child(5)){animation-delay:calc(4 * var(--stagger))}:where(.dashboard-content>:nth-child(n+6)){animation-delay:calc(5 * var(--stagger))}.dashboard-content .dashboard-search-hit{outline:2px solid var(--gold-500);outline-offset:4px;border-radius:var(--r-xs);transition:outline-color var(--dur-2) ease}.dashboard-content:has(>.ops-refresh-bar+.dashboard-header){grid-template-columns:minmax(0,1fr) auto}.dashboard-content>.ops-refresh-bar{grid-row:1;justify-self:end}.dashboard-content>.ops-refresh-bar:has(+.dashboard-header){grid-column:2;align-self:start;margin-top:2px}.dashboard-content>.ops-refresh-bar+.dashboard-header{grid-column:1;grid-row:1}.ops-refresh-bar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2) var(--space-3);color:var(--text-3);font-size:var(--fs-xs);line-height:1.4}.ops-refresh-meta{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.ops-refresh-meta:before{content:"";flex:none;width:7px;height:7px;border-radius:var(--r-full);background:var(--success-500);box-shadow:0 0 0 3px var(--success-100)}.ops-refresh-meta time{color:var(--text-2);font-weight:var(--fw-semibold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ops-refresh-bar:has(.ops-refresh-stale) .ops-refresh-meta:before{background:var(--warning-500);box-shadow:0 0 0 3px var(--warning-100)}.ops-refresh-stale{display:inline-flex;align-items:center;padding:2px 8px;border:1px solid var(--warning-100);border-radius:var(--r-full);color:var(--warning-700);background:var(--warning-50);font-size:var(--fs-2xs);font-weight:var(--fw-bold);white-space:nowrap}.dashboard-content>.ops-refresh-bar .ops-button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--navy-900);background:var(--surface);box-shadow:var(--shadow-xs);font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;transition:background-color var(--dur-1) ease,border-color var(--dur-1) ease}.dashboard-content>.ops-refresh-bar .ops-button:hover:not(:disabled){border-color:var(--ink-300);background:var(--surface-2)}.dashboard-content>.ops-refresh-bar .ops-button:hover:not(:disabled) svg{transform:rotate(60deg)}.dashboard-content>.ops-refresh-bar .ops-button svg{transition:transform var(--dur-3) var(--ease-out)}.dashboard-content>.ops-refresh-bar .ops-button:disabled{color:var(--text-3);background:var(--surface-3);box-shadow:none}.dashboard-content>:is(.ops-notice,.ops-error){display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border:1px solid;border-radius:var(--r-md);box-shadow:var(--shadow-xs);font-size:var(--fs-sm);line-height:var(--lh-normal)}.dashboard-content>:is(.ops-notice,.ops-error):before{content:"";position:static;flex:none;width:18px;height:18px;margin-top:1px;background:currentColor;-webkit-mask:var(--shell-notice-icon) center /contain no-repeat;mask:var(--shell-notice-icon) center /contain no-repeat}.dashboard-content>.ops-notice{--shell-notice-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");border-color:var(--success-100);color:var(--success-700);background:var(--success-50)}.dashboard-content>.ops-error{--shell-notice-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");border-color:var(--danger-100);background:var(--danger-50)}@media (min-width:1280px){.dashboard-root{grid-template-columns:var(--shell-sidebar-w) minmax(0,1fr);grid-template-areas:"sidebar topbar" "sidebar main"}.dashboard-root.is-sidebar-collapsed{--shell-sidebar-w:var(--sidebar-rail-w)}.dashboard-root.is-shell-animated{transition:grid-template-columns var(--dur-3) var(--ease-out)}.dashboard-sidebar{grid-area:sidebar;position:-webkit-sticky;position:sticky;top:0;width:auto;height:100vh;height:100dvh;transform:none;visibility:visible}.dashboard-root:not(.is-sidebar-collapsed) .student-topbar-logo{display:none}.dashboard-root:not(.is-sidebar-collapsed) .dashboard-nav button{gap:10px;padding-inline:12px 6px;letter-spacing:-.01em}.dashboard-root:not(.is-sidebar-collapsed) .dashboard-nav button>.dashboard-nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-root.is-sidebar-collapsed .dashboard-sidebar-header{justify-content:center;padding:0}.dashboard-root.is-sidebar-collapsed :is(.dashboard-brand,.dashboard-brand-caption){display:none}.dashboard-root.is-sidebar-collapsed .dashboard-brand-mark{display:grid;animation:pop-in var(--dur-3) var(--ease-out) both}.dashboard-root.is-sidebar-collapsed .dashboard-nav{align-items:center;padding-inline:14px}.dashboard-root.is-sidebar-collapsed .dashboard-nav-section{align-items:center;width:100%}.dashboard-root.is-sidebar-collapsed .dashboard-nav-group{width:28px;height:1px;margin:4px auto 6px;padding:0;overflow:hidden;color:transparent;background:var(--on-navy-line)}.dashboard-root.is-sidebar-collapsed .dashboard-nav button{justify-content:center;gap:0;width:44px;min-height:40px;padding:0}.dashboard-root.is-sidebar-collapsed .dashboard-nav button.active:before{left:-14px}.dashboard-root.is-sidebar-collapsed .dashboard-nav button>.dashboard-nav-label{position:fixed;left:calc(var(--sidebar-rail-w) + 10px);z-index:var(--z-popover);flex:none;width:max-content;max-width:240px;padding:6px 10px;border-radius:var(--r-sm);color:var(--text-inverse);background:var(--navy-900);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transform:translateX(-4px);transition:opacity var(--dur-1) ease,transform var(--dur-2) var(--ease-out),visibility 0s linear var(--dur-2)}.dashboard-root.is-sidebar-collapsed .dashboard-nav button:is(:hover,:focus-visible)>.dashboard-nav-label{opacity:1;visibility:visible;transform:none;transition:opacity var(--dur-1) ease,transform var(--dur-2) var(--ease-out),visibility 0s}.dashboard-root.is-sidebar-collapsed .student-sidebar-support{justify-content:center;gap:0;width:48px;min-height:48px;margin:4px auto 14px;padding:0}.dashboard-root.is-sidebar-collapsed .student-sidebar-support>:not(.student-sidebar-support-icon){display:none}}@media (min-width:1280px) and (max-height:820px){.dashboard-nav{padding-block:10px}.dashboard-nav button{min-height:36px;padding-block:6px}.dashboard-nav-section+.dashboard-nav-section{margin-top:var(--space-2)}.dashboard-nav-group{padding-block:2px 4px}.student-sidebar-support{min-height:44px;margin-bottom:10px;padding-block:6px}.student-sidebar-support small{display:none}}@media (max-width:1279px){.dashboard-sidebar{position:fixed;inset:0 auto 0 0;z-index:var(--z-drawer);width:var(--shell-drawer-w);height:100vh;height:100dvh;transform:translateX(-100%);visibility:hidden;transition:transform var(--dur-3) var(--ease-out),box-shadow var(--dur-3) ease,visibility 0s linear var(--dur-3)}.dashboard-sidebar.is-menu-open{transform:none;visibility:visible;box-shadow:var(--shadow-xl);transition:transform var(--dur-3) var(--ease-out),box-shadow var(--dur-3) ease,visibility 0s}.dashboard-sidebar-header{padding-inline:var(--page-gutter) 16px}.student-drawer-close{color:var(--text-inverse)}.student-drawer-close:hover{background:var(--on-navy-hover)}.dashboard-brand img{width:76px;height:44px}.dashboard-nav{padding-top:12px}.dashboard-nav button{min-height:44px;font-size:var(--fs-base)}.dashboard-nav button.active:before{top:10px;bottom:10px}}@media (max-width:1279px) and (max-height:600px){.student-sidebar-account{display:none}}@media (max-width:1023px){.dashboard-topbar .user-chip-copy{display:none}.topbar-search-wrap{max-width:none}}@media (max-width:767px){.dashboard-topbar,.student-topbar-brand{gap:var(--space-2)}.student-topbar-logo img{width:70px;height:40px}.dashboard-topbar-actions{justify-content:flex-end}.dashboard-topbar-actions>.topbar-search-toggle{display:inline-grid;margin-left:auto}.topbar-search-wrap{display:none}.topbar-search-wrap.is-open{position:absolute;top:100%;left:0;right:0;display:block;max-width:none;margin:0;padding:10px var(--page-gutter) 12px;border-bottom:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-md);animation:shell-sheet-in var(--dur-2) var(--ease-out) both}.topbar-search-wrap.is-open .dashboard-search{height:44px}.dashboard-search input{font-size:16px}.dashboard-search kbd{display:none}.student-search-results{position:static;width:100%;max-width:none;max-height:calc(100dvh - var(--topbar-h) - 96px);margin-top:var(--space-2);box-shadow:none}.dashboard-topbar-actions>.topbar-logout,.topbar-divider,.topbar-help>.topbar-icon-button{display:none}.topbar-popover-wrap{position:static}.notification-popover,.topbar-popover{position:fixed;top:calc(var(--topbar-h) + 8px);right:12px;left:12px;width:auto;max-width:none;max-height:calc(100dvh - var(--topbar-h) - 24px);transform-origin:top center}.dashboard-topbar-actions>.ops-error{right:12px;left:12px;max-width:none}.dashboard-topbar:has(.topbar-popover,.topbar-search-wrap.is-open,details[open]):after{content:"";position:fixed;top:100%;right:0;left:0;z-index:1;height:100dvh;pointer-events:none;background:var(--scrim-soft);animation:fade-in var(--dur-2) var(--ease-out) both}.topbar-search-wrap.is-open{z-index:2}}@media (max-width:639px){.dashboard-content:has(>.ops-refresh-bar+.dashboard-header){grid-template-columns:minmax(0,1fr)}.dashboard-content>.ops-refresh-bar,.dashboard-content>.ops-refresh-bar:has(+.dashboard-header){grid-column:1;justify-self:stretch;justify-content:space-between;margin-top:0}.dashboard-content>.ops-refresh-bar:has(+.dashboard-header){grid-row:2}.dashboard-content>.ops-refresh-bar{gap:var(--space-2)}.dashboard-content>.ops-refresh-bar .ops-button{margin-left:auto}.ops-refresh-zone{display:none}}@media (max-width:768px),(pointer:coarse){.dashboard-content>.ops-refresh-bar .ops-button{min-height:40px;padding-inline:14px}}@media (pointer:coarse){.dashboard-search{height:44px}.dashboard-search input{font-size:16px}.dashboard-search kbd{display:none}}@media (max-width:1279px) and (pointer:coarse){.dashboard-topbar-actions>.topbar-logout{display:none}}@media (max-width:359px){.dashboard-topbar{padding-inline:12px}.ops-refresh-meta:before{display:none}.dashboard-content>.ops-refresh-bar .ops-button{gap:5px;padding-inline:10px}.student-topbar-logo img{width:62px;height:36px}}@media (hover:none){.dashboard-search kbd{display:none}}@keyframes shell-indicator{0%{opacity:0;transform:scaleY(.3)}to{opacity:1;transform:none}}@keyframes shell-sheet-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}