.portal-mobile-header,.portal-mobile-tabs{display:none}.portal-mobile-menu{--mobile-accent:var(--ruby,#0f6cbd);position:fixed;inset:0 auto 0 0;margin:0;width:min(88vw,390px);max-width:none;height:100dvh;max-height:100dvh;padding:0;border:0;border-right:1px solid var(--line-2);background:var(--surface,var(--paper,#fff));color:var(--ink,#202d40);box-shadow:20px 0 60px #0003;font-family:var(--font-body,sans-serif)}.portal-mobile-menu::-webkit-backdrop{background:rgb(15 23 42/.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.portal-mobile-menu::backdrop{background:rgb(15 23 42/.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.portal-mobile-menu[open]{display:flex;flex-direction:column;animation:portal-menu-enter .18s ease-out}@keyframes portal-menu-enter{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.portal-mobile-menu-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:calc(20px + env(safe-area-inset-top)) 20px 18px;border-bottom:1px solid var(--line)}.portal-mobile-menu-head h2{margin:4px 0 0;font:650 24px/1.2 var(--font-body,sans-serif)}.portal-mobile-menu-head small{color:var(--ink-3);font-size:10px;font-weight:650;letter-spacing:.12em}.portal-mobile-icon{width:44px;height:44px;min-width:44px;display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--line,#e5e8ec);border-radius:12px;background:var(--surface,var(--paper));color:inherit;font-size:28px;cursor:pointer}.portal-mobile-menu-scroll{overflow-y:auto;overscroll-behavior:contain;padding:18px 16px calc(24px + env(safe-area-inset-bottom));min-height:0;flex:1 1}.portal-mobile-person{display:grid;grid-gap:4px;gap:4px;padding:0 8px 18px;overflow-wrap:anywhere}.portal-mobile-person strong{font-size:17px}.portal-mobile-person span{font-size:13px;color:var(--ink-3)}.portal-mobile-shortcuts{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-bottom:22px}.portal-mobile-shortcuts a{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--line-2);border-radius:12px;text-decoration:none;font-size:13px;font-weight:600;color:var(--ink);background:var(--surface-2,var(--paper-2))}.portal-mobile-shortcuts svg{width:22px;height:22px;color:var(--ruby)}.portal-mobile-menu .portal-mobile-navigation :is(.portal-side-group,.student-nav-group){margin:20px 0 0}.portal-mobile-menu .portal-mobile-navigation :is(.portal-side-group,.student-nav-group)>h2{margin:0 10px 7px;font:650 10px/1.4 var(--font-body,sans-serif);letter-spacing:.1em;color:var(--ink-3)}.portal-mobile-menu .portal-mobile-navigation ul{list-style:none;margin:0;padding:0}.portal-mobile-menu .portal-mobile-navigation a{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 12px;border-radius:10px;color:var(--ink-2);text-decoration:none;font:500 14px/1.4 var(--font-body,sans-serif)}.portal-mobile-menu .portal-mobile-navigation a[aria-current=page]{color:var(--ruby);background:color-mix(in srgb,var(--ruby) 10%,var(--surface,var(--paper)));font-weight:650}.portal-mobile-menu .portal-side-dot,.portal-mobile-menu .student-nav-mark{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.5;flex:none}.portal-mobile-preferences{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.portal-mobile-preferences select{min-height:44px;max-width:100%;font-size:16px}.portal-mobile-logout{width:100%;margin-top:18px;min-height:48px;border:1px solid var(--line-2);border-radius:12px;background:transparent;color:var(--ink);font:600 14px var(--font-body,sans-serif)}.portal-mobile-menu :is(a,button,select):focus-visible{outline:2px solid var(--ruby);outline-offset:2px}@media (max-width:960px){:root{--portal-mobile-tab-height:calc(68px + env(safe-area-inset-bottom));--portal-mobile-header-height:calc(64px + env(safe-area-inset-top))}[data-studio=true] .portal-shell{display:block;min-height:100dvh}.student-workspace[data-world] .student-sidebar,.student-workspace[data-world] .student-topbar,[data-studio=true] .portal-shell>.portal-main>.portal-topbar,[data-studio=true] .portal-shell>.portal-side{display:none}.student-workspace[data-world] .student-layout{display:block;min-height:0}.portal-mobile-header{display:flex;align-items:center;justify-content:space-between;gap:12px;height:var(--portal-mobile-header-height);box-sizing:border-box;padding:env(safe-area-inset-top) max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));position:-webkit-sticky;position:sticky;top:0;z-index:40;background:var(--surface,var(--paper));border-bottom:1px solid var(--line)}.portal-mobile-brand{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px;color:var(--ink);text-decoration:none}.portal-mobile-brand small{font-size:10px;font-weight:600;color:var(--ink-3);letter-spacing:.03em}.portal-mobile-brand small,.portal-mobile-brand strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.portal-mobile-brand strong{font:650 16px/1.4 var(--font-body,sans-serif)}.portal-mobile-avatar{width:44px;height:44px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:650;color:var(--ruby);text-decoration:none;border:1px solid color-mix(in srgb,var(--ruby) 20%,var(--line));background:color-mix(in srgb,var(--ruby) 8%,var(--surface,var(--paper)))}.portal-mobile-tabs{display:grid;position:fixed;z-index:45;inset:auto 0 0;min-height:var(--portal-mobile-tab-height);box-sizing:border-box;padding:5px max(6px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:color-mix(in srgb,var(--surface,var(--paper)) 96%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line-2);box-shadow:0 -4px 24px rgb(20 40 60/.04)}.portal-mobile-tabs :is(a,button){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:3px 0;min-width:0;background:none;border:0;border-radius:12px;font:550 10px/1.4 var(--font-body,sans-serif);color:var(--ink-3);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.portal-mobile-tabs :is(a,button)>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-mobile-tab-icon{display:grid;place-items:center;width:48px;height:30px;border-radius:12px}.portal-mobile-tab-icon svg{width:22px;height:22px}.portal-mobile-tabs :is([aria-current=page],[data-active=true],[aria-expanded=true]){color:var(--ruby);font-weight:700}.portal-mobile-tabs :is([aria-current=page],[data-active=true],[aria-expanded=true]) .portal-mobile-tab-icon{background:color-mix(in srgb,var(--ruby) 12%,var(--surface,var(--paper)))}.portal-mobile-tabs :is(a,button):active{transform:scale(.96)}.portal-mobile-tabs[data-keyboard=true]{display:none}.portal-mobile-header :is(a,button):focus-visible,.portal-mobile-tabs :is(a,button):focus-visible{outline:2px solid var(--ruby);outline-offset:-2px}[data-studio=true] .portal-shell .portal-content{min-width:0;max-width:100%;padding:22px max(16px,env(safe-area-inset-right)) calc(var(--portal-mobile-tab-height) + 24px) max(16px,env(safe-area-inset-left))}.portal-shell .portal-main,.student-workspace .student-main{min-width:0}.portal-shell .portal-pagehead{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:20px}[data-studio=true] .portal-shell .portal-pagehead h1{font:650 26px/1.2 var(--font-body,sans-serif);letter-spacing:-.025em;overflow-wrap:anywhere}[data-studio=true] .portal-shell .portal-pagehead .lede{font-size:14px;line-height:1.6;max-width:55ch}.portal-shell .portal-pagehead-actions{width:100%;flex-wrap:wrap}.student-workspace[data-world] :is(input:not([type=checkbox]):not([type=radio]),select,textarea),[data-studio=true] .portal-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;max-width:100%;min-width:0}.portal-shell :is(.btn,.field input,.field select),.student-workspace :is(.btn,.field input,.field select){min-height:44px}.portal-shell :is(.field-row,.portal-form-grid),.student-workspace .field-row{grid-template-columns:minmax(0,1fr)}.portal-shell :is(.portal-panel,.portal-table-wrap),.student-workspace :is(.student-panel,.portal-panel,.student-table-scroll){min-width:0;max-width:100%;box-sizing:border-box}.student-workspace .student-card-grid{grid-template-columns:minmax(0,1fr)}.student-workspace .student-course-heading{flex-wrap:wrap}.student-workspace .student-tabs{gap:20px;scrollbar-width:none}.student-workspace .student-tabs a{min-height:44px;display:inline-flex;align-items:center;flex:none}.portal-shell .portal-table-wrap,.student-workspace .student-table-scroll{overflow-x:auto;overscroll-behavior-x:contain}.portal-shell~.wh-chat-bubble{display:none}.portal-shell:has(.portal-mobile-tabs)~.wh-chat-panel{bottom:calc(var(--portal-mobile-tab-height) + 8px)}.portal-shell .drawer,.student-workspace .drawer{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.portal-shell .drawer-foot,.student-workspace .drawer-foot{padding-bottom:max(16px,env(safe-area-inset-bottom))}.portal-shell .outlook-workspace{grid-template-columns:minmax(0,1fr)}.portal-shell .outlook-workspace[data-sidebar=false]>.outlook-sidebar{display:none}.portal-shell .outlook-workspace[data-sidebar=true]>.outlook-sidebar{width:100%;max-height:60dvh;overflow:auto;border-bottom:1px solid var(--line-2)}.portal-shell .outlook-content{min-width:0;overflow-x:auto}.portal-shell .calendar-ribbon{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:thin;padding-block:8px}.portal-shell .calendar-ribbon button{min-height:44px;flex:none}.student-workspace .student-calendar-export{display:flex;flex-direction:column;align-items:stretch;gap:12px}.student-workspace .student-calendar-export .field{width:100%}.student-workspace .student-calendar-export h3{font-size:15px}.student-workspace .student-calendar-export p{font-size:13px}.student-workspace .profile-form{min-width:0}.portal-shell .profile-email-locked,.student-workspace .profile-email-locked{overflow-wrap:anywhere}:is(.portal-shell,.student-workspace) [id]{scroll-margin-top:calc(var(--portal-mobile-header-height) + 12px)}}@media (prefers-reduced-motion:reduce){.portal-mobile-menu[open]{animation:none}.portal-mobile-tabs :is(a,button):active{transform:none}}@media print{.portal-mobile-header,.portal-mobile-menu,.portal-mobile-tabs{display:none!important}}[data-mobile] :is(.portal-mobile-header,.portal-mobile-tabs){display:none!important}.portal-mobile-calendar-select{display:none}.portal-mobile-preferences .portal-theme-picker{display:flex;align-items:center;gap:8px;margin:0}@media (max-width:960px){.portal-shell .calendar-ribbon .calendar-view-tab{display:none}.portal-shell .portal-mobile-calendar-select{display:block;flex:none;margin:0}.portal-shell .portal-mobile-calendar-select select{width:110px;min-height:44px}.student-workspace[data-world] .elevschema{padding:0;border:0;background:transparent}.student-workspace .fluent-calendar[data-compact]{padding:14px}.student-workspace .mobile-calendar-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;grid-gap:10px;gap:10px;align-items:center}.student-workspace .mobile-calendar-title{display:flex;gap:8px;align-items:center;min-width:0}.student-workspace .mobile-calendar-title>svg{display:none}.student-workspace .mobile-calendar-title h2{margin:0;font:650 19px/1.2 var(--font-body,sans-serif);overflow-wrap:anywhere}.student-workspace .mobile-calendar-title small{display:block;margin-top:4px;font-size:12px;color:var(--ink-3);font-weight:400}.student-workspace .mobile-calendar-toolbar button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);color:var(--ink);font:500 13px var(--font-body,sans-serif)}.student-workspace .mobile-calendar-toolbar button svg{width:20px;height:20px}.student-workspace .mobile-calendar-view{margin:0}.student-workspace .mobile-calendar-view select{width:92px;min-height:44px;padding:8px;font-size:16px}.student-workspace .mobile-calendar-navigation{display:flex;grid-column:1/-1;gap:6px;align-items:center;padding-top:12px;margin-top:4px;border-top:1px solid var(--line)}.student-workspace .mobile-calendar-navigation>span{min-width:0;flex:1 1;text-align:center;font-size:12px;font-weight:500;overflow-wrap:anywhere}.student-workspace .student-calendar-export{border-top:0;padding-inline:0}}[data-theme=dark] .student-workspace .fluent-calendar{--paper:#1b232d;--paper-2:#202c39;--surface:#1b232d;--ink:#f1f4f8;--ink-2:#dce5ee;--ink-3:#b0bdca;--line:#303e4d;--line-2:#506174;--ruby:#79baff;background:var(--surface);color:var(--ink);border-color:var(--line-2)}[data-theme=dark] .student-workspace .fluent-calendar :is(h2,h3,h4){color:var(--ink)}[data-theme=dark] .student-workspace .fluent-calendar :is(.student-calendar-agenda-day h3,.student-calendar-agenda-item,.student-calendar-views,.student-calendar-empty,.student-calendar-day,.student-calendar-time-grid){background:var(--paper-2);color:var(--ink);border-color:var(--line-2)}.course-mobile-cards{display:none}@media (max-width:960px){.portal-shell .portal-table-wrap{position:relative}.portal-shell .course-desktop-table{display:none}.portal-shell .course-mobile-cards{display:grid;grid-gap:14px;gap:14px}.course-mobile-sort{display:flex;align-items:flex-end;gap:10px}.course-mobile-sort .field{flex:1 1;margin:0}.course-mobile-sort .btn{width:44px;min-height:44px}.course-mobile-card{border:1px solid var(--line-2);background:var(--surface,var(--paper));border-radius:16px;padding:18px;min-width:0}.course-mobile-card-heading{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;justify-content:space-between}.course-mobile-card-heading>div:first-child{flex:1 1 180px;min-width:0}.course-mobile-card h3{margin:6px 0 0;font:650 18px/1.4 var(--font-body,sans-serif);overflow-wrap:anywhere}.course-mobile-card h3 a{color:var(--ink);text-decoration:none}.course-mobile-card small{color:var(--ink-3);font-size:11px}.course-mobile-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px 12px;gap:16px 12px;margin:20px 0}.course-mobile-card dt{color:var(--ink-3);font-size:11px;margin-bottom:4px}.course-mobile-card dd{margin:0;font-size:13px;font-weight:500;overflow-wrap:anywhere}.course-mobile-card .portal-meter{min-width:0;max-width:100%}.course-mobile-card-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:14px;flex-wrap:wrap}.portal-shell .drawer-head,.student-workspace .drawer-head{padding-top:max(18px,env(safe-area-inset-top))}}