/* The full interface, rearranged for phones and compact landscape screens. */
.mobile-app-bar,.month-scroll-hint{display:none}
.mobile-navigation{padding:0;border:0;border-radius:0;margin:0;inset:0 auto 0 0;width:min(320px,calc(100vw - 36px));height:100dvh;max-width:none;max-height:100dvh;overflow:hidden;background:var(--bg);color:var(--ink)}
.mobile-navigation::backdrop{background:#17243866;backdrop-filter:blur(2px)}
.mobile-navigation-close{position:absolute;right:12px;top:max(12px,env(safe-area-inset-top));z-index:5;width:44px;height:44px;font-size:27px;border-radius:7px;color:var(--muted);background:#ffffffc9}
body.mobile-layout{min-width:0;overflow-wrap:break-word}
body.mobile-layout #app,body.mobile-layout main,body.mobile-layout section,body.mobile-layout .workspace,body.mobile-layout .calendar-card{min-width:0;max-width:100%}
body.mobile-layout .mobile-app-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;min-height:60px}
body.mobile-layout #mobileMenuButton{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);background:white;border-radius:7px;flex:0 0 44px}
body.mobile-layout #mobileMenuButton svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round}
body.mobile-layout .mobile-brand{font-size:20px;letter-spacing:-.7px;font-weight:650}
body.mobile-layout #mobileCurrentView{margin-left:auto;font-size:12px;color:var(--muted);text-align:right;line-height:1.4}
body.mobile-layout main{margin:0;padding:22px 16px max(24px,env(safe-area-inset-bottom));width:100%}
body.mobile-layout button,body.mobile-layout .outline,body.mobile-layout .primary{min-height:44px;touch-action:manipulation}
body.mobile-layout :is(input,select,textarea){font-size:16px;min-width:0;max-width:100%;border-radius:7px}
body.mobile-layout input:not([type=checkbox]):not([type=radio]),body.mobile-layout select{min-height:44px}
body.mobile-layout :is(input[type=checkbox],input[type=radio]){width:18px;height:18px;flex:0 0 18px;vertical-align:middle}
body.mobile-layout header{align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:20px}
body.mobile-layout header>div:first-child{min-width:0;flex:1 1 100%}
body.mobile-layout header h1{font-size:24px;max-width:none;line-height:1.3;letter-spacing:-.8px;margin-top:8px}
body.mobile-layout header .eyebrow{font-size:10px;letter-spacing:1px;line-height:1.5}
body.mobile-layout .header-actions{display:flex;flex-direction:row;flex-wrap:wrap;width:100%;gap:8px}
body.mobile-layout .header-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:1 1 auto;padding:10px 12px;font-size:12px;white-space:nowrap}
body.mobile-layout .header-actions .outline span{display:inline}
/* All sidebar controls, class links and account information stay available. */
body.mobile-layout .mobile-navigation .sidebar{position:static;inset:auto;display:flex;flex-direction:column;width:100%;height:100%;max-height:100%;padding:24px 18px max(24px,env(safe-area-inset-bottom));padding-top:max(24px,env(safe-area-inset-top));border:0;overflow-y:auto;background:white;overscroll-behavior:contain}
body.mobile-layout .mobile-navigation .sidebar .wordmark{display:flex;flex-shrink:0;margin:0 44px 27px 10px;font-size:23px;min-height:35px}
body.mobile-layout .mobile-navigation .sidebar .side-label{display:block;font-size:10px;margin:0 12px 12px}
body.mobile-layout .mobile-navigation .sidebar nav{display:flex;flex-direction:column;flex-wrap:nowrap;gap:4px;overflow:visible;flex-shrink:0;padding:0}
body.mobile-layout .mobile-navigation .sidebar nav .nav,body.mobile-layout .mobile-navigation .sidebar-bottom .nav{width:100%;min-width:0;flex:0 0 auto;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:12px;margin:0;position:static;text-align:left;font-size:16px;min-height:46px}
body.mobile-layout .mobile-navigation .sidebar .nav span{font-size:14px;flex:1}
body.mobile-layout .mobile-navigation .sidebar .nav .nav-symbol{flex:0 0 auto}
body.mobile-layout .mobile-navigation .sidebar .nav small{position:static;font-size:11px;min-width:22px;text-align:center}
body.mobile-layout .mobile-navigation .side-divider{display:block;margin:20px 12px}
body.mobile-layout .mobile-navigation .classes-head{display:flex;align-items:center;min-height:44px}
body.mobile-layout .mobile-navigation .classes-head .side-label{margin-bottom:0}
body.mobile-layout .mobile-navigation #classFilters{display:block}
body.mobile-layout .mobile-navigation .class-filter{font-size:13px;padding:12px;gap:12px;line-height:1.5}
body.mobile-layout .mobile-navigation .sidebar-bottom{display:block;margin-top:auto;padding-top:22px;flex-shrink:0}
body.mobile-layout .mobile-navigation .quiet-card{display:none}
body.mobile-layout .mobile-navigation .profile{display:flex;margin:15px 10px 0;padding-top:18px}
body.mobile-layout .mobile-navigation .profile strong{font-size:12px;line-height:1.6}
body.mobile-layout .mobile-navigation .profile small{font-size:11px;line-height:1.5}
body.mobile-layout .summary{grid-template-columns:repeat(3,minmax(0,1fr));padding:15px 0;gap:0;margin-bottom:20px}
body.mobile-layout .summary>div,body.mobile-layout .summary>div:first-child{min-width:0;padding:0 10px;align-items:flex-start;gap:0}
body.mobile-layout .summary>div>div{min-width:0;width:100%}
body.mobile-layout .summary .stat-icon{display:none}
body.mobile-layout .summary small{font-size:10px;line-height:1.6;margin-bottom:7px}
body.mobile-layout .summary strong{font-size:24px;letter-spacing:-.5px}
body.mobile-layout .summary em{display:block;margin:5px 0 0;font-size:10px;line-height:1.5}
body.mobile-layout .summary .gpa-mode-select{width:100%;max-width:100%;font-size:13px;padding:8px 4px;min-height:44px;margin-top:7px}
body.mobile-layout .workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
body.mobile-layout .calendar-toolbar{padding:16px 12px;flex-wrap:wrap;gap:12px}
body.mobile-layout .month-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;flex:1 1 100%}
body.mobile-layout .month-title h2{font-size:20px;margin-right:auto;line-height:1.4;white-space:normal}
body.mobile-layout .month-title .icon{min-width:38px;min-height:44px}
body.mobile-layout .calendar-toolbar .small{font-size:12px;padding:8px 10px}
body.mobile-layout .calendar-toolbar .view-switch{width:100%;display:flex}
body.mobile-layout .view-switch button{flex:1;font-size:13px;padding:9px 12px}
body.mobile-layout .search-line{padding:8px 14px;gap:8px}
body.mobile-layout .search-line input{font-size:16px;min-height:44px}
body.mobile-layout .keycap{display:none}
body.mobile-layout .month-scroll-hint{display:block;padding:10px 14px;font-size:11px;color:var(--muted);line-height:1.5;border-top:1px solid var(--line);background:#ffffff80}
body.mobile-layout .assignment-month-scroll,body.mobile-layout #schoolGrid{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;outline-offset:-3px}
body.mobile-layout #calendar .day-headings,body.mobile-layout #calendar .month-grid,body.mobile-layout #schoolGrid .day-headings,body.mobile-layout #schoolGrid .school-month-grid{min-width:650px}
body.mobile-layout #calendar .day{min-height:202px;padding:8px 5px;overflow:hidden}
body.mobile-layout #calendar .day-number{font-size:12px;margin-bottom:9px}
body.mobile-layout #calendar .day-headings span{font-size:11px}
body.mobile-layout #calendar .event-chip{font-size:11px;padding:7px 5px;min-height:44px;line-height:1.4;margin:4px 0}
body.mobile-layout #calendar .event-chip span{display:block;font-size:10px;line-height:1.4;margin-top:3px}
body.mobile-layout #calendar .more{font-size:11px;min-height:36px;margin:0;display:block;width:100%;text-align:left}
body.mobile-layout .calendar-footer{padding:12px 14px;gap:10px;flex-wrap:wrap;font-size:11px;line-height:1.7}
body.mobile-layout .calendar-footer .text-btn{font-size:12px}
body.mobile-layout .agenda-filters{padding:14px}
body.mobile-layout .agenda-filter-top{flex-wrap:wrap;gap:12px}
body.mobile-layout .agenda-filter-top .eyebrow{display:block;font-size:10px}
body.mobile-layout .period-switch{display:flex;width:100%;min-width:0}
body.mobile-layout .period-switch button{flex:1;min-width:0;font-size:12px;padding:8px 6px;line-height:1.4}
body.mobile-layout .agenda-filter-options{font-size:11px;gap:12px;align-items:flex-start;line-height:1.7;flex-wrap:wrap}
body.mobile-layout .agenda-filter-options>div{display:flex;width:100%;justify-content:space-between;gap:12px;flex-wrap:wrap}
body.mobile-layout .agenda-filter-options label{display:flex;align-items:center;min-height:40px;gap:8px}
body.mobile-layout .task{display:grid;grid-template-columns:10px minmax(0,1fr) auto;padding:16px 13px;gap:9px 10px;align-items:center}
body.mobile-layout .task .dot{grid-column:1;grid-row:1}
body.mobile-layout .task-text{grid-column:2;grid-row:1;min-width:0}
body.mobile-layout .task-title{font-size:13px;line-height:1.5;margin-bottom:4px;min-height:0;padding:0;overflow-wrap:anywhere}
body.mobile-layout .task .course-label{font-size:11px;line-height:1.6}
body.mobile-layout .task-time{font-size:11px;grid-row:2;grid-column:2}
body.mobile-layout .task .dismiss{grid-column:3;grid-row:1/3;font-size:11px;padding:8px 4px;display:flex;flex-direction:column;gap:6px}
body.mobile-layout .task .dismiss .dismiss-label{display:inline}
body.mobile-layout .check-circle{width:22px;height:22px;font-size:12px}
body.mobile-layout .agenda-heading{font-size:12px;padding:14px}
body.mobile-layout .right-panel{display:block;padding:16px 0;border-top:1px solid var(--line)}
body.mobile-layout .panel-head h2{font-size:21px}
body.mobile-layout .panel-intro{font-size:12px;line-height:1.6}
body.mobile-layout #radar,body.mobile-layout #gradeAlerts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.mobile-layout .radar-item{min-width:0;padding:14px}
body.mobile-layout .radar-title{font-size:13px;line-height:1.5;min-height:44px;padding:0}
body.mobile-layout .item-top{flex-wrap:wrap;gap:8px}
body.mobile-layout .type-badge,body.mobile-layout .due-label{font-size:10px}
body.mobile-layout .course-label{font-size:11px;line-height:1.6}
body.mobile-layout .radar-bottom{font-size:11px;gap:6px;flex-wrap:wrap}
body.mobile-layout .radar-bottom .dismiss{font-size:11px;min-height:44px;gap:7px}
body.mobile-layout .grade-alert small{font-size:11px;line-height:1.7}
body.mobile-layout .grade-row{align-items:flex-start}
body.mobile-layout .grade-row strong{font-size:13px;line-height:1.6}
body.mobile-layout .grade-card{padding:22px 17px}
body.mobile-layout .grade-card h3{font-size:16px;line-height:1.5}
body.mobile-layout .grade-card p{font-size:12px;line-height:1.7}
body.mobile-layout .grade-card .course-open{font-size:15px;line-height:1.6;min-height:44px;overflow-wrap:anywhere}
body.mobile-layout .class-progress-line{font-size:11px;gap:9px 14px;line-height:1.7}
body.mobile-layout .class-progress-line>button{font-size:12px;min-height:44px;margin-left:0;flex-basis:100%;text-align:left}
body.mobile-layout .gpa-class-settings{font-size:12px;line-height:1.7}
body.mobile-layout summary{min-height:44px;cursor:pointer;padding-top:10px;padding-bottom:10px;line-height:1.6}
body.mobile-layout .gpa-panel{padding:22px 16px}
body.mobile-layout .gpa-heading{flex-wrap:wrap;gap:10px}
body.mobile-layout .gpa-totals{gap:8px;min-width:0}
body.mobile-layout .gpa-choices>button{padding:14px 6px;min-width:0}
body.mobile-layout .gpa-choices strong{font-size:27px;letter-spacing:-1px}
body.mobile-layout .gpa-choices span{font-size:11px}
body.mobile-layout .gpa-selected-value{flex-wrap:wrap;gap:10px}
body.mobile-layout .gpa-selected-value>strong{font-size:44px}
body.mobile-layout .gpa-explainer,body.mobile-layout .gpa-method,body.mobile-layout .gpa-history p{font-size:12px;line-height:1.8}
body.mobile-layout .gpa-controls{gap:10px 20px;align-items:center}
body.mobile-layout .gpa-controls label{font-size:12px;min-height:44px}
body.mobile-layout .gpa-credits{margin-left:0}
body.mobile-layout .gpa-controls input[type=number]{width:82px;font-size:16px}
body.mobile-layout .gpa-history-fields{grid-template-columns:1fr}
body.mobile-layout .gpa-calculator-expand>summary span{float:none;display:block;font-size:11px;margin:6px 0 0 14px}
body.mobile-layout .school-heading{flex-wrap:wrap;align-items:flex-start;gap:12px}
body.mobile-layout .school-heading h2,body.mobile-layout .weekly-heading h2{font-size:26px;line-height:1.3}
body.mobile-layout .school-heading p:last-child,body.mobile-layout .weekly-heading p:last-child{font-size:12px;line-height:1.7}
body.mobile-layout .school-heading .eyebrow{font-size:10px}
body.mobile-layout .school-heading>.school-live-pill{font-size:9px;max-width:none;line-height:1.6}
body.mobile-layout .class-calendar-controls{display:flex;flex-wrap:wrap;gap:10px}
body.mobile-layout .class-calendar-controls>span{font-size:11px;line-height:1.6}
body.mobile-layout .class-calendar-controls .view-switch{display:flex;width:100%}
body.mobile-layout .school-layout{grid-template-columns:minmax(0,1fr);gap:18px}
body.mobile-layout .school-month-toolbar{padding:14px 12px;gap:10px;flex-wrap:wrap}
body.mobile-layout .school-month-toolbar h3{font-size:19px;line-height:1.4;min-width:0}
body.mobile-layout .school-month-toolbar>div{gap:3px;flex-shrink:0}
body.mobile-layout .school-month-toolbar .icon{width:40px;font-size:25px}
body.mobile-layout .school-month-toolbar .small{padding:8px 12px;font-size:12px}
body.mobile-layout .tt-header{position:sticky;top:0;background:white;z-index:3}
body.mobile-layout .timetable-scroll{max-height:min(78dvh,850px);scrollbar-width:thin;overscroll-behavior:contain}
body.mobile-layout .tt-date{font-size:12px;gap:7px;min-height:90px}
body.mobile-layout .tt-date>small{font-size:10px}
body.mobile-layout .tt-zone{font-size:11px;padding-left:8px}
body.mobile-layout .tt-times>span{font-size:10px}
body.mobile-layout .tt-block{font-size:12px;min-height:0;padding:7px 6px;gap:4px}
body.mobile-layout .tt-block strong{font-size:12px}
body.mobile-layout .tt-block small{font-size:10px;line-height:1.4}
body.mobile-layout .tt-short{padding:3px 6px;gap:0}
body.mobile-layout .tt-short strong{font-size:11px;line-height:14px}
body.mobile-layout .tt-short small{font-size:9px;line-height:12px}
body.mobile-layout .tt-compact{padding:0 5px;gap:0}
body.mobile-layout .tt-compact strong{font-size:10px;line-height:12px}
body.mobile-layout .tt-passing{padding:0 5px}
body.mobile-layout .tt-passing strong{font-size:7px;line-height:10px}
body.mobile-layout .tt-allday>span,body.mobile-layout .tt-allday>div>span{font-size:10px;line-height:1.4}
body.mobile-layout .tt-footnote{font-size:11px;line-height:1.7}
body.mobile-layout .school-next{padding:18px;gap:16px;flex-wrap:wrap}
body.mobile-layout .school-next strong{font-size:16px;line-height:1.5}
body.mobile-layout .school-next small{font-size:12px;line-height:1.7}
body.mobile-layout .school-next .eyebrow{font-size:10px;line-height:1.5}
body.mobile-layout .school-next>div:last-child{margin-left:0}
body.mobile-layout .school-next>div:not(.school-now-icon):not(.school-next-divider){flex:1 1 220px}
body.mobile-layout .school-next-divider{display:none}
body.mobile-layout .school-now-icon{display:none}
body.mobile-layout .school-day-card .school-next{padding:20px}
body.mobile-layout .school-day-heading{padding:20px}
body.mobile-layout .school-day-heading h3{font-size:19px;line-height:1.4}
body.mobile-layout .school-day-card #schoolDayRows{display:block}
body.mobile-layout .school-slot{padding:17px 16px;gap:13px}
body.mobile-layout .school-slot-time{font-size:12px;min-width:70px}
body.mobile-layout .school-slot small,body.mobile-layout .school-slot-time small{font-size:11px;line-height:1.6}
body.mobile-layout .school-slot strong,body.mobile-layout .school-slot button{font-size:14px;line-height:1.6}
body.mobile-layout .school-slot button{min-height:44px}
body.mobile-layout .school-notice,body.mobile-layout .school-dismissal{font-size:12px;line-height:1.8}
body.mobile-layout .school-legend{font-size:11px;line-height:1.6;gap:10px 14px;padding:12px}
body.mobile-layout #schoolGrid .school-date{padding:10px 7px;min-height:150px;gap:8px}
body.mobile-layout #schoolGrid .school-date strong{font-size:12px}
body.mobile-layout #schoolGrid .school-date small,body.mobile-layout #schoolGrid .school-date-event{font-size:10px;line-height:1.5}
body.mobile-layout .school-source{flex-wrap:wrap;gap:12px;padding:14px}
body.mobile-layout .school-source a{font-size:12px;min-height:44px;display:flex;align-items:center}
body.mobile-layout .school-events-card{padding:20px 16px}
body.mobile-layout .school-events-card>label{position:static;display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;margin:12px 0}
body.mobile-layout #schoolUpcomingEvents{grid-template-columns:1fr}
body.mobile-layout .school-event strong,body.mobile-layout .school-event a{font-size:13px;line-height:1.6}
body.mobile-layout .school-event small{font-size:12px;line-height:1.6}
body.mobile-layout .school-footnote,body.mobile-layout .school-footnote a{font-size:11px;line-height:1.8;overflow-wrap:anywhere}
body.mobile-layout .timeline-hero{padding:24px 20px}
body.mobile-layout .timeline-numbers{grid-template-columns:1fr;gap:20px;margin:24px 0}
body.mobile-layout .timeline-numbers>div,body.mobile-layout .timeline-numbers>div:first-child{border:0;border-bottom:1px solid var(--line);padding:0 0 20px;display:flex;align-items:baseline;flex-wrap:wrap;gap:7px 16px}
body.mobile-layout .timeline-numbers>div:last-child{border:0;padding:0}
body.mobile-layout .timeline-numbers strong{font-size:42px;min-width:0;overflow-wrap:anywhere}
body.mobile-layout .timeline-numbers span{font-size:13px;line-height:1.6}
body.mobile-layout .timeline-info-grid{grid-template-columns:1fr}
body.mobile-layout .timeline-info-grid p,body.mobile-layout .timeline-hero p{font-size:12px;line-height:1.8}
body.mobile-layout .timeline-milestones{padding:22px 16px}
body.mobile-layout .timeline-milestones button{gap:12px;min-height:64px}
body.mobile-layout .timeline-milestones strong{font-size:13px;line-height:1.6}
body.mobile-layout .timeline-milestones small{font-size:11px;line-height:1.6}
body.mobile-layout .weekly-heading{align-items:flex-start;flex-wrap:wrap;gap:14px}
body.mobile-layout .weekly-private{display:inline-flex;font-size:10px}
body.mobile-layout .weekly-toolbar-custom{gap:16px;flex-wrap:wrap}
body.mobile-layout .weekly-date-control{width:100%}
body.mobile-layout .weekly-date-row{display:flex;width:100%}
body.mobile-layout .weekly-date-strip{display:grid;grid-template-columns:25px repeat(3,minmax(0,1fr)) 25px;width:100%;gap:3px}
body.mobile-layout .weekly-date-tile{padding:12px 4px;min-height:68px}
body.mobile-layout .weekly-date-tile>span{font-size:8px;letter-spacing:.5px}
body.mobile-layout .weekly-date-tile>strong{font-size:11px;line-height:1.6;white-space:normal}
body.mobile-layout .weekly-step{font-size:24px;min-width:0;padding:0}
body.mobile-layout .weekly-tools{width:100%;justify-content:space-between;gap:10px}
body.mobile-layout .weekly-zone-trigger{min-width:0;flex:1;padding:12px}
body.mobile-layout .weekly-zone-trigger strong{font-size:13px}
body.mobile-layout .weekly-refresh-control{font-size:12px;min-height:46px;padding:10px}
body.mobile-layout .weekly-meta{font-size:11px;line-height:1.7;gap:8px;flex-wrap:wrap}
body.mobile-layout .weekly-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.mobile-layout .weekly-metrics article{padding:20px 14px;min-width:0}
body.mobile-layout .weekly-metrics strong{font-size:33px;line-height:1.3}
body.mobile-layout .weekly-metrics h3{font-size:12px;line-height:1.6}
body.mobile-layout .weekly-metrics p{font-size:11px;line-height:1.7}
body.mobile-layout .weekly-metric-icon{width:22px;height:22px;right:10px;top:15px;font-size:13px}
body.mobile-layout .weekly-story{grid-template-columns:1fr;padding:22px 17px;gap:22px}
body.mobile-layout .weekly-story h3{font-size:21px;line-height:1.4}
body.mobile-layout .weekly-story p{font-size:12px;line-height:1.8}
body.mobile-layout .weekly-sections{grid-template-columns:1fr;gap:16px}
body.mobile-layout .weekly-card{padding:20px 14px}
body.mobile-layout .weekly-course{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:16px 0}
body.mobile-layout .weekly-course>span:first-child{min-width:0}
body.mobile-layout .weekly-course strong{font-size:13px;line-height:1.6}
body.mobile-layout .weekly-course small{font-size:11px;line-height:1.7}
body.mobile-layout .weekly-course-score{min-width:70px}
body.mobile-layout .weekly-course-score small{font-size:10px}
body.mobile-layout .weekly-delta{grid-column:1/-1;text-align:left;font-size:11px;padding:0;min-width:0}
body.mobile-layout .weekly-card-heading{flex-wrap:wrap;gap:14px}
body.mobile-layout .weekly-tabs{width:100%;display:flex;min-width:0}
body.mobile-layout .weekly-tabs button{flex:1;padding:9px 5px;font-size:11px;line-height:1.5;white-space:normal;min-width:0}
body.mobile-layout .weekly-item{gap:10px;display:grid;grid-template-columns:18px minmax(0,1fr) auto 12px;padding:16px 0}
body.mobile-layout .weekly-item strong{font-size:12px;line-height:1.6}
body.mobile-layout .weekly-item small,body.mobile-layout .weekly-item>span:nth-child(3){font-size:11px;line-height:1.6}
body.mobile-layout .weekly-win{gap:10px;min-width:0}
body.mobile-layout .weekly-win strong{font-size:12px;line-height:1.6}
body.mobile-layout .weekly-fine,body.mobile-layout .weekly-footnote{font-size:11px;line-height:1.8}
body.mobile-layout .assistant-panel{width:100%;max-width:100%;margin:0}
body.mobile-layout .assistant-heading{padding:20px 16px;flex-wrap:wrap;align-items:flex-start}
body.mobile-layout .assistant-heading-copy{min-width:0;gap:12px}
body.mobile-layout .assistant-heading .eyebrow{font-size:9px;line-height:1.6}
body.mobile-layout .assistant-heading h2{font-size:23px}
body.mobile-layout .assistant-heading p:last-child{font-size:12px;line-height:1.6}
body.mobile-layout .assistant-heading>.small{font-size:12px;margin-left:auto}
body.mobile-layout .assistant-context{padding:15px;flex-wrap:wrap;gap:10px;font-size:12px}
body.mobile-layout .assistant-context select{flex:1;min-width:0;font-size:16px;max-width:calc(100% - 65px)}
body.mobile-layout .assistant-context>span{flex:1 1 100%;font-size:11px;line-height:1.7;margin:0}
body.mobile-layout .assistant-messages{padding:20px 15px;min-height:260px;max-height:62dvh;overscroll-behavior:contain}
body.mobile-layout .assistant-welcome{padding:20px 0}
body.mobile-layout .assistant-welcome h3{font-size:23px;line-height:1.4}
body.mobile-layout .assistant-welcome p{font-size:12px;line-height:1.8}
body.mobile-layout .assistant-prompts{grid-template-columns:1fr;gap:10px}
body.mobile-layout .assistant-prompt{font-size:12px;padding:14px;min-height:52px;line-height:1.6;text-align:left}
body.mobile-layout .assistant-composer{padding:16px}
body.mobile-layout .assistant-composer textarea{font-size:16px;min-height:100px;line-height:1.6;width:100%}
body.mobile-layout .composer-bottom{flex-wrap:wrap;gap:12px}
body.mobile-layout .composer-bottom>span{flex:1 1 160px;font-size:11px;line-height:1.7}
body.mobile-layout .composer-bottom button{font-size:13px;min-width:85px}
body.mobile-layout .chat-message{gap:10px}
body.mobile-layout .chat-body{min-width:0}
body.mobile-layout .chat-copy{font-size:13px;line-height:1.8;overflow-wrap:anywhere}
body.mobile-layout .assistant-sources a{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
body.mobile-layout .assistant-ad{margin:0 15px 15px;padding:12px}
body.mobile-layout .assistant-ad-slot{flex-wrap:wrap;gap:10px}
body.mobile-layout .assistant-ad-slot p{font-size:11px;line-height:1.6}
body.mobile-layout .assistant-ad-pending{display:inline-block;font-size:10px}
body.mobile-layout footer{font-size:10px;line-height:1.7;letter-spacing:.3px;flex-wrap:wrap;gap:10px;margin-top:25px}
/* Dialogs scroll within the visible screen, including short landscape screens. */
body.mobile-layout dialog:not(.mobile-navigation){width:min(620px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:28px 20px;border-radius:12px;overflow-y:auto;overscroll-behavior:contain}
body.mobile-layout dialog h2{font-size:24px;line-height:1.4;padding-right:22px}
body.mobile-layout dialog>p:not(.eyebrow){font-size:13px;line-height:1.8}
body.mobile-layout dialog .close{width:44px;height:44px;top:6px;right:6px;display:grid;place-items:center;background:#ffffffeb;z-index:4}
body.mobile-layout form label{font-size:13px;line-height:1.6;margin-top:19px}
body.mobile-layout .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.mobile-layout .form-row>div{min-width:0}
body.mobile-layout .detail-meta{font-size:13px;line-height:1.7;flex-wrap:wrap;gap:8px}
body.mobile-layout .detail-note{font-size:12px;line-height:1.8;padding:15px}
body.mobile-layout .detail-actions{display:flex;flex-wrap:wrap;gap:10px}
body.mobile-layout .detail-actions>*{min-height:44px;display:flex;align-items:center;justify-content:center;font-size:13px;flex:1 1 160px;padding:12px}
body.mobile-layout dialog.course-dialog{width:min(980px,calc(100vw - 20px));max-width:calc(100vw - 20px);padding:0}
body.mobile-layout .course-hero{padding:28px 20px 22px}
body.mobile-layout .course-title-row{align-items:flex-start;gap:14px;flex-wrap:wrap}
body.mobile-layout .course-title-row>div:first-child{flex:1 1 170px;min-width:0}
body.mobile-layout .course-title-row h2{font-size:23px;line-height:1.4;overflow-wrap:anywhere}
body.mobile-layout .course-title-row p{font-size:12px;line-height:1.8}
body.mobile-layout .course-overall{min-width:70px;padding:10px 14px}
body.mobile-layout .course-overall strong{font-size:31px}
body.mobile-layout .course-overall span{font-size:11px;white-space:normal}
body.mobile-layout .course-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}
body.mobile-layout .course-stats>div+div{border:0;padding:0}
body.mobile-layout .course-stats strong{font-size:27px}
body.mobile-layout .course-stats span{font-size:12px;line-height:1.7}
body.mobile-layout .score-legend{padding:18px 20px;gap:10px 14px;font-size:11px;line-height:1.7}
body.mobile-layout .grade-drivers{padding:22px 20px}
body.mobile-layout .grade-drivers>p,body.mobile-layout .grade-context p{font-size:12px;line-height:1.8}
body.mobile-layout .driver-categories,body.mobile-layout .category-grid{grid-template-columns:1fr}
body.mobile-layout .driver-category small{font-size:11px;line-height:1.7}
body.mobile-layout .driver-gap{gap:12px;align-items:flex-start;flex-wrap:wrap;padding:14px;line-height:1.6}
body.mobile-layout .driver-gap>span{flex:1 1 170px;min-width:0}
body.mobile-layout .driver-gap strong{font-size:13px;line-height:1.6}
body.mobile-layout .driver-gap small{font-size:11px;line-height:1.7}
body.mobile-layout .driver-gap b{font-size:12px;white-space:normal;text-align:left}
body.mobile-layout .grade-context{padding:18px 20px}
body.mobile-layout .grade-context summary{font-size:13px}
body.mobile-layout .gradebook-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:10px}
body.mobile-layout .course-dialog .gradebook-toolbar{padding-right:16px}
body.mobile-layout .gradebook-toolbar input{grid-column:1/-1;width:100%}
body.mobile-layout .gradebook-toolbar select{min-width:0;width:100%;font-size:14px;padding:10px 8px}
body.mobile-layout .gradebook-toolbar select:last-child{grid-column:1/-1}
body.mobile-layout .gradebook-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;padding:18px 16px;align-items:center;text-align:left}
body.mobile-layout .gradebook-name{grid-column:1/-1;min-width:0;width:auto}
body.mobile-layout .gradebook-name strong{font-size:14px;line-height:1.6;overflow-wrap:anywhere}
body.mobile-layout .gradebook-name small{font-size:11px;line-height:1.7;white-space:normal}
body.mobile-layout .gradebook-status{width:auto;font-size:11px;white-space:normal;line-height:1.6}
body.mobile-layout .gradebook-points{width:auto;font-size:12px;white-space:nowrap;margin:0}
body.mobile-layout .gradebook-row .score-chip{font-size:12px;min-width:65px;padding:8px}
body.mobile-layout .gradebook-arrow{display:none}
body.mobile-layout .gradebook-count{font-size:12px;padding:14px 16px}
body.mobile-layout .course-footer{padding:18px 16px;display:flex;flex-wrap:wrap;gap:12px;font-size:11px;line-height:1.8}
body.mobile-layout .course-footer>div{display:flex;flex-wrap:wrap;gap:12px}
body.mobile-layout .course-footer a,body.mobile-layout .course-footer button{font-size:12px;min-height:44px;display:inline-flex;align-items:center}
body.mobile-layout .feedback-section p,body.mobile-layout .plain-copy,body.mobile-layout .rubric-row{font-size:13px;line-height:1.8;overflow-wrap:anywhere}
body.mobile-layout .course-loading{padding:32px 22px;min-height:250px}
body.mobile-layout .course-loading-heading h2{padding-right:0;font-size:21px}
body.mobile-layout .course-loading-heading p{font-size:13px}
body.mobile-layout .settings-hub-rows{gap:8px}
body.mobile-layout .settings-hub-row{padding:15px 12px;gap:12px;min-height:75px}
body.mobile-layout .settings-row-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center}
body.mobile-layout .settings-hub-row>span:nth-child(2){min-width:0}
body.mobile-layout .settings-hub-row strong{font-size:14px;line-height:1.6}
body.mobile-layout .settings-hub-row small{font-size:12px;line-height:1.7}
body.mobile-layout .settings-hub-profile,body.mobile-layout .settings-hub-feedback{font-size:12px;line-height:1.8;overflow-wrap:anywhere}
body.mobile-layout .settings-back{font-size:12px;min-height:44px}
body.mobile-layout .theme-choices{gap:10px;margin:20px 0}
body.mobile-layout .theme-choices>button{padding:10px;min-width:0}
body.mobile-layout .theme-preview{height:110px}
body.mobile-layout .theme-choice-title{font-size:15px}
body.mobile-layout .theme-choices small{font-size:11px;line-height:1.7}
body.mobile-layout .theme-save-note,body.mobile-layout #appearanceStatus{font-size:12px;line-height:1.8}
body.mobile-layout .setting-details p,body.mobile-layout .fine{font-size:12px;line-height:1.8}
body.mobile-layout .connection-host{font-size:13px;overflow-wrap:anywhere}
body.mobile-layout .period-field{font-size:14px;line-height:1.6}
body.mobile-layout .seventh-question{padding:15px}
body.mobile-layout .seventh-question label{font-size:13px}
body.mobile-layout .seventh-question select{font-size:16px;min-height:44px;white-space:normal}
body.mobile-layout .survey-status{font-size:12px;line-height:1.8}
body.mobile-layout .schedule-weekdays{gap:4px 12px;padding:12px}
body.mobile-layout .schedule-weekdays label{font-size:13px;min-height:40px}
body.mobile-layout .custom-period-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.mobile-layout .custom-period-fields label:first-child{grid-column:1/-1}
body.mobile-layout .custom-period-fields label{font-size:12px;line-height:1.7}
body.mobile-layout .custom-period-row legend label{font-size:14px;line-height:1.7}
body.mobile-layout .custom-period-fields input{font-size:16px}
body.mobile-layout .custom-week-tabs{gap:8px}
body.mobile-layout .custom-week-tabs button{flex:1;min-width:54px;font-size:12px}
body.mobile-layout .custom-class{grid-template-columns:1fr;gap:8px;padding:16px 0}
body.mobile-layout .custom-class>span,body.mobile-layout .custom-class small{font-size:12px;line-height:1.7}
body.mobile-layout .custom-class strong{font-size:15px;line-height:1.7}
body.mobile-layout .custom-next{grid-template-columns:1fr;gap:20px}
body.mobile-layout .recovery-setup-prompt{flex-wrap:wrap;gap:10px;font-size:12px;line-height:1.8}
body.mobile-layout .recovery-setup-prompt .text-btn{font-size:12px}
body.mobile-layout :is(.recovery-key,.recovery-key-value,#newRecoveryKey,#newAccountCode){overflow-wrap:anywhere;word-break:break-word;font-size:15px;line-height:1.8}
body.mobile-layout .recovery-feedback{font-size:12px;line-height:1.8;overflow-wrap:anywhere}
body.mobile-layout .weekly-picker-dialog{padding:26px 20px}
body.mobile-layout .weekly-zone-grid{gap:10px}
body.mobile-layout .weekly-zone-option{padding:14px 10px}
body.mobile-layout .weekly-zone-option strong{font-size:13px}
body.mobile-layout .weekly-zone-option small{font-size:11px;line-height:1.6}
body.mobile-layout .weekly-zone-clock{font-size:12px;flex-wrap:wrap}
body.mobile-layout .weekly-picker-intro,body.mobile-layout .weekly-picker-note{font-size:12px;line-height:1.7}
body.mobile-layout .auth{display:block;padding:14px;min-height:100dvh}
body.mobile-layout .auth-copy{min-height:0;padding:24px;border-radius:14px;gap:25px}
body.mobile-layout .auth-copy .wordmark{font-size:20px}
body.mobile-layout .auth h1{font-size:36px;letter-spacing:-1.8px;line-height:1.1;margin:14px 0 18px}
body.mobile-layout .auth .intro{font-size:14px;line-height:1.8}
body.mobile-layout .auth .hero-art{display:none}
body.mobile-layout .auth-copy>.fine{display:none}
body.mobile-layout .auth-copy .eyebrow{margin-top:0;font-size:9px;line-height:1.6}
body.mobile-layout .auth-form{max-width:440px;padding:32px 10px;margin:auto}
body.mobile-layout .auth-form>p{font-size:13px;line-height:1.8}
body.mobile-layout .auth-form h2{font-size:29px}
body.mobile-layout .auth-form .text-btn{font-size:12px;min-height:44px;line-height:1.7}
body.mobile-layout .privacy-note{font-size:12px;line-height:1.8}
body.mobile-layout #toast{font-size:13px;line-height:1.7;bottom:max(16px,env(safe-area-inset-bottom));padding:14px 18px;max-width:calc(100vw - 28px);width:max-content;z-index:15}
@media(max-width:480px){body.mobile-layout #radar,body.mobile-layout #gradeAlerts{grid-template-columns:1fr}body.mobile-layout .month-title h2{flex-basis:100%}body.mobile-layout .month-title .arrows{margin-right:auto}body.mobile-layout .weekly-course-score small{max-width:100px;white-space:normal}body.mobile-layout .form-row{grid-template-columns:1fr}body.mobile-layout .assistant-heading-copy .assistant-mark{display:none}}
@media(min-width:600px) and (max-width:1100px){body.mobile-layout header>div:first-child{flex:1 1 240px}body.mobile-layout .header-actions{flex:0 1 auto;width:auto}body.mobile-layout .header-actions button{flex:0 1 auto}body.mobile-layout .month-title{flex:1 1 auto}body.mobile-layout .calendar-toolbar .view-switch{width:auto;min-width:200px}body.mobile-layout .timeline-numbers{grid-template-columns:repeat(3,minmax(0,1fr))}body.mobile-layout .timeline-numbers>div,body.mobile-layout .timeline-numbers>div:first-child{display:block;border-bottom:0;padding:0}body.mobile-layout .timeline-numbers strong{font-size:35px}body.mobile-layout .timeline-numbers span{display:block;margin-top:10px}body.mobile-layout .school-day-card #schoolDayRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}body.mobile-layout .weekly-story{grid-template-columns:minmax(0,1fr) 200px}body.mobile-layout .weekly-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}body.mobile-layout .weekly-metrics strong{font-size:30px}body.mobile-layout .assistant-prompts{grid-template-columns:1fr 1fr}body.mobile-layout .course-stats{grid-template-columns:repeat(4,minmax(0,1fr))}body.mobile-layout .gradebook-toolbar{grid-template-columns:2fr 1fr 1fr 1fr}body.mobile-layout .gradebook-toolbar input,body.mobile-layout .gradebook-toolbar select:last-child{grid-column:auto}body.mobile-layout .driver-categories{grid-template-columns:1fr 1fr}body.mobile-layout .custom-next{grid-template-columns:1fr 1fr}}
@media(orientation:landscape) and (max-height:600px){body.mobile-layout .mobile-app-bar{min-height:50px;padding-top:4px;padding-bottom:4px}body.mobile-layout main{padding-top:18px}body.mobile-layout .timetable-scroll{max-height:none}body.mobile-layout .assistant-messages{max-height:65dvh}body.mobile-layout .mobile-navigation .sidebar{padding-top:18px}body.mobile-layout dialog:not(.mobile-navigation){max-height:calc(100dvh - 16px)}body.mobile-layout .auth{display:grid;grid-template-columns:1fr 1fr;gap:20px}body.mobile-layout .auth-copy{padding:24px}body.mobile-layout .auth h1{font-size:34px}body.mobile-layout .auth-form{padding:20px 12px}}
body.mobile-layout dialog:not(.mobile-navigation):not(.course-dialog)>.close{position:sticky;float:right;top:0;right:auto;margin:-14px -6px -30px 6px}
body.mobile-layout dialog.course-dialog>.close{position:sticky;float:right;top:8px;right:auto;margin:8px 10px -52px 0}
/* Put the existing actions in the landscape top bar instead of spending a row on them. */
@media(min-width:600px) and (max-height:600px){
 body.mobile-layout .mobile-app-bar{min-height:62px;padding-right:345px;padding-left:max(14px,env(safe-area-inset-left))}
 body.mobile-layout .header-actions{position:fixed;top:max(8px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:11;margin:0;gap:7px;width:auto;flex-wrap:nowrap}
 body.mobile-layout .header-actions button{font-size:11px;padding:9px 10px;min-height:44px}
 body.mobile-layout header>div:first-child{display:none}
 body.mobile-layout header{min-height:0;margin:0;padding:0;gap:0}
 body.mobile-layout main{padding-top:18px}
 body.mobile-layout .summary{padding:12px 0;margin-bottom:16px}
 body.mobile-layout .summary>div>div{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}
 body.mobile-layout .summary small{margin:0;flex:1 1 100%}
 body.mobile-layout .summary strong{font-size:23px}
 body.mobile-layout .summary em{display:inline;margin-left:5px;font-size:10px}
 body.mobile-layout .summary .gpa-mode-select{width:auto;min-width:120px;max-width:150px;margin:0;min-height:38px}
 body.mobile-layout .calendar-toolbar{padding:10px 12px;gap:8px}
 body.mobile-layout .search-line{padding:4px 14px}
 body.mobile-layout .agenda-filters{padding:10px 14px}
 body.mobile-layout .agenda-filter-top{flex-wrap:nowrap;gap:15px}
 body.mobile-layout .agenda-filter-top .eyebrow{white-space:nowrap}
 body.mobile-layout .period-switch{width:auto;flex:1}
 body.mobile-layout .agenda-filter-options{flex-wrap:nowrap;justify-content:space-between;gap:16px}
 body.mobile-layout .agenda-filter-options>div{width:auto;flex-wrap:nowrap;gap:16px}
 body.mobile-layout .agenda-filter-options label{white-space:nowrap}
 body.mobile-layout .class-calendar-controls{margin-bottom:12px;align-items:center;flex-wrap:nowrap}
 body.mobile-layout .class-calendar-controls .view-switch{width:200px}
 body.mobile-layout .weekly-toolbar-custom{gap:14px}
 body.mobile-layout .weekly-date-control{width:auto;flex:1;max-width:500px}
 body.mobile-layout .weekly-tools{width:auto}
 body.mobile-layout .weekly-heading{margin-bottom:14px}
}
@media(min-width:600px) and (max-width:750px) and (max-height:600px){body.mobile-layout .mobile-brand{display:none}}
@media(min-width:600px) and (max-height:600px){
 body.mobile-layout[data-screen=agenda] .calendar-card{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:start}
 body.mobile-layout[data-screen=agenda] .calendar-toolbar{grid-column:1/-1}
 body.mobile-layout[data-screen=agenda] .search-line{grid-column:1;grid-row:2;padding:8px 12px}
 body.mobile-layout[data-screen=agenda] .agenda-filters{grid-column:1;grid-row:3;padding:14px 12px;border-bottom:0}
 body.mobile-layout[data-screen=agenda] .agenda-filter-top{display:block}
 body.mobile-layout[data-screen=agenda] .agenda-filter-top .eyebrow{display:block;margin-bottom:12px}
 body.mobile-layout[data-screen=agenda] .period-switch{width:100%;display:grid;grid-template-columns:1fr 1fr}
 body.mobile-layout[data-screen=agenda] .period-switch button{padding:10px 5px}
 body.mobile-layout[data-screen=agenda] .agenda-filter-options{display:block}
 body.mobile-layout[data-screen=agenda] .agenda-filter-options>span{display:block;font-size:11px;line-height:1.8;margin:14px 0}
 body.mobile-layout[data-screen=agenda] .agenda-filter-options>div{display:block}
 body.mobile-layout[data-screen=agenda] .agenda-filter-options label{min-height:44px;white-space:normal}
 body.mobile-layout[data-screen=agenda] #agenda{grid-column:2;grid-row:2/5;border-left:1px solid var(--line);min-width:0;min-height:360px}
 body.mobile-layout[data-screen=agenda] .calendar-footer{grid-column:1/-1}
 body.mobile-layout[data-screen=agenda] .task{padding:14px 12px}
}
@media(min-width:760px) and (max-height:600px){
 body.mobile-layout .summary>div>div{flex-wrap:nowrap;gap:8px}
 body.mobile-layout .summary small{flex:1 1 auto;font-size:10px;line-height:1.5;min-width:0}
 body.mobile-layout .summary strong{font-size:22px;white-space:nowrap}
 body.mobile-layout .summary em{font-size:9px;display:block;line-height:1.4;margin:3px 0 0}
 body.mobile-layout .summary .gpa-mode-select{width:95px;min-width:90px;font-size:12px;min-height:42px}
}
