/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.start\!{inset-inline-start:var(--spacing)!important}.\!end{inset-inline-end:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.order-1{order:1}.order-2{order:2}.row-1{grid-row:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.group-period-card>header .grade-supplement-open{min-height:44px;margin-left:auto}.group-grade-input{border:1px solid var(--blue);background:var(--white);width:64px;max-width:100%;min-height:44px;color:var(--text-main);text-align:center;border-radius:8px;padding:8px;font-size:16px}.group-grade-input[aria-invalid=true]{border-color:var(--alert)}.group-grade-input:disabled{opacity:.6}.grade-supplement-editing,.grade-supplement-message{color:var(--green);margin:12px 16px}.grade-supplement-message.error{color:var(--alert)}.grade-supplement-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:16px;display:flex}.grade-supplement-actions>span{color:var(--text-secondary);margin-right:auto}.grade-supplement-actions button{min-height:44px}.group-period-card>header:has(.grade-supplement-open){flex-wrap:wrap;gap:12px}.group-period-tabs button:disabled{cursor:default}@media (width<=480px){.grade-supplement-actions>span{flex-basis:100%}.group-period-card>header .grade-supplement-open{margin-left:0}}:root{--text-main:#101828;--text-secondary:#606975;--text-secondary-light:#667085;--text-disabled:#b2bfd1;--stroke:#e5e7eb;--blue:#155dfc;--blue-strong:#155dfc;--blue-light:#2563eb;--bg-blue:#eff6ff;--bg-page:#f7f8fa;--white:#fff;--green:#017035;--green-text:#017035;--bg-green:#dcfce7;--orange:#a63f00;--bg-orange:#fff7ed;--yellow:#735400;--bg-yellow:#fff7d6;--alert:#c91c12;--purple:#7e22ce;--brand-yellow:#ffcd00;--bg-red:#fae2e1;--radius-sm:8px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 1px 3px #1018281a, 0 1px 2px -1px #1018281a}*{box-sizing:border-box}html{background:var(--bg-page)}body{background:var(--bg-page);min-width:320px;color:var(--text-main);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.4}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--text-main);outline-offset:2px;box-shadow:0 0 0 5px var(--white)}.record-tabs button:focus-visible{outline-offset:-4px;box-shadow:inset 0 0 0 2px var(--white), inset 0 0 0 5px var(--text-main)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.hub-shell{min-height:100vh}.skip-link{z-index:200;border-radius:var(--radius-md);background:var(--text-main);color:var(--white);padding:10px 14px;font-weight:600;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.auth-page{background:radial-gradient(circle at 15% 10%, #007aff1a, transparent 32%), var(--bg-page);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--stroke);background:var(--white);border-radius:20px;width:min(100%,440px);padding:32px;box-shadow:0 20px 60px #1018281a}.auth-logo{width:124px;height:auto;margin:0 auto 24px;display:block}.auth-copy{text-align:center;margin-bottom:24px}.auth-copy h1,.auth-copy p,.auth-error,.auth-help{margin:0}.auth-copy h1{letter-spacing:-.03em;font-size:26px}.auth-copy p,.auth-help{color:var(--text-secondary);margin-top:8px}.auth-form{gap:16px;display:grid}.auth-language-switcher{border:1px solid var(--stroke);background:var(--bg-page);border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;padding:3px;display:grid}.auth-language-switcher button{min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;font-weight:650}.auth-language-switcher button.active{background:var(--white);color:var(--blue);box-shadow:0 1px 4px #1018281a}.auth-form label{color:var(--text-secondary);gap:6px;font-size:12px;font-weight:600;display:grid}.auth-form input{border:1px solid var(--stroke);background:var(--white);min-height:46px;color:var(--text-main);border-radius:10px;padding:10px 12px;font-size:16px}.auth-password-field{display:block;position:relative}.auth-password-field input{width:100%;padding-right:122px}.auth-password-field button{background:var(--bg-page);min-height:44px;color:var(--blue);cursor:pointer;border:0;border-radius:7px;font-size:11px;font-weight:650;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.auth-form>.auth-help{text-align:center;margin-top:-6px}.auth-form .primary-button{background:var(--blue);min-height:46px;color:var(--white);cursor:pointer;border:0;border-radius:10px;font-weight:700}.auth-form .primary-button:disabled{cursor:wait;opacity:.65}.auth-link{min-height:44px;color:var(--blue);text-underline-offset:3px;align-items:center;padding:0 6px;font-weight:650;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.auth-secondary-action{border:1px solid var(--stroke);background:var(--white);min-height:44px;color:var(--blue);cursor:pointer;border-radius:10px;font-weight:700}.auth-email-summary{overflow-wrap:anywhere;color:var(--text-secondary);font-size:13px}.auth-button-link{text-align:center;place-items:center;min-height:46px;text-decoration:none;display:grid}.auth-error{color:var(--alert);font-size:12px}.auth-help{font-size:12px}.desktop-sidebar{z-index:20;border-right:1px solid var(--stroke);background:var(--white);flex-direction:column;width:240px;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden}.brand{align-items:center;gap:8px;min-height:48px;padding:12px;font-size:14px;line-height:24px;display:flex}.desktop-brand-logo{display:none}.mobile-brand-logo{display:block}.brand img,.nav-item img,.icon-button img,.lesson-meta img,.back-button img,.stat-icon img,.section-icon img{flex:none;display:block}.design-icon{vertical-align:middle;-webkit-mask-image:var(--design-icon-url);-webkit-mask-image:var(--design-icon-url);-webkit-mask-image:var(--design-icon-url);-webkit-mask-image:var(--design-icon-url);mask-image:var(--design-icon-url);background-color:currentColor;flex:none;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.design-icon.desktop-design-icon{display:none}.sidebar-body{flex-direction:column;flex:1;justify-content:space-between;min-height:0;padding:12px;display:flex;overflow-y:auto}.sidebar-label{color:var(--text-secondary);letter-spacing:-.15px;padding:4px 8px;font-size:12px;line-height:12px;display:block}.teacher-chip{border:1px solid var(--stroke);border-radius:var(--radius-sm);background:var(--white);align-items:center;gap:10px;min-width:0;min-height:28px;padding:4px 8px;font-size:12px;font-weight:500;display:flex}.teacher-chip span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.avatar{object-fit:cover;border-radius:999px;flex:none;display:block}.person-avatar{color:#1d4ed8;letter-spacing:-.02em;background:linear-gradient(145deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-radius:999px;flex:none;place-items:center;font-weight:700;display:inline-grid}.hub-navigation{flex-direction:column;gap:4px;margin-top:12px;display:flex}.hub-navigation .account-label{margin-top:0}.sidebar-bottom-stack{gap:12px;display:grid}.account-navigation{margin-top:0}.nav-item{border-radius:var(--radius-md);align-items:center;gap:8px;min-height:32px;padding:6px 8px;font-size:14px;line-height:20px;display:flex}.nav-item:hover{background:var(--bg-page)}.nav-item.active{background:var(--bg-blue);color:var(--blue)}.account-navigation form{margin:0}.nav-item-button{cursor:pointer;text-align:left;background:0 0;border:0;width:100%}.language-block{flex-direction:column;gap:4px;display:flex}.language-switcher{border:1px solid var(--stroke);border-radius:var(--radius-md);background:var(--white);grid-template-columns:1fr 1fr;gap:4px;padding:2px;display:grid}.language-option{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:4px;min-height:24px;padding:2px 4px;font-size:12px;display:flex}.language-option.active{background:var(--blue-strong);color:var(--white)}.sidebar-user{border-top:1px solid var(--stroke);align-items:center;gap:8px;min-height:72px;padding:12px 20px;display:flex}.sidebar-user>span{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-user strong,.sidebar-user small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-user strong{font-size:14px;line-height:20px}.sidebar-user small{color:var(--text-secondary);font-size:12px}.mobile-header,.mobile-drawer-layer{display:none}.hub-main{min-width:0;min-height:100vh;margin-left:240px}.calendar-page,.lesson-page,.profile-page,.group-data-page{width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:12px 32px 40px}.group-contact-source-state{background:var(--bg-blue);color:#1e40af;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 14px;font-size:13px;line-height:19px;display:flex}.group-contact-source-state .design-icon{flex:none;margin-top:1px}.group-directory-card{border:1px solid var(--stroke);background:var(--white);border-radius:16px;min-width:0;margin-top:16px;overflow:hidden}.group-directory-table-wrap{isolation:isolate;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;position:relative;overflow-x:auto}.group-directory-table-wrap:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.group-directory-table{width:100%;min-width:calc(var(--group-student-column,280px) + 280px);border-collapse:separate;border-spacing:0;table-layout:fixed}.group-directory-table th,.group-directory-table td{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);vertical-align:middle;text-align:left;min-height:58px;padding:12px 16px}.group-directory-table tr:last-child>*{border-bottom:0}.group-directory-table tr>:last-child{border-right:0}.group-directory-table thead th{z-index:2;background:var(--white);color:var(--text-secondary);font-size:11px;font-weight:600;position:sticky;top:0}.group-directory-table thead th:not(.student-column){width:220px}.group-directory-table .student-column{z-index:3;width:var(--group-student-column,280px);background:var(--white);position:sticky;left:0;box-shadow:8px 0 12px -12px #101828a6}.group-directory-table thead .student-column{z-index:4}.group-directory-table tbody .student-column{font-size:12px;font-weight:500}.student-cell-content{align-items:center;width:100%;min-width:0;display:flex}.student-cell-content>:first-child{flex:none}.group-directory-table .student-cell-content{gap:8px}.group-directory-student-copy{flex:auto;gap:2px;min-width:0;display:grid}.group-directory-student-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.group-directory-student-copy small,.group-contact-list small{color:var(--text-secondary);font-size:11px;font-weight:400}.group-contact-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.group-contact-list li{overflow-wrap:anywhere;gap:2px;display:grid}.group-directory-table .empty-cell{color:var(--text-secondary)}.group-contact-phone-owner{color:var(--text-secondary);font-size:11px;font-weight:500}.page-heading{justify-content:space-between;align-items:flex-start;gap:24px;min-height:56px;display:flex}.page-heading h1{letter-spacing:-.4px;margin:0;font-size:24px;font-weight:700;line-height:32px}.page-heading p{max-width:720px;color:var(--text-secondary);margin:2px 0 0;font-size:14px;line-height:20px}.period-tabs{border:1px solid var(--stroke);border-radius:var(--radius-md);background:var(--white);grid-template-columns:repeat(3,1fr);gap:8px;width:320px;padding:4px;display:grid}.period-tabs button{min-height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px 12px;font-size:12px}.period-tabs button.active{background:var(--blue-strong);color:var(--white)}.data-banner{border-radius:var(--radius-md);background:var(--bg-blue);color:#1e40af;border:1px solid #bfdbfe;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 12px;padding:8px 12px;font-size:12px;display:flex}.desktop-calendar-card{border-radius:var(--radius-lg);background:var(--white);padding:24px}.month-selector{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:16px;display:grid}.month-selector>div{text-transform:capitalize;justify-content:center;align-items:center;gap:8px;font-size:20px;line-height:28px;display:flex}.icon-button{border-radius:var(--radius-md);cursor:pointer;background:0 0;border:0;place-items:center;width:40px;height:40px;padding:8px;display:inline-grid}.icon-button:hover{background:var(--bg-page)}.desktop-calendar-content{grid-template-columns:minmax(0,740px) minmax(280px,332px);justify-content:center;align-items:start;gap:16px;display:grid}.month-grid{border:1px solid var(--stroke);border-radius:var(--radius-lg);grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:16px;display:grid}.weekday{color:var(--text-secondary);text-align:center;padding:0 4px 4px;font-size:12px}.calendar-cell{background:var(--bg-page);min-height:58px;color:var(--text-secondary);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.calendar-cell.has-lessons{background:var(--bg-blue);color:var(--blue)}.calendar-cell.outside{color:var(--text-disabled)}.calendar-cell.selected{border-color:var(--blue)}.calendar-cell b{background:var(--blue-light);width:20px;height:20px;color:var(--white);border-radius:999px;place-items:center;font-size:10px;display:grid;position:absolute;top:4px;right:4px}.selected-day-panel{border:1px solid var(--stroke);border-radius:var(--radius-lg);padding:16px}.selected-day-panel h2{margin:0 0 12px;font-size:14px}.selected-day-panel>p{color:var(--text-secondary);font-size:12px}.selected-lessons{gap:10px;display:grid}.desktop-period-card{gap:12px;display:grid}.period-day{border:1px solid var(--stroke);border-radius:var(--radius-lg);gap:10px;padding:16px;display:grid}.period-day h2,.period-day p{margin:0}.period-day h2{text-transform:capitalize;font-size:16px}.period-day>p{color:var(--text-secondary);font-size:12px}.calendar-lesson-card{background:var(--bg-blue);border:1px solid #bfdbfe;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px;display:flex}.calendar-lesson-card>div{gap:2px;min-width:0;display:grid}.calendar-lesson-card strong{font-size:15px}.calendar-lesson-card span,.calendar-lesson-card small{color:var(--text-secondary);font-size:11px}.calendar-lesson-card .lesson-time{color:var(--blue-strong);font-weight:700}.secondary-button,.back-button{border:1px solid var(--stroke);border-radius:var(--radius-md);background:var(--white);min-height:36px;color:var(--text-secondary);white-space:nowrap;justify-content:center;align-items:center;gap:4px;padding:8px 12px;font-size:12px;font-weight:500;display:inline-flex}.secondary-button:hover,.back-button:hover{border-color:var(--blue);color:var(--blue)}.mobile-agenda,.mobile-month-selector{display:none}.lesson-page{max-width:1200px;position:relative}.lesson-back-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.fixture-badge{background:var(--bg-blue);color:#1e40af;border:1px solid #bfdbfe;border-radius:999px;padding:5px 10px;font-size:11px}.completion-banner{z-index:25;border:1px solid var(--stroke);background:var(--white);width:min(800px,100% - 64px);min-height:72px;box-shadow:var(--shadow-card);border-radius:14px;grid-template-columns:48px minmax(0,1fr) 120px 40px 36px;align-items:center;gap:12px;padding:12px 16px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.completion-icon{background:var(--bg-green);width:48px;height:48px;color:var(--green-text);border-radius:999px;place-items:center;font-size:22px;display:grid}.completion-banner p{color:var(--text-secondary);margin:2px 0 0;font-size:11px}.countdown-circle{border:2px solid var(--blue);width:32px;height:32px;color:var(--blue);border-radius:999px;place-items:center;font-weight:600;display:grid}.completion-close{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;font-size:22px;display:grid}.primary-button{border-radius:var(--radius-md);background:var(--blue-strong);min-height:36px;color:var(--white);cursor:pointer;border:0;justify-content:center;align-items:center;padding:8px 20px;display:inline-flex}.primary-button:disabled{cursor:not-allowed;opacity:.55}.lesson-hero{border:1px solid var(--stroke);border-radius:var(--radius-lg);min-height:144px;color:var(--white);box-shadow:var(--shadow-card);background:linear-gradient(100deg,#2b7fff 0%,#4f39f6 100%);flex-direction:column;gap:10px;padding:24px;display:flex}.lesson-hero-heading{align-items:center;gap:12px;display:flex}.lesson-icon-circle{background:#fff3;border-radius:999px;flex:none;place-items:center;width:56px;height:56px;display:grid}.lesson-hero-heading>div:nth-child(2){flex:1;min-width:0}.lesson-title-row{align-items:center;gap:6px;display:flex}.lesson-title-row h1{margin:0;font-size:30px;line-height:36px}.lesson-title-row span,.lesson-state-badge{white-space:nowrap;background:#fff3;border:1px solid #ffffff4d;border-radius:8px;padding:3px 8px;font-size:10px}.lesson-state-badge{align-items:center;gap:4px;display:inline-flex}.lesson-state-badge.completed{background:var(--bg-green);color:var(--green-text);border-color:#86efac}.lesson-state-badge.reopened{background:var(--bg-orange);color:var(--orange);border-color:#fed7aa}.lesson-hero-heading p{margin:2px 0 0;font-size:11px}.lesson-meta{flex-wrap:wrap;gap:12px;font-size:11px;display:flex}.lesson-meta span{align-items:center;gap:4px;display:inline-flex}.lesson-action{border-radius:var(--radius-md);background:var(--white);min-height:38px;color:var(--text-secondary);cursor:pointer;border:1px solid #ffffffb3;justify-content:center;align-items:center;gap:4px;padding:8px 12px;font-weight:500;display:inline-flex}.lesson-action.finish{border-color:var(--stroke);background:var(--green-text);color:var(--white)}.lesson-action.reopen{color:var(--white);background:#4f39f6;border-color:#ffffffbf}.lesson-action.finish img{filter:brightness(0)invert()}.lesson-action:disabled{cursor:not-allowed;opacity:.58}.locked-callout{border:1px solid var(--orange);background:var(--bg-orange);color:var(--orange);border-radius:14px;align-items:flex-start;gap:12px;margin-top:10px;padding:12px;display:flex}.locked-callout p{margin:2px 0 0;font-size:14px;line-height:20px}.roster-overview,.lesson-records,.completed-students-card,.profile-card{border:1px solid var(--stroke);border-radius:var(--radius-lg);background:var(--white);margin-top:12px;padding:16px}.roster-overview h2,.records-heading h2{align-items:center;gap:8px;margin:0 0 12px;font-size:14px;display:flex}.section-icon{border-radius:var(--radius-md);background:var(--bg-page);place-items:center;width:36px;height:36px;display:grid}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat-grid article{border:1px solid var(--stroke);border-radius:12px;align-items:center;gap:10px;min-height:88px;padding:12px;display:flex}.stat-icon{border-radius:var(--radius-md);flex:none;place-items:center;width:52px;height:52px;display:grid}.stat-icon.neutral{background:var(--bg-page)}.stat-icon.blue{background:var(--bg-blue)}.stat-icon.green{background:var(--bg-green)}.stat-icon.yellow{background:var(--bg-yellow)}.stat-grid article>div{flex-direction:column;display:flex}.stat-grid small{color:var(--text-secondary);font-size:11px}.stat-grid strong{font-size:24px;line-height:28px}.completed-students-card{justify-content:space-between;align-items:center;gap:24px;min-height:120px;display:flex}.completed-students-card h2,.completed-students-card p{margin:0}.completed-students-card h2{align-items:center;gap:8px;font-size:24px;line-height:32px;display:flex}.completed-students-card h2 span{background:var(--bg-blue);width:24px;height:24px;color:var(--blue);border-radius:999px;place-items:center;font-size:12px;display:grid}.completed-students-card>div>p,.completed-students-card aside p{color:var(--text-secondary);margin-top:4px;font-size:12px}.completed-students-card aside{border:1px solid var(--blue);min-width:300px;color:var(--blue);border-radius:12px;padding:12px}.lesson-records{padding:0;overflow:hidden}.record-tabs{border-bottom:1px solid var(--stroke);grid-template-columns:1fr 1fr;gap:1px;display:grid}.record-tabs button{background:var(--white);cursor:pointer;border:0;min-height:42px;font-size:12px}.record-tabs button span{opacity:.75}.record-tabs .attendance{background:var(--blue);color:var(--white)}.record-tabs .grades{color:var(--white);background:#a738ff}.record-tabs .attendance.active{background:var(--blue-strong);color:var(--white)}.record-tabs .grades.active{color:var(--white);background:#8f22e6}.record-tabs.locked .attendance,.record-tabs.locked .attendance.active{color:#1e3a8a;background:#dbeafe}.record-tabs.locked .grades,.record-tabs.locked .grades.active{color:#6b21a8;background:#f3e8ff}.record-tabs button:disabled{cursor:not-allowed}.status-summary{border-bottom:1px solid var(--stroke);flex-wrap:wrap;gap:8px;padding:8px 16px;display:flex}.status-pill{border-radius:999px;align-items:center;gap:6px;padding:6px 8px;font-size:11px;display:inline-flex}.status-pill b{width:18px;height:18px;color:var(--white);border-radius:999px;place-items:center;font-size:10px;display:grid}.status-pill.present b{background:var(--green-text)}.status-pill.late b,.status-pill.make_up b{background:var(--orange)}.status-pill.absent b{background:var(--alert)}.status-pill.present{background:var(--bg-green);color:var(--green-text)}.status-pill.late,.status-pill.make_up{background:var(--bg-orange);color:var(--orange)}.status-pill.absent{background:var(--bg-red);color:var(--alert)}.records-heading{justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.records-heading h2{margin:0;font-size:16px;line-height:24px}.records-heading h2 span{background:var(--bg-blue);width:24px;height:24px;color:var(--blue);border-radius:999px;place-items:center;padding:0;font-size:10px;display:inline-grid}.mark-all-button{background:var(--green-text);min-height:30px;color:var(--white);cursor:pointer;border:0;border-radius:8px;padding:5px 10px;font-size:11px}.student-list{border-top:1px solid var(--stroke)}.student-row{border-bottom:1px solid var(--stroke);grid-template-columns:24px 24px minmax(150px,1fr) minmax(420px,1.7fr);align-items:center;gap:8px;min-height:54px;padding:8px 16px;display:grid;position:relative}.student-index{color:var(--text-secondary);font-size:10px}.student-name{align-items:center;gap:8px;min-width:0;display:flex}.student-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.student-label{white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:9px}.student-label.new{background:var(--bg-green);color:var(--green-text)}.student-label.guest{background:var(--bg-blue);color:var(--blue)}.student-label.attendance-present{background:var(--bg-green);color:var(--green-text)}.student-label.attendance-late,.student-label.attendance-make_up{background:var(--bg-orange);color:var(--orange)}.student-label.attendance-absent{background:var(--bg-red);color:var(--alert)}.mobile-attendance-trigger,.attendance-sheet-layer{display:none}.attendance-control{grid-template-columns:repeat(4,minmax(82px,1fr));gap:4px;display:grid}.attendance-control button{border:1px solid var(--stroke);background:var(--white);cursor:pointer;min-height:30px;color:var(--text-secondary);border-radius:8px;padding:4px 6px;font-size:10px}.attendance-control button:disabled{cursor:not-allowed;opacity:.55}.attendance-control button.selected.present{background:var(--bg-green);color:var(--green-text);border-color:#86efac}.attendance-control button.selected.late,.attendance-control button.selected.make_up{background:var(--bg-orange);color:var(--orange);border-color:#fdba74}.attendance-control button.selected.absent{background:var(--bg-red);color:var(--alert);border-color:#fca5a5}.attendance-history-wrap{border-top:1px solid var(--stroke);overflow-x:auto}.attendance-history-table{border-collapse:collapse;width:100%;min-width:900px}.attendance-history-table th,.attendance-history-table td{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);text-align:center;height:54px;padding:8px 12px;font-size:11px}.attendance-history-table thead th{height:48px;color:var(--text-secondary);font-weight:500}.attendance-history-table thead th:not(:first-child){display:table-cell}.attendance-history-table thead th img{vertical-align:middle;margin-right:4px;display:inline-block}.attendance-history-table th:first-child{z-index:2;background:var(--white);text-align:left;width:270px;position:sticky;left:0}.attendance-history-table tbody th{align-items:center;gap:8px;font-weight:500;display:flex}.attendance-history-table .locked{background:var(--bg-orange);color:var(--text-secondary-light)}.history-status{white-space:nowrap;border-radius:999px;padding:4px 8px;display:inline-flex}.history-status.present{background:var(--bg-green);color:var(--green-text)}.history-status.late,.history-status.make_up{background:var(--bg-orange);color:var(--orange)}.history-status.absent{background:var(--bg-red);color:var(--alert)}.grade-table-wrap{border-top:1px solid var(--stroke);overflow-x:auto}.grade-table{border-collapse:collapse;width:100%;min-width:720px}.grade-table th,.grade-table td{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);text-align:center;height:50px;padding:8px 12px}.grade-table th{font-size:11px;font-weight:600}.grade-table tbody th{text-align:left;align-items:center;gap:8px;min-width:200px;font-weight:500;display:flex}.grade-table thead th:first-child,.grade-table tbody th{z-index:1;background:var(--white);box-shadow:1px 0 0 var(--stroke);position:sticky;left:0}.grade-table thead th:first-child{z-index:2}.grade-table input{border:1px solid var(--stroke);text-align:center;border-radius:8px;width:64px;min-height:34px;padding:5px 8px}.grade-table input.invalid{border-color:var(--alert);background:var(--bg-red)}.grade-help,.finish-hint,.save-hint{margin:0;padding:8px 16px;font-size:11px}.grade-help,.finish-hint{color:var(--orange)}.save-hint{color:var(--green-text)}.profile-page{max-width:960px}.profile-card{align-items:flex-start;gap:20px;padding:24px;display:flex}.profile-avatar{object-fit:cover;border-radius:999px}.profile-fields{flex:1;min-width:0}.profile-fields h2{margin:0 0 16px;font-size:20px}.profile-fields dl{gap:10px;margin:0;display:grid}.profile-fields dl>div{border-bottom:1px solid var(--stroke);grid-template-columns:160px minmax(0,1fr);gap:12px;padding:10px 0;display:grid}.profile-fields dt{color:var(--text-secondary)}.profile-fields dd{overflow-wrap:anywhere;margin:0}.not-found-page{text-align:center;place-content:center;gap:12px;min-height:100vh;padding:24px;display:grid}.not-found-page h1,.not-found-page p{margin:0}.not-found-page a{color:var(--blue)}.demo-mode-banner,.demo-safety-notice{background:var(--bg-blue);color:#1e3a8a;border:1px solid #bfdbfe;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;font-size:12px;display:flex}.demo-mode-banner{margin-bottom:10px}.demo-mode-banner span,.demo-safety-notice span{color:#334155}.admin-audit-card{border-radius:var(--radius-lg);background:#faf8ff;border:1px solid #c4b5fd;margin-top:10px;padding:16px}.admin-audit-card>header{border-bottom:1px solid #ddd6fe;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;display:flex}.admin-audit-card header div{gap:2px;display:grid}.admin-audit-card header span,.admin-dialog-eyebrow{color:#6d28d9;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.admin-audit-card h2{margin:0;font-size:15px}.admin-audit-card header small,.admin-audit-empty{color:var(--text-secondary)}.admin-audit-card ol{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.admin-audit-card li{background:var(--white);border:1px solid #ede9fe;border-radius:10px;grid-template-columns:140px minmax(0,1fr);align-items:start;gap:12px;padding:10px;display:grid}.audit-action{color:#5b21b6;background:#ede9fe;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.admin-audit-card li>div{gap:3px;display:grid}.admin-audit-card time{color:var(--text-secondary);font-size:11px}.admin-audit-card li p,.admin-audit-empty{margin:0;font-size:12px}.admin-audit-empty{padding-top:12px}.admin-dialog-layer{z-index:120;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.admin-dialog-backdrop{background:#1018288c;border:0;width:100%;position:absolute;inset:0}.admin-dialog{border:1px solid var(--stroke);background:var(--white);border-radius:18px;gap:12px;width:min(520px,100%);padding:20px;display:grid;position:relative;box-shadow:0 24px 72px #1018283d}.admin-dialog header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admin-dialog h2{margin:2px 0 0;font-size:20px;line-height:26px}.admin-dialog header>button{background:var(--bg-page);cursor:pointer;border:0;border-radius:8px;width:36px;height:36px;font-size:24px}.admin-dialog>p{color:var(--text-secondary);margin:0;line-height:20px}.admin-dialog label{font-size:13px;font-weight:600}.admin-dialog textarea{resize:vertical;width:100%;min-height:112px;color:var(--text-main);border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px}.admin-dialog .admin-reason-hint{color:var(--orange);font-size:11px}.admin-dialog footer{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.demo-catalog-page{max-width:1000px}.demo-catalog-heading{gap:6px;margin-bottom:14px;display:grid}.demo-catalog-heading>span{color:var(--blue-strong);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:700}.demo-catalog-heading h1,.demo-catalog-heading p{margin:0}.demo-catalog-heading h1{font-size:28px;line-height:36px}.demo-catalog-heading p{max-width:720px;color:var(--text-secondary)}.demo-scenario-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.demo-scenario-grid article{border:1px solid var(--stroke);border-radius:var(--radius-lg);background:var(--white);min-height:250px;box-shadow:var(--shadow-card);flex-direction:column;align-items:flex-start;padding:18px;display:flex}.demo-scenario-grid article>span{background:var(--bg-blue);color:#1d4ed8;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:600}.demo-scenario-grid h2{margin:14px 0 8px;font-size:18px}.demo-scenario-grid p{color:var(--text-secondary);flex:1;margin:0 0 18px;line-height:20px}.demo-scenario-grid .primary-button{width:100%}@media (width<=1000px){.page-heading{flex-direction:column;gap:12px}.calendar-heading .period-tabs{width:100%}.desktop-calendar-content{grid-template-columns:minmax(0,1fr)}.selected-day-panel{min-height:auto}.student-row{grid-template-columns:24px 24px minmax(120px,1fr)}.attendance-control{grid-column:2/-1}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.completed-students-card{flex-direction:column;align-items:stretch}.completed-students-card aside{min-width:0}}@media (width<=900px){body{font-size:14px}.desktop-sidebar{display:none}.mobile-header{z-index:30;border-bottom:1px solid var(--stroke);background:var(--white);justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:2px 16px;display:flex;position:sticky;top:0}.mobile-header .brand{min-height:24px;padding:0}.mobile-header-actions{align-items:center;gap:12px;display:flex}.mobile-header .teacher-chip{gap:8px;max-width:150px}.mobile-header .icon-button{width:44px;height:44px;padding:10px}.mobile-drawer-layer{z-index:50;display:block;position:fixed;inset:0}.drawer-backdrop{background:#10182861;border:0;width:100%;position:absolute;inset:0}.mobile-drawer{background:var(--white);flex-direction:column;gap:20px;width:min(86vw,320px);padding:16px;display:flex;position:absolute;inset:0 0 0 auto;overflow-y:auto;box-shadow:-8px 0 30px #1018282e}.drawer-heading{justify-content:space-between;align-items:center;font-size:18px;display:flex}.drawer-heading button{cursor:pointer;background:0 0;border:0;place-items:center;width:44px;height:44px;font-size:28px;display:grid}.mobile-drawer .hub-navigation{flex:none}.mobile-drawer .hub-navigation:not(.account-navigation){flex:1}.mobile-drawer .nav-item,.mobile-drawer .language-option{min-height:44px}.hub-main{margin-left:0}.calendar-page,.lesson-page,.profile-page,.group-data-page{padding:12px 16px 28px}.page-heading{flex-direction:column;gap:12px;min-height:auto}.page-heading h1{font-size:22px;line-height:28px}.calendar-heading .period-tabs{width:100%}.period-tabs button{min-height:44px}.data-banner{flex-direction:column;align-items:flex-start}.desktop-calendar-card{display:none}.mobile-agenda{gap:14px;display:grid}.mobile-month-selector{border:1px solid var(--stroke);background:var(--white);border-radius:12px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;padding:8px;display:grid}.mobile-month-selector strong{text-align:center;text-transform:capitalize}.mobile-month-selector .icon-button{width:44px;height:44px}.agenda-day{gap:8px;display:grid}.agenda-day h2{color:var(--text-secondary);text-transform:capitalize;margin:0;font-size:13px}.calendar-lesson-card{flex-direction:column;align-items:stretch;gap:10px;min-height:106px;padding:12px}.secondary-button{width:100%;min-height:44px}.lesson-back-row{justify-content:flex-start}.back-button{width:160px;min-height:44px;padding:12px}.completion-banner{grid-template-columns:36px minmax(0,1fr) 36px 44px;width:calc(100% - 24px);padding:10px;position:fixed;top:56px}.completion-icon{width:36px;height:36px}.completion-banner .primary-button{grid-area:2/1/auto/-1;width:100%;min-height:44px}.completion-close{width:44px;height:44px}.lesson-hero{border-radius:16px;gap:10px;padding:12px}.lesson-hero-heading{align-items:flex-start;gap:10px}.lesson-icon-circle{width:40px;height:40px}.lesson-title-row{flex-wrap:wrap}.lesson-title-row h1{font-size:16px;line-height:22px}.lesson-state-badge{margin-left:auto}.lesson-meta{gap:12px}.lesson-meta span+span{border-left:1px solid #ffffffb3;padding-left:12px}.lesson-action{min-height:44px}.locked-callout{border-radius:14px}.roster-overview,.lesson-records{border-radius:12px;margin-top:10px}.roster-overview{background:0 0;border:0;padding:12px 0 0}.roster-overview h2{padding:0 6px;font-size:16px;line-height:24px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-grid article{background:var(--white);border-radius:14px;gap:12px;min-height:74px;padding:13px}.stat-icon{width:36px;height:36px}.completed-students-card{flex-direction:column;align-items:stretch;min-height:auto;padding:16px}.completed-students-card aside{min-width:0}.completed-students-card h2{font-size:20px}.lesson-records{border:0;border-radius:16px;padding:12px;overflow:visible}.record-tabs{border-bottom:0;gap:12px;padding:0}.record-tabs button{color:#1e3a8a;background:#dbeafe;border-radius:8px;min-height:44px}.record-tabs .grades{color:#6b21a8;background:#f3e8ff}.status-summary{border-bottom:1px solid var(--stroke);gap:8px;padding:8px 0}.records-heading{padding:8px 0 0}.mark-all-button{min-height:44px}.student-row{grid-template-columns:20px 24px minmax(0,1fr);gap:12px;min-height:48px;padding:12px 0}.student-name{flex-wrap:wrap}.student-name strong{font-size:14px;line-height:20px}.student-index{font-size:12px}.attendance-control{display:none}.mobile-attendance-trigger{z-index:2;cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block;position:absolute;inset:0}.attendance-sheet-layer{z-index:70;display:block;position:fixed;inset:0}.attendance-sheet-backdrop{background:#1018286b;border:0;width:100%;position:absolute;inset:0}.attendance-sheet{background:var(--white);border-radius:20px 20px 0 0;gap:16px;padding:16px 16px 24px;display:grid;position:absolute;inset:auto 0 0;box-shadow:0 -12px 36px #1018282e}.attendance-sheet header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.attendance-sheet header>div{gap:2px;display:grid}.attendance-sheet header span{color:var(--text-secondary);font-size:12px}.attendance-sheet header>button{cursor:pointer;background:0 0;border:0;width:44px;height:44px;font-size:26px}.attendance-sheet>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.attendance-sheet>div button{border:1px solid var(--stroke);background:var(--white);min-height:48px;color:var(--text-secondary);border-radius:10px}.attendance-sheet button.selected.present{background:var(--bg-green);color:var(--green-text)}.attendance-sheet button.selected.late,.attendance-sheet button.selected.make_up{background:var(--bg-orange);color:var(--orange)}.attendance-sheet button.selected.absent{background:var(--bg-red);color:var(--alert)}.attendance-history-wrap{margin:0 -12px}.attendance-history-table th:first-child{width:220px}.demo-mode-banner,.demo-safety-notice{flex-direction:column;align-items:flex-start;gap:4px}.admin-audit-card{border-radius:14px;padding:12px}.admin-audit-card>header{flex-direction:column;gap:4px}.admin-audit-card li{grid-template-columns:1fr}.audit-action{justify-self:start}.admin-dialog-layer{align-items:end;padding:0}.admin-dialog{border-radius:20px 20px 0 0;width:100%;max-height:90vh;padding:16px 16px 24px;overflow-y:auto}.admin-dialog footer{flex-direction:column-reverse}.admin-dialog footer button{width:100%;min-height:44px}.demo-catalog-heading h1{font-size:22px;line-height:28px}.demo-scenario-grid{grid-template-columns:1fr}.demo-scenario-grid article{min-height:auto}.profile-card{flex-direction:column;padding:18px}.profile-fields dl>div{grid-template-columns:1fr;gap:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.group-data-summary.textbooks-summary{grid-template-columns:minmax(220px,1fr) repeat(5,minmax(104px,150px))}.textbook-page-actions{justify-content:flex-end;align-items:flex-end;gap:12px;display:flex}.textbook-stock-button{background:var(--bg-blue);min-height:50px;color:var(--blue);cursor:pointer;text-align:left;border:1px solid #bfdbfe;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-content:center;gap:1px 10px;padding:7px 13px;display:grid}.textbook-stock-button span{font-size:12px;font-weight:650}.textbook-stock-button strong{grid-area:1/2/span 2;font-size:20px}.textbook-stock-button small{color:#8a4b08;white-space:nowrap;font-size:10px;font-weight:650}.textbook-stock-button:hover{border-color:var(--blue)}.textbook-stock-button:focus-visible{outline:3px solid var(--focus-ring,var(--blue))}.textbooks-review-notice{color:#76521b;background:#fff8e8;border:1px solid #f2d59b;border-radius:10px;margin:-10px 0 18px;padding:10px 14px;font-size:12px;font-weight:600}.textbooks-review-notice small{color:#8a641f;margin-top:3px;font-size:10px;font-weight:500;display:block}.textbooks-book-summary{background:var(--bg-blue);color:#1e40af;border:1px solid #bfdbfe;border-radius:14px;justify-content:space-between;align-items:center;gap:20px;min-height:66px;margin-top:16px;padding:14px 18px;display:flex}.textbooks-book-summary>div{gap:3px;min-width:0;display:grid}.textbooks-book-summary span{text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.textbooks-book-summary strong{overflow-wrap:anywhere;font-size:14px}.textbooks-card{border:1px solid var(--stroke);background:var(--white);border-radius:16px;min-width:0;margin-top:16px;overflow:hidden}.textbooks-table-wrap{isolation:isolate;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;position:relative;overflow-x:auto}.textbooks-table-wrap:focus-visible{outline:3px solid var(--focus-ring,var(--text-main));outline-offset:-3px}.textbooks-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1080px}.textbooks-table th,.textbooks-table td{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);vertical-align:middle;text-align:left;min-height:60px;padding:11px 16px}.textbooks-table tr:last-child>*{border-bottom:0}.textbooks-table tr>:last-child{border-right:0}.textbooks-table thead th{z-index:2;background:var(--white);color:var(--text-secondary);font-size:11px;font-weight:600;position:sticky;top:0}.textbooks-table .student-column{z-index:3;width:var(--group-student-column,280px);background:var(--white);position:sticky;left:0;box-shadow:8px 0 12px -12px #101828a6}.textbooks-table thead .student-column{z-index:4}.textbooks-table tbody .student-column{font-size:12px;font-weight:500}.textbooks-table .student-cell-content{gap:8px}.textbooks-table tbody .student-column strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.textbooks-table th:nth-child(2){width:310px}.textbooks-table th:nth-child(3),.textbooks-table th:nth-child(4){width:135px}.textbooks-table th:nth-child(5){width:190px}.textbook-student-button{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:auto;align-items:center;gap:9px;margin:-3px -5px;padding:3px 5px;display:inline-flex}.textbook-student-button:hover{background:var(--bg-blue)}.textbook-student-button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.textbook-student-button:disabled{cursor:not-allowed;opacity:.68}.textbook-status{background:var(--bg-page);min-height:30px;color:var(--text-secondary);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:5px 9px;font-size:11px;font-weight:650;display:inline-flex}.textbook-status.paid{background:var(--bg-blue);color:var(--blue)}.textbook-status.paid-received,.textbook-status.received,.textbook-status.has-book{background:var(--bg-green);color:var(--green-text)}.textbook-status.missing{background:var(--bg-red);color:var(--alert)}.textbook-status.review{background:var(--bg-orange);color:#8a4b08}.textbook-order-list,.textbook-order-list>span,.textbook-last-event{gap:2px;display:grid}.textbook-order-list{gap:8px}.textbook-order-list strong{white-space:normal;overflow-wrap:break-word;font-size:12px;font-weight:650}.textbook-last-event strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.textbook-order-list small,.textbook-last-event small{color:var(--text-secondary);font-size:10px}.textbook-edit-button{background:var(--bg-blue);min-width:96px;min-height:38px;color:var(--blue);cursor:pointer;border:1px solid #bfdbfe;border-radius:9px;padding:7px 12px;font-size:12px;font-weight:650}.textbook-edit-button:hover{border-color:var(--blue)}.textbook-edit-button:disabled{border-color:var(--stroke);background:var(--bg-page);color:var(--text-disabled);cursor:not-allowed}.textbook-editor-layer{z-index:190;justify-content:flex-end;display:flex;position:fixed;inset:0}.textbook-editor-backdrop{cursor:pointer;background:#1018286b;border:0;position:absolute;inset:0}.textbook-editor{background:var(--white);grid-template-rows:auto minmax(0,1fr) auto;width:min(580px,100%);height:100%;display:grid;position:relative;box-shadow:-20px 0 56px #1018282e}.textbook-editor>header{border-bottom:1px solid var(--stroke);justify-content:space-between;align-items:flex-start;gap:16px;min-height:80px;padding:20px 22px;display:flex}.textbook-editor>header div{gap:3px;display:grid}.textbook-editor>header span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:650}.textbook-editor h2{margin:0;font-size:20px;line-height:28px}.textbook-editor-close{border:1px solid var(--stroke);background:var(--white);cursor:pointer;border-radius:10px;flex:none;width:40px;height:40px;font-size:24px;line-height:1}.textbook-editor-body{align-content:start;gap:18px;padding:20px 22px;display:grid;overflow-y:auto}.textbook-panel-notice{margin:0}.textbook-order-card{border:1px solid var(--stroke);background:var(--white);border-radius:14px;gap:16px;padding:16px;display:grid}.textbook-order-card>header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.textbook-order-card>header>div{gap:3px;min-width:0;display:grid}.textbook-order-card>header span:not(.textbook-status),.textbook-order-card>header small{color:var(--text-secondary);font-size:10px}.textbook-order-card h3{overflow-wrap:anywhere;margin:0;font-size:15px;line-height:21px}.textbook-integrity-warning{background:var(--bg-orange);color:#8a4b08;border-radius:9px;margin:0;padding:9px 11px;font-size:11px}.textbook-timeline{padding-top:2px}.textbook-timeline h4{margin:0 0 12px;font-size:13px}.textbook-timeline ol{margin:0;padding:0;list-style:none}.textbook-timeline li{grid-template-columns:20px minmax(0,1fr);gap:10px;padding-bottom:16px;display:grid;position:relative}.textbook-timeline li:not(:last-child):before{background:var(--stroke);content:"";width:2px;position:absolute;top:20px;bottom:0;left:9px}.textbook-timeline-marker{z-index:1;border:2px solid var(--blue);background:var(--white);border-radius:50%;width:18px;height:18px;position:relative}.textbook-timeline li.reached .textbook-timeline-marker{background:var(--blue);box-shadow:inset 0 0 0 4px var(--white)}.textbook-timeline li.pending .textbook-timeline-marker{border-color:var(--stroke-strong,#98a2b3)}.textbook-timeline li.pending .textbook-timeline-event strong{color:var(--text-secondary)}.textbook-timeline li.correction .textbook-timeline-marker{background:var(--bg-orange);border-color:#d97706}.textbook-timeline-event{overflow-wrap:anywhere;gap:3px;min-width:0;display:grid}.textbook-timeline-event strong{font-size:12px}.textbook-timeline-detail,.textbook-timeline-pending,.textbook-timeline-event small,.textbook-timeline-empty{color:var(--text-secondary);font-size:10px}.textbook-timeline-empty{margin:0}.textbook-prepared-actions{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.textbook-prepared-actions button{border:1px solid var(--stroke);background:var(--bg-page);min-height:44px;color:var(--text-disabled);border-radius:9px;padding:7px 9px;font-size:10px;font-weight:650}.textbook-prepared-actions button:not(:disabled){border-color:var(--blue);background:var(--blue);color:var(--white);cursor:pointer}.textbook-prepared-actions button:disabled{cursor:not-allowed}.textbook-stock-inline{color:var(--text-secondary);margin:0;font-size:12px}.textbook-stock-inline strong{color:var(--text-main)}.textbook-action-form{background:var(--bg-blue);border:1px solid #bfdbfe;border-radius:12px;gap:12px;padding:14px;display:grid}.textbook-action-form>label{color:var(--text-secondary);gap:6px;font-size:11px;font-weight:650;display:grid}.textbook-action-form input:not([type=checkbox]),.textbook-action-form select{border:1px solid var(--stroke);background:var(--white);width:100%;min-height:44px;color:var(--text-main);font:inherit;border-radius:9px;padding:9px 11px}.textbook-action-form p{margin:0;font-size:12px}.textbook-action-form .form-error{color:var(--alert);font-weight:650}.textbook-unpaid-warning{color:#76521b;background:#fff8e8;border-radius:9px;padding:9px 11px}.textbook-own-book-resolved{color:#166534;background:#ecfdf3;border-radius:9px;align-items:center;gap:7px;padding:9px 11px;font-size:12px;font-weight:700;display:flex}.textbook-own-book-resolved>span{width:20px;height:20px;color:var(--white);background:#16a34a;border-radius:999px;place-items:center;display:grid}.textbook-action-form .textbook-checkbox-row{min-height:44px;color:var(--text-main);grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;display:grid}.textbook-checkbox-row input{width:18px;height:18px;accent-color:var(--blue)}.textbook-action-form-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.textbook-action-form-buttons button{border:1px solid var(--stroke);background:var(--white);min-height:44px;color:var(--text-main);cursor:pointer;border-radius:9px;font-weight:650}.textbook-action-form-buttons .primary-button{border-color:var(--blue);background:var(--blue);color:var(--white)}.textbook-action-form-buttons button:disabled{cursor:not-allowed;opacity:.58}.textbook-stock-panel .textbook-editor-body{gap:14px}.textbook-stock-card{border:1px solid var(--stroke);background:var(--white);border-radius:13px;gap:13px;padding:15px;display:grid}.textbook-stock-card.pending{background:var(--bg-blue);border-color:#bfdbfe}.textbook-stock-card h3,.textbook-stock-card p{margin:0}.textbook-stock-card h3{font-size:14px;line-height:20px}.textbook-stock-card p,.textbook-stock-card small{color:var(--text-secondary);font-size:11px}.textbook-transfer-line{border-top:1px solid #155dfc24;grid-template-columns:minmax(0,1fr) 132px;align-items:end;gap:12px;padding-top:11px;display:grid}.textbook-transfer-line>div,.textbook-transfer-line label,.textbook-stock-card>label{gap:5px;min-width:0;display:grid}.textbook-transfer-line strong{overflow-wrap:anywhere;font-size:12px}.textbook-transfer-line label>span,.textbook-stock-card>label>span{color:var(--text-secondary);font-size:10px;font-weight:650}.textbook-transfer-line input,.textbook-stock-card>label input,.textbook-return-controls input{border:1px solid var(--stroke);background:var(--white);width:100%;min-height:44px;color:var(--text-main);font:inherit;border-radius:9px;padding:8px 10px}.textbook-stock-card>.primary-button,.textbook-return-controls button{border:1px solid var(--blue);background:var(--blue);min-height:44px;color:var(--white);cursor:pointer;border-radius:9px;font-weight:650}.textbook-stock-card button:disabled{cursor:not-allowed;opacity:.58}.textbook-return-controls{grid-template-columns:92px minmax(0,1fr);gap:8px;display:grid}.textbook-transfer-review-note{background:#fff8e8;border-radius:9px;padding:10px 12px;color:#76521b!important}.textbook-editor>footer.textbook-panel-footer{grid-template-columns:1fr}.textbook-book-card{background:var(--bg-blue);border:1px solid #bfdbfe;border-radius:12px;gap:3px;padding:14px 16px;display:grid}.textbook-book-card span,.textbook-book-card small{color:var(--text-secondary);font-size:11px}.textbook-amount-field,.textbook-payment-field{color:var(--text-secondary);gap:7px;font-size:12px;font-weight:650;display:grid}.textbook-amount-input{border:1px solid var(--stroke);background:var(--white);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.textbook-amount-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #155dfc1f}.textbook-amount-input input{min-width:0;min-height:46px;color:var(--text-main);border:0;outline:0;padding:10px 12px;font-size:16px}.textbook-amount-input>span{color:var(--text-secondary);padding:0 12px;font-weight:500}.textbook-payment-field select{border:1px solid var(--stroke);background:var(--white) url(/assets/icons/chevron-down.svg) no-repeat right 12px center / 16px;min-height:46px;color:var(--text-main);appearance:none;border-radius:10px;padding:9px 38px 9px 12px}.textbook-checks{gap:9px;display:grid}.textbook-checks>label{border:1px solid var(--stroke);cursor:pointer;border-radius:12px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:12px;min-height:66px;padding:10px 12px;display:grid}.textbook-checks input{width:20px;height:20px;accent-color:var(--blue)}.textbook-checks label>span{gap:2px;display:grid}.textbook-checks small{color:var(--text-secondary);font-size:11px;font-weight:400}.textbook-editor-error{background:var(--bg-red);color:var(--alert);border-radius:10px;margin:0;padding:10px 12px;font-size:12px}.textbook-editor>footer{border-top:1px solid var(--stroke);background:var(--white);grid-template-columns:1fr 1fr;gap:10px;padding:16px 22px;display:grid}.textbook-editor>footer button{min-height:46px}@media (width<=900px){.textbook-page-actions{flex-direction:column;align-items:stretch;width:100%}.textbook-stock-button{width:100%}.group-data-summary.textbooks-summary{grid-template-columns:1fr 1fr}.group-data-summary.textbooks-summary>div:first-child{grid-column:1/-1}.textbooks-book-summary{align-items:flex-start}.textbooks-card{border-radius:14px}.textbooks-table{min-width:930px}.textbooks-table th,.textbooks-table td{padding:9px 11px}.textbook-editor-layer{align-items:flex-end}.textbook-editor{border-radius:18px 18px 0 0;width:100%;height:min(94dvh,840px);box-shadow:0 -20px 56px #1018282e}.textbook-prepared-actions,.textbook-transfer-line{grid-template-columns:1fr}.textbook-editor>header,.textbook-editor-body,.textbook-editor>footer{padding-right:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-left:16px}}.profile-availability-card,.availability-card,.availability-status-card,.availability-notice{border:1px solid var(--stroke);background:var(--bg-surface,#fff);box-shadow:var(--shadow-card);border-radius:16px}.profile-availability-card{justify-content:space-between;align-items:center;gap:20px;margin-top:16px;padding:20px 24px;display:flex}.profile-availability-card h2,.profile-availability-card p{margin:0}.profile-availability-card h2{font-size:18px}.profile-availability-card p{color:var(--text-secondary);margin-top:5px;line-height:1.5}.profile-availability-card a,.availability-primary,.availability-secondary,.availability-card button,.availability-notice button{min-height:40px;font:inherit;cursor:pointer;border-radius:10px;font-weight:650}.profile-availability-card a{background:var(--blue);color:#fff;flex:none;justify-content:center;align-items:center;padding:0 16px;text-decoration:none;display:inline-flex}.availability-page{gap:16px;width:min(1120px,100%);padding-bottom:96px;display:grid}.availability-status-card{justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.availability-status-card>div{align-items:center;gap:10px;display:flex}.availability-status-card span,.availability-status-card small{color:var(--text-secondary)}.availability-status-card strong{background:var(--bg-page);border-radius:999px;padding:5px 10px;font-size:12px}.availability-status-card strong[data-status=APPROVED]{background:var(--bg-green);color:var(--green-text)}.availability-status-card strong[data-status=SUBMITTED]{background:var(--bg-orange);color:var(--orange)}.availability-notice{color:var(--text-secondary);box-shadow:none;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.availability-notice.success{background:var(--bg-green);color:var(--green-text)}.availability-notice.error{background:var(--bg-red);color:var(--alert)}.availability-notice.approved{border-color:#b7dfc7}.availability-notice button,.availability-card button{border:1px solid var(--stroke);color:var(--text-primary);background:#fff;padding:0 12px}.availability-card{overflow:hidden}.availability-card>header{border-bottom:1px solid var(--stroke);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.availability-card h2,.availability-card p{margin:0}.availability-card h2{font-size:18px}.availability-card header p{color:var(--text-secondary);margin-top:4px;font-size:13px;line-height:1.45}.availability-period-grid{grid-template-columns:repeat(2,minmax(180px,260px));gap:16px;padding:18px 20px;display:grid}.availability-period-grid label{color:var(--text-secondary);gap:7px;font-size:12px;font-weight:650;display:grid}.availability-period-grid input,.availability-time-row input,.availability-exception>input,.availability-exception>select{border:1px solid var(--stroke);min-height:40px;color:var(--text-primary);font:inherit;background:#fff;border-radius:9px;padding:0 10px}.availability-period-grid input:disabled,.availability-time-row input:disabled,.availability-exception input:disabled,.availability-exception select:disabled{background:var(--bg-page);color:var(--text-secondary);opacity:1}.availability-week{display:grid}.availability-day{border-bottom:1px solid var(--stroke);grid-template-columns:190px minmax(0,1fr);gap:16px;min-height:72px;padding:14px 20px;display:grid}.availability-day:last-child{border-bottom:0}.availability-day-name{flex-direction:column;align-items:flex-start;gap:7px;display:flex}.availability-day-name strong{line-height:40px}.availability-day-name button,.availability-exception-times>button{min-height:32px;color:var(--blue);padding:0 9px;font-size:12px}.availability-day-times{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.availability-time-row{align-items:center;gap:7px;display:inline-flex}.availability-time-row input{width:112px}.availability-empty{color:var(--text-secondary);font-size:13px}.availability-remove{width:34px;min-height:34px!important;color:var(--alert)!important;background:0 0!important;border:0!important;padding:0!important;font-size:20px!important}.availability-exceptions{display:grid}.availability-exceptions>.availability-empty{padding:18px 20px}.availability-exception{border-bottom:1px solid var(--stroke);grid-template-columns:160px minmax(210px,1fr) minmax(300px,2fr) auto;align-items:start;gap:12px;padding:16px 20px;display:grid}.availability-exception:last-child{border-bottom:0}.availability-exception-times{gap:8px;display:grid}.availability-delete-exception{color:var(--alert)!important}.availability-actions{z-index:4;border:1px solid var(--stroke);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border-radius:14px;justify-content:flex-end;gap:10px;padding:12px;display:flex;position:sticky;bottom:12px;box-shadow:0 10px 30px #0f172a1f}.availability-primary,.availability-secondary{border:1px solid var(--stroke);padding:0 18px}.availability-primary{border-color:var(--blue);background:var(--blue);color:#fff}.availability-secondary{color:var(--text-primary);background:#fff}.availability-primary:disabled,.availability-secondary:disabled{opacity:.55;cursor:default}@media (width<=900px){.availability-exception{grid-template-columns:150px minmax(180px,1fr)}.availability-exception-times{grid-column:1/-1}.availability-delete-exception{justify-self:start}}@media (width<=640px){.profile-availability-card{flex-direction:column;align-items:stretch;padding:18px}.profile-availability-card a{min-height:44px}.availability-page{gap:12px;padding-bottom:120px}.availability-status-card,.availability-notice{flex-direction:column;align-items:flex-start}.availability-card>header{flex-direction:column;align-items:flex-start;padding:16px}.availability-period-grid{grid-template-columns:1fr;padding:16px}.availability-day{grid-template-columns:1fr;gap:8px;padding:14px 16px}.availability-day-name{flex-direction:row;justify-content:space-between;align-items:center}.availability-day-name strong{line-height:32px}.availability-day-times{gap:8px;display:grid}.availability-time-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 34px;width:100%;display:grid}.availability-time-row input{width:100%;min-width:0}.availability-exception{grid-template-columns:1fr;padding:16px}.availability-exception-times{grid-column:auto}.availability-actions{flex-direction:column-reverse;bottom:74px}.availability-primary,.availability-secondary{width:100%;min-height:46px}}.availability-planner-page{gap:16px;width:min(1180px,100%);padding-bottom:96px;display:grid}.availability-planner-controls,.availability-planner-summary,.availability-planner-teacher{border:1px solid var(--stroke);background:var(--bg-surface,#fff);box-shadow:var(--shadow-card);border-radius:16px}.availability-planner-controls{flex-wrap:wrap;align-items:end;gap:14px;padding:16px 18px;display:flex}.availability-planner-controls label{color:var(--text-secondary);gap:6px;font-size:12px;font-weight:650;display:grid}.availability-planner-controls input,.availability-planner-controls select{border:1px solid var(--stroke);min-height:42px;color:var(--text-primary);font:inherit;background:#fff;border-radius:9px;padding:0 10px}.availability-planner-controls button{background:var(--blue);color:#fff;min-height:42px;font:inherit;cursor:pointer;border:0;border-radius:9px;padding:0 18px;font-weight:700}.availability-planner-summary{grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.availability-planner-summary>div{border-right:1px solid var(--stroke);gap:4px;padding:16px 18px;display:grid}.availability-planner-summary>div:last-child{border-right:0}.availability-planner-summary strong{font-size:24px}.availability-planner-summary span{color:var(--text-secondary);font-size:13px}.availability-planner-filters{flex-wrap:wrap;gap:8px;display:flex}.availability-planner-filters button{border:1px solid var(--stroke);min-height:38px;color:var(--text-secondary);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:0 14px}.availability-planner-filters button.active{border-color:var(--blue);background:var(--blue);color:#fff}.availability-planner-list{gap:14px;display:grid}.availability-planner-teacher{overflow:hidden}.availability-planner-teacher>header{border-bottom:1px solid var(--stroke);padding:16px 18px}.availability-planner-teacher h2,.availability-planner-teacher h3,.availability-planner-teacher p{margin:0}.availability-planner-teacher h2{font-size:18px}.availability-planner-teacher h3{margin-bottom:10px;font-size:13px}.availability-planner-badges{flex-wrap:wrap;gap:7px;margin-top:7px;display:flex}.availability-planner-badges span{background:var(--bg-page);color:var(--text-secondary);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.availability-planner-badges span[data-status=APPROVED]{background:var(--bg-green);color:var(--green-text)}.availability-planner-badges span[data-status=SUBMITTED]{background:var(--bg-orange);color:var(--orange)}.availability-planner-grid{grid-template-columns:1fr 1fr;display:grid}.availability-planner-grid>section{min-width:0;padding:16px 18px}.availability-planner-grid>section+section{border-left:1px solid var(--stroke)}.availability-planner-grid small{color:var(--text-secondary);margin-top:9px;display:block}.availability-slot-list{flex-wrap:wrap;gap:8px;display:flex}.availability-slot-list strong{background:var(--bg-green);color:var(--green-text);border-radius:9px;padding:7px 10px;font-size:13px}.availability-muted{color:var(--text-secondary);font-size:13px}.availability-busy-list{gap:7px;display:grid}.availability-busy-list>div{border-bottom:1px solid var(--stroke);grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 0;display:grid}.availability-busy-list>div:last-child{border-bottom:0}.availability-busy-list strong{font-size:12px}.availability-busy-list span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.availability-busy-list small{margin:0}.availability-review-box{background:var(--bg-orange);border-top:1px solid var(--stroke);grid-template-columns:minmax(220px,1fr) minmax(280px,1fr) auto;align-items:end;gap:14px;padding:16px 18px;display:grid}.availability-review-box p{color:var(--text-secondary);margin-top:5px;font-size:13px}.availability-review-box label{color:var(--text-secondary);gap:6px;font-size:12px;font-weight:650;display:grid}.availability-review-box textarea{resize:vertical;border:1px solid var(--stroke);min-height:68px;color:var(--text-primary);font:inherit;background:#fff;border-radius:9px;padding:9px 10px}.availability-review-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.availability-review-actions button{min-height:42px}@media (width<=800px){.availability-planner-grid{grid-template-columns:1fr}.availability-planner-grid>section+section{border-left:0;border-top:1px solid var(--stroke)}.availability-review-box{grid-template-columns:1fr}.availability-review-actions{justify-content:flex-start}}@media (width<=640px){.availability-planner-page{gap:12px;padding-bottom:120px}.availability-planner-controls{grid-template-columns:1fr 1fr;padding:14px;display:grid}.availability-planner-controls button{grid-column:1/-1;min-height:44px}.availability-planner-controls input,.availability-planner-controls select{width:100%;min-width:0}.availability-planner-summary{grid-template-columns:1fr}.availability-planner-summary>div{border-right:0;border-bottom:1px solid var(--stroke)}.availability-planner-summary>div:last-child{border-bottom:0}.availability-planner-teacher>header,.availability-planner-grid>section,.availability-review-box{padding:14px}.availability-busy-list>div{grid-template-columns:82px minmax(0,1fr)}.availability-busy-list small{grid-column:2}.availability-review-actions{grid-template-columns:1fr;display:grid}.availability-review-actions button{width:100%;min-height:44px}}.admin-teacher-switcher{color:#173a5b;background:#edf6ff;border:1px solid #adcde8;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-bottom:20px;padding:14px 18px;display:flex}.admin-teacher-switcher>div,.admin-teacher-switcher label{gap:5px;display:grid}.admin-teacher-switcher>div>span,.admin-teacher-switcher label>span{font-size:13px}.admin-teacher-switcher label{flex:0 340px;min-width:0}.admin-teacher-switcher select{color:#173a5b;width:100%;min-height:44px;font:inherit;background:#fff;border:1px solid #739bc0;border-radius:8px;padding:8px 32px 8px 12px;font-size:16px}.admin-teacher-switcher select:focus-visible{outline-offset:2px;outline:3px solid #2563a6}.admin-teacher-switcher select:disabled{opacity:.65}.admin-teacher-switcher>p{color:#9f2727;flex-basis:100%;margin:0}@media (width<=640px){.admin-teacher-switcher{gap:10px;padding:12px}.admin-teacher-switcher label{flex-basis:100%}}.cash-view{gap:24px;min-width:0;max-width:1600px;margin:0 auto;display:grid}.cash-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.cash-heading h1{margin:0 0 8px}.cash-heading p{color:#667085;max-width:680px;margin:0}.cash-date{color:#475467;gap:8px;min-width:170px;font-size:14px;display:grid}.cash-date input,.cash-form input,.cash-form textarea{color:#101828;font:inherit;background:#fff;border:1px solid #d0d5dd;border-radius:10px;max-width:100%;padding:11px 14px}.cash-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.cash-summary article,.cash-card{background:#fff;border:1px solid #e4e7ec;border-radius:20px;min-width:0;padding:24px}.cash-summary article{flex-direction:column;gap:8px;display:flex}.cash-summary span,.cash-summary small,.cash-muted{color:#667085}.cash-summary strong{color:#101828;font-size:28px;line-height:1.2}.cash-toolbar,.cash-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.cash-toolbar button,.cash-toolbar a,.cash-actions button{color:#344054;font:inherit;cursor:pointer;text-align:center;background:#fff;border:1px solid #d0d5dd;border-radius:10px;padding:11px 16px;text-decoration:none}.cash-view .primary-button{color:#fff;background:#195bff;border-color:#195bff}.cash-view button:disabled{opacity:.5;cursor:default}.cash-view :focus-visible{outline-offset:3px;outline:3px solid #93b8ff}.cash-card h2{margin:0 0 20px;font-size:20px}.cash-register-list{gap:16px;display:grid}.cash-register{border:1px solid #e4e7ec;border-radius:14px;padding:20px}.cash-register header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cash-register header>div{gap:4px;display:grid}.cash-register header>div>span{color:#667085;font-size:14px}.cash-status{color:#475467;background:#f2f4f7;border-radius:20px;padding:6px 12px;font-size:13px}.cash-status-open{color:#175cd3;background:#e9f2ff}.cash-status-handed_over{color:#8b5800;background:#fff5db}.cash-status-accepted{color:#087443;background:#e6f8ed}.cash-register dl{flex-wrap:wrap;gap:24px;margin:20px 0;display:flex}.cash-register dt{color:#667085;font-size:14px}.cash-register dd{margin:6px 0 0;font-size:20px;font-weight:600}.cash-notice{color:#875600;font-size:14px;line-height:1.5}.cash-success{color:#087443}.cash-form{border-top:1px solid #e4e7ec;gap:14px;max-width:560px;margin-top:20px;padding-top:20px;display:grid}.cash-form h3,.cash-form p{margin:0}.cash-form p{color:#667085}.cash-form label{gap:6px;font-size:14px;display:grid}.cash-form textarea{resize:vertical;min-height:72px}.cash-table-wrap{overflow-x:auto}.cash-view table{border-collapse:collapse;width:100%;font-size:14px}.cash-view th,.cash-view td{text-align:left;vertical-align:top;border-bottom:1px solid #e4e7ec;padding:14px 16px}.cash-view thead th{color:#667085;white-space:nowrap;background:#f8fafc;font-weight:500}.cash-book-name{white-space:normal;overflow-wrap:anywhere;min-width:220px;max-width:520px}.cash-book-name small{color:#667085;margin-top:4px;display:block}.cash-empty{color:#667085;padding:20px 0}.lesson-back-row{justify-content:space-between}@media (width<=767px){.cash-view{gap:16px}.cash-heading{flex-direction:column;gap:16px}.cash-summary{grid-template-columns:1fr}.cash-summary article,.cash-card{border-radius:16px;padding:18px}.cash-summary strong{font-size:24px}.cash-register{padding:14px}.cash-register dl{gap:16px}.cash-register dd{font-size:18px}.cash-actions button{flex:1}.cash-view th,.cash-view td{padding:12px 10px}.cash-toolbar{align-items:stretch}.cash-toolbar>a,.cash-toolbar>button{width:100%}}.admin-tools-navigation{border-top:1px solid var(--stroke);margin-top:16px;padding-top:10px}.admin-tools-navigation .sidebar-label{color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.admin-tools-navigation .nav-item{min-height:30px;font-size:13px}.lesson-status-cancelled{opacity:.65;filter:grayscale(.7)}.calendar-lesson-metrics .metric.status[data-status=CANCELLED]{color:#64748b}.cancelled-lesson-notice{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:12px;margin:1rem 0;padding:1rem 1.25rem}.cancelled-lesson-notice p{margin:.4rem 0 0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.desktop-lesson-workspace{display:none}.nav-item-disabled{cursor:not-allowed;opacity:.55}.confirmation-dialog-icon{background:var(--bg-green);border-radius:999px;place-items:center;width:48px;height:48px;display:grid}@media (width<=900px){.desktop-calendar-views{display:none}}@media (width>=901px){.desktop-sidebar>.brand{min-height:84px;padding:8px 16px}.desktop-brand-logo{width:112px;height:auto;display:block}.mobile-brand-logo,.mobile-brand-word{display:none!important}.design-icon.desktop-design-icon{display:inline-block}.mobile-preserved-icon{display:none!important}.brand .design-icon{color:var(--blue)}.mobile-lesson-records,.mobile-workspace-only{display:none!important}.desktop-lesson-workspace{display:block}.calendar-page{max-width:1440px}.calendar-heading{align-items:flex-start}.calendar-heading .period-tabs{gap:0;width:320px}.desktop-calendar-views{margin-top:24px}.today-schedule-card,.week-schedule-card,.desktop-calendar-card{border:1px solid var(--stroke);background:var(--white);border-radius:16px}.today-schedule-card{min-height:234px;padding:24px}.today-schedule-card h2{text-transform:capitalize;margin:0 0 16px;font-size:16px;font-weight:600;line-height:24px}.today-lessons{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.calendar-empty-state{color:var(--text-secondary);margin:0}.calendar-lesson-card{border:1px solid var(--stroke);background:var(--white);min-width:0;color:var(--text-main);border-radius:14px;align-items:center;gap:8px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.calendar-lesson-card.lesson-type-general{border-left:4px solid var(--green)}.calendar-lesson-card.lesson-type-exam{border-left:4px solid var(--purple)}.calendar-lesson-card.lesson-type-other{border-left:4px solid var(--blue)}.calendar-lesson-card:hover,.calendar-lesson-card:focus-visible{border-color:var(--blue);transform:translateY(-1px);box-shadow:0 8px 24px #1018281a}.calendar-lesson-card.day{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;min-height:146px;padding:16px}.calendar-lesson-card.panel{grid-template-columns:minmax(0,1fr) auto;padding:14px}.calendar-lesson-copy,.calendar-lesson-title-line,.calendar-lesson-meta,.calendar-lesson-metrics{min-width:0;display:flex}.calendar-lesson-copy{flex-direction:column;gap:4px}.calendar-lesson-title-line{flex-wrap:wrap;align-items:center;gap:8px}.calendar-lesson-title-line strong{font-size:16px;line-height:24px}.calendar-lesson-title-line small{color:#b54708;background:#fff3e8;border-radius:999px;padding:3px 8px;font-size:10px;line-height:14px}.calendar-unit-line,.calendar-lesson-meta{color:var(--text-secondary);font-size:12px;line-height:16px}.calendar-lesson-meta{flex-direction:column;gap:4px}.calendar-lesson-meta>span{align-items:center;gap:4px;display:inline-flex}.calendar-lesson-card.day .calendar-lesson-meta{flex-direction:row;grid-column:1;gap:16px}.calendar-lesson-metrics{align-items:center;gap:8px}.calendar-lesson-card.day .calendar-lesson-metrics{grid-area:1/2/span 2;align-self:end}.metric{padding-left:12px;font-size:11px;font-weight:600;position:relative}.metric:before{content:"";border-radius:999px;width:7px;height:7px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.metric.expected{color:var(--green-text);align-items:center;gap:3px;padding-left:0;display:inline-flex}.metric.expected:before{display:none}.metric.status{background:var(--bg-page);color:var(--text-secondary);border-radius:999px;padding:3px 7px;line-height:14px}.metric.status:before{display:none}.metric.status[data-status=IN_PROGRESS]{background:var(--bg-blue);color:var(--blue)}.metric.status[data-status=COMPLETED]{background:var(--bg-green);color:var(--green)}.metric.status[data-status=REOPENED]{color:var(--purple);background:#f3edff}.calendar-makeup-card{font:inherit;text-align:left;cursor:pointer;appearance:none;background:#fffdf8;border-left:4px solid #d98b16}.calendar-makeup-card .calendar-lesson-title-line strong{color:#6f4705}.calendar-makeup-card .calendar-lesson-title-line small,.calendar-makeup-card .metric.status.makeup{color:#835408;background:#fff0cf}.calendar-makeup-card .metric.expected{color:#835408}.calendar-makeup-students{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:17px;overflow:hidden}.calendar-card-chevron{display:none}.week-schedule-card{margin-inline:32px;padding:24px}.calendar-range-selector{grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;margin-bottom:16px;display:grid}.calendar-range-selector strong{text-align:center}.week-grid-scroll{border:1px solid var(--stroke);overscroll-behavior-inline:contain;border-radius:12px;overflow-x:auto}.week-grid-scroll:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.week-grid{background:var(--white);grid-template-rows:80px repeat(12,98px);grid-template-columns:128px repeat(7,minmax(0,1fr));min-width:1120px;display:grid;position:relative;overflow:visible}.week-grid-corner,.week-day-heading{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);background:var(--bg-blue)}.week-day-heading{z-index:5;text-align:center;place-content:center;display:grid;position:sticky;top:0}.week-grid-corner{z-index:7;position:sticky;top:0;left:0}.week-day-heading.today{background:var(--bg-blue);color:var(--blue);box-shadow:inset 0 -3px var(--blue)}.week-day-heading small{color:var(--text-secondary);font-size:12px}.week-day-heading strong{font-size:16px}.week-time-label{z-index:4;border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);background:var(--white);color:var(--text-secondary);grid-column:1;justify-content:center;align-items:start;padding-top:14px;font-size:12px;display:grid;position:sticky;left:0}.week-grid-slot{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.week-grid-slot.today{background:#f8fbff}.week-lesson-card{z-index:3;grid-column:var(--week-column);grid-row:var(--week-row) / span var(--week-span);min-width:0;color:var(--text-main);border:1px solid #0000;border-radius:12px;flex-direction:column;gap:3px;margin:8px;padding:10px;font-size:10px;display:flex;position:relative;overflow:visible}.week-lesson-card.lesson-type-general{background:var(--bg-green)}.week-lesson-card.lesson-type-exam{background:#f3edff}.week-lesson-card.lesson-type-other{background:var(--bg-page)}.week-makeup-card{font:inherit;text-align:left;cursor:pointer;appearance:none;background:#fff8e8;border-color:#f0cf8d}.week-makeup-card>strong{color:#6f4705}.week-makeup-card .metric.expected{color:#835408}.week-makeup-card .metric.status.makeup{color:#835408;background:#fff0cf}.week-lesson-card:hover,.week-lesson-card:focus-visible{z-index:8;border-color:var(--blue)}.week-lesson-card>strong{font-size:12px}.week-lesson-detail,.week-popover-details>span{align-items:center;gap:4px;display:inline-flex}.week-popover-details{align-items:center;gap:10px;display:flex}.week-lesson-card>span,.week-lesson-card>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.week-lesson-card .calendar-lesson-metrics{margin-top:auto}.week-lesson-popover{z-index:20;border:1px solid var(--blue);background:var(--white);width:230px;color:var(--text-main);border-radius:12px;flex-direction:column;gap:5px;padding:12px;display:none;position:absolute;top:calc(100% + 8px);bottom:auto;left:50%;transform:translate(-50%);box-shadow:0 14px 36px #1018282e}.week-lesson-card:hover .week-lesson-popover,.week-lesson-card:focus-visible .week-lesson-popover{display:flex}.desktop-calendar-card{min-height:464px;padding:24px}.desktop-calendar-content{grid-template-columns:minmax(0,740px) 332px;justify-content:space-between}.month-selector{height:44px;margin-bottom:16px}.month-selector>div{font-size:16px;line-height:24px}.month-grid{grid-template-rows:40px repeat(5,60px);min-height:372px;padding:16px}.weekday{align-items:center;padding:0;display:grid}.calendar-cell{min-height:60px}.calendar-cell.today:not(.selected){background:var(--bg-green);color:var(--green-text);border-color:#86efac}.calendar-cell.selected{border-color:var(--blue);background:var(--blue);color:var(--white)}.calendar-cell.selected b{background:var(--white);color:var(--blue)}.selected-day-panel{min-height:372px;padding:16px}.selected-day-panel h2{text-transform:capitalize;min-height:24px;margin-bottom:16px;font-size:14px}.lesson-page{max-width:1200px}.lesson-back-row{min-height:41px;margin-bottom:24px}.lesson-back-row .back-button{width:160px;min-height:41px}.lesson-page>.demo-mode-banner{z-index:4;max-width:520px;min-height:36px;margin:0;padding:7px 10px;font-size:10px;position:absolute;top:14px;right:32px}.lesson-hero{min-height:144px;padding:24px;position:relative}.lesson-hero-heading{padding-right:250px}.lesson-title-row h1{font-size:32px;line-height:40px}.lesson-hero-heading p,.lesson-meta{font-size:12px;line-height:16px}.lesson-state-badge{position:absolute;top:22px;right:24px}.lesson-meta{margin-top:auto}.lesson-icon-circle .design-icon,.lesson-meta .design-icon{color:var(--white)}.lesson-action{width:213px;min-height:41px;position:absolute;inset:auto auto 24px calc(100% - 237px)}.lesson-action.finish{background:var(--green)}.roster-overview{border:0;grid-template-columns:minmax(180px,240px) minmax(0,1fr);align-items:center;gap:16px;min-height:76px;margin-top:16px;padding:12px 16px;display:grid}.roster-overview h2{margin:0;font-size:16px;line-height:24px}.roster-overview .section-icon{width:36px;height:36px;color:var(--text-secondary)}.stat-grid{gap:8px}.stat-grid article{border-radius:12px;min-height:52px;padding:8px 10px}.stat-grid .stat-icon{width:34px;height:34px}.stat-grid small{font-size:12px;line-height:16px}.desktop-students-overview{background:var(--white);border-radius:16px;justify-content:space-between;align-items:center;gap:24px;min-height:120px;margin-top:16px;padding:16px 24px;display:flex}.desktop-state-strip{background:0 0;justify-content:stretch;min-height:0;padding:0}.desktop-students-overview h2,.desktop-students-overview p{margin:0}.desktop-students-overview h2{align-items:center;gap:8px;font-size:24px;line-height:32px;display:flex}.desktop-students-overview h2 span{background:var(--bg-blue);width:24px;height:24px;color:var(--blue);border-radius:999px;place-items:center;font-size:12px;display:grid}.desktop-students-overview>div>p,.desktop-state-callout p{color:var(--text-secondary);margin-top:4px;font-size:12px}.desktop-state-callout{border:1px solid;border-radius:14px;align-items:flex-start;gap:12px;width:470px;padding:12px;display:flex}.desktop-state-strip .desktop-state-callout{width:100%;padding:10px 14px}.desktop-state-callout.locked{border-color:var(--orange);background:var(--bg-orange);color:var(--orange)}.desktop-state-callout.completed{border-color:var(--blue);background:var(--bg-blue);color:var(--blue)}.desktop-record-card{--desktop-student-column-width:280px;--desktop-attendance-column-width:194px;--desktop-rubric-column-width:116px;background:var(--white);border-radius:16px;min-width:0;margin-top:16px;overflow:hidden}.desktop-save-status{border:1px solid var(--stroke);background:var(--white);min-height:40px;color:var(--text-secondary);border-bottom:0;border-radius:16px 16px 0 0;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.desktop-save-status .save-status-dot{background:var(--text-secondary-light);border-radius:999px;flex:none;width:8px;height:8px}.desktop-save-status.saving .save-status-dot{background:var(--blue)}.desktop-save-status.saved .save-status-dot{background:var(--green)}.desktop-save-status.error{background:var(--bg-red);color:var(--alert)}.desktop-save-status.error .save-status-dot{background:var(--alert)}.desktop-save-status time,.desktop-record-notice{color:var(--text-secondary)}.desktop-record-notice{margin-left:auto}.desktop-save-status button{border:1px solid var(--stroke);background:var(--white);min-height:28px;color:var(--blue);cursor:pointer;border-radius:8px;padding:3px 8px;font-weight:600}.desktop-record-tabs{border:1px solid var(--stroke);border-radius:0;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.desktop-record-tabs button{background:var(--white);cursor:pointer;border:0;min-height:38px;font-size:12px;font-weight:500}.desktop-record-tabs button+button{border-left:1px solid var(--stroke)}.desktop-record-tabs button.active{background:var(--blue);color:var(--white)}.desktop-record-toolbar{border-inline:1px solid var(--stroke);border-bottom:1px solid var(--stroke);justify-content:space-between;align-items:center;gap:16px;min-height:63px;padding:12px 24px;display:flex}.desktop-status-summary{flex-wrap:wrap;gap:8px;display:flex}.desktop-record-toolbar .mark-all-button{background:var(--green);min-height:30px}.desktop-attendance-table-wrap,.desktop-grade-table-wrap{isolation:isolate;overscroll-behavior-inline:contain;border:1px solid var(--stroke);border-top:0;border-radius:0 0 16px 16px;width:100%;min-width:0;max-width:100%;position:relative;overflow-x:auto}.desktop-attendance-table,.desktop-grade-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.desktop-student-column,.desktop-student-heading,.desktop-student-identity{width:var(--desktop-student-column-width);min-width:var(--desktop-student-column-width);max-width:var(--desktop-student-column-width)}.desktop-attendance-lesson-column{width:var(--desktop-attendance-column-width)}.desktop-grade-rubric-column{width:var(--desktop-rubric-column-width)}.desktop-attendance-table th,.desktop-attendance-table td,.desktop-grade-table th,.desktop-grade-table td{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.desktop-attendance-table thead th,.desktop-grade-table thead th{z-index:3;background:var(--white);height:53px;color:var(--text-secondary);text-align:center;padding:8px;font-size:12px;font-weight:500;position:sticky;top:0}.desktop-attendance-table thead th:first-child,.desktop-grade-table thead th:first-child{text-align:left;padding-left:24px}.desktop-grade-table thead th:not(:first-child){overflow-wrap:normal;word-break:normal;font-size:12px}.desktop-attendance-table thead th img{vertical-align:middle;margin-right:4px;display:inline-block}.desktop-attendance-table tbody tr,.desktop-grade-table tbody tr{height:65px}.desktop-attendance-table tbody th,.desktop-grade-table tbody th{width:var(--desktop-student-column-width);min-width:var(--desktop-student-column-width);max-width:var(--desktop-student-column-width);background:var(--white);text-align:left;height:65px;padding:8px 24px;font-size:12px;font-weight:500}.desktop-attendance-table th:first-child,.desktop-grade-table th:first-child{z-index:2;background:var(--white);position:sticky;left:0}.desktop-attendance-table thead th:first-child,.desktop-grade-table thead th:first-child{z-index:3}.desktop-student-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.desktop-student-identity .student-cell-content{gap:8px}.desktop-attendance-table td{text-align:center;padding:8px}.desktop-attendance-table .future{background:var(--bg-orange)}.desktop-attendance-table select{border:1px solid var(--stroke);background:var(--white);width:126px;height:28px;color:var(--text-secondary);appearance:none;background-image:url(/assets/icons/chevron-down.svg);background-position:right 6px center;background-repeat:no-repeat;background-size:16px 16px;border-radius:8px;padding:3px 24px 3px 8px;font-size:11px}.desktop-attendance-table select[data-status=present]{background:var(--bg-green);color:var(--green-text);border-color:#86efac}.desktop-attendance-table select[data-status=late],.desktop-attendance-table select[data-status=make_up]{background:var(--bg-orange);color:var(--orange);border-color:#fdba74}.desktop-attendance-table select[data-status=absent]{background:var(--bg-red);color:var(--alert);border-color:#fca5a5}.desktop-attendance-table select:disabled{appearance:none;cursor:default;opacity:1}.desktop-grades-instruction{border-inline:1px solid var(--stroke);border-bottom:1px solid var(--stroke);min-height:63px;color:var(--text-secondary);margin:0;padding:21px 24px;font-size:12px;font-style:italic}.desktop-grade-table td{text-align:center;padding:6px;position:relative}.desktop-grade-clear-button{border:1px solid var(--stroke);background:var(--white);width:20px;height:20px;color:var(--alert);cursor:pointer;border-radius:999px;place-items:center;padding:0;font-size:15px;font-weight:700;line-height:1;display:grid;position:absolute;top:4px;right:4px}.desktop-grade-clear-button:hover,.desktop-grade-clear-button:focus-visible{border-color:var(--alert);outline:none}.desktop-grade-table tbody tr:hover>*,.desktop-grade-table tbody tr.active-row>*,.desktop-grade-table tbody tr:hover .desktop-student-identity,.desktop-grade-table tbody tr.active-row .desktop-student-identity{background-color:#f8fbff}.desktop-grade-table thead th.active-column,.desktop-grade-table td.active-column{background-color:#eef4ff}.make-up-symbol{background:var(--bg-orange);width:18px;height:18px;color:var(--orange);border-radius:999px;place-items:center;font-size:16px;font-weight:700;line-height:1;display:inline-grid}.desktop-grade-table input{border:1px solid var(--stroke);background:var(--white);width:36px;height:36px;color:var(--text-secondary);text-align:center;appearance:textfield;border-radius:8px;padding:0;font-size:13px;font-weight:600}.desktop-grade-table input::-webkit-outer-spin-button{appearance:none;margin:0}.desktop-grade-table input::-webkit-inner-spin-button{appearance:none;margin:0}.desktop-grade-table input:focus{border-color:var(--blue)}.desktop-grade-table input:disabled{opacity:1}.desktop-grade-table input.draft,.desktop-grade-table input.guest-score{background:var(--bg-blue);color:var(--blue);border-color:#bfdbfe}.desktop-grade-table input.excellent{border-color:var(--green);background:var(--green);color:var(--white)}.desktop-grade-table input.good{border-color:var(--yellow);background:var(--yellow);color:var(--white)}.desktop-grade-table input.developing{border-color:var(--orange);background:var(--orange);color:var(--white)}.desktop-grade-table input.needs-support,.desktop-grade-table input.invalid{border-color:var(--alert);background:var(--alert);color:var(--white)}.absence-grade-note{color:var(--text-secondary);font-size:12px;font-style:italic;text-align:right!important;padding-right:24px!important}.session-notes-card{border:1px solid var(--stroke);background:var(--white);border-radius:16px;gap:12px;min-height:272px;margin-top:16px;padding:16px;display:grid}.session-notes-card label{font-size:16px;font-weight:600}.session-notes-card textarea{resize:vertical;border:1px solid var(--stroke);min-height:204px;color:var(--text-main);border-radius:12px;padding:12px}.completion-banner{grid-template-columns:40px minmax(0,1fr) auto 32px 32px;gap:8px;width:min(488px,100% - 64px);min-height:72px;top:12px}.completion-icon{width:40px;height:40px}.completion-banner .primary-button{min-height:32px;padding-inline:14px}.confirmation-dialog-layer{z-index:130;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirmation-dialog-backdrop{background:#1018288c;border:0;width:100%;position:absolute;inset:0}.confirmation-dialog{background:var(--white);text-align:center;border-radius:16px;align-content:center;place-items:center;gap:12px;width:min(358px,100%);min-height:291px;padding:28px 24px 24px;display:grid;position:relative;box-shadow:0 24px 72px #1018283d}.confirmation-dialog-icon{background:var(--bg-green);border-radius:999px;place-items:center;width:48px;height:48px;display:grid}.confirmation-dialog h2,.confirmation-dialog p{margin:0}.confirmation-dialog h2{font-size:20px;line-height:28px}.confirmation-dialog p{max-width:286px;color:var(--text-secondary);font-size:14px;line-height:20px}.confirmation-dialog footer{grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-top:8px;display:grid}.confirmation-dialog footer button{min-height:51px;font-size:14px}.confirmation-dialog .primary-button.success{background:var(--green)}.group-data-page{--group-student-column:280px;--group-attendance-column:168px;--group-grade-column:116px;width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:12px 32px 40px}.group-data-heading{align-items:flex-start}.group-assignment-picker{width:min(420px,42vw);color:var(--text-secondary);gap:6px;font-size:12px;font-weight:600;display:grid}.group-assignment-picker select{border:1px solid var(--stroke);background:var(--white) url(/assets/icons/chevron-down.svg) no-repeat right 12px center / 16px;min-height:42px;color:var(--text-main);appearance:none;border-radius:10px;padding:8px 38px 8px 12px}.group-data-summary{grid-template-columns:minmax(260px,1fr) repeat(2,minmax(140px,220px));gap:16px;margin-top:24px;display:grid}.group-data-summary.group-directory-summary,.group-data-summary.group-journal-summary{grid-template-columns:minmax(260px,1fr) minmax(140px,220px)}.group-data-summary>div{border:1px solid var(--stroke);background:var(--white);border-radius:14px;flex-direction:column;justify-content:center;gap:3px;min-height:78px;padding:16px 20px;display:flex}.group-data-summary strong{font-size:18px}.group-data-summary span{color:var(--text-secondary);font-size:12px}.group-data-readonly{color:var(--text-secondary);margin:10px 0 0;font-size:12px}.group-period-tabs{border:1px solid var(--stroke);background:var(--white);scrollbar-width:thin;border-bottom:0;border-radius:16px 16px 0 0;width:100%;margin-top:16px;display:flex;overflow-x:auto}.group-period-tabs button{border:0;border-right:1px solid var(--stroke);background:var(--white);min-width:126px;min-height:54px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;flex:none;padding:10px 18px;font-size:14px;font-weight:600}.group-period-tabs button:hover,.group-period-tabs button:focus-visible{background:var(--bg-blue);color:var(--blue)}.group-period-tabs button.active{background:var(--blue);color:var(--white)}.group-period-workspace{border-radius:0 0 16px 16px;margin-top:0}.group-period-card,.group-data-empty{border:1px solid var(--stroke);background:var(--white);border-radius:16px;min-width:0;overflow:hidden}.group-data-empty{color:var(--text-secondary);text-align:center;margin-top:24px;padding:32px}.group-period-card>header{border-bottom:1px solid var(--stroke);justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:12px 20px;display:flex}.group-period-card h2,.group-period-card h3,.group-period-card p{margin:0}.group-period-card h2{font-size:16px}.group-period-card>header span{color:var(--text-secondary);font-size:12px}.group-period-empty{color:var(--text-secondary);padding:24px 20px}.group-journal-table-wrap{isolation:isolate;overscroll-behavior-inline:contain;width:100%;min-width:0;max-width:100%;position:relative;overflow-x:auto}.group-journal-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.group-journal-table th,.group-journal-table td{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);text-align:center;height:56px;padding:8px}.group-journal-table tr:last-child>*{border-bottom:0}.group-journal-table tr>:last-child{border-right:0}.group-journal-table thead th{z-index:2;background:var(--white);color:var(--text-secondary);font-size:11px;font-weight:500;position:sticky;top:0}.group-journal-table thead th:not(.student-column){width:var(--group-attendance-column)}.group-journal-table.grades thead th:not(.student-column){width:var(--group-grade-column);overflow-wrap:normal;word-break:normal}.group-journal-table .group-session-headings+tr th{top:56px}.group-journal-table thead th strong,.group-journal-table thead th span{display:block}.group-journal-table thead th span{color:var(--text-secondary-light);margin-top:3px}.group-journal-table .student-column{z-index:2;width:var(--group-student-column);background:var(--white);text-align:left;position:sticky;left:0}.group-journal-table thead .student-column{z-index:4;padding-left:20px}.group-journal-table tbody th{padding:8px 20px;font-size:12px;font-weight:500}.group-journal-table .student-cell-content{gap:8px}.group-journal-table tbody .student-cell-content>strong{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.group-status,.group-grade{border-radius:8px;justify-content:center;align-items:center;min-width:54px;min-height:28px;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.group-status.present{background:var(--bg-green);color:var(--green-text)}.group-status.late,.group-status.make_up{background:var(--bg-orange);color:var(--orange)}.group-status.absent{background:var(--bg-red);color:var(--alert)}.group-grade{background:var(--bg-blue);min-width:28px;color:var(--blue);padding-inline:6px}.group-journal-table .not-rostered{background:var(--bg-page);color:var(--text-disabled);font-size:11px}.group-journal-table .empty-cell{color:var(--text-disabled)}}@media (width>=901px) and (width<=1199px){.desktop-sidebar{width:88px}.hub-main{margin-left:88px}.desktop-sidebar>.brand{justify-content:center;padding-inline:8px}.desktop-brand-logo{width:70px}.sidebar-body{padding:8px}.desktop-sidebar .sidebar-label,.desktop-sidebar .nav-label,.desktop-sidebar .sidebar-user>span,.desktop-sidebar .sidebar-user>.design-icon{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.desktop-sidebar .nav-item{justify-content:center;min-height:44px;padding:10px}.desktop-sidebar .nav-item .design-icon,.desktop-sidebar .nav-item img{width:20px!important;height:20px!important}.desktop-sidebar .language-switcher{grid-template-columns:1fr}.desktop-sidebar .language-option{min-height:30px;font-size:10px}.desktop-sidebar .sidebar-user{justify-content:center;min-height:64px;padding:10px}.lesson-page,.calendar-page,.group-data-page,.profile-page,.today-dashboard{padding-inline:24px}.roster-overview{grid-template-columns:minmax(160px,190px) minmax(0,1fr)}.roster-overview .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.group-data-page{--group-student-column:260px;--group-attendance-column:132px;--group-grade-column:116px}}.week-grid{grid-template-rows:80px repeat(12,112px)}.week-lesson-card{gap:4px;padding:10px 11px}.week-lesson-card>strong{flex:none;font-size:13px;line-height:16px}.week-lesson-card>span:not(.week-lesson-popover),.week-lesson-card>small{flex:none;line-height:14px}.week-lesson-detail{font-size:10px}.week-lesson-card .calendar-lesson-metrics{flex-wrap:nowrap;flex:none;gap:6px;width:100%;min-height:20px;margin-top:auto}.week-lesson-card .metric{font-size:10px}.week-lesson-card .metric.status{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:2px 5px;line-height:14px;overflow:hidden}.mobile-record-sheet-layer,.mobile-record-toast{display:none}@media (width<=900px){.mobile-header{min-height:calc(56px + env(safe-area-inset-top));padding:calc(6px + env(safe-area-inset-top)) 16px 6px}.mobile-header .brand{min-height:44px}.mobile-header .desktop-brand-logo{display:none!important}.mobile-header .mobile-brand-logo{width:70px;height:auto;display:block}.mobile-header .mobile-brand-word{display:none}.mobile-header .teacher-chip{border:1px solid var(--stroke);background:var(--white);border-radius:9px;min-height:34px;padding:5px 9px}.mobile-header .icon-button{width:44px;height:44px}.auth-page{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom))}.auth-card{padding:24px}.auth-form input{font-size:16px}.mobile-drawer{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.mobile-agenda{gap:16px;margin-top:2px}.mobile-calendar-selector{border:1px solid var(--stroke);background:var(--white);border-radius:12px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;padding:8px;display:grid}.mobile-calendar-selector strong{text-align:center;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.mobile-calendar-selector .icon-button{width:44px;height:44px}.mobile-agenda .calendar-empty-state{border:1px solid var(--stroke);background:var(--white);text-align:center;border-radius:14px;margin:0;padding:24px 16px}.mobile-agenda .calendar-lesson-card.mobile{border:1px solid var(--stroke);background:var(--white);min-height:0;color:var(--text-main);border-radius:14px;grid-template-columns:minmax(0,1fr) 28px;grid-template-areas:"copy chevron""meta chevron""metrics chevron";align-items:center;gap:8px 12px;padding:14px;display:grid}.mobile-agenda .calendar-lesson-copy,.mobile-agenda .calendar-lesson-title-line,.mobile-agenda .calendar-lesson-meta,.mobile-agenda .calendar-lesson-metrics{min-width:0;display:flex}.mobile-agenda .calendar-lesson-copy{flex-direction:column;grid-area:copy;gap:3px}.mobile-agenda .calendar-lesson-title-line{flex-wrap:wrap;align-items:center;gap:7px}.mobile-agenda .calendar-lesson-title-line strong{color:var(--text-main);font-size:16px;line-height:22px}.mobile-agenda .calendar-lesson-title-line small{background:var(--bg-orange);color:#b54708;border-radius:999px;padding:2px 7px;font-size:10px;line-height:14px}.mobile-agenda .calendar-unit-line,.mobile-agenda .calendar-lesson-meta{color:var(--text-secondary);font-size:12px;line-height:16px}.mobile-agenda .calendar-unit-line{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-agenda .calendar-lesson-meta{flex-wrap:wrap;grid-area:meta;gap:6px 14px}.mobile-agenda .calendar-lesson-meta>span,.mobile-agenda .metric.expected{align-items:center;gap:4px;display:inline-flex}.mobile-agenda .calendar-lesson-metrics{grid-area:metrics;align-items:center;gap:10px}.mobile-agenda .metric{color:var(--text-secondary);font-size:11px;font-weight:600;position:relative}.mobile-agenda .metric.expected{color:var(--green-text)}.mobile-agenda .metric.status{background:var(--bg-page);border-radius:999px;padding:3px 7px}.mobile-agenda .metric.status[data-status=IN_PROGRESS]{background:var(--bg-blue);color:var(--blue)}.mobile-agenda .metric.status[data-status=COMPLETED]{background:var(--bg-green);color:var(--green)}.mobile-agenda .metric.status[data-status=REOPENED]{color:var(--purple);background:#f3edff}.mobile-agenda .calendar-lesson-card.lesson-type-general{border-left:4px solid var(--green)}.mobile-agenda .calendar-lesson-card.lesson-type-exam{border-left:4px solid var(--purple)}.mobile-agenda .calendar-lesson-card.lesson-type-other{border-left:4px solid var(--blue)}.mobile-agenda .calendar-makeup-card{font:inherit;text-align:left;cursor:pointer;appearance:none;background:#fffdf8;border-left:4px solid #d98b16}.mobile-agenda .calendar-makeup-card .calendar-lesson-title-line strong{color:#6f4705}.mobile-agenda .calendar-makeup-card .calendar-lesson-title-line small,.mobile-agenda .calendar-makeup-card .metric.status.makeup{color:#835408;background:#fff0cf}.mobile-agenda .calendar-makeup-card .metric.expected{color:#835408}.mobile-agenda .calendar-makeup-students{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:17px;overflow:hidden}.mobile-agenda .calendar-card-chevron{grid-area:chevron;justify-self:end;display:block}.lesson-page{width:min(100%,430px);padding:12px 16px calc(28px + env(safe-area-inset-bottom));margin:0 auto}.lesson-back-row{margin-bottom:12px}.back-button{border-radius:10px;width:auto;min-width:160px;min-height:44px;padding:10px 14px}.lesson-hero{background:linear-gradient(100deg,#2c7cff 0%,#3e5bfa 52%,#4e3cf6 100%);border-radius:16px;gap:10px;min-height:148px;padding:12px}.lesson-icon-circle{width:42px;height:42px}.lesson-title-row h1{font-size:18px;line-height:22px}.lesson-hero-heading p,.lesson-meta{font-size:12px}.lesson-state-badge{min-height:26px;padding:4px 8px}.lesson-action{border-radius:10px;min-height:44px;font-size:14px}.locked-callout{border-radius:14px;padding:12px}.locked-callout strong{font-size:14px}.locked-callout p{font-size:13px;line-height:19px}.roster-overview{display:none}.roster-overview h2{margin-bottom:12px;padding:0 6px;font-size:16px}.roster-overview .section-icon{width:28px;height:28px}.stat-grid{gap:8px}.stat-grid article{border-radius:13px;gap:10px;min-height:64px;padding:10px 12px}.stat-grid article>div{min-width:0}.stat-grid small{overflow-wrap:anywhere;line-height:14px}.stat-icon{width:36px;height:36px}.stat-grid strong{font-size:18px;line-height:20px}.mobile-records-redesign{background:var(--white);border:0;border-radius:16px;margin-top:10px;padding:12px;overflow:visible}.mobile-records-redesign .record-tabs{gap:10px}.mobile-records-redesign .record-tabs button{border-radius:10px;min-height:44px;font-size:14px}.mobile-records-redesign .record-tabs button:only-child{grid-column:1/-1}.mobile-records-redesign .record-tabs .attendance,.mobile-records-redesign .record-tabs .attendance.active{background:var(--blue)}.mobile-records-redesign .record-tabs .grades,.mobile-records-redesign .record-tabs .grades.active{background:var(--purple)}.mobile-records-redesign .record-tabs.locked .attendance,.mobile-records-redesign .record-tabs.locked .attendance.active{color:var(--text-main);background:#acd6ff}.mobile-records-redesign .record-tabs.locked .grades,.mobile-records-redesign .record-tabs.locked .grades.active{color:var(--text-main);background:#ddb0fa}.mobile-status-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px 0 12px;display:grid;overflow:visible}.mobile-status-summary .status-pill{justify-content:space-between;min-width:0}.mobile-record-read-only{background:var(--bg-blue);color:var(--text-secondary);border-radius:10px;margin:10px 0 0;padding:9px 11px;font-size:13px;line-height:18px}.mobile-records-redesign .records-heading{border-top:1px solid var(--stroke);padding:12px 0 6px}.mobile-records-redesign .mark-all-button{background:var(--green);min-height:44px;padding:7px 10px}.mobile-roster-list{margin:0;padding:0;list-style:none}.mobile-roster-entry,.mobile-grade-students li button{border:0;border-bottom:1px solid var(--stroke);background:var(--white);width:100%;min-height:50px;color:var(--text-main);cursor:pointer;text-align:left;grid-template-columns:22px 26px minmax(0,1fr) auto;align-items:center;gap:8px;padding:0;display:grid}.mobile-roster-entry:disabled{cursor:default}.mobile-roster-entry:not(:disabled):active{background:var(--bg-blue)}.mobile-row-chevron{width:32px;height:32px;color:var(--blue);place-items:center;font-size:24px;display:grid}.mobile-roster-entry{min-height:58px}.mobile-roster-name{align-content:center;justify-items:start;gap:3px;min-width:0;display:grid}.student-badges{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:4px;width:100%;min-width:0;display:flex}.mobile-roster-name strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:14px;font-weight:500;overflow:hidden}.mobile-row-status{border-radius:999px;place-items:center;width:44px;min-height:28px;display:grid}.mobile-row-status.present{background:var(--bg-green)}.mobile-row-status.late,.mobile-row-status.make_up{background:var(--bg-orange)}.mobile-row-status.absent{background:var(--bg-red)}.mobile-session-notes{border:1px solid var(--stroke);background:var(--white);border-radius:16px;margin-top:14px}.mobile-session-notes summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 16px;font-size:15px;font-weight:700;list-style:none;display:flex}.mobile-session-notes summary::-webkit-details-marker{display:none}.mobile-session-notes summary:after{color:var(--blue);content:"+";font-size:20px}.mobile-session-notes[open] summary:after{content:"−"}.mobile-session-notes summary small{color:var(--text-secondary);margin-left:auto;font-size:11px;font-weight:600}.mobile-session-notes summary small.saved{color:var(--green)}.mobile-session-notes summary small.error{color:var(--alert)}.mobile-session-notes textarea{resize:vertical;border:1px solid var(--stroke);width:calc(100% - 32px);min-height:132px;color:var(--text-main);border-radius:12px;margin:0 16px 16px;padding:12px}.mobile-session-notes textarea:disabled{background:var(--white);color:var(--text-disabled)}.mobile-record-toast{top:auto;bottom:calc(76px + env(safe-area-inset-bottom));z-index:110;border:1px solid var(--green);background:var(--bg-green);width:min(358px,100% - 32px);min-height:60px;color:var(--green-text);border-radius:16px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 14px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 36px #10182833}.mobile-record-toast.error{border-color:var(--alert);background:var(--bg-red);color:var(--alert)}.mobile-record-toast.in-sheet{z-index:auto;width:auto;min-height:64px;margin:8px 16px calc(8px + env(safe-area-inset-bottom));box-shadow:none;border-radius:12px;flex:none;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;padding:8px 10px;position:static;inset:auto;transform:none}.mobile-record-toast.in-sheet.idle{background:var(--bg-page);color:var(--text-secondary);border-color:#0000}.mobile-record-toast strong{font-size:14px}.mobile-record-toast button{border:1px solid var(--stroke);background:var(--white);min-height:44px;color:var(--text-secondary);cursor:pointer;border-radius:10px;padding:6px 10px}.mobile-record-sheet-layer{z-index:90;display:block;position:fixed;inset:0}.mobile-record-sheet-backdrop{background:#10182880;border:0;width:100%;position:absolute;inset:0}.mobile-record-sheet{width:100%;max-height:calc(100dvh - 112px - env(safe-area-inset-top));border:1px solid var(--stroke);background:var(--white);overscroll-behavior:contain;border-radius:18px 18px 0 0;flex-direction:column;display:flex;position:absolute;inset:auto 0 0;overflow:hidden;box-shadow:0 -14px 42px #10182838}.mobile-record-sheet.attendance{height:min(80dvh,671px)}.mobile-record-sheet.grades.grade-stage-students{height:min(75dvh,631px)}.mobile-record-sheet.grades.grade-stage-rubrics{height:min(72dvh,604px)}.mobile-record-sheet.grades.grade-stage-detail{height:min(75dvh,631px)}.mobile-record-sheet.grades.grade-stage-score{height:auto;max-height:calc(100dvh - 132px - env(safe-area-inset-top))}.mobile-record-sheet-header{border-bottom:1px solid var(--stroke);flex:none;padding:14px 16px 10px}.mobile-record-sheet-header>div:first-child{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.mobile-record-sheet-header h2{margin:0;font-size:18px;line-height:24px}.mobile-record-sheet-header>div:first-child>button,.mobile-grade-picker header>button{cursor:pointer;background:0 0;border:0;width:44px;height:44px;font-size:30px;line-height:1}.mobile-workflow-progress{gap:8px;display:grid}.mobile-workflow-progress>div{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.mobile-workflow-progress strong{color:var(--blue);font-weight:500}.mobile-workflow-progress progress{background:var(--stroke);appearance:none;border:0;border-radius:999px;width:100%;height:6px;overflow:hidden}.mobile-workflow-progress progress::-webkit-progress-bar{background:var(--stroke);border-radius:999px}.mobile-workflow-progress progress::-webkit-progress-value{background:var(--blue-light);border-radius:999px}.mobile-workflow-progress progress::-moz-progress-bar{background:var(--blue-light);border-radius:999px}.mobile-sheet-scroll{min-height:0;padding:12px 16px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain;flex:1;overflow-y:auto}.mobile-current-student{background:var(--bg-blue);border-radius:16px;align-content:center;place-items:center;gap:10px;min-height:138px;display:grid;position:relative}.mobile-student-transition{--student-slide:18px}.mobile-student-transition[data-student-direction="-1"]{--student-slide:-18px}.mobile-student-transition[data-student-transition=leaving]{animation:.18s ease-in forwards student-card-leave}.mobile-student-transition[data-student-transition=entering]{animation:.22s ease-out both student-card-enter}@keyframes student-card-leave{0%,35%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateX(calc(-1 * var(--student-slide)))}}@keyframes student-card-enter{0%{opacity:0;transform:translateX(var(--student-slide))}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.mobile-student-transition[data-student-transition]{animation:none}}.mobile-current-student>strong{text-align:center;overflow-wrap:anywhere;max-width:100%;padding-inline:12px;font-size:17px;font-weight:500}.mobile-attendance-options{gap:8px;margin-top:10px;display:grid}.mobile-attendance-options>button{background:var(--bg-page);text-align:left;cursor:pointer;border:1px solid #0000;border-radius:12px;grid-template-columns:36px minmax(0,1fr) 24px;align-items:center;gap:10px;min-height:58px;padding:10px 14px;display:grid}.mobile-attendance-options>button:disabled{cursor:default;opacity:1}.mobile-attendance-options>button.selected.present{border-color:var(--green);background:var(--bg-green)}.mobile-attendance-options>button.selected.late,.mobile-attendance-options>button.selected.make_up{border-color:var(--yellow);background:var(--bg-yellow)}.mobile-attendance-options>button.selected.absent{background:var(--bg-red);border-color:#ff3b30}.mobile-attendance-options>button>span{gap:2px;display:grid}.mobile-attendance-options strong{font-size:14px;font-weight:600}.mobile-attendance-options small{color:var(--text-secondary);font-size:12px}.mobile-attendance-options b{color:var(--text-secondary);font-size:24px;font-weight:400}.mobile-student-navigation{border-top:1px solid var(--stroke);grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;padding-top:14px;display:grid}.mobile-student-navigation button{border:1px solid var(--stroke);background:var(--white);min-height:44px;color:var(--text-secondary);cursor:pointer;border-radius:10px}.mobile-student-navigation button:disabled{color:var(--text-disabled);cursor:not-allowed}.mobile-sheet-summary{border-top:1px solid var(--stroke);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;padding-top:14px;display:grid;overflow:visible}.mobile-sheet-summary .status-pill{justify-content:space-between;min-width:0}.mobile-grade-mode-switch{border:1px solid var(--stroke);background:var(--bg-page);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:16px;padding:4px;display:grid}.mobile-grade-mode-switch button{min-height:40px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;font-weight:600}.mobile-grade-mode-switch button.active{background:var(--white);color:var(--purple);box-shadow:var(--shadow-card)}.mobile-grade-rubrics h3{margin:0 0 10px;font-size:15px;line-height:21px}.mobile-rubric-list{gap:8px;display:grid}.mobile-rubric-list button{border:1px solid var(--stroke);background:var(--white);min-height:58px;color:var(--text-main);cursor:pointer;text-align:left;border-radius:12px;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:8px;padding:10px 12px;display:grid}.mobile-rubric-list button span{min-width:0;font-weight:600}.mobile-rubric-list button small{color:var(--text-secondary);white-space:nowrap}.mobile-rubric-list button b{color:var(--purple);font-size:22px}.mobile-grade-students h3{align-items:center;gap:8px;margin:2px 0 4px;font-size:18px;display:flex}.mobile-grade-students h3 span{background:var(--bg-blue);width:28px;height:28px;color:var(--blue);border-radius:999px;place-items:center;font-size:12px;font-weight:500;display:grid}.mobile-grade-students>p{color:var(--text-secondary);margin:0 0 10px;font-size:14px}.mobile-grade-students ol{margin:0;padding:0;list-style:none}.mobile-grade-students li button{border:0;border-bottom:1px solid var(--stroke);text-align:left;cursor:pointer;background:0 0;width:100%;padding:0}.mobile-grade-students .student-badges{max-width:92px}.mobile-grade-students li button>span:nth-child(3){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grade-student-card{grid-template-columns:1fr;padding:14px}.mobile-back-to-students{min-height:44px;color:var(--blue);cursor:pointer;background:0 0;border:0;position:absolute;top:12px;left:12px}.mobile-rubric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:10px;display:grid}.mobile-rubric-grid button{background:var(--bg-page);cursor:pointer;border:1px solid #0000;border-radius:11px;place-items:center;min-height:58px;padding:12px 5px;display:grid;position:relative}.mobile-rubric-grid button:disabled{cursor:default;opacity:1}.mobile-rubric-grid button b{background:var(--blue-light);width:22px;height:22px;color:var(--white);border-radius:999px;place-items:center;font-size:10px;display:grid;position:absolute;top:5px;right:5px}.mobile-rubric-grid button span{overflow-wrap:anywhere;text-align:center;font-size:11px}.mobile-grade-picker{padding:14px 16px calc(18px + env(safe-area-inset-bottom));gap:14px;display:grid;overflow-y:auto}.mobile-grade-picker>header{border-bottom:1px solid var(--stroke);grid-template-columns:auto minmax(0,1fr) 44px;align-items:start;gap:8px;padding-bottom:12px;display:grid}.mobile-grade-picker h2,.mobile-grade-picker p{margin:0}.mobile-grade-picker h2{font-size:22px}.mobile-grade-picker header p{color:var(--text-secondary);font-size:16px}.mobile-grade-picker header>.mobile-grade-student-name{white-space:nowrap;align-items:center;gap:7px;min-width:0;min-height:44px;font-size:14px;display:flex}.mobile-grade-student-name>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.mobile-grade-picker>p{justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.mobile-grade-sequence{color:var(--text-secondary);flex:none;font-size:13px;font-weight:600}.mobile-grade-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mobile-grade-grid button{background:var(--bg-page);cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:58px;font-size:20px}.mobile-grade-grid .needs-support{background:var(--bg-red)}.mobile-grade-grid .developing{background:var(--bg-orange)}.mobile-grade-grid .good{background:var(--bg-yellow)}.mobile-grade-grid .excellent{background:var(--bg-green)}.mobile-grade-grid .good.selected{background:var(--yellow);color:var(--white);font-weight:700}.mobile-grade-grid .excellent.selected{background:var(--green);color:var(--white);font-weight:700}.mobile-grade-grid .developing.selected{background:var(--orange);color:var(--white);font-weight:700}.mobile-grade-grid .needs-support.selected{background:var(--alert);color:var(--white);font-weight:700}.mobile-grade-picker footer{gap:8px;display:grid}.mobile-grade-picker footer button{width:100%;min-height:44px}.mobile-grade-picker .grade-clear-button{border-color:color-mix(in srgb, var(--alert) 35%, var(--stroke));color:var(--alert);font-weight:600}.confirmation-dialog-layer{align-items:center;padding:16px}.confirmation-dialog{text-align:center;border-radius:16px;place-items:center;gap:14px;width:min(358px,100%);max-height:calc(100dvh - 32px);padding:28px 24px 24px}.confirmation-dialog h2,.confirmation-dialog p{margin:0}.confirmation-dialog h2{font-size:22px}.confirmation-dialog p{color:var(--text-secondary);font-size:15px;line-height:22px}.confirmation-dialog footer{gap:8px;width:100%;padding-top:8px;display:grid}.confirmation-dialog footer button{width:100%;min-height:50px}.completion-banner{top:auto;bottom:max(16px, env(safe-area-inset-bottom));z-index:120;border-radius:16px;grid-template-columns:36px minmax(0,1fr) 36px 44px;grid-template-areas:"icon copy timer close""action action action action";gap:8px;width:min(358px,100% - 24px);min-height:0;padding:12px;box-shadow:0 16px 44px #1018283d}.completion-banner .completion-icon{grid-area:icon;width:36px;height:36px}.completion-banner .completion-copy{grid-area:copy;min-width:0}.completion-banner .completion-copy strong,.completion-banner .completion-copy p{overflow-wrap:anywhere}.completion-banner .primary-button{grid-area:action;width:100%;min-height:44px}.completion-banner .countdown-circle{grid-area:timer}.completion-close{grid-area:close}.group-data-page{--group-student-column:168px;--group-attendance-column:116px;--group-grade-column:100px;width:100%;min-width:0;margin:0 auto;padding:12px 16px 28px}.group-data-heading,.group-assignment-picker{width:100%}.group-data-heading{align-items:stretch}.group-assignment-picker{color:var(--text-secondary);gap:6px;font-size:12px;font-weight:600;display:grid}.group-assignment-picker select{border:1px solid var(--stroke);background:var(--white) url(/assets/icons/chevron-down.svg) no-repeat right 12px center / 16px;min-height:44px;color:var(--text-main);appearance:none;border-radius:10px;padding:8px 38px 8px 12px;font-size:16px}.group-data-summary{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;display:grid}.group-data-summary.group-directory-summary,.group-data-summary.group-journal-summary{grid-template-columns:minmax(0,1fr) minmax(112px,.45fr)}.group-data-summary>div{border:1px solid var(--stroke);background:var(--white);border-radius:12px;flex-direction:column;justify-content:center;min-height:68px;padding:12px 14px;display:flex}.group-data-summary>div:first-child{grid-column:1/-1}.group-data-summary.group-directory-summary>div:first-child,.group-data-summary.group-journal-summary>div:first-child{grid-column:auto}.group-directory-card,.group-contact-source-state{min-width:0;margin-top:12px}.group-directory-card{border-radius:14px}.group-directory-table{min-width:calc(var(--group-student-column) + 220px)}.group-directory-table thead th:not(.student-column){width:180px}.group-directory-table th,.group-directory-table td{padding:10px 12px}.group-data-summary strong{font-size:17px}.group-data-summary span,.group-data-readonly,.group-period-card>header span{color:var(--text-secondary);font-size:12px}.group-data-readonly{margin:9px 0 0;line-height:17px}.group-period-tabs{border:1px solid var(--stroke);background:var(--white);scrollbar-width:thin;border-bottom:0;border-radius:14px 14px 0 0;width:100%;margin-top:12px;display:flex;overflow-x:auto}.group-period-tabs button{border:0;border-right:1px solid var(--stroke);background:var(--white);min-width:112px;min-height:48px;color:var(--text-secondary);white-space:nowrap;flex:none;padding:8px 14px;font-weight:650}.group-period-tabs button.active{background:var(--blue);color:var(--white)}.group-period-card,.group-data-empty{border:1px solid var(--stroke);background:var(--white);border-radius:14px;min-width:0;overflow:hidden}.group-period-workspace{border-radius:0 0 14px 14px}.group-data-empty{color:var(--text-secondary);text-align:center;margin-top:16px;padding:24px 16px}.group-period-card>header{border-bottom:1px solid var(--stroke);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:10px 14px;display:flex}.group-period-card h2{margin:0;font-size:15px}.group-journal-table-wrap{isolation:isolate;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;position:relative;overflow-x:auto}.group-journal-table-wrap:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.group-journal-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.group-journal-table th,.group-journal-table td{border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke);text-align:center;height:52px;padding:7px}.group-journal-table thead th{z-index:2;width:var(--group-attendance-column);background:var(--white);color:var(--text-secondary);font-size:10px;font-weight:600;position:sticky;top:0}.group-journal-table.grades thead th:not(.student-column){width:var(--group-grade-column);overflow-wrap:normal;word-break:normal}.group-journal-table .group-session-headings+tr th{top:52px}.group-journal-table thead th strong,.group-journal-table thead th span{display:block}.group-journal-table .student-column{z-index:3;width:var(--group-student-column);background:var(--white);text-align:left;position:sticky;left:0;box-shadow:8px 0 12px -12px #101828a6}.group-journal-table thead .student-column{z-index:5;padding-left:12px}.group-journal-table tbody th{padding:7px 10px;font-size:11px}.group-journal-table .student-cell-content{gap:6px}.group-journal-table tbody .student-cell-content>strong{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.group-status,.group-grade{border-radius:8px;justify-content:center;align-items:center;min-width:48px;min-height:28px;padding:4px 6px;font-size:10px;font-weight:650;display:inline-flex}.group-status.present{background:var(--bg-green);color:var(--green-text)}.group-status.late,.group-status.make_up{background:var(--bg-orange);color:var(--orange)}.group-status.absent{background:var(--bg-red);color:var(--alert)}.group-grade{background:var(--bg-blue);min-width:28px;color:var(--blue)}.group-journal-table .not-rostered{background:var(--bg-page);color:var(--text-disabled);font-size:10px}.group-journal-table .empty-cell{color:var(--text-disabled)}}@media (width>=600px) and (width<=900px){.group-data-page{--group-student-column:220px;--group-attendance-column:132px;--group-grade-column:100px;max-width:860px;padding-inline:24px}.group-data-summary{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(120px,180px))}.group-data-summary.group-directory-summary,.group-data-summary.group-journal-summary{grid-template-columns:minmax(240px,1fr) minmax(120px,180px)}.group-data-summary>div:first-child{grid-column:auto}.lesson-page{width:min(100%,760px);padding-inline:24px}.mobile-record-sheet{width:min(720px,100% - 32px);left:50%;right:auto;transform:translate(-50%)}}@media (width<=360px){.mobile-rubric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-grade-picker header{grid-template-columns:minmax(0,1fr) 44px}.mobile-grade-picker header>.mobile-grade-student-name{grid-area:2/1/auto/-1}}@media (width<=900px){.textbook-history-panel .textbook-action-form{z-index:196;left:16px;right:16px;bottom:calc(92px + env(safe-area-inset-bottom));overscroll-behavior:contain;max-height:min(46dvh,420px);position:fixed;overflow-y:auto;box-shadow:0 -14px 38px #10182833}.textbook-history-panel .textbook-editor-body{padding-bottom:calc(220px + env(safe-area-inset-bottom))}.textbook-history-panel .textbook-action-form-buttons{background:var(--bg-blue);position:sticky;bottom:0}}.today-dashboard{width:100%;max-width:1440px;margin:0 auto;padding:24px 32px 48px}.today-dashboard-heading,.today-dashboard-heading>div{display:flex}.today-dashboard-heading{justify-content:space-between;align-items:flex-end;gap:24px}.today-dashboard-heading>div{flex-direction:column}.today-dashboard-heading span,.today-dashboard-heading p{color:var(--text-secondary);margin:0}.today-dashboard-heading h1{margin:2px 0;font-size:30px}.today-calendar-link{border:1px solid var(--stroke);background:var(--white);min-height:44px;color:var(--blue);border-radius:10px;padding:11px 18px;font-weight:600}.today-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.today-stat-grid article,.today-focus-card,.today-attention-card,.today-lessons-card{border:1px solid var(--stroke);background:var(--white);box-shadow:var(--shadow-card);border-radius:16px}.today-stat-grid article{align-items:baseline;gap:10px;padding:18px 20px;display:flex}.today-stat-grid strong{font-size:28px}.today-stat-grid span,.today-empty{color:var(--text-secondary)}.today-dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px;margin-top:16px;display:grid}.today-focus-card,.today-attention-card,.today-lessons-card{padding:20px}.today-focus-card h2,.today-attention-card h2,.today-lessons-card h2{margin:0 0 14px;font-size:17px}.today-focus-link{min-height:210px;color:var(--white);background:linear-gradient(135deg,#155dfc,#6d28d9);border-radius:14px;gap:8px;padding:22px;display:grid}.today-focus-link>strong{font-size:26px}.today-focus-link>span{align-items:center;gap:6px;display:flex}.today-focus-link>b{background:var(--white);color:var(--blue);border-radius:9px;place-self:end start;padding:9px 14px}.today-attention-card ul,.today-lessons-card ol{margin:0;padding:0;list-style:none}.today-attention-card li+li,.today-lessons-card li+li{border-top:1px solid var(--stroke)}.today-attention-card a,.today-lessons-card a{align-items:center;gap:14px;min-height:64px;padding:10px 0;display:flex}.today-attention-card a>span,.today-lessons-card a>span{flex-direction:column;flex:1;min-width:0;display:flex}.today-attention-card small,.today-lessons-card small{color:var(--text-secondary)}.today-attention-card b{color:var(--orange);text-align:right;font-size:12px}.today-lessons-card{margin-top:16px}.today-lessons-card time{font-variant-numeric:tabular-nums;flex:none;width:104px;font-weight:650}.today-lessons-card b{background:var(--bg-blue);color:var(--blue);border-radius:999px;padding:5px 9px;font-size:12px}.today-lessons-card b[data-status=COMPLETED]{background:var(--bg-green);color:var(--green)}.today-lessons-card b[data-status=IN_PROGRESS],.today-lessons-card b[data-status=REOPENED]{background:var(--bg-orange);color:var(--orange)}.mobile-bottom-navigation{display:none}@media (width<=900px){.today-dashboard{padding:18px 16px calc(28px + env(safe-area-inset-bottom))}.today-dashboard-heading{align-items:flex-start}.today-dashboard-heading h1{font-size:26px}.today-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.today-stat-grid article{flex-direction:column;gap:0;min-width:0;padding:14px 12px}.today-stat-grid strong{font-size:24px}.today-stat-grid span{font-size:11px}.today-dashboard-grid{grid-template-columns:1fr}.today-focus-link{min-height:184px}.today-focus-link>strong{font-size:23px}.today-lessons-card a{flex-wrap:wrap;align-items:flex-start}.today-lessons-card time{width:92px}.mobile-bottom-navigation{z-index:28;min-height:calc(64px + env(safe-area-inset-bottom));padding:5px 8px env(safe-area-inset-bottom);border-top:1px solid var(--stroke);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -8px 24px #10182814}.mobile-bottom-navigation>a,.mobile-bottom-navigation>button{min-width:0;min-height:54px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10px;display:flex}.mobile-bottom-navigation>a span:last-child,.mobile-bottom-navigation>button span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mobile-bottom-navigation>.active{color:var(--blue);font-weight:700}.hub-main{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.completion-banner,.mobile-record-toast{bottom:calc(80px + env(safe-area-inset-bottom))!important}}.hub-system-state{width:min(100% - 32px,1120px);margin:0 auto;padding:32px}.hub-loading-state{gap:18px;display:grid}.system-state-heading{gap:10px;display:grid}.loading-block{border:1px solid var(--stroke);background:linear-gradient(100deg,#eef2f7 15%,#f8fafc 35%,#eef2f7 55%) 0 0/220% 100%;border-radius:14px;min-height:72px;animation:1.4s ease-in-out infinite loading-shimmer;display:block}.loading-block.short{border:0;width:140px;min-height:16px}.loading-block.title{width:min(360px,72vw);min-height:38px}.loading-summary,.loading-content{gap:12px;display:grid}.loading-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.loading-content{grid-template-columns:1.3fr .7fr}.loading-block.feature{min-height:280px}.hub-error-state{text-align:center;place-content:center;justify-items:center;min-height:min(520px,100dvh - 120px);display:grid}.system-state-icon{background:var(--bg-orange);width:48px;height:48px;color:var(--orange);border-radius:999px;place-items:center;margin-bottom:14px;font-size:24px;font-weight:800;display:grid}.hub-error-state>span:not(.system-state-icon){color:var(--text-secondary);font-size:13px;font-weight:650}.hub-error-state h1{margin:6px 0;font-size:28px}.hub-error-state p{max-width:520px;color:var(--text-secondary);margin:0 0 20px;line-height:22px}.hub-error-state button{min-width:150px;min-height:44px}@keyframes loading-shimmer{to{background-position:-120% 0}}@media (width<=900px){.hub-system-state{width:100%;padding:24px 16px}.loading-summary,.loading-content{grid-template-columns:1fr}.loading-summary .loading-block{min-height:58px}.loading-block.feature{min-height:190px}}@media (prefers-reduced-motion:reduce){.loading-block{animation:none}}.page-loading-overlay{z-index:2000;-webkit-backdrop-filter:blur(1.5px);cursor:progress;background:#4593ed3d;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.page-loading-indicator{color:#163e77;background:#f4fafff5;border:1px solid #78ace9a6;border-radius:20px;align-items:center;gap:14px;padding:20px 26px;font-size:1rem;display:flex;box-shadow:0 12px 40px #1f4a8629}.page-loading-spinner{border:3px solid #c2dbfa;border-top-color:#256bd6;border-radius:50%;flex-shrink:0;width:28px;height:28px;animation:.8s linear infinite hub-page-spin}@keyframes hub-page-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.page-loading-spinner{animation:none}.page-loading-overlay{-webkit-backdrop-filter:none}}.prep-page{color:#162238;min-width:0;max-width:1540px;margin:0 auto;padding:30px 28px 42px;font-size:16px;line-height:1.5}.prep-page *{box-sizing:border-box}.prep-page h1,.prep-page h2,.prep-page p,.prep-page figure{margin:0}.prep-page h1{letter-spacing:-1px;margin:6px 0;font-size:36px;line-height:1.2}.prep-page h2{font-size:20px;font-weight:650;line-height:1.35}.prep-page button,.prep-page input,.prep-page select,.prep-page textarea{font:inherit}.prep-page button,.prep-page summary{cursor:pointer}.prep-page button:disabled{cursor:default;opacity:.55}.prep-page :focus-visible{outline-offset:3px;outline:3px solid #2970ff}.prep-page label{color:#42516a;flex-direction:column;gap:7px;min-width:0;font-size:14px;font-weight:550;display:flex}.prep-page select,.prep-page input:not([type=checkbox]),.prep-page textarea{color:#17243c;background:#fff;border:1px solid #ccd5e3;border-radius:9px;width:100%;min-width:0;min-height:44px;padding:10px 12px;font-size:16px}.prep-page input[type=checkbox]{accent-color:#175cff;flex-shrink:0;width:17px;height:17px}.prep-page small{color:#66748a;font-size:14px;line-height:1.45;display:block}.prep-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.prep-header p,.prep-muted{color:#66748a}.prep-eyebrow{color:#2156ba;font-size:14px;font-weight:600}.prep-button{color:#23354f;white-space:nowrap;background:#fff;border:1px solid #d0d9e6;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:9px 15px;font-weight:550;display:inline-flex}.prep-button:hover:not(:disabled){background:#f1f5fc;border-color:#a5badc}.prep-primary{color:#fff;background:#175cff;border-color:#175cff}.prep-primary:hover:not(:disabled){background:#124ce0;border-color:#124ce0}.prep-danger{color:#ae2636}.prep-text-button{color:#1856c3;text-align:left;text-underline-offset:3px;background:0 0;border:none;padding:3px 0;font-weight:550;text-decoration:underline}.prep-pilot-note{color:#345378;background:#edf4ff;border:1px solid #d4e3fd;border-radius:10px;flex-wrap:wrap;align-items:center;gap:5px 16px;margin-bottom:24px;padding:12px 16px;font-size:14px;display:flex}.prep-pilot-note strong{color:#184ead}.prep-group-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.prep-group-picker button{text-align:left;color:#32425e;background:#fff;border:1px solid #d8e0eb;border-radius:12px;padding:16px 18px;font-size:20px;font-weight:650}.prep-group-picker small{margin-top:3px;font-weight:400}.prep-group-picker button:hover:not(:disabled){border-color:#8db2ff}.prep-group-picker button.selected{color:#174ec4;background:#f0f5ff;border:2px solid #175cff;padding:15px 17px}.prep-group-picker button.selected small{color:#3f66a5}.prep-course-line{grid-template-columns:minmax(210px,1fr) minmax(220px,1.4fr) auto;align-items:center;gap:24px;padding:18px 0 24px;display:grid}.prep-course-book{min-width:0}.prep-course-book span,.prep-target>span{color:#66748a;margin-bottom:5px;font-size:14px;display:block}.prep-course-book strong{overflow-wrap:anywhere;font-size:15px;font-weight:550}.prep-target{border-left:1px solid #d8e0eb;padding-left:24px}.prep-target strong{white-space:nowrap;font-weight:500}.prep-target b{margin-left:8px;font-size:24px}.prep-tabs{border-bottom:1px solid #d5deeb;gap:22px;margin-bottom:24px;display:flex;overflow-x:auto}.prep-tabs button{color:#65728a;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;flex:none;min-height:49px;padding:10px 2px;font-size:15px;font-weight:550}.prep-tabs button[aria-current=page]{color:#1856d4;border-bottom-color:#175cff}.prep-tabs button span{background:#e7edf6;border-radius:5px;margin-left:3px;padding:1px 7px;font-size:13px}.prep-message,.prep-error{border-radius:10px;padding:14px 18px;font-size:15px;margin-bottom:20px!important}.prep-message{color:#1b663e;background:#eaf8ef;border:1px solid #bee6ce}.prep-error{color:#9b2634;background:#fff2f1;border:1px solid #f0cacb;justify-content:space-between;align-items:center;gap:16px;display:flex}.prep-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.prep-stat{background:#fff;border:1px solid #dce3ee;border-top:3px solid #a0adc0;border-radius:11px;flex-direction:column;gap:3px;padding:17px 18px;display:flex}.prep-stat strong{font-size:28px;line-height:1.3}.prep-stat span{color:#56657a;font-size:14px}.prep-stat-ready{border-top-color:#3a9470}.prep-stat-borderline{border-top-color:#d1942e}.prep-stat-developing{border-top-color:#c96663}.prep-card{background:#fff;border:1px solid #dce3ec;border-radius:14px;min-width:0;margin-bottom:22px;overflow:hidden}.prep-card-heading{border-bottom:1px solid #e2e7f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 22px;padding:20px 22px;display:flex}.prep-card-heading>span{color:#6b7687;font-size:14px}.prep-table-scroll{overscroll-behavior-x:contain;max-width:100%;position:relative;overflow-x:auto}.prep-table{border-collapse:separate;border-spacing:0;text-align:left;width:100%;font-size:15px}.prep-table th{color:#596980;background:#f7f9fc;font-size:14px;font-weight:550}.prep-table th,.prep-table td{vertical-align:middle;border-bottom:1px solid #e3e8f0;padding:17px 16px}.prep-table tr:last-child td,.prep-table tr:last-child th[scope=row]{border-bottom:0}.prep-table td strong{font-weight:600}.prep-table td small{margin-top:3px}.prep-readiness-table{min-width:890px}.prep-readiness-table th:not(:first-child),.prep-readiness-table td:not(:first-child){text-align:center}.prep-readiness-table td:first-child,.prep-readiness-table th:first-child{z-index:1;background:#fff;border-right:1px solid #e2e8f2;width:240px;min-width:240px;position:sticky;left:0}.prep-readiness-table th:first-child{background:#f7f9fc}.prep-pupil-link{text-align:left;color:#1d3f78;background:0 0;border:none;align-items:center;gap:10px;min-height:40px;padding:0;font-size:15px;font-weight:550;display:flex}.prep-pupil-link:hover{text-underline-offset:3px;text-decoration:underline}.prep-pupil-link span:last-child{overflow-wrap:anywhere}.prep-badge{border-radius:6px;align-items:center;max-width:170px;padding:5px 9px;font-size:13px;font-weight:550;line-height:1.35;display:inline-flex}.prep-ready{color:#226343;background:#e9f6ed}.prep-borderline{color:#885714;background:#fff3db}.prep-developing{color:#a0403c;background:#fff0ef}.prep-insufficient{color:#58667c;background:#eef1f6}.prep-missing{color:#8b9ab1}.prep-footnote{color:#66758b;font-size:14px;margin:12px 3px 24px!important}.prep-book-cell{overflow-wrap:anywhere;min-width:240px;max-width:480px}.prep-note-cell{white-space:pre-wrap;overflow-wrap:anywhere;min-width:220px;max-width:360px}.prep-empty{color:#69768b;padding:34px 24px;font-size:15px}.prep-report-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.prep-report-heading label{min-width:250px}.prep-report-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.prep-profile-card{padding:23px}.prep-profile-card>p{margin:14px 0;font-size:15px}.prep-person{align-items:center;gap:14px;display:flex}.prep-person p{color:#64748b;margin-top:3px;font-size:14px}.prep-profile-numbers{grid-template-columns:1fr 1fr;gap:16px;margin:24px 0;display:grid}.prep-profile-numbers span{color:#64748b;font-size:14px;display:block}.prep-profile-numbers strong{font-size:28px;line-height:1.5}.prep-next-step{background:#f4f7fc;border-radius:9px;padding:14px 16px;font-size:14px}.prep-next-step p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:5px}.prep-trend{margin-top:22px!important}.prep-trend svg{width:100%;max-height:320px;display:block;overflow:visible}.prep-trend text{fill:#1751bb;font-family:inherit;font-size:14px;font-weight:600}.prep-trend circle{fill:#175cff;stroke:#fff;stroke-width:2px}.prep-trend .prep-chart-label{fill:#6a7890;font-size:12px;font-weight:400}.prep-target-line{stroke:#a4b2c5;stroke-width:1.5px;stroke-dasharray:5 5}.prep-score-line{fill:none;stroke:#175cff;stroke-width:2.5px}.prep-trend figcaption{color:#6a7890;font-size:14px}.prep-components{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;margin-top:22px;display:grid}.prep-components>div>div:first-child{justify-content:space-between;gap:10px;font-size:14px;display:flex}.prep-components strong{font-weight:550}.prep-components small{font-size:13px}.prep-meter{background:#edf1f7;border-radius:8px;height:8px;margin:10px 0;overflow:hidden}.prep-meter span{background:#5384ed;border-radius:8px;height:100%;display:block}.prep-editor{overflow:visible}.prep-editor fieldset{border:none;min-width:0;margin:0;padding:0}.prep-entry-meta{grid-template-columns:minmax(230px,2fr) minmax(140px,1fr) minmax(90px,.7fr) minmax(135px,1fr);gap:16px;padding:22px;display:grid}.prep-entry-meta:has(label:nth-child(5)){grid-template-columns:repeat(4,minmax(0,1fr))}.prep-entry-meta:has(label:nth-child(5)) .prep-source{grid-column:span 2}.prep-conditions{color:#52647c;border-top:1px solid #e0e6f0;border-bottom:1px solid #e0e6f0;flex-wrap:wrap;align-items:center;gap:12px 22px;margin:0 22px;padding:15px 0;font-size:14px;display:flex}.prep-conditions label,.prep-row-settings label{flex-direction:row;align-items:center;gap:8px;font-weight:400;display:flex}.prep-entry-hint{color:#587092;background:#f1f6ff;border-radius:8px;padding:13px 16px;font-size:14px;margin:18px 22px!important}.prep-section-tabs{gap:8px;padding:0 22px 6px;display:flex;overflow-x:auto}.prep-section-tabs button{color:#536780;background:#fff;border:1px solid #d7e1ef;border-radius:8px;flex:none;min-height:42px;padding:8px 13px;font-size:14px}.prep-section-tabs button[aria-pressed=true]{color:#1754ce;background:#edf4ff;border-color:#8cafee}.prep-keyboard-hint{color:#68778c;padding:11px 22px 18px;font-size:13px}.prep-entry-table{table-layout:fixed;width:max-content;min-width:100%}.prep-entry-table th,.prep-entry-table td{text-align:center;border-right:1px solid #e5ebf3;width:116px;min-width:116px;max-width:150px;padding:13px 12px}.prep-entry-table thead th{vertical-align:bottom;overflow-wrap:break-word}.prep-entry-table th small{margin-top:5px;font-size:12px}.prep-entry-table th:first-child{z-index:1;text-align:left;background:#fff;border-right:1px solid #d4dfea;width:235px;min-width:235px;max-width:235px;position:sticky;left:0}.prep-entry-table thead th:first-child{z-index:2;background:#f7f9fc}.prep-entry-table th:last-child,.prep-entry-table td:last-child{text-align:left;border-right:none;width:225px;min-width:225px;max-width:225px}.prep-pupil-label{color:#263954;align-items:center;gap:10px;font-size:15px;font-weight:500;display:flex}.prep-score-input{text-align:center;font-variant-numeric:tabular-nums;max-width:90px;padding:10px 4px!important}.prep-score-input:invalid{background:#fff1f2!important;border-color:#c04455!important}.prep-page input:disabled{background:#f3f5f8!important}.prep-row-settings select{min-height:40px;padding:8px;font-size:14px}.prep-row-settings details{margin-top:8px}.prep-row-settings summary{color:#536983;font-size:13px}.prep-row-settings details>div{flex-direction:column;gap:10px;padding-top:10px;display:flex}.prep-row-settings textarea{resize:vertical;font-size:14px}.prep-save-bar{z-index:3;background:#f8fbfffa;border-top:1px solid #dce5f2;border-radius:0 0 14px 14px;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex;position:sticky;bottom:12px;box-shadow:0 -6px 18px #233e6210}.prep-save-bar>div:last-child{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.prep-save-bar strong{font-size:14px;font-weight:550}.prep-save-bar small{margin-top:2px;font-size:13px}.prep-spinner{border:2px solid #ffffff70;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.75s linear infinite prep-spin}@keyframes prep-spin{to{transform:rotate(360deg)}}.prep-policy{color:#586c84;background:#fff;border:1px solid #dce3ec;border-radius:10px;margin:26px 0 18px;padding:18px 20px;font-size:14px}.prep-policy summary{color:#405976;min-height:24px;font-weight:550}.prep-policy p{margin:12px 0}.prep-policy a{color:#1756bc;text-decoration:underline}.prep-policy small{margin-top:8px;font-size:12px}.prep-tools{color:#6b7890;justify-content:space-between;align-items:center;gap:20px;font-size:13px;display:flex}.prep-tools button{flex-shrink:0;font-size:13px}.prep-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1200px){.prep-page{padding:24px 20px 32px}.prep-report-grid{grid-template-columns:1fr}.prep-course-line{gap:16px}.prep-entry-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.prep-entry-meta .prep-source{grid-column:1/-1}}@media (width<=760px){.prep-page{padding:20px 14px 32px}.prep-header{align-items:flex-start;gap:14px}.prep-header h1{font-size:30px}.prep-header p{font-size:14px}.prep-header .prep-button{padding:9px 11px;font-size:14px}.prep-eyebrow{font-size:12px}.prep-pilot-note{margin-bottom:16px}.prep-group-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.prep-group-picker button{padding:12px 14px;font-size:18px}.prep-group-picker button.selected{padding:11px 13px}.prep-course-line{grid-template-columns:1fr auto;padding:6px 0 20px}.prep-course-line>label{grid-column:1/-1}.prep-course-book strong{font-size:14px}.prep-target{padding-left:14px}.prep-target b{font-size:21px}.prep-tabs{gap:18px;margin-bottom:18px}.prep-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.prep-stat{padding:12px 14px}.prep-stat strong{font-size:25px}.prep-card-heading{padding:17px 16px}.prep-card-heading h2{font-size:18px}.prep-card-heading>span{font-size:13px}.prep-readiness-table td:first-child,.prep-readiness-table th:first-child{width:200px;min-width:200px;position:static}.prep-table th,.prep-table td{padding:14px 12px}.prep-profile-card{padding:18px}.prep-report-heading label{flex:1;min-width:0}.prep-report-heading .prep-badge{max-width:130px}.prep-report-grid{gap:0}.prep-components{grid-template-columns:1fr 1fr;gap:20px}:is(.prep-entry-meta,.prep-entry-meta:has(label:nth-child(5))){grid-template-columns:1fr 1fr;gap:14px;padding:16px}:is(.prep-entry-meta .prep-source,.prep-entry-meta:has(label:nth-child(5)) .prep-source){grid-column:1/-1}.prep-conditions{gap:12px 14px;margin:0 16px}.prep-conditions>span{flex-basis:100%}.prep-entry-hint{margin:16px!important}.prep-section-tabs{padding-left:16px;padding-right:16px}.prep-keyboard-hint{padding:10px 16px 15px}.prep-entry-table th:first-child{width:160px;min-width:160px;max-width:160px}.prep-pupil-label{gap:8px;font-size:14px}.prep-entry-table th,.prep-entry-table td{width:102px;min-width:102px;padding:12px 8px}.prep-pupil-label .person-avatar{display:none}.prep-save-bar{bottom:calc(70px + env(safe-area-inset-bottom));flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px}.prep-save-bar>div:first-child{flex:1;min-width:160px}.prep-save-bar small{display:none}.prep-save-bar .prep-button{padding:9px 11px;font-size:14px}.prep-error{flex-direction:column;align-items:flex-start}.prep-tools{flex-direction:column;align-items:flex-start;gap:10px}.prep-policy{padding:16px}}@media (prefers-reduced-motion:reduce){.prep-spinner{animation:none}}
