/*! 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-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-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}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.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}.grid{display:grid}.hidden{display:none}.inline{display:inline}.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}.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,)}}: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:36px;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:14px}.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:34px;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-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-height:100vh;margin-left:240px}.calendar-page,.lesson-page,.profile-page,.group-data-page{width:100%;max-width:1440px;margin:0 auto;padding:12px 32px 40px}.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-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}}@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-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-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:contain;border-radius:12px;max-height:min(72vh,920px);overflow: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-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:348px;--desktop-attendance-column-width:194px;--desktop-rubric-column-width:96px;background:var(--white);border-radius:16px;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{border:1px solid var(--stroke);border-top:0;border-radius:0 0 16px 16px;overflow-x:auto}.desktop-attendance-table,.desktop-grade-table{border-collapse:collapse;table-layout:fixed;width:100%}.desktop-attendance-table{min-width:1124px}.desktop-grade-table{min-width:1212px}.desktop-student-column{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:anywhere;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);background:var(--white);text-align:left;align-items:center;gap:8px;min-width:0;height:65px;padding:8px 24px;font-size:12px;font-weight:500;display:flex}.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;min-width:0;overflow:hidden}.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}.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:348px;--group-attendance-column:168px;--group-grade-column:96px;width:100%;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>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-tabs{border:1px solid var(--stroke);background:var(--white);border-radius:14px;grid-template-columns:1fr 1fr;width:100%;margin-top:16px;display:grid;overflow:hidden}.group-data-tabs button{background:var(--white);cursor:pointer;border:0;min-height:42px;font-weight:600}.group-data-tabs button+button{border-left:1px solid var(--stroke)}.group-data-tabs button.active{background:var(--blue);color:var(--white)}.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;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{max-height:clamp(320px,100dvh - 390px,680px);overflow:auto}.group-journal-table{border-collapse:collapse;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:anywhere}.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{align-items:center;gap:8px;padding:8px 20px;font-size:12px;font-weight:500;display:flex}.group-journal-table tbody th>strong{text-overflow:ellipsis;white-space:nowrap;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:84px}}.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-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-name{align-items:center;gap:7px;min-width:0;display:flex}.student-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:inline-flex}.mobile-roster-name strong{text-overflow:ellipsis;white-space:nowrap;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 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-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}.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:76px;width:100%;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>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 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-tabs{border:1px solid var(--stroke);background:var(--white);border-radius:12px;grid-template-columns:1fr 1fr;margin-top:12px;display:grid;overflow:hidden}.group-data-tabs button{background:var(--white);min-height:44px;color:var(--text-main);border:0;font-weight:650}.group-data-tabs button+button{border-left:1px solid var(--stroke)}.group-data-tabs button.active{background:var(--blue);color:var(--white)}.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;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{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 390px);overflow:auto}.group-journal-table-wrap:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.group-journal-table{border-collapse:collapse;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:anywhere}.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{align-items:center;gap:6px;padding:7px 10px;font-size:11px;display:flex}.group-journal-table tbody th>strong{text-overflow:ellipsis;white-space:nowrap;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:84px;max-width:860px;padding-inline:24px}.group-data-summary{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(120px,180px))}.group-data-summary>div:first-child{grid-column:auto}.group-journal-table-wrap{max-height:calc(100dvh - 330px)}.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}}.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(4,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>.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}}
