:root{--background:#f7f8f7;--surface:#fff;--surface-elevated:#fff;--surface-muted:#f5f6f7;--surface-tinted:#f1f8f1;--foreground:#171a18;--muted:#7a7f7c;--muted-strong:#5e6460;--primary:#54b868;--primary-strong:#43a957;--primary-soft:#eaf7ec;--primary-softer:#f3faf4;--warning:#f29a35;--warning-soft:#fff3e6;--info:#4e91e8;--info-soft:#edf4fe;--danger:#f05b57;--danger-soft:#fff0ef;--accent-coral:#f05b57;--accent-coral-soft:#fff0ef;--accent-gold:#f29a35;--accent-gold-soft:#fff3e6;--accent-blue:#4e91e8;--accent-blue-soft:#edf4fe;--accent-lilac:#9a67e8;--accent-lilac-soft:#f4edfd;--border:#eceeed;--border-strong:#dfe3e0;--separator:#191e1b14;--shadow-sm:0 4px 16px #1e2d220b;--shadow:0 10px 30px #1e2d2212;--shadow-lg:0 22px 60px #1e2d2224;--radius-xs:8px;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:30px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-page:clamp(16px, 4vw, 24px);--content-width:920px;--content-narrow:680px;--nav-height:78px;--ease-out:cubic-bezier(.22, 1, .36, 1);--duration-fast:.15s;--duration-normal:.24s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{background:var(--background)}body{background:var(--background);min-height:100svh;color:var(--foreground);letter-spacing:-.01em;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,PingFang SC,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5}h1,h2,h3,p{text-wrap:pretty}button,input,textarea,select{letter-spacing:inherit}::selection{color:var(--foreground);background:#d9f1dd}:focus-visible{outline-offset:2px;outline:3px solid #54b8683d}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-frame{min-height:100svh;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom))}.app-content{width:min(var(--content-width), calc(100% - 32px));margin-inline:auto;padding-block:24px 112px}.narrow{max-width:var(--content-narrow)}.card{color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card--default{background:var(--surface)}.card--elevated{box-shadow:var(--shadow);border-color:#0000}.card--soft{background:var(--surface-muted);box-shadow:none}.card--plain{box-shadow:none;background:0 0;border-color:#0000}.card--padding-none{padding:0}.card--padding-small{padding:var(--space-3)}.card--padding-medium{padding:var(--space-5)}.card--padding-large{padding:var(--space-6)}.button{min-height:48px;color:var(--foreground);background:var(--surface-muted);border-radius:var(--radius-sm);box-shadow:none;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding-inline:20px;font-size:15px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.button svg{width:19px;height:19px}.button--small{min-height:38px;padding-inline:14px;font-size:13px}.button--large{min-height:54px;padding-inline:24px;font-size:17px}.button--icon{border-radius:50%;width:44px;min-height:44px;padding:0}.button--primary{color:#fff;background:var(--primary-strong);box-shadow:0 7px 18px #43a9572e}.button--secondary{color:var(--primary-strong);background:var(--primary-soft)}.button--outline{color:var(--primary-strong);background:var(--surface);border-color:var(--primary)}.button--ghost{color:var(--muted-strong);background:0 0}.button--danger{color:#fff;background:var(--danger)}.button:disabled{opacity:.46;cursor:not-allowed}@media (hover:hover){.button:hover:not(:disabled){filter:brightness(.985);transform:translateY(-1px)}.button--ghost:hover:not(:disabled){background:var(--surface-muted)}}.button:active:not(:disabled){transform:scale(.98)}.icon-button{width:44px;height:44px;color:var(--foreground);background:var(--surface-muted);border:0;border-radius:50%;place-items:center;padding:0;display:grid}.icon-button svg{width:21px;height:21px}.icon-button.danger{color:var(--danger);background:var(--danger-soft)}.balanced-page-header{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-height:58px;margin:0 0 18px;display:grid}.balanced-page-header__title{text-align:center;min-width:0}.balanced-page-header h1{min-width:0;color:var(--foreground);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:22px;font-weight:760;line-height:1.25;overflow:hidden}.balanced-page-header__title p{color:var(--muted);margin:3px 0 0;font-size:12px}.balanced-page-header>span{width:44px;height:44px}.balanced-back,.page-actions-menu summary{width:44px;height:44px;color:var(--foreground);background:var(--surface-muted);box-shadow:none;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.balanced-back svg,.page-actions-menu summary svg{width:21px;height:21px}.page-actions-menu>div{border:1px solid var(--border);width:194px;box-shadow:var(--shadow-lg);background:#fffffffa;border-radius:16px;padding:6px;top:50px}.page-actions-menu a,.page-actions-menu .danger-link{border-radius:11px;min-height:44px;padding-inline:12px;font-size:14px}.page-actions-menu a:hover{background:var(--surface-muted)}.class-workspace-page{max-width:var(--content-narrow)}.class-workspace-header{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-height:58px;margin-bottom:12px;display:grid}.class-workspace-back{width:44px;height:44px;color:var(--foreground);border-radius:50%;place-items:center;display:grid}.class-workspace-back svg{width:22px;height:22px}.class-switch-menu{min-width:0;position:relative}.class-switch-menu summary{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;justify-content:center;align-items:center;gap:5px;min-height:44px;font-size:18px;font-weight:760;list-style:none;display:flex;overflow:hidden}.class-switch-menu summary::-webkit-details-marker{display:none}.class-switch-menu summary svg{flex:none;width:16px;height:16px;transition:transform .16s}.class-switch-menu[open] summary svg{transform:rotate(180deg)}.class-switch-menu>div{z-index:20;border:1px solid var(--border);width:min(230px,76vw);box-shadow:var(--shadow-lg);background:#fffffffa;border-radius:14px;padding:6px;position:absolute;top:48px;left:50%;overflow:hidden;transform:translate(-50%)}.class-switch-menu form{margin:0}.class-switch-menu button{width:100%;min-height:44px;color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding-inline:12px;font-size:14px;display:flex}.class-switch-menu button:hover{background:var(--surface-muted)}.class-switch-menu button.is-active{font-weight:700}.class-switch-menu button svg{width:17px;height:17px;color:var(--primary-strong)}.class-workspace-header .page-actions-menu summary{background:var(--surface-muted)}.class-workspace-links{gap:12px;display:grid}.class-workspace-card{min-height:68px;color:var(--foreground);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);grid-template-columns:24px minmax(0,1fr) 18px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:grid}.class-workspace-card>svg:first-child{width:21px;height:21px;color:var(--primary-strong)}.class-workspace-card>svg:last-child{color:#9aa19c;width:18px;height:18px}.class-workspace-card strong{letter-spacing:-.02em;font-size:17px;font-weight:760}@media (hover:hover){.class-workspace-card:hover{background:#fafbfa}}@media (max-width:390px){.class-switch-menu summary{font-size:16px}}.bottom-nav{z-index:30;width:100%;min-height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:7px max(16px, calc((100vw - 560px) / 2)) calc(7px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--separator);-webkit-backdrop-filter:blur(20px)saturate(1.25);background:#fffffff0;border-radius:0;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;transform:none;box-shadow:0 -4px 18px #1e2d2209}.bottom-nav--with-ai{grid-template-columns:1fr 1fr 72px 1fr 1fr}.bottom-nav a,.bottom-nav>span{color:#8b908d;background:0 0;border-radius:0;place-items:center;min-height:50px;font-size:17px;font-weight:700;line-height:1.15;text-decoration:none;display:grid}.bottom-nav a.active{color:var(--primary-strong);background:0 0;font-weight:700}.bottom-nav-ai-trigger{color:#347b42;border:1.5px solid var(--primary-strong);width:48px;height:34px;font:inherit;cursor:pointer;background:#fffffff0;border-radius:14px;justify-self:center;place-items:center;padding:0;display:grid}.bottom-nav-ai-trigger:active{transform:scale(.96)}.bottom-nav-ai-mark{place-items:center;width:27px;height:20px;display:grid;position:relative}.bottom-nav-ai-mark svg{stroke-width:2.35px;width:18px;height:18px;position:absolute;bottom:0;left:0}.bottom-nav-ai-mark span{color:#347b42;letter-spacing:0;font-size:10px;font-weight:800;line-height:1;position:absolute;top:-3px;right:-2px}.floating-button{right:max(18px, calc((100vw - var(--content-width)) / 2 + 18px));bottom:calc(var(--nav-height) + 18px + env(safe-area-inset-bottom));z-index:40;color:#fff;background:linear-gradient(145deg,#59be6d,#3fa653);border:0;border-radius:50%;justify-content:center;align-items:center;gap:6px;width:58px;height:58px;padding:0;display:inline-flex;position:fixed;box-shadow:0 10px 24px #43a95747}.floating-button svg{width:27px;height:27px}.floating-button--labeled{border-radius:29px;width:auto;min-width:58px;padding-inline:17px}.floating-button--labeled span{white-space:nowrap;font-size:13px;font-weight:700}.xiaoya-ai-backdrop{z-index:70;padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#191e1b52;place-items:end center;display:grid;position:fixed;inset:0}.xiaoya-ai-panel{background:var(--surface);width:min(520px,100%);max-height:min(78svh,680px);box-shadow:var(--shadow-lg);border-radius:24px;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.xiaoya-ai-panel--event{max-height:min(92svh,860px)}.xiaoya-ai-panel>header,.xiaoya-ai-panel>footer{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.xiaoya-ai-panel>header{border-bottom:1px solid var(--separator)}.xiaoya-ai-panel>header>div{align-items:center;gap:10px;min-width:0;display:flex}.xiaoya-ai-panel>header i{width:36px;height:36px;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;place-items:center;font-style:normal;display:grid}.xiaoya-ai-panel>header i svg{width:20px;height:20px}.xiaoya-ai-panel h2{margin:0;font-size:18px}.xiaoya-ai-quota{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:700}.xiaoya-ai-body{align-content:start;gap:12px;min-height:0;padding:16px;display:grid;overflow-y:auto}.xiaoya-ai-input{gap:8px;display:grid}.xiaoya-ai-input span{color:var(--foreground);font-size:14px;font-weight:720}.xiaoya-ai-input textarea{resize:vertical;width:100%;min-height:112px;color:var(--foreground);background:var(--surface-muted);border-radius:var(--radius-sm);font:inherit;border:1px solid #0000;outline:0;padding:13px 14px;font-size:16px;line-height:1.5}.xiaoya-ai-input textarea:focus{background:var(--surface);border-color:#bfe3c6;box-shadow:0 0 0 4px #54b8681a}.xiaoya-ai-access-notice{background:var(--primary-soft);border-radius:16px;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:16px;display:grid}.xiaoya-ai-access-notice>svg{width:20px;color:var(--primary-strong)}.xiaoya-ai-access-notice strong,.xiaoya-ai-access-notice p{margin:0;display:block}.xiaoya-ai-access-notice p{color:var(--muted);margin-top:4px;font-size:13px;line-height:1.6}.xiaoya-ai-access-notice a{color:var(--primary-strong);grid-column:2;font-size:13px;font-weight:750}.xiaoya-ai-voice-row{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;display:grid}.xiaoya-ai-voice-row .button{min-height:40px}.xiaoya-ai-voice-row svg{width:17px;height:17px}.xiaoya-ai-voice-row span{min-width:0;color:var(--muted);font-size:12px;line-height:1.35}.xiaoya-ai-result{background:var(--surface-muted);border-radius:var(--radius-sm);gap:12px;padding:14px;display:grid}.xiaoya-ai-result>header{justify-content:space-between;align-items:center;gap:10px;display:flex}.xiaoya-ai-result>header span,.xiaoya-ai-message{color:var(--primary-strong);align-items:center;gap:7px;font-size:13px;font-weight:720;display:flex}.xiaoya-ai-result>header svg,.xiaoya-ai-message svg{width:17px;height:17px}.xiaoya-ai-result>header small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.xiaoya-ai-result dl{gap:8px;margin:0;display:grid}.xiaoya-ai-result dl>div{grid-template-columns:52px minmax(0,1fr);align-items:start;gap:10px;min-height:34px;display:grid}.xiaoya-ai-result dt{color:var(--muted);font-size:13px}.xiaoya-ai-result dd{min-width:0;color:var(--foreground);overflow-wrap:anywhere;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:650;display:flex}.xiaoya-ai-result dd svg{width:16px;height:16px;color:var(--muted)}.xiaoya-ai-result .is-missing{color:var(--danger)}.xiaoya-ai-result-content-row dd{display:block}.xiaoya-ai-result-content{resize:vertical;width:100%;min-height:82px;color:var(--foreground);border:1px solid var(--border);font:inherit;background:#fff;border-radius:10px;outline:0;padding:9px 10px;font-size:16px;font-weight:600;line-height:1.55}.xiaoya-ai-result-content:focus{border-color:#bfe3c6;box-shadow:0 0 0 3px #54b8681a}.xiaoya-ai-event-confirmation{gap:16px;min-width:0;display:grid}.xiaoya-ai-event-confirmation>header{border-bottom:1px solid var(--separator);justify-content:space-between;align-items:center;gap:10px;min-width:0;padding-bottom:12px;display:flex}.xiaoya-ai-event-confirmation>header>span{min-width:0;color:var(--primary-strong);align-items:center;gap:7px;font-size:13px;font-weight:720;display:flex}.xiaoya-ai-event-confirmation>header svg{flex:none;width:17px;height:17px}.xiaoya-ai-event-confirmation>header small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.xiaoya-ai-event-confirmation .field input,.xiaoya-ai-event-confirmation .field textarea{width:100%;min-width:0;font-size:16px}.xiaoya-ai-event-confirmation .field textarea{resize:vertical}.xiaoya-ai-event-confirmation .xiaoya-ai-submit-placeholder{min-height:52px}.xiaoya-ai-event-students{min-width:0}.xiaoya-ai-event-students .xiaoya-ai-student-selection{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;padding:11px 12px}.xiaoya-ai-event-students .xiaoya-ai-student-picker{grid-template-columns:68px minmax(0,1fr)}.xiaoya-ai-follow-up-field{gap:10px;display:grid}.xiaoya-ai-follow-up-field>legend{margin-bottom:-2px}.xiaoya-ai-follow-up-inputs{background:var(--surface-muted);border-radius:var(--radius-sm);grid-template-columns:minmax(138px,.42fr) minmax(0,1fr);gap:10px;min-width:0;padding:12px;display:grid}.xiaoya-ai-follow-up-inputs .field{min-width:0}.xiaoya-ai-follow-up-inputs textarea{min-height:52px}.xiaoya-ai-event-complete{background:var(--surface-muted)}.xiaoya-ai-candidates{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.xiaoya-ai-candidates span{color:var(--muted);font-size:12px}.xiaoya-ai-candidates button{min-height:30px;color:var(--primary-strong);border:1px solid var(--border);background:#fff;border-radius:999px;padding:0 10px;font-size:13px}.xiaoya-ai-candidates button.active{color:#fff;background:var(--primary-strong);border-color:var(--primary-strong)}.xiaoya-ai-student-selection{gap:9px;display:grid}.xiaoya-ai-selection-hint{color:#b7791f;font-size:12px;font-weight:650}.xiaoya-ai-student-picker{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.xiaoya-ai-student-picker span{color:var(--muted);font-size:12px}.xiaoya-ai-student-picker select{width:100%;min-width:0;height:38px;color:var(--foreground);border:1px solid var(--border);font:inherit;background:#fff;border-radius:10px;padding:0 32px 0 11px;font-size:16px}.xiaoya-ai-message{color:#b7791f;background:#fff7e8;border-radius:12px;margin:0;padding:9px 10px}.xiaoya-ai-message--error{color:#b6403c;background:var(--danger-soft)}.xiaoya-ai-message--success{color:var(--primary-strong);background:var(--primary-soft)}.xiaoya-ai-message--listening{color:var(--primary-strong);background:#eaf7ec}.xiaoya-ai-panel>footer{border-top:1px solid var(--separator);background:#fafbfa}.xiaoya-ai-panel>footer .button{min-width:96px}.xiaoya-ai-panel .button svg{width:17px;height:17px}.xiaoya-ai-submit-placeholder{width:100%}.xiaoya-ai-success-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.xiaoya-ai-parent-step{gap:12px;padding-top:2px;display:grid}.xiaoya-ai-parent-step>header{align-items:center;gap:9px;display:flex}.xiaoya-ai-parent-step>header>svg{width:20px;height:20px;color:var(--primary-strong);flex:none}.xiaoya-ai-parent-step>header>div{gap:2px;min-width:0;display:grid}.xiaoya-ai-parent-step>header strong{color:var(--foreground);font-size:15px}.xiaoya-ai-parent-step>header span{color:var(--muted);font-size:12px}.xiaoya-ai-tone-switch{background:linear-gradient(120deg,#f0f8f1,#f7fbf8);border:1px solid #d8eadb;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:10px 11px;display:flex}.xiaoya-ai-tone-switch>div{gap:2px;min-width:0;display:grid}.xiaoya-ai-tone-switch span{color:var(--muted);font-size:11px}.xiaoya-ai-tone-switch strong{color:var(--primary-strong);font-size:14px}.xiaoya-ai-tone-switch .button{white-space:nowrap;flex:none;min-width:0}.xiaoya-ai-tone-note{color:var(--muted);margin:-5px 2px 0;font-size:11px;line-height:1.45}.xiaoya-ai-parent-students,.xiaoya-ai-parent-messages{gap:10px;display:grid}.xiaoya-ai-parent-students>article,.xiaoya-ai-parent-messages>article{background:var(--surface);border:1px solid var(--border);border-radius:13px;gap:10px;min-width:0;padding:12px;display:grid}.xiaoya-ai-parent-choice{gap:9px;min-width:0;display:grid}.xiaoya-ai-parent-choice>strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.xiaoya-ai-parent-choice>div{grid-template-columns:1fr 1fr;gap:8px;display:grid}.xiaoya-ai-parent-choice button{min-width:0;min-height:38px;color:var(--muted-strong);background:var(--surface-muted);border:1px solid #0000;border-radius:10px;padding:0 8px;font-size:13px;font-weight:680}.xiaoya-ai-parent-choice button.active{color:var(--primary-strong);background:var(--primary-soft);border-color:#bfe3c6}.xiaoya-ai-parent-supplement,.xiaoya-ai-parent-messages label{color:var(--foreground);gap:7px;font-size:13px;font-weight:680;display:grid}.xiaoya-ai-parent-supplement span{align-items:center;gap:5px;display:flex}.xiaoya-ai-parent-supplement small{color:var(--muted);font-size:11px;font-weight:500}.xiaoya-ai-parent-supplement textarea,.xiaoya-ai-parent-messages textarea{resize:vertical;width:100%;min-width:0;color:var(--foreground);background:var(--surface-muted);font:inherit;border:1px solid #0000;border-radius:10px;outline:0;padding:10px 11px;font-size:16px;line-height:1.5}.xiaoya-ai-parent-supplement textarea:focus,.xiaoya-ai-parent-messages textarea:focus{background:var(--surface);border-color:#bfe3c6;box-shadow:0 0 0 3px #54b8681a}.xiaoya-ai-parent-messages>article>.button{width:100%}.xiaoya-ai-parent-next-note{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.xiaoya-ai-parent-supplement-group{min-width:0}.xiaoya-ai-parent-supplement-group>summary{color:var(--foreground);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:9px 2px;font-size:13px;font-weight:680;display:flex}.xiaoya-ai-parent-supplement-group>summary small{color:var(--muted);font-size:11px;font-weight:520}.xiaoya-ai-parent-supplement-group[open]>summary{margin-bottom:4px}.xiaoya-ai-parent-next-actions{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px;display:grid}.xiaoya-ai-parent-next-actions .button{min-width:0}.xiaoya-ai-spin{animation:.85s linear infinite xiaoya-spin}@media (max-width:370px){.xiaoya-ai-follow-up-inputs,.xiaoya-ai-parent-next-actions{grid-template-columns:1fr}.xiaoya-ai-tone-switch{align-items:stretch;display:grid}.xiaoya-ai-tone-switch .button{width:100%}}@media (max-width:600px){.xiaoya-ai-backdrop:has(.xiaoya-ai-panel--event){padding:8px;padding-bottom:max(8px, env(safe-area-inset-bottom))}.xiaoya-ai-panel--event{max-height:calc(100svh - 16px - env(safe-area-inset-bottom));border-radius:20px}}@keyframes xiaoya-spin{to{transform:rotate(360deg)}}.parent-feedback-page{align-content:start;gap:14px;display:grid}.parent-feedback-summary{grid-auto-columns:minmax(0,1fr)}.parent-feedback-summary .stat-item{padding-inline:6px}.parent-feedback-summary .stat-item strong small{color:var(--muted);margin-left:2px;font-size:13px}.parent-feedback-selection-heading,.parent-feedback-progress,.parent-feedback-materials>header,.parent-feedback-message>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.parent-feedback-selection-heading h2,.parent-feedback-materials h2,.parent-feedback-message h2,.parent-feedback-complete h2{margin:0;font-size:18px}.parent-feedback-selection-heading p,.parent-feedback-materials header p,.parent-feedback-message header p,.parent-feedback-complete p{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.45}.parent-feedback-selection-heading>span{min-width:52px;color:var(--primary-strong);text-align:center;background:var(--primary-soft);border-radius:999px;flex:none;padding:7px 10px;font-size:13px;font-weight:720}.parent-feedback-student-list{gap:9px;display:grid}.parent-feedback-student-list>label{grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:12px 13px;display:grid}.parent-feedback-student-list>label.is-selected{background:#f5fbf6;border-color:#bfe3c6}.parent-feedback-student-list input,.parent-feedback-event-list input{width:18px;height:18px;accent-color:var(--primary-strong)}.parent-feedback-student-name{gap:3px;min-width:0;display:grid}.parent-feedback-student-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.parent-feedback-student-name small{color:var(--muted);font-size:11px}.parent-feedback-student-counts{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:150px;display:flex}.parent-feedback-student-counts small{white-space:nowrap;border-radius:999px;padding:3px 6px;font-size:10px}.parent-feedback-student-counts .positive{color:var(--primary-strong);background:var(--primary-soft)}.parent-feedback-student-counts .negative{color:#b7791f;background:var(--warning-soft)}.parent-feedback-student-counts .score{color:#3e83d8;background:var(--info-soft)}.parent-feedback-student-counts .urgent{color:#b6403c;background:var(--danger-soft)}.parent-feedback-start{bottom:calc(var(--nav-height) + 8px);z-index:3;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;gap:5px;padding:12px;display:grid;position:sticky}.parent-feedback-start .button{width:100%}.parent-feedback-start small{color:var(--muted);text-align:center;font-size:11px}.parent-feedback-progress{background:var(--surface-muted);border-radius:var(--radius-sm);padding:12px 14px}.parent-feedback-progress span{color:var(--primary-strong);font-size:12px;font-weight:720}.parent-feedback-progress strong{flex:1;font-size:16px}.parent-feedback-progress small{color:var(--muted);text-align:right;font-size:11px}.parent-feedback-warning,.parent-feedback-error{margin:0}.parent-feedback-warning{color:#a64a46;background:var(--danger-soft);border-radius:12px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.parent-feedback-warning svg{flex:none;width:17px;height:17px}.parent-feedback-materials,.parent-feedback-message{gap:13px;padding:15px;display:grid}.parent-feedback-materials>header>div,.parent-feedback-message>header>div{min-width:0}.parent-feedback-materials header .button{flex:none;min-height:36px}.parent-feedback-event-list{gap:8px;display:grid}.parent-feedback-event-list>label{background:var(--surface-muted);border:1px solid #0000;border-radius:11px;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:9px;min-width:0;padding:10px;display:grid}.parent-feedback-event-list>label.is-selected{background:#f5fbf6;border-color:#bfe3c6}.parent-feedback-event-list>label>span{gap:4px;min-width:0;display:grid}.parent-feedback-event-list strong{font-size:12px}.parent-feedback-event-list small{color:var(--muted-strong);overflow-wrap:anywhere;font-size:13px;line-height:1.5}.parent-feedback-supplement{gap:7px;display:grid}.parent-feedback-supplement>span,.parent-feedback-mark label span{font-size:13px;font-weight:700}.parent-feedback-supplement>span small{color:var(--muted);font-size:11px;font-weight:500}.parent-feedback-supplement textarea,.parent-feedback-message>textarea{resize:vertical;width:100%;color:var(--foreground);background:var(--surface-muted);font:inherit;border:1px solid #0000;border-radius:11px;outline:0;padding:11px 12px;font-size:14px;line-height:1.55}.parent-feedback-supplement textarea:focus,.parent-feedback-message>textarea:focus{background:var(--surface);border-color:#bfe3c6;box-shadow:0 0 0 3px #54b8681a}.parent-feedback-message>header{justify-content:flex-start}.parent-feedback-message>header>svg{width:22px;height:22px;color:var(--primary-strong);flex:none}.parent-feedback-mark{border-top:1px solid var(--separator);gap:9px;padding-top:12px;display:grid}.parent-feedback-mark label{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.parent-feedback-mark select{min-width:0;height:40px;color:var(--foreground);background:var(--surface-muted);font:inherit;border:1px solid #0000;border-radius:10px;padding:0 10px}.parent-feedback-mark p{color:#b7791f;margin:0;font-size:11px;line-height:1.45}.parent-feedback-complete{text-align:center;justify-items:center;gap:9px;padding:28px 20px;display:grid}.parent-feedback-complete>svg{width:42px;height:42px;color:var(--primary-strong)}@media (max-width:374px){.parent-feedback-student-list>label{grid-template-columns:20px minmax(0,1fr)}.parent-feedback-student-counts{grid-column:2;justify-content:flex-start;max-width:none}.parent-feedback-progress{flex-wrap:wrap}.parent-feedback-progress strong{min-width:50%}.parent-feedback-progress small{text-align:left;width:100%}}.avatar{color:#367d45;background-color:#dff2e3;background-position:50%;background-size:cover;border:2px solid #ffffffe6;border-radius:50%;flex:none;place-items:center;font-weight:760;line-height:1;display:inline-grid;overflow:hidden}.avatar--small{width:32px;height:32px;font-size:13px}.avatar--medium{width:44px;height:44px;font-size:17px}.avatar--large{width:64px;height:64px;font-size:23px}.avatar--hero{width:92px;height:92px;font-size:32px}.tag,.chip{white-space:nowrap;justify-content:center;align-items:center;width:fit-content;font-weight:650;display:inline-flex}.tag{border-radius:999px;min-height:24px;padding:2px 9px;font-size:12px}.tag--green{color:#3e9951;background:var(--primary-soft)}.tag--orange{color:#e27f17;background:var(--warning-soft)}.tag--blue{color:#3e83d8;background:var(--info-soft)}.tag--purple{color:#8752d0;background:var(--accent-lilac-soft)}.tag--gray{color:#696e6b;background:#f0f1f1}.tag--red{color:#dc4f4b;background:var(--danger-soft)}.chip{min-height:38px;color:var(--muted-strong);background:var(--surface-muted);border:1px solid #0000;border-radius:999px;padding-inline:15px;font-size:14px}.chip--active{color:var(--primary-strong);background:var(--surface);border-color:var(--primary)}.search-bar{min-height:48px;color:var(--muted);background:#f5f6f7;border:1px solid #0000;border-radius:24px;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;padding-inline:16px;display:grid}.search-bar:focus-within{background:var(--surface);border-color:#cfe9d4;box-shadow:0 0 0 4px #54b8681a}.search-bar svg{width:19px;height:19px}.search-bar input{width:100%;min-width:0;height:46px;color:var(--foreground);background:0 0;border:0;outline:0;padding:0}.search-bar input::placeholder{color:#a0a5a2}.search-bar input::-webkit-search-cancel-button{opacity:.45}.list-item{background:var(--surface);border-bottom:1px solid var(--separator);grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:12px;min-height:72px;padding:12px 16px;display:grid}.list-item:last-child{border-bottom:0}.list-item__leading,.list-item__trailing{place-items:center;display:grid}.list-item__content{min-width:0}.list-item__title{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;line-height:1.3;overflow:hidden}.list-item__description{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:13px;overflow:hidden}.list-item__metadata{color:var(--muted);white-space:nowrap;font-size:13px}.list-item__chevron{color:#a0a5a2;width:18px;height:18px}.segmented-tabs{background:var(--surface);border-bottom:1px solid var(--separator);scrollbar-width:none;grid-auto-columns:minmax(76px,1fr);grid-auto-flow:column;min-height:54px;display:grid;overflow-x:auto}.segmented-tabs::-webkit-scrollbar{display:none}.segmented-tabs a{min-height:54px;color:var(--muted-strong);white-space:nowrap;place-items:center;padding-inline:12px;font-size:15px;font-weight:650;text-decoration:none;display:grid;position:relative}.segmented-tabs a.active{color:var(--primary-strong)}.segmented-tabs a.active:after{content:"";background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:24%;right:24%}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);grid-auto-columns:1fr;grid-auto-flow:column;padding:14px 8px;display:grid}.stat-item{text-align:center;border-left:1px solid var(--separator);align-content:center;place-items:center;gap:3px;min-width:0;min-height:84px;padding:8px 12px;display:grid}.stat-item:first-child{border-left:0}.stat-item__icon{border-radius:12px;place-items:center;width:36px;height:36px;margin-bottom:2px;display:grid}.stat-item__icon svg{width:20px;height:20px}.stat-item__label{color:var(--muted-strong);font-size:12px}.stat-item strong{color:var(--foreground);font-variant-numeric:tabular-nums;font-size:24px;line-height:1.1}.stat-item small{color:var(--muted);font-size:11px}.stat-item--green .stat-item__icon{color:var(--primary-strong);background:var(--primary-soft)}.stat-item--orange .stat-item__icon{color:var(--warning);background:var(--warning-soft)}.stat-item--blue .stat-item__icon{color:var(--info);background:var(--info-soft)}.stat-item--purple .stat-item__icon{color:var(--accent-lilac);background:var(--accent-lilac-soft)}.stat-item--red .stat-item__icon{color:var(--danger);background:var(--danger-soft)}.section-header{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.section-header>div{align-items:center;gap:9px;display:flex}.section-header h2{color:var(--foreground);margin:0;font-size:18px;line-height:1.3}.section-header>div>svg{width:20px;height:20px;color:var(--primary)}.section-header>a{min-height:40px;color:var(--muted);align-items:center;gap:2px;font-size:13px;text-decoration:none;display:inline-flex}.section-header>a svg{width:16px;height:16px}.ui-timeline{display:grid}.ui-timeline-item{grid-template-columns:60px 18px minmax(0,1fr);gap:9px;display:grid}.ui-timeline-item__date{color:var(--muted-strong);text-align:right;padding-top:17px;font-size:12px}.ui-timeline-item__rail{justify-content:center;display:flex;position:relative}.ui-timeline-item__rail:before{content:"";background:#e3e7e4;width:1px;position:absolute;top:0;bottom:0}.ui-timeline-item__rail>span{z-index:1;background:var(--primary);border:2px solid var(--surface);width:9px;height:9px;box-shadow:0 0 0 1px var(--primary);border-radius:50%;margin-top:22px;position:relative}.ui-timeline-item__content{min-width:0;margin-bottom:12px}.ui-timeline-item--orange .ui-timeline-item__rail>span{background:var(--warning);box-shadow:0 0 0 1px var(--warning)}.ui-timeline-item--blue .ui-timeline-item__rail>span{background:var(--info);box-shadow:0 0 0 1px var(--info)}.ui-timeline-item--purple .ui-timeline-item__rail>span{background:var(--accent-lilac);box-shadow:0 0 0 1px var(--accent-lilac)}.ui-timeline-item--gray .ui-timeline-item__rail>span{background:#9da39f;box-shadow:0 0 0 1px #9da39f}.field>span{color:var(--foreground);font-size:14px;font-weight:700}.field input,.field textarea,.field select,.search-form,.student-typeahead-input,.record-student-search select,.schedule-date input{color:var(--foreground);border-radius:var(--radius-sm);box-shadow:none;background:#f7f8f8;border:1px solid #0000}.field input:focus,.field textarea:focus,.field select:focus,.record-student-search select:focus,.schedule-date input:focus{background:var(--surface);border-color:#bfe3c6;outline:0;box-shadow:0 0 0 4px #54b8681a}.form-card{padding:clamp(18px,5vw,26px)}.form-message{border-radius:var(--radius-sm)}.form-message--success{color:#347b42;background:var(--primary-soft)}.form-message--error{color:#b6403c;background:var(--danger-soft)}.dialog-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#191e1b52}.dialog{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:0}.dialog header,.dialog footer{padding:18px 20px}.dialog footer{border-top:1px solid var(--separator);background:#fafbfa}.toast{background:#202522f0;border:0;border-radius:14px}:where(.module-link,.student-roster,.settings-list,.semester-list,.export-exam-list,.todo-list,.calendar-weeks>section,.detail-card,.profile-list section,.exam-list,.score-rows,.form-card,.backup-panel,.settings-groups>section,.work-card,.timeline-card){background:var(--surface);border-color:var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none}.empty-state,.empty-inline,.work-empty{color:var(--muted);background:var(--surface-muted);border-radius:var(--radius-md);box-shadow:none;border:0}.empty-state>svg,.empty-symbol{color:var(--primary);filter:none;animation:none}@media (max-width:720px){.app-content{width:min(100% - 28px, var(--content-width));padding-top:calc(16px + env(safe-area-inset-top))}.balanced-page-header{min-height:54px;margin-bottom:14px}.balanced-page-header h1{font-size:21px}.card--padding-medium{padding:18px}.summary-card{overflow-x:auto}.stat-item{min-width:82px;padding-inline:8px}.stat-item strong{font-size:22px}.ui-timeline-item{grid-template-columns:48px 16px minmax(0,1fr);gap:7px}.floating-button{right:18px}.dialog-backdrop{padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom));align-items:end}.dialog{border-radius:24px}}@media (max-width:390px){.app-content{width:calc(100% - 24px)}.bottom-nav{padding-inline:8px}.bottom-nav a{font-size:16px}.list-item{padding-inline:12px}}html[data-theme=dark]{--background:#171a18;--surface:#222623;--surface-elevated:#292e2a;--surface-muted:#2c312d;--surface-tinted:#233127;--foreground:#f2f5f2;--muted:#a1a8a3;--muted-strong:#c0c6c1;--primary:#6dc77e;--primary-strong:#78d089;--primary-soft:#253d2a;--primary-softer:#1e2d21;--warning-soft:#433324;--info-soft:#243449;--danger-soft:#462827;--accent-coral-soft:#462827;--accent-gold-soft:#433324;--accent-blue-soft:#243449;--accent-lilac-soft:#382c49;--border:#343a35;--border-strong:#424943;--separator:#ffffff14;--shadow-sm:none;--shadow:0 12px 32px #00000038;--shadow-lg:0 24px 64px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=dark] .bottom-nav,html[data-theme=dark] .page-actions-menu>div{background:#222623f5}html[data-theme=dark] .field input,html[data-theme=dark] .field textarea,html[data-theme=dark] .field select,html[data-theme=dark] .search-bar{background:var(--surface-muted)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.student-list-page{max-width:760px;padding-top:calc(24px + env(safe-area-inset-top))}.student-list-header{justify-content:space-between;align-items:flex-start;gap:14px;min-height:68px;margin-bottom:14px;display:flex}.student-list-header__identity{align-items:center;gap:9px;min-width:0;padding-top:4px;display:flex}.student-list-header__identity>a{width:28px;height:40px;color:var(--foreground);flex:none;place-items:center;margin-left:-5px;display:grid}.student-list-header__identity>a svg{stroke-width:2.2px;width:25px;height:25px}.student-list-header h1{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.035em;margin:0;font-size:clamp(25px,5vw,31px);font-weight:780;line-height:1.25;overflow:hidden}.student-list-header__actions{align-items:center;gap:12px;display:flex}.student-list-header__actions .page-actions-menu summary{background:var(--surface-muted)}.student-search-area{margin-bottom:16px}.student-search-area .search-bar{width:100%}.student-summary-card{margin-bottom:12px;padding:12px 8px}.student-summary-card .stat-item{text-align:left;grid-template-rows:auto auto;grid-template-columns:42px minmax(0,1fr);align-content:center;place-items:start;column-gap:10px;min-height:76px;padding:8px 14px}.student-summary-card .stat-item__icon{border-radius:13px;grid-row:1/3;align-self:center;width:42px;height:42px;margin:0}.student-summary-card .stat-item__icon svg{width:23px;height:23px}.student-summary-card .stat-item__label{align-self:end;font-size:12px}.student-summary-card .stat-item strong{align-self:start;align-items:center;min-height:27px;font-size:24px;line-height:1;display:flex}.student-gender-empty{display:inline-block;transform:translateY(-3px)}.student-filter-row{justify-content:space-between;align-items:center;gap:14px;min-height:50px;margin-bottom:10px;display:flex}.student-filter-row>div{scrollbar-width:none;align-items:center;gap:8px;display:flex;overflow-x:auto}.student-filter-row>div::-webkit-scrollbar{display:none}.student-filter-row .chip{cursor:pointer;flex:none;min-height:38px}.student-filter-row>svg{width:21px;height:21px;color:var(--muted);flex:none}.student-gender-filter--male{color:#477fbf;background:#eef5fd;border-color:#dbe9f9}.student-gender-filter--male.chip--active{color:#3574bb;background:#f7fbff;border-color:#7eaddf}.student-gender-filter--female{color:#c96f91;background:#fff0f5;border-color:#f7d9e5}.student-gender-filter--female.chip--active{color:#bd5d81;background:#fff8fb;border-color:#df97b2}.student-attention-filter{color:#e27f17;background:#fffaf4;border-color:#f3d3b0}.student-attention-filter.chip--active{color:#d9740d;border-color:#eeae67}.student-list-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.student-list-row{border-bottom:1px solid var(--separator);grid-template-columns:58px minmax(76px,110px) 54px minmax(78px,1fr) 42px;align-items:center;gap:8px;min-height:98px;padding:12px 14px;display:grid;position:relative}.student-list-row:last-child{border-bottom:0}.student-list-number{color:var(--foreground);text-align:left;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;overflow:hidden}.student-list-name{min-width:0;color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:780;line-height:1.3;text-decoration:none;overflow:hidden}.student-list-name:after{content:"";position:absolute;inset:0}.student-list-status{min-width:0;color:var(--muted);white-space:nowrap;grid-template-columns:auto auto;justify-content:start;align-items:center;gap:7px 12px;font-size:12px;display:grid;overflow:hidden}.student-list-status .tag{grid-column:1/-1;min-height:24px;padding-inline:9px;font-size:12px}.student-info-trigger,.student-phone-button{cursor:pointer;z-index:1;border:0;border-radius:50%;place-items:center;width:42px;height:42px;padding:0;display:grid;position:relative}.student-info-trigger{color:#777d79;background:#f0f1f1;width:52px;height:52px}.student-info-gender-male{color:#477fbf;background:#eef5fd}.student-info-gender-female{color:#c96f91;background:#fff0f5}.student-info-gender-unknown{color:#777d79;background:#f0f1f1}.student-phone-button{color:var(--primary-strong);background:0 0}.student-info-trigger svg,.student-phone-button svg{width:23px;height:23px}.student-info-trigger svg{width:25px;height:25px}.student-info-trigger:hover{filter:brightness(.97)}.student-phone-button:hover{background:var(--primary-soft)}.student-phone-button:disabled{color:#a7adaa;cursor:default;background:#eff1f0}.student-phone-button--compact{width:36px;height:36px;color:var(--primary-strong);background:var(--primary-soft);flex:none}.student-phone-button--compact svg{width:17px;height:17px}.student-phone-button--labeled{color:#fff;background:var(--primary-strong);border-radius:13px;justify-content:center;align-items:center;gap:7px;width:100%;height:48px;font-size:15px;font-weight:720;display:flex}.student-phone-button--labeled:hover{background:#398f4b}.student-phone-button--labeled svg{width:18px;height:18px}.student-call-backdrop{z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e262152;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.student-call-confirm{background:var(--surface-elevated);border:1px solid var(--border);width:min(340px,100%);box-shadow:var(--shadow-lg);text-align:center;border-radius:22px;padding:24px 20px 18px}.student-call-confirm>span{width:52px;height:52px;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;place-items:center;margin:0 auto 12px;display:grid}.student-call-confirm>span svg{width:24px;height:24px}.student-call-confirm h2{margin:0;font-size:20px}.student-call-confirm p{color:var(--muted);margin:8px 0 2px;font-size:14px}.student-call-confirm>strong{font-variant-numeric:tabular-nums;font-size:18px}.student-call-confirm>div{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;display:grid}.student-call-confirm button,.student-call-confirm a{border:0;border-radius:13px;place-items:center;min-height:46px;padding:0 12px;font-size:15px;font-weight:700;text-decoration:none;display:grid}.student-call-confirm button{color:var(--foreground);background:var(--surface-muted)}.student-call-confirm a{color:#fff;background:var(--primary-strong)}.student-list-empty{min-height:250px;color:var(--muted);background:var(--surface-muted);border-radius:var(--radius-md);text-align:center;align-content:center;place-items:center;gap:9px;display:grid}.student-list-empty svg{width:44px;height:44px;color:var(--primary)}.student-list-empty h2{margin:0;font-size:18px}.student-list-empty a{color:var(--primary-strong);font-weight:700;text-decoration:none}.student-list-finished{color:var(--muted);text-align:center;margin:24px 0 0;font-size:13px}.student-info-sheet{background:var(--surface-elevated);border:1px solid var(--border);width:min(450px,100%);box-shadow:var(--shadow-lg);border-radius:22px;padding:22px}.student-info-sheet>header{grid-template-columns:58px minmax(0,1fr) 40px;align-items:center;gap:13px;display:grid}.student-info-sheet__icon{color:#777d79;background:#f0f1f1;border-radius:50%;place-items:center;width:58px;height:58px;display:grid}.student-info-sheet__icon.student-info-gender-male{color:#477fbf;background:#eef5fd}.student-info-sheet__icon.student-info-gender-female{color:#c96f91;background:#fff0f5}.student-info-sheet__icon.student-info-gender-unknown{color:#777d79;background:#f0f1f1}.student-info-sheet__icon svg{width:28px;height:28px}.student-info-sheet>header>div>div{align-items:center;gap:10px;display:flex}.student-info-sheet>header h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:22px;overflow:hidden}.student-info-sheet>header p{color:var(--muted);margin:5px 0 0;font-size:13px}.student-info-sheet>header button{background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid}.student-info-fields{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;margin:20px 0 0;padding:18px}.student-info-fields h3{margin:0 0 12px;font-size:16px}.student-info-fields dl{gap:0;margin:0;display:grid}.student-info-fields dl>div{grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:39px;display:grid}.student-info-fields dt{color:var(--muted);font-size:13px}.student-info-fields dd{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:590}.student-info-sheet>footer{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;display:grid}.student-info-sheet>footer>a{min-height:48px;color:var(--primary-strong);border:1px solid var(--primary);background:#fff;border-radius:13px;place-items:center;font-size:15px;font-weight:720;text-decoration:none;display:grid}@media (max-width:560px){.student-list-page{width:min(100% - 28px,760px);padding-top:calc(18px + env(safe-area-inset-top))}.student-list-header{gap:8px;min-height:64px}.student-list-header h1{font-size:25px}.student-list-header__identity{gap:5px}.student-list-header__identity>a{width:24px}.student-list-header__identity>a svg{width:23px;height:23px}.student-list-header__actions{gap:8px}.student-list-header__actions .page-actions-menu summary{width:44px;height:44px}.student-summary-card .stat-item{grid-template-columns:38px minmax(0,1fr);column-gap:8px;padding-inline:10px}.student-summary-card .stat-item__icon{width:38px;height:38px}.student-filter-row{margin-inline:-2px}.student-filter-row .chip{min-height:36px;padding-inline:13px;font-size:13px}.student-list-row{grid-template-columns:34px 66px 48px minmax(70px,1fr) 36px;gap:5px;padding-inline:10px}.student-list-number{font-size:14px}.student-list-name{font-size:20px}.student-info-trigger{width:48px;height:48px}.student-phone-button{width:36px;height:36px}.student-info-trigger svg,.student-phone-button:not(.student-phone-button--compact):not(.student-phone-button--labeled) svg{width:22px;height:22px}.student-list-status{gap:5px 8px;font-size:11px}.student-info-sheet{padding:18px}.student-info-fields{padding:16px}.student-phone-button--labeled{width:100%;height:48px}}@media (max-width:350px){.student-summary-card .stat-item{grid-template-columns:34px minmax(0,1fr);column-gap:6px;padding-inline:7px}.student-summary-card .stat-item__icon{width:34px;height:34px}.student-summary-card .stat-item__icon svg{width:20px;height:20px}.student-list-row{grid-template-columns:32px 60px 44px minmax(62px,1fr) 34px;gap:3px;padding-inline:8px}.student-list-status{gap:4px 6px}.student-list-status .tag{padding-inline:5px}.student-info-trigger{width:42px;height:42px}}.student-detail-v3{max-width:760px;padding-top:calc(18px + env(safe-area-inset-top))}.student-detail-v3>.balanced-page-header{margin-bottom:16px}.student-detail-v3>.balanced-page-header .balanced-back{background:0 0}.student-detail-v3>.balanced-page-header .page-actions-menu summary{background:var(--surface-muted)}.student-detail-v3__hero{border-radius:var(--radius-md);min-height:120px;box-shadow:var(--shadow-sm);background:linear-gradient(118deg,#eaf7ecf5,#f3faf0d1);border:1px solid #e8f5eaf5;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;margin-bottom:16px;padding:16px 22px;display:grid}.student-detail-v3__avatar{background:linear-gradient(145deg,#d9efdb,#cbe6d1);border-width:0;box-shadow:inset 0 0 0 1px #41915114}.student-detail-v3__hero .avatar--hero{width:76px;height:76px;font-size:27px}.student-detail-v3__identity{min-width:0}.student-detail-v3__identity>div{align-items:center;gap:11px;display:flex}.student-detail-v3__identity h1{letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:25px;line-height:1.25;overflow:hidden}.student-detail-v3__identity p{color:var(--muted);align-items:center;gap:6px;margin:7px 0 0;font-size:14px;display:flex}.student-detail-v3__identity p svg{color:#5894e5;width:17px;height:17px}.student-detail-v3__identity p i{background:#a0a6a2;border-radius:50%;width:3px;height:3px;margin-inline:2px}.student-detail-v3__hero--compact{min-height:0;box-shadow:none;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);margin-bottom:16px;padding:4px 12px 4px 8px}.student-detail-v3__hero--compact .student-detail-v3__identity h1{font-size:21px}.student-detail-v3__hero--compact .student-detail-v3__identity p{margin-top:6px;font-size:13px}.student-detail-v3__summary{margin-bottom:16px;padding:12px 5px}.student-detail-v3__summary .stat-item{min-height:110px;padding:8px 6px}.student-detail-v3__summary .stat-item__icon{width:38px;height:38px}.student-detail-v3__summary .stat-item__icon svg{width:21px;height:21px}.student-detail-v3__summary .stat-item__label{color:var(--foreground);margin-top:3px;font-size:13px}.student-detail-v3__summary .stat-item strong{margin-top:2px;font-size:26px}.student-detail-v3__summary .stat-item strong small{color:var(--muted);margin-left:3px;font-size:12px;font-weight:500}.student-detail-v3__summary .stat-item strong>span{color:var(--foreground);font-size:23px}.student-detail-v3__summary .stat-item strong>span small{color:var(--primary-strong);font-size:15px;font-weight:700}.student-detail-v3__summary .stat-item strong>span.is-down small{color:var(--danger)}.student-detail-v3__tabs{border:0;border-bottom:1px solid var(--separator);box-shadow:none;background:0 0;border-radius:0;margin-bottom:16px;overflow:visible}.student-detail-v3__tabs a{min-width:0;color:var(--foreground);padding:14px 8px 16px}.student-detail-v3__tabs a.active{color:var(--primary-strong);font-weight:750}.student-detail-v3__tabs a.active:after{left:18%;right:18%}.student-detail-v3__section{position:relative}.student-detail-v3__section>.section-header{margin:0 4px 8px}.student-detail-v3__section>.section-header h2{font-size:18px}.student-detail-v3__timeline{margin-top:0}.student-detail-v3__timeline .ui-timeline-item{grid-template-columns:18px minmax(0,1fr);gap:8px}.student-detail-v3__timeline .ui-timeline-item__date{display:none}.student-detail-v3__timeline .ui-timeline-item__rail{grid-column:1}.student-detail-v3__timeline .ui-timeline-item__content{grid-column:2}.student-detail-v3__timeline .ui-timeline-item__rail>span{margin-top:21px}.student-detail-v3__trend-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:22px;padding:17px 18px 14px}.student-detail-v3__trend-card h2{margin:0 0 7px;font-size:18px}.student-detail-v3__trend-card .empty-inline{padding-block:52px}.trend-figure{min-width:0}.trend-shell{grid-template-columns:40px minmax(0,1fr);min-width:0;display:grid}.trend-axis{z-index:2;background:var(--surface);width:40px;height:148px;position:relative}.trend-axis text{fill:var(--muted);text-anchor:end;font-size:11px;font-weight:650}.trend-axis line{stroke:var(--muted);stroke-width:1px}.trend-scroll{overscroll-behavior-inline:contain;scrollbar-width:none;scroll-snap-type:x proximity;min-width:0;overflow-x:auto}.trend-scroll::-webkit-scrollbar{display:none}.trend-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}.trend-chart{min-width:100%;height:148px;display:block;overflow:visible}.trend-chart .trend-chart__grid{stroke:var(--separator);stroke-width:1px;stroke-dasharray:4 5}.trend-chart .trend-chart__baseline{stroke:var(--muted);stroke-width:1px}.trend-chart polyline{fill:none;stroke:var(--info);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.trend-chart circle{fill:var(--surface);stroke:var(--info);stroke-width:3px}.trend-chart text{fill:var(--foreground);text-anchor:middle;font-weight:750}.trend-chart__score{font-size:12px}.trend-chart__label{font-size:11px;fill:var(--muted)!important;font-weight:600!important}.trend-caption{min-height:20px;color:var(--muted);justify-content:space-between;gap:10px;padding:2px 2px 0 40px;font-size:11px;display:flex}.trend-caption span:last-child{color:var(--primary-strong)}.student-activity-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-height:88px;box-shadow:var(--shadow-sm);grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px;display:grid}.student-activity-card.is-completed{opacity:.62}.student-activity-card--interactive{width:100%;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:border-color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) ease;text-decoration:none}.student-activity-card--interactive:active{transform:scale(.992)}.student-activity-card__icon{border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.student-activity-card__icon svg{width:22px;height:22px}.student-activity-card__icon--green{color:#43a95a;background:#e3f4e6}.student-activity-card__icon--orange{color:#f49a15;background:#fff0d9}.student-activity-card__icon--blue{color:#428fe5;background:#e5f1ff}.student-activity-card__icon--purple{color:#9358d8;background:#f0e8fb}.student-activity-card__icon--gray{color:#828985;background:#eef0ef}.student-activity-card__body{min-width:0;display:block}.student-activity-card__title{align-items:center;gap:9px;display:flex}.student-activity-card__title h3,.student-activity-card__title>strong{min-width:0;text-overflow:initial;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:0;font-size:16px;line-height:1.4;display:-webkit-box;overflow:hidden}.student-activity-card__title .tag{min-height:22px;padding-inline:8px}.student-activity-card__body p,.student-activity-card__summary{color:var(--muted-strong);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:7px 0 3px;font-size:14px;line-height:1.55;display:-webkit-box;overflow:hidden}.student-activity-card__body small{color:var(--muted);font-size:12px}.student-activity-card__body>a{width:fit-content;color:var(--danger);margin-top:7px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.student-activity-card>img{object-fit:cover;border-radius:10px;width:90px;height:68px}.student-activity-card>.complete-button,.student-activity-card>.done-label{align-self:center}.student-activity-card__date{color:var(--muted);white-space:nowrap;align-self:center;align-items:center;gap:8px;font-size:12px;display:flex}.student-activity-card__date svg{width:18px;height:18px}.student-activity-card__date a{width:30px;height:30px;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;place-items:center;display:grid}.student-activity-card--compact .student-activity-card__body small{display:none}.student-activity-card__footer{justify-content:space-between;align-items:center;gap:10px;margin-top:5px;display:flex}.student-activity-card__footer time{color:var(--muted);white-space:nowrap;font-size:12px}.student-activity-card__detail-cue{color:var(--primary-strong);align-items:center;gap:2px;font-size:12px;font-weight:700;display:inline-flex}.student-activity-card__detail-cue svg{width:14px;height:14px}.student-record-detail-card{gap:7px;display:grid}.student-record-detail-card__action{width:fit-content;color:var(--primary-strong);background:var(--primary-soft);border-radius:999px;align-items:center;margin-left:12px;padding:4px 10px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.student-record-detail{gap:13px;max-height:58svh;margin:0 -4px;padding:2px 4px 4px;display:grid;overflow-y:auto}.student-record-detail__meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-record-detail__meta>span{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.student-record-detail__meta svg{width:16px;height:16px}.student-record-detail__content{color:var(--foreground);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:15px;line-height:1.75}.student-record-detail>small{color:var(--muted);font-size:12px}.student-record-detail__images{gap:9px;display:grid}.student-record-detail__images a{border-radius:12px;display:block;overflow:hidden}.student-record-detail__images img{width:100%;height:auto;display:block}.student-record-detail__action{color:#fff;width:100%;text-decoration:none}.communication-record-actions,.student-record-detail__edit-actions{border-top:1px solid var(--separator);align-items:center;gap:18px;padding-top:10px;display:flex}.student-record-detail__edit-actions>.communication-record-actions{border-top:0;padding-top:0}.communication-record-action{min-height:32px;color:var(--primary-strong);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.communication-record-action.is-danger{color:var(--danger)}.communication-record-action:disabled{cursor:wait;opacity:.6}.communication-record-action svg{width:15px;height:15px}.event-communication-history{border-top:1px solid var(--separator);gap:12px;padding-top:3px;display:grid}.event-communication-history>header{justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.event-communication-history>header h3{align-items:center;gap:7px;margin:0;font-size:15px;display:inline-flex}.event-communication-history>header h3 svg{color:#9358d8;width:17px;height:17px}.event-communication-history>header span{color:var(--muted);white-space:nowrap;font-size:12px}.event-communication-history ol{gap:0;margin:0;padding:0;list-style:none;display:grid}.event-communication-history li{border-left:2px solid #e7daf6;gap:7px;margin-left:6px;padding:0 0 17px 18px;display:grid;position:relative}.event-communication-history li:last-child{padding-bottom:2px}.event-communication-history li:before{content:"";border:2px solid var(--surface);background:#9358d8;border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-6px}.event-communication-history li>div:first-child{align-items:center;gap:9px;display:flex}.event-communication-history li strong{font-size:13px}.event-communication-history li span{color:#7445aa;background:#f0e8fb;border-radius:999px;padding:2px 7px;font-size:11px}.event-communication-history li p,.event-communication-history__empty{color:var(--muted-strong);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:14px;line-height:1.65}.event-communication-history__empty{color:var(--muted);padding:5px 0 2px}.event-communication-history__images{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.event-communication-history__images a{aspect-ratio:4/3;border-radius:8px;overflow:hidden}.event-communication-history__images img{object-fit:cover;width:100%;height:100%;display:block}.event-communication-history .communication-record-actions{border-top:0;gap:15px;padding-top:2px}.student-detail-v3__records-heading{justify-content:space-between;align-items:center;gap:12px;min-height:50px;margin:0 4px 8px;display:flex}.student-detail-v3__records-heading h2{margin:0;font-size:18px}.student-detail-v3__records-heading h2 span{color:var(--muted);margin-left:8px;font-size:13px;font-weight:500}.student-detail-v3__records-heading>div{align-items:center;gap:14px;display:flex}.student-detail-v3__records-heading>div>span{color:var(--muted-strong);align-items:center;gap:6px;font-size:14px;display:flex}.student-detail-v3__records-heading svg{width:18px;height:18px}.student-detail-v3__records-heading span svg:last-child:not(:first-child){width:14px}.student-detail-v3__edit-link{min-height:36px;color:var(--primary-strong);background:var(--primary-soft);border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.student-detail-v3__edit-link svg{width:15px;height:15px}.student-detail-v3__timeline--full .ui-timeline-item{grid-template-columns:52px 16px minmax(0,1fr);gap:5px}.student-detail-v3__timeline--full .ui-timeline-item__date{text-align:left;grid-auto-rows:max-content;align-content:start;gap:3px;padding-top:14px;line-height:1.25;display:grid}.student-detail-v3__timeline--full .ui-timeline-item__date strong{color:var(--muted-strong);white-space:nowrap;font-size:12px;font-weight:700}.student-detail-v3__timeline--full .ui-timeline-item__date span{color:var(--muted);white-space:nowrap;font-size:11px}.student-detail-v3__timeline--full .ui-timeline-item__rail{grid-column:2}.student-detail-v3__timeline--full .ui-timeline-item__content{grid-column:3}.student-detail-v3__timeline--full .ui-timeline-item__rail>span{margin-top:18px}.student-detail-v3__timeline--full .student-activity-card__title{align-items:flex-start}.student-detail-v3__timeline--full .student-activity-card__title h3,.student-detail-v3__timeline--full .student-activity-card__title>strong{text-overflow:initial;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.45;display:-webkit-box}.student-detail-v3__timeline--full .student-activity-card__title .tag{flex:none;margin-top:1px}.student-detail-v3__add{text-decoration:none}.student-detail-v3__score-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px 16px 10px}.student-reminder-actions{align-self:center;align-items:center;gap:7px;display:flex}.student-reminder-actions>a{width:34px;height:34px;color:var(--primary-strong);background:var(--primary-soft);border-radius:11px;place-items:center;display:grid}.student-reminder-actions>a svg{width:16px;height:16px}.student-detail-v3--reminders .student-activity-card{grid-template-columns:34px minmax(0,1fr)}.student-detail-v3--reminders .student-reminder-actions{grid-column:2;justify-content:flex-start}.event-contact-option.is-locked{cursor:default}.event-contact-option.is-locked input,.event-contact-option.is-locked b{opacity:.55}.app-frame:has(.student-detail-v3) .bottom-nav a[href=\/classes]{color:var(--primary-strong);background:var(--primary-soft);font-weight:700}@media (hover:hover){.student-activity-card--interactive:hover{border-color:#cfe7d3;box-shadow:0 10px 28px #53707e1f}}@media (max-width:560px){.student-detail-v3{width:min(100% - 24px,760px);padding-top:calc(12px + env(safe-area-inset-top))}.student-detail-v3>.balanced-page-header{margin-bottom:12px}.student-detail-v3__hero{grid-template-columns:64px minmax(0,1fr);gap:12px;min-height:96px;padding:12px 14px}.student-detail-v3__hero .avatar--hero{width:64px;height:64px;font-size:24px}.student-detail-v3__identity>div{gap:8px}.student-detail-v3__identity h1{font-size:22px}.student-detail-v3__identity p{gap:5px;font-size:12px}.student-detail-v3__hero--compact{grid-template-columns:58px minmax(0,1fr);min-height:0;padding:2px 6px}.student-detail-v3__hero--compact .avatar--large{width:58px;height:58px}.student-detail-v3__summary{padding:10px 2px;overflow:visible}.student-detail-v3__summary .stat-item{min-width:0;min-height:102px;padding-inline:3px}.student-detail-v3__summary .stat-item__label{font-size:11px}.student-detail-v3__summary .stat-item strong{font-size:23px}.student-detail-v3__summary .stat-item strong>span{font-size:19px}.student-detail-v3__tabs{grid-auto-columns:minmax(0,1fr)}.student-detail-v3__tabs a{padding-inline:4px;font-size:13px}.student-detail-v3__trend-card{padding:15px 11px 11px}.student-activity-card{grid-template-columns:34px minmax(0,1fr) auto;gap:8px;padding:11px}.student-activity-card__icon{width:34px;height:34px}.student-activity-card__title h3,.student-activity-card__title>strong{font-size:15px}.student-activity-card__body p,.student-activity-card__summary{font-size:13px}.student-activity-card>img{width:74px;height:58px}.student-detail-v3__timeline--full .ui-timeline-item{grid-template-columns:48px 14px minmax(0,1fr);gap:4px}.student-detail-v3__score-card{padding:12px 10px 9px}}@media (max-width:370px){.student-detail-v3__hero:not(.student-detail-v3__hero--compact){grid-template-columns:58px minmax(0,1fr);gap:10px;padding:10px 12px}.student-detail-v3__hero .avatar--hero{width:58px;height:58px;font-size:22px}.student-detail-v3__identity h1{font-size:20px}.student-detail-v3__identity>div .tag{padding-inline:6px;font-size:11px}.student-detail-v3__tabs a{font-size:12px}.student-activity-card__date{gap:3px;font-size:11px}.student-detail-v3__summary .stat-item__icon{width:34px;height:34px}.student-detail-v3__summary .stat-item strong{font-size:21px}.student-detail-v3__summary .stat-item strong>span{font-size:17px}}.dashboard-page{max-width:760px;padding-top:calc(28px + env(safe-area-inset-top));color:#181b19}.dashboard-hero{justify-content:space-between;align-items:flex-start;gap:20px;min-height:78px;padding:6px 4px 8px;display:flex}.dashboard-hero h1,.dashboard-hero p{margin:0}.dashboard-hero h1{letter-spacing:-.035em;font-size:clamp(25px,5vw,31px);font-weight:760;line-height:1.25}.dashboard-hero h1 span{font-size:.78em;display:inline-block;rotate:-8deg}.dashboard-hero p{color:#656b67;margin-top:7px;font-size:15px;font-weight:520}.dashboard-profile-avatar{border-radius:50%;flex:none;margin-top:2px;text-decoration:none;display:grid}.dashboard-profile-avatar .avatar{width:52px;height:52px;transition:transform var(--duration-fast) ease;font-size:19px;box-shadow:0 5px 16px #375e4424}.dashboard-card{background:#fff;border:1px solid #f0f1f0;border-radius:20px;box-shadow:0 7px 24px #2433280e}.dashboard-card h2{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:760}.dashboard-card-title{align-items:center;gap:11px;padding:13px 17px 2px;display:flex}.dashboard-title-icon{border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.dashboard-title-icon svg{width:21px;height:21px}.dashboard-title-icon.green{color:#3eaa57;background:#eaf7ec}.dashboard-overview{margin-bottom:14px}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));padding:8px 9px 9px;display:grid}.dashboard-metric{text-align:center;align-content:center;justify-items:center;gap:1px;min-width:0;min-height:62px;padding:1px 8px;display:grid;position:relative}.dashboard-metric+.dashboard-metric:before{content:"";background:#eceeed;width:1px;position:absolute;top:7px;bottom:7px;left:0}.dashboard-metric>span{place-items:center;height:25px;display:grid}.dashboard-metric svg{width:21px;height:21px}.dashboard-metric strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:18px;line-height:1.2;overflow:hidden}.dashboard-metric small{color:#858a87;white-space:nowrap;font-size:12px}.dashboard-metric.tone-green>span{color:#4db264}.dashboard-metric.tone-orange>span{color:#f29a35}.dashboard-metric.tone-blue>span{color:#4e91e8}.dashboard-metric.tone-purple>span{color:#9a67e8}.dashboard-two-column{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.dashboard-tasks,.dashboard-courses{min-width:0;padding:0 17px 15px}.dashboard-section-header{justify-content:space-between;align-items:center;gap:10px;min-height:59px;display:flex}.dashboard-section-header a,.dashboard-section-header>span{color:#7c817e;white-space:nowrap;align-items:center;gap:1px;min-height:40px;font-size:12px;text-decoration:none;display:inline-flex}.dashboard-section-header a svg,.dashboard-section-header>span svg{width:15px;height:15px}.dashboard-task-list{gap:7px;display:grid}.dashboard-task-row{min-width:0;min-height:56px;color:inherit;background:#fafbfa;border:1px solid #eff2ef;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:7px minmax(0,1fr) auto;align-content:center;column-gap:8px;padding:7px 10px;text-decoration:none;display:grid}.dashboard-task-row>i{background:#50b467;border-radius:50%;grid-row:1/3;align-self:center;width:7px;height:7px}.dashboard-task-row.tone-personal>i{background:#f29a35}.dashboard-task-row>span{color:#3fa955;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:700;overflow:hidden}.dashboard-task-row.tone-personal>span{color:#db7b18}.dashboard-task-row>small{color:#858a87;white-space:nowrap;font-size:11px}.dashboard-task-row>strong{color:#353a37;text-overflow:ellipsis;white-space:nowrap;grid-column:2/4;min-width:0;font-size:14px;font-weight:620;line-height:1.35;overflow:hidden}.dashboard-task-row.is-overdue{background:#fff5f4;border-color:#ffd9d7}.dashboard-task-row.is-overdue>small{color:#c94540;font-weight:700}.dashboard-inline-empty{color:#969b98;margin:0;font-size:12px}.dashboard-course-list{display:grid}.dashboard-course-list article{border-top:1px solid #f0f1f0;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;height:64px;padding-inline:5px;display:grid;position:relative}.dashboard-course-list article:first-child{border-top:0}.dashboard-course-list article.is-current{background:#f2f8ef;border-radius:10px;margin-inline:-3px;padding-inline:8px}.dashboard-course-dot{border:1.5px solid #55b66a;border-radius:50%;width:8px;height:8px}.dashboard-course-list article.is-completed .dashboard-course-dot{background:#cbd1cd;border-color:#cbd1cd}.dashboard-course-list article.is-current .dashboard-course-dot{background:#48ae60;border-color:#48ae60;box-shadow:0 0 0 4px #48ae6021}.dashboard-course-list article>strong{color:#353a37;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:650;line-height:1.35;overflow:hidden}.dashboard-course-list article.is-completed>strong{color:#929894;font-weight:580}.dashboard-course-badges{justify-content:flex-end;gap:3px;display:flex}.dashboard-course-list article em{color:#df7f1c;white-space:nowrap;background:#fff2e5;border-radius:999px;justify-content:center;align-items:center;min-width:20px;padding:2px 5px;font-size:10px;font-style:normal;font-weight:700;display:inline-flex}.dashboard-course-list article em.status{color:#379f50;background:#e9f7ec}.dashboard-course-empty{color:#9aa09c;place-content:center;place-items:center;gap:9px;min-height:78px;display:grid}.dashboard-course-empty svg{color:#b8d9bf;width:34px;height:34px}.dashboard-course-empty span{font-size:12px}.dashboard-calendar{margin-bottom:14px;padding:0 17px 16px}.dashboard-calendar-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.dashboard-calendar-strip>a{color:#353a37;background:#fafbfa;border:1px solid #0000;border-radius:12px;align-content:center;gap:5px;min-width:0;min-height:58px;padding:7px 9px;text-decoration:none;display:grid}.dashboard-calendar-strip>a.selected{color:#319c4a;background:#f0faf2;border-color:#8dd39a}.dashboard-calendar-strip>a>span{justify-content:space-between;align-items:baseline;gap:4px;min-width:0;display:flex}.dashboard-calendar-strip strong{white-space:nowrap;font-size:12px}.dashboard-calendar-strip small{color:#737975;white-space:nowrap;font-size:11px}.dashboard-calendar-strip em{color:#737975;align-items:center;gap:5px;font-size:11px;font-style:normal;display:flex}.dashboard-calendar-strip em i{background:#50b467;border-radius:50%;width:7px;height:7px}.dashboard-calendar-strip .tone-orange em i{background:#f29a35}.dashboard-calendar-strip .tone-blue em i{background:#4e91e8}.dashboard-calendar-strip .tone-purple em i{background:#9a67e8}.dashboard-calendar-list{margin-top:10px;display:grid}.dashboard-calendar-list>a:not(.dashboard-calendar-more){color:#353a37;border-top:1px solid #f0f1f0;grid-template-columns:3px minmax(0,1fr) 18px;align-items:center;gap:11px;min-height:52px;padding-block:8px;text-decoration:none;display:grid}.dashboard-calendar-list>a:not(.dashboard-calendar-more):first-child{border-top:0}.dashboard-calendar-list>a>i{background:#50b467;border-radius:999px;width:3px;height:70%;min-height:26px}.dashboard-calendar-list>a>span{overflow-wrap:anywhere;min-width:0;font-size:15px;font-weight:620;line-height:1.45}.dashboard-calendar-list>a>svg{color:#a1a6a3;width:15px;height:15px}.dashboard-calendar-more{color:#7c817e;justify-content:center;align-items:flex-end;min-height:38px;font-size:13px;text-decoration:none;display:flex}.dashboard-calendar-empty{color:#969b98;align-items:center;min-height:52px;margin:10px 0 0;font-size:14px;display:flex}.dashboard-quick{margin-bottom:14px;padding:14px 17px 15px}.dashboard-quick h2{margin-bottom:10px}.dashboard-quick>div{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.dashboard-quick a,.dashboard-quick-disabled{color:#252926;text-align:center;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-width:0;min-height:84px;padding:8px 6px;text-decoration:none;display:flex}.dashboard-quick a>span,.dashboard-quick-disabled>svg{place-items:center;width:36px;height:36px;display:grid}.dashboard-quick a svg{width:29px;height:29px}.dashboard-quick a strong,.dashboard-quick-disabled strong{font-size:12px;line-height:1.25}.dashboard-quick .tone-green{color:#379f50;background:#eff9f1}.dashboard-quick .tone-blue{color:#4288df;background:#eef5fe}.dashboard-quick .tone-orange{color:#ea871e;background:#fff4e8}.dashboard-quick .tone-purple{color:#8e59d8;background:#f5effd}.dashboard-quick-disabled{color:#9b8aac;opacity:.58;background:#f6f2fa}@media (hover:hover){.dashboard-profile-avatar:hover .avatar{transform:translateY(-1px)}.dashboard-section-header a:hover{color:var(--primary-strong)}.dashboard-task-row:hover,.dashboard-calendar-strip>a:hover,.dashboard-calendar-list>a:hover,.dashboard-quick a:hover{filter:brightness(.99);transform:translateY(-1px)}}@media (max-width:520px){.dashboard-page{width:calc(100% - 24px);padding-top:calc(18px + env(safe-area-inset-top))}.dashboard-hero{min-height:76px;padding-inline:2px}.dashboard-hero h1{font-size:25px}.dashboard-hero p{font-size:14px}.dashboard-card{border-radius:18px}.dashboard-two-column{gap:10px}.dashboard-tasks,.dashboard-courses{padding-inline:12px}.dashboard-section-header h2{font-size:17px}.dashboard-section-header a,.dashboard-section-header>span{font-size:11px}.dashboard-task-row{padding-inline:9px}.dashboard-course-list article{gap:6px;padding-inline:3px}.dashboard-course-list article.is-current{padding-inline:6px}.dashboard-calendar{padding-inline:12px}.dashboard-calendar-strip{gap:4px}.dashboard-calendar-strip>a{padding-inline:6px}.dashboard-calendar-strip>a>span{gap:0;display:grid}.dashboard-quick{padding-inline:12px}.dashboard-quick>div{gap:8px}.dashboard-quick a,.dashboard-quick-disabled{min-height:82px;padding-inline:3px}}@media (max-width:370px){.dashboard-profile-avatar .avatar{width:48px;height:48px;font-size:18px}.dashboard-two-column{grid-template-columns:1fr}.dashboard-course-list article{gap:8px;padding-inline:5px}.dashboard-quick>div{grid-template-columns:repeat(2,1fr)}}.schedule-page{max-width:760px;padding-top:calc(24px + env(safe-area-inset-top));color:#181b19;position:relative}.schedule-page-header{justify-content:space-between;align-items:flex-start;gap:18px;min-height:70px;padding:2px 2px 12px;display:flex}.schedule-page-header h1,.schedule-page-header p{margin:0}.schedule-page-header h1{letter-spacing:-.04em;font-size:clamp(27px,5vw,33px);font-weight:780;line-height:1.2}.schedule-page-header p{color:var(--muted);margin-top:7px;font-size:14px;font-weight:540}.schedule-page-header .page-actions-menu summary{background:var(--surface-muted)}.schedule-page-header>span{width:44px;height:44px}.schedule-tabs{border-bottom:1px solid #eceeed;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;min-height:54px;margin:0 -2px 14px;display:grid}.schedule-tabs a{color:#747a76;place-items:center;font-size:15px;font-weight:650;text-decoration:none;display:grid;position:relative}.schedule-tabs a.active{color:#3ea855;font-weight:760}.schedule-tabs a.active:after{content:"";background:#4ab45f;border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:16%;right:16%}.todo-subtabs{background:var(--surface-muted);border:1px solid var(--border);border-radius:16px;grid-template-columns:repeat(2,1fr);gap:8px;margin:0 0 14px;padding:4px;display:grid}.todo-subtabs a{min-height:38px;color:var(--muted-strong);border-radius:12px;place-items:center;font-size:14px;font-weight:650;text-decoration:none;display:grid}.todo-subtabs a.active{color:var(--primary-strong);background:var(--surface);box-shadow:0 5px 16px #2433280f}.schedule-view-heading{margin:18px 2px 12px}.schedule-view-heading h2{margin:0;font-size:17px;font-weight:760}.schedule-page .todo-list article{grid-template-columns:68px minmax(0,1fr) auto;gap:8px;min-height:70px;padding:10px 12px}.schedule-page .todo-list time{white-space:nowrap;grid-column:auto;font-size:13px}.schedule-page .todo-list article>div:not(.todo-actions){min-width:0}.schedule-page .todo-list h2,.schedule-page .todo-list p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.schedule-page .todo-actions{gap:6px}.schedule-page .todo-actions a,.schedule-page .todo-list button{width:38px;height:38px}.schedule-page .todo-actions .complete-button{min-height:38px;padding:0;font-size:0}.timetable-floating-actions{position:relative}.timetable-floating-actions>summary{cursor:pointer;list-style:none}.timetable-floating-actions>summary::-webkit-details-marker{display:none}.timetable-floating-actions[open]>summary svg{transform:rotate(45deg)}.timetable-floating-actions>summary svg{transition:transform var(--duration-fast) ease}.timetable-floating-actions>div{z-index:39;right:max(18px, calc((100vw - var(--content-width)) / 2 + 18px));bottom:calc(var(--nav-height) + 88px + env(safe-area-inset-bottom));background:var(--surface-elevated);border:1px solid var(--border);width:min(220px,100vw - 36px);box-shadow:var(--shadow-lg);border-radius:18px;padding:6px;position:fixed;overflow:hidden}.timetable-floating-actions>div a{min-height:62px;color:inherit;border-radius:13px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:grid}.timetable-floating-actions>div a:hover{background:var(--surface-muted)}.timetable-floating-actions>div svg{width:21px;color:var(--primary-strong)}.timetable-floating-actions>div strong,.timetable-floating-actions>div small{display:block}.timetable-floating-actions>div strong{font-size:14px}.timetable-floating-actions>div small{color:var(--muted);margin-top:2px;font-size:11px}.schedule-calendar-panel{margin-bottom:18px;padding:5px 4px 14px}.schedule-week-heading{grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;min-height:50px;display:grid}.schedule-week-heading>a{color:#555c58;justify-content:center;align-items:center;gap:7px;min-height:42px;text-decoration:none;display:flex}.schedule-week-heading>a:nth-child(2){color:#222623;justify-self:center;font-size:15px}.schedule-week-heading svg{width:19px;height:19px}.schedule-week-heading>a:nth-child(2) svg:first-child{color:#7c827e;width:17px}.schedule-week-heading>a:nth-child(2) svg:last-child{width:14px}.schedule-week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.schedule-week-strip a{color:#727874;border-radius:15px;align-content:center;justify-items:center;gap:1px;min-width:0;min-height:73px;text-decoration:none;display:grid}.schedule-week-strip span{font-size:12px}.schedule-week-strip strong{color:#292e2b;font-size:19px;line-height:1.35}.schedule-week-strip small{color:#999e9b;font-size:10px}.schedule-week-strip a.today{color:#fff;background:linear-gradient(150deg,#62c275,#3fab55);box-shadow:0 8px 18px #3fab5538}.schedule-week-strip a.today strong,.schedule-week-strip a.today small{color:#fff}.schedule-section{margin-bottom:20px}.schedule-section-header{justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding-inline:2px;display:flex}.schedule-section-header h2{letter-spacing:-.02em;margin:0;font-size:17px;font-weight:760}.schedule-section-header a{color:#858b87;white-space:nowrap;align-items:center;min-height:40px;font-size:12px;text-decoration:none;display:inline-flex}.schedule-section-header a svg{width:16px;height:16px}.schedule-event-list,.schedule-todo-list{gap:8px;display:grid}.schedule-event-list>a{min-height:88px;color:inherit;background:#fff;border:1px solid #f0f1f0;border-radius:17px;grid-template-columns:68px 48px minmax(0,1fr) 22px;align-items:center;gap:12px;padding:10px 14px 10px 8px;text-decoration:none;display:grid;box-shadow:0 5px 18px #2433280a}.schedule-event-list time{color:#727874;text-align:center;border-right:1px solid #eff1ef;place-content:center;align-self:stretch;padding-right:8px;font-size:11px;display:grid}.schedule-event-list time strong,.schedule-event-list time span{display:block}.schedule-event-list time strong{font-size:12px}.schedule-event-list>a>i{border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.schedule-event-list>a>i svg{width:24px;height:24px}.schedule-event-list>a>div{min-width:0}.schedule-event-list h3,.schedule-event-list p{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.schedule-event-list h3{font-size:15px}.schedule-event-list p{color:#858b87;margin-top:4px;font-size:12px}.schedule-event-list>a>svg{color:#a7aca9;width:18px}.schedule-event-list .tone-green>i{color:#44ad5b;background:#eaf7ec}.schedule-event-list .tone-orange>i{color:#f08e27;background:#fff2e5}.schedule-event-list .tone-blue>i{color:#4e91e8;background:#edf4fe}.schedule-event-list .tone-purple>i{color:#9462df;background:#f4edfd}.schedule-course-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.schedule-course-row>a{color:#272b28;background:#fff;border:1px solid #f0f1f0;border-radius:17px;flex-direction:column;min-width:0;min-height:135px;padding:14px 12px 11px;text-decoration:none;display:flex;position:relative;box-shadow:0 5px 18px #2433280a}.schedule-course-row>a:before{content:"";border-radius:0 4px 4px 0;width:3px;position:absolute;top:13px;bottom:13px;left:-1px}.schedule-course-row>a>div{align-items:center;gap:4px;display:flex}.schedule-course-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.schedule-course-row em{color:#ef912a;flex:none;font-size:10px;font-style:normal}.schedule-course-row time,.schedule-course-row span{color:#7b817d;white-space:nowrap;font-size:11px}.schedule-course-row time{margin-top:8px}.schedule-course-row span{margin-top:2px}.schedule-course-row i{border-radius:11px;place-items:center;width:35px;height:35px;margin-top:auto;display:grid}.schedule-course-row i svg{width:20px;height:20px}.schedule-course-row .tone-green:before{background:#4ab461}.schedule-course-row .tone-green i{color:#43a958;background:#eaf7ec}.schedule-course-row .tone-orange:before{background:#f19a35}.schedule-course-row .tone-orange i{color:#ec8c25;background:#fff3e6}.schedule-course-row .tone-blue:before{background:#4e91e8}.schedule-course-row .tone-blue i{color:#4e91e8;background:#edf4fe}.schedule-course-row .tone-purple:before{background:#9a67e8}.schedule-course-row .tone-purple i{color:#9462df;background:#f4edfd}.schedule-todo-list>a{min-height:70px;color:inherit;background:#fff;border:1px solid #f0f1f0;border-radius:16px;grid-template-columns:38px minmax(0,1fr) auto 20px;align-items:center;gap:11px;padding:10px 13px;text-decoration:none;display:grid;box-shadow:0 5px 18px #2433280a}.schedule-todo-list>a>i{border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.schedule-todo-list>a>i svg{width:19px;height:19px}.schedule-todo-list>a>div{min-width:0}.schedule-todo-list strong,.schedule-todo-list span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.schedule-todo-list strong{font-size:14px}.schedule-todo-list span{color:#858b87;margin-top:3px;font-size:11px}.schedule-todo-list em{color:#ed8b27;background:#fff2e5;border-radius:999px;padding:3px 8px;font-size:10px;font-style:normal;font-weight:700}.schedule-todo-list>a>svg{color:#a7aca9;width:17px}.schedule-todo-list .tone-green>i{color:#43a958;background:#eaf7ec}.schedule-todo-list .tone-orange>i{color:#ec8c25;background:#fff3e6}.schedule-todo-list .tone-blue>i{color:#4e91e8;background:#edf4fe}.schedule-inline-empty{color:#707773;background:#f6f8f6;border-radius:17px;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:78px;padding:12px 15px;text-decoration:none;display:grid}.schedule-inline-empty>svg:first-child{color:#62b873;width:29px;height:29px}.schedule-inline-empty span strong,.schedule-inline-empty span small{display:block}.schedule-inline-empty span strong{color:#333834;font-size:14px}.schedule-inline-empty span small{margin-top:2px;font-size:11px}.schedule-inline-empty>svg:last-child{width:17px}.schedule-add-button{z-index:25;right:max(18px,50vw - 362px);bottom:calc(var(--nav-height) + 16px + env(safe-area-inset-bottom));color:#fff;background:linear-gradient(150deg,#61c174,#3da954);border-radius:50%;align-content:center;place-items:center;gap:1px;width:70px;height:70px;text-decoration:none;display:grid;position:fixed;box-shadow:0 12px 28px #3a994c47}.schedule-add-button svg{width:28px;height:28px}.schedule-add-button span{font-size:10px;font-weight:700}.morning-week-nav{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-height:46px;margin:0 0 12px;display:grid}.morning-week-nav a,.morning-week-nav>span{width:44px;height:44px;color:var(--primary-strong);border-radius:14px;place-items:center;text-decoration:none;display:grid}.morning-week-nav>span{color:var(--muted);opacity:.3}.morning-week-nav svg{width:20px}.morning-week-title{text-align:center;gap:1px;display:grid}.morning-week-title strong{font-size:16px;font-weight:730}.morning-week-title span{color:var(--muted);font-size:12px;font-weight:600}.morning-back-week{justify-content:center;margin:-2px 0 12px;display:flex}.morning-back-week a{min-height:32px;color:var(--primary-strong);background:var(--primary-soft);border-radius:999px;place-items:center;padding:0 15px;font-size:13px;font-weight:660;text-decoration:none;display:grid}.morning-week{background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden}.morning-head,.morning-row{grid-template-columns:66px minmax(0,1fr) minmax(0,1fr) 46px;align-items:center;gap:8px;padding:9px 12px;display:grid}.morning-head{color:var(--muted);text-align:center;padding-bottom:1px;font-size:13px;font-weight:650}.morning-row{border-top:1px solid var(--border);min-height:64px}.morning-row.is-mine{box-shadow:inset 3px 0 0 var(--primary)}.morning-row.is-suspended{opacity:.55;box-shadow:inset 3px 0 0 var(--muted)}.morning-row.is-today .morning-day strong{color:var(--primary-strong)}.morning-day{gap:1px;display:grid}.morning-day strong{font-size:15px;font-weight:720}.morning-day time{color:var(--muted);font-size:12px;font-weight:600}.morning-row form{display:grid}.morning-cell{min-height:44px;color:var(--muted);background:var(--surface-muted);border:1px solid #0000;border-radius:14px;place-items:center;font-size:16px;font-weight:700;display:grid}.morning-cell.is-mine{color:var(--primary-strong);background:var(--primary-soft);border-color:var(--primary-soft)}.morning-suspended{min-height:44px;color:var(--muted);background:var(--surface-muted);border-radius:14px;grid-column:span 2;place-items:center;font-size:16px;font-weight:700;display:grid}.morning-suspend{width:40px;height:40px;color:var(--muted);background:var(--surface-muted);border:0;border-radius:13px;place-items:center;display:grid}.morning-row.is-suspended .morning-suspend{color:var(--primary-strong);background:var(--primary-soft)}.morning-suspend svg{width:17px}.afterschool-lessons{min-height:44px;color:var(--muted);place-items:center;font-size:15px;font-weight:700;display:grid}.afterschool-week .morning-row.is-custom{box-shadow:inset 3px 0 0 var(--accent-gold,#c99400)}.morning-summary{background:var(--surface);border:1px solid var(--border);border-radius:20px;margin-top:16px;padding:15px 16px}.morning-bar{background:var(--surface-muted);border-radius:999px;height:10px;display:flex;overflow:hidden}.morning-bar span{background:var(--primary);border-radius:999px;height:100%}.morning-summary ul{gap:9px;margin:13px 0 0;padding:0;list-style:none;display:grid}.morning-summary li{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.morning-summary li>span{color:var(--muted);font-size:14px;font-weight:650}.morning-summary li strong{font-size:17px;font-weight:740}.morning-summary li em{color:var(--muted);font-size:14px;font-style:normal;font-weight:700}@media (hover:hover){.schedule-tabs a:hover,.schedule-section-header a:hover{color:var(--primary-strong)}.schedule-event-list>a:hover,.schedule-course-row>a:hover,.schedule-todo-list>a:hover{transform:translateY(-1px)}}@media (max-width:560px){.schedule-page{width:calc(100% - 24px);padding-top:calc(18px + env(safe-area-inset-top))}.schedule-page-header{min-height:66px}.schedule-tabs{margin-bottom:10px}.schedule-tabs a{font-size:14px}.schedule-calendar-panel{margin-inline:-4px}.schedule-week-strip{gap:2px}.schedule-week-strip a{border-radius:13px;min-height:69px}.schedule-week-strip strong{font-size:18px}.schedule-event-list>a{grid-template-columns:58px 42px minmax(0,1fr) 16px;gap:9px;padding-right:10px}.schedule-event-list>a>i{width:40px;height:40px}.schedule-course-row{grid-template-columns:repeat(4,minmax(116px,1fr));gap:7px;padding-bottom:2px;overflow-x:auto}.schedule-course-row>a{min-height:130px}.schedule-add-button{width:66px;height:66px;right:16px}}@media (max-width:370px){.morning-head,.morning-row{grid-template-columns:56px minmax(0,1fr) minmax(0,1fr) 40px;gap:6px;padding-inline:9px}.morning-suspend{width:36px;height:36px}.schedule-week-strip small{display:none}.schedule-week-strip a{min-height:58px}.schedule-event-list>a{grid-template-columns:48px 38px minmax(0,1fr)}.schedule-event-list>a>svg,.schedule-todo-list em{display:none}.schedule-todo-list>a{grid-template-columns:36px minmax(0,1fr) 18px}}.reminder-page{max-width:760px;padding-top:calc(24px + env(safe-area-inset-top))}.reminder-page__hero{justify-content:space-between;align-items:flex-start;gap:18px;min-height:98px;padding-inline:2px;display:flex}.reminder-page__hero h1,.reminder-page__hero p{margin:0}.reminder-page__hero h1{letter-spacing:-.035em;font-size:clamp(25px,5vw,31px);font-weight:770;line-height:1.25}.reminder-page__hero p{color:var(--muted);margin-top:8px;font-size:15px;font-weight:540}.reminder-page__hero button{width:46px;height:46px;color:var(--foreground);background:var(--surface-muted);border:0;border-radius:50%;place-items:center;padding:0;display:grid}.reminder-page__hero button svg{width:24px;height:24px}.reminder-search{background:var(--surface-muted);border-radius:18px;align-items:center;gap:10px;min-height:50px;margin-bottom:14px;padding-inline:16px;display:flex}.reminder-search svg{color:#969c98;width:20px;height:20px}.reminder-search input{min-width:0;color:var(--foreground);background:0 0;border:0;outline:0;flex:1;padding:0;font-size:14px}.reminder-search input::placeholder{color:#9da29f}.reminder-filter-row{justify-content:space-between;align-items:center;gap:14px;min-height:48px;margin-bottom:12px;display:flex}.reminder-filter-row nav{scrollbar-width:none;align-items:center;gap:8px;display:flex;overflow-x:auto}.reminder-filter-row nav::-webkit-scrollbar{display:none}.reminder-filter-row nav a{min-height:36px;color:var(--muted-strong);background:#f7f8f7;border:1px solid #e8eae9;border-radius:999px;flex:none;align-items:center;padding-inline:16px;font-size:13px;text-decoration:none;display:inline-flex}.reminder-filter-row nav a.active{color:var(--primary-strong);border-color:var(--primary);background:#fff;font-weight:700}.reminder-filter-row>span{color:var(--muted);flex:none;align-items:center;gap:5px;font-size:13px;display:flex}.reminder-filter-row>span svg{width:17px;height:17px}.reminder-filter-row>span svg:last-child{width:14px}.reminder-summary{margin-bottom:18px;padding:12px 5px}.reminder-summary .stat-item{min-height:104px}.reminder-summary .stat-item__icon{width:40px;height:40px}.reminder-summary .stat-item__icon svg{width:23px;height:23px}.reminder-summary .stat-item__label{color:var(--muted-strong);font-size:12px}.reminder-summary .stat-item strong{font-size:27px}.reminder-list-section>header{justify-content:space-between;align-items:center;gap:16px;min-height:50px;padding-inline:2px;display:flex}.reminder-list-section>header h2{margin:0;font-size:18px;font-weight:760}.reminder-list-section>header span{color:var(--muted);align-items:center;gap:5px;font-size:13px;display:flex}.reminder-list-section>header svg{width:17px;height:17px}.reminder-list-section>header svg:last-child{width:14px}.reminder-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.reminder-list>a{min-height:92px;color:inherit;border-bottom:1px solid var(--separator);grid-template-columns:44px 48px minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:12px 16px;text-decoration:none;display:grid}.reminder-list>a:last-child{border-bottom:0}.reminder-list>a.is-completed{color:#7e847f}.reminder-list__bell{width:42px;height:42px;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;place-items:center;display:grid}.reminder-list__bell svg{width:21px;height:21px}.reminder-list>a.is-completed .reminder-list__bell{color:#9ca29e;background:#f3f4f3}.reminder-list .avatar{border:0}.reminder-list__content{gap:2px;min-width:0;display:grid}.reminder-list__content>span{align-items:center;gap:8px;min-width:0;display:flex}.reminder-list__content strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.3;overflow:hidden}.reminder-list__content .tag{flex:none}.reminder-list__content>small{color:var(--muted);font-size:12px}.reminder-list__content time{color:var(--muted);align-items:center;gap:5px;margin-top:2px;font-size:11px;display:flex}.reminder-list__content time svg{width:14px;height:14px}.reminder-list__content time span{margin-left:8px}.reminder-list__chevron{color:#a0a5a2;width:18px;height:18px}.reminder-add{color:#fff;text-decoration:none}.reminder-empty{min-height:230px;color:var(--muted);background:var(--surface-muted);border-radius:var(--radius-md);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.reminder-empty>svg{width:42px;height:42px;color:var(--primary)}.reminder-empty h2{color:var(--foreground);margin:3px 0 0;font-size:18px}.reminder-empty p{margin:0;font-size:13px}.app-frame:has(.reminder-page) .bottom-nav a[href=\/classes]{color:var(--primary-strong);font-weight:700}.reminder-form-page{max-width:680px;padding-top:calc(12px + env(safe-area-inset-top))}.student-reminder-form{gap:0;display:grid}.reminder-form-header{border-bottom:1px solid var(--separator);grid-template-columns:54px minmax(0,1fr) 54px;align-items:center;min-height:62px;margin-bottom:14px;display:grid}.reminder-form-header>a{width:44px;height:44px;color:var(--foreground);border-radius:50%;place-items:center;display:grid}.reminder-form-header>a svg{width:25px;height:25px}.reminder-form-header h1{text-align:center;letter-spacing:-.025em;margin:0;font-size:21px;font-weight:760}.reminder-form-header>button{min-height:44px;color:var(--primary-strong);background:0 0;border:0;padding:0;font-size:15px;font-weight:700}.reminder-form-header>button:disabled,.reminder-submit:disabled{opacity:.45}.reminder-form-section{border-bottom:1px solid var(--separator);padding:15px 6px 17px}.reminder-form-section>label:first-child{color:var(--foreground);margin-bottom:10px;font-size:15px;font-weight:740;display:block}.reminder-form-section>label em,.student-picker-field>label em{color:var(--danger);font-style:normal}.reminder-content-field>div{position:relative}.reminder-content-field textarea{resize:vertical;width:100%;color:var(--foreground);border-radius:var(--radius-sm);font:inherit;background:#f7f8f8;border:1px solid #0000;outline:0;padding:13px 14px 30px;font-size:14px;display:block}.reminder-content-field textarea:focus{background:#fff;border-color:#bfe3c6;box-shadow:0 0 0 4px #54b8681a}.reminder-content-field textarea::placeholder{color:#9da29f}.reminder-content-field>div>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;position:absolute;bottom:9px;right:13px}.reminder-student-picker{width:100%;min-height:54px;color:var(--foreground);border-radius:var(--radius-sm);text-align:left;background:#f7f8f8;border:0;grid-template-columns:38px auto minmax(0,1fr) 18px;align-items:center;gap:9px;padding:8px 13px;display:grid}.reminder-student-picker .avatar,.reminder-student-options .avatar{border:0}.reminder-student-picker>strong{font-size:14px}.reminder-student-picker>span:not(.reminder-student-placeholder){color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.reminder-student-picker>svg{width:18px;height:18px;color:var(--muted)}.reminder-student-placeholder{width:36px;height:36px;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;place-items:center;display:grid}.reminder-student-placeholder svg{width:19px;height:19px}.reminder-student-options{z-index:10;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);background:#fff;margin-top:8px;position:relative;overflow:hidden}.reminder-student-options>label{border-bottom:1px solid var(--separator);grid-template-columns:20px minmax(0,1fr) 36px;align-items:center;gap:8px;min-height:48px;padding:4px 8px 4px 13px;display:grid}.reminder-student-options>label>svg{width:19px;height:19px;color:var(--muted)}.reminder-student-options input{background:0 0;border:0;outline:0;min-width:0;padding:0}.reminder-student-options>label button{width:34px;height:34px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid}.reminder-student-options>label button svg{width:18px;height:18px}.reminder-student-options>div{max-height:260px;padding:4px;overflow-y:auto}.reminder-student-options>div>button{width:100%;min-height:52px;color:inherit;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:9px;padding:6px 9px;display:grid}.reminder-student-options>div>button:hover{background:var(--surface-muted)}.reminder-student-options>div>button span{display:grid}.reminder-student-options>div>button strong{font-size:14px}.reminder-student-options>div>button small{color:var(--muted);font-size:11px}.reminder-student-options>div>button>svg{width:18px;height:18px;color:var(--primary-strong)}.reminder-student-options>div>p{color:var(--muted);text-align:center;margin:0;padding:24px;font-size:13px}.student-picker-field>label{color:var(--foreground);margin-bottom:8px;font-weight:700;display:block}.student-picker-field .reminder-student-picker{border:1px solid var(--border)}.reminder-time-grid{grid-template-columns:1.3fr .8fr;gap:10px;display:grid}.reminder-time-grid>label{border-radius:var(--radius-sm);background:#f7f8f8;grid-template-columns:21px minmax(0,1fr);align-items:center;gap:9px;min-height:52px;padding-inline:13px;display:grid}.reminder-time-grid svg{width:20px;height:20px;color:var(--muted)}.reminder-time-grid input{min-width:0;color:var(--foreground);font:inherit;background:0 0;border:0;outline:0;padding:0;font-size:14px;font-weight:650}.reminder-choice-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.reminder-choice-cards>label input,.reminder-priority>label input{opacity:0;pointer-events:none;position:absolute}.reminder-choice-cards>label>span{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:#fff;grid-template-rows:auto auto;grid-template-columns:46px minmax(0,1fr);align-content:center;column-gap:9px;min-height:78px;padding:10px 13px;display:grid}.reminder-choice-cards>label input:checked+span,.reminder-priority>label input:checked+span{background:var(--primary-softer);border-color:var(--primary)}.reminder-choice-cards i{width:42px;height:42px;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;grid-row:1/span 2;place-items:center;display:grid}.reminder-choice-cards i svg{width:23px;height:23px}.reminder-choice-cards strong{align-self:end;font-size:14px}.reminder-choice-cards small{color:var(--muted);align-self:start;font-size:11px}.reminder-choice-cards>label:last-child i{color:#787e88;background:#f1f2f4}.reminder-priority{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.reminder-priority>label>span{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:9px;min-height:48px;font-size:13px;font-weight:650;display:flex}.reminder-priority i{border:3px solid;border-radius:50%;width:9px;height:9px}.reminder-priority i.green{background:var(--primary);border-color:#dff2e3}.reminder-priority i.orange{background:var(--warning);border-color:#ffead0}.reminder-priority i.red{background:var(--danger);border-color:#ffd9d7}.reminder-select-row{border-radius:var(--radius-sm);background:#f7f8f8;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:52px;padding-inline:13px;margin:0!important;display:grid!important}.reminder-select-row>svg{width:20px;height:20px;color:var(--muted)}.reminder-select-row select{width:100%;color:var(--foreground);appearance:none;font:inherit;background:0 0;border:0;outline:0;font-size:14px;font-weight:650}.reminder-note-field{border-bottom:0}.reminder-submit{color:#fff;border-radius:var(--radius-sm);background:linear-gradient(145deg,#58bb6b,#43a957);border:0;min-height:52px;margin:10px 0 4px;font-size:16px;font-weight:740;box-shadow:0 8px 18px #43a9572e}.app-frame:has(.reminder-form-page) .bottom-nav{display:none}.app-frame:has(.reminder-form-page){padding-bottom:0}.unified-form-page{max-width:var(--content-narrow)}.unified-create-form{gap:16px}.unified-create-form .field{gap:8px}.unified-create-form .field>span,.unified-create-form .student-picker-field>label,.unified-choice-field>legend{color:var(--foreground);font-size:14px;font-weight:700}.unified-create-form em,.unified-choice-field em{color:var(--danger);font-style:normal}.unified-create-form .field input,.unified-create-form .reminder-student-picker{min-height:52px}.unified-create-form .unified-content-input{resize:vertical;height:92px;min-height:92px}.unified-create-form>.button{width:100%;min-height:52px}.unified-choice-field{border:0;min-width:0;margin:0;padding:0}.unified-choice-field>legend{margin-bottom:8px;padding:0}.unified-choice-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.unified-choice-grid input{opacity:0;pointer-events:none;position:absolute}.unified-choice-grid span{min-height:48px;color:var(--muted);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;place-items:center;font-size:14px;font-weight:650;display:grid}.unified-choice-grid input:checked+span{color:var(--primary-strong);background:var(--primary-soft);border-color:var(--primary)}.event-contact-field{border:0;min-width:0;margin:0;padding:0}.event-contact-field>legend{color:var(--foreground);margin-bottom:8px;padding:0;font-size:14px;font-weight:700}.event-contact-option{background:var(--surface-muted);border-radius:var(--radius-sm);cursor:pointer;min-height:68px;transition:background var(--duration-fast), border-color var(--duration-fast);border:1px solid #0000;grid-template-columns:38px minmax(0,1fr) 42px;align-items:center;gap:11px;padding:10px 12px;display:grid;position:relative}.event-contact-option>input{opacity:0;pointer-events:none;position:absolute}.event-contact-option>i{width:38px;height:38px;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;place-items:center;font-style:normal;display:grid}.event-contact-option>i svg{width:20px;height:20px}.event-contact-option>span{gap:2px;min-width:0;display:grid}.event-contact-option strong{color:var(--foreground);font-size:14px;font-weight:700}.event-contact-option small{color:var(--muted);font-size:12px;font-weight:450;line-height:1.4}.event-contact-option>b{background:var(--border-strong);width:42px;height:24px;transition:background var(--duration-fast);border-radius:999px;position:relative}.event-contact-option>b:after{content:"";background:var(--surface);width:18px;height:18px;transition:transform var(--duration-fast);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #1e2d222e}.event-contact-option:has(input:checked){background:var(--primary-softer);border-color:var(--primary)}.event-contact-option>input:checked~b{background:var(--primary-strong)}.event-contact-option>input:checked~b:after{transform:translate(18px)}.event-contact-option>input:focus-visible~b{outline-offset:2px;outline:3px solid #54b8683d}.unified-form-more{border-top:1px solid var(--separator)}.unified-form-more>summary{min-height:46px;color:var(--muted);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:13px;list-style:none;display:flex}.unified-form-more>summary::-webkit-details-marker{display:none}.unified-form-more>summary>span{color:var(--foreground);font-weight:650}.unified-form-more>summary>small:after{content:"›";margin-left:6px;font-size:17px}.unified-form-more[open]>summary>small:after{content:"⌄"}.unified-form-more>.field,.unified-form-more>.form-stack{padding-top:4px}.unified-form-more .field>small{color:var(--muted);font-size:12px}.communication-screenshot-field{min-width:0}.communication-screenshot-field__picker{min-width:0;min-height:92px;color:var(--foreground);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:#f7f8f8;grid-template-rows:auto auto;grid-template-columns:42px minmax(0,1fr);align-content:center;gap:2px 10px;padding:13px;display:grid}.communication-screenshot-field__picker>svg{width:38px;height:38px;color:var(--primary-strong);background:var(--primary-soft);border-radius:12px;grid-row:1/span 2;align-self:center;padding:8px}.communication-screenshot-field__picker strong,.communication-screenshot-field__picker small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.communication-screenshot-field__picker strong{align-self:end;font-size:14px}.communication-screenshot-field__picker small{color:var(--muted);align-self:start;font-size:11px}.communication-screenshot-field__picker input{opacity:0;pointer-events:none;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.communication-screenshot-field__actions{align-items:center;gap:10px;display:flex}.communication-screenshot-field__actions .button{flex:none;min-height:42px;padding-inline:14px}.communication-screenshot-field__actions svg{width:17px;height:17px}.communication-screenshot-field__actions>small{color:var(--muted);font-size:11px;line-height:1.45}.communication-screenshot-field__message{border-radius:10px;margin:0;padding:8px 10px;font-size:12px;line-height:1.55}.communication-screenshot-field__message.is-success{color:#367343;background:#e8f5ea}.communication-screenshot-field__message.is-error{color:#94443d;background:#fae9e7}.communication-screenshot-field .is-spinning{animation:.8s linear infinite spin}.communication-edit-form .field>small{color:var(--muted);font-size:12px;line-height:1.5}.communication-edit-form__existing{border:0;min-width:0;margin:0;padding:0}.communication-edit-form__existing legend{color:var(--foreground);margin-bottom:7px;padding:0;font-size:14px;font-weight:700}.communication-edit-form__existing>div{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:9px;display:grid}.communication-edit-form__existing label{border:1px solid var(--border);cursor:pointer;background:#f7f8f8;border-radius:12px;gap:6px;min-width:0;padding:7px;display:grid}.communication-edit-form__existing img{aspect-ratio:4/3;object-fit:cover;border-radius:8px;width:100%}.communication-edit-form__existing label>span{color:var(--muted-strong);justify-content:center;align-items:center;gap:5px;font-size:12px;font-weight:650;display:inline-flex}.communication-edit-form__existing input[type=checkbox]{width:16px;height:16px;min-height:16px;accent-color:var(--primary-strong);padding:0}@media (max-width:390px){.communication-screenshot-field__actions{flex-direction:column;align-items:stretch}.communication-screenshot-field__actions .button{width:100%}}.app-frame:has(.unified-form-page) .bottom-nav{display:none}.app-frame:has(.unified-form-page){padding-bottom:0}@media (max-width:560px){.reminder-page{width:min(100% - 28px,760px);padding-top:calc(18px + env(safe-area-inset-top))}.reminder-page__hero{min-height:91px}.reminder-page__hero h1{font-size:25px}.reminder-filter-row nav{gap:7px}.reminder-filter-row nav a{min-height:34px;padding-inline:14px;font-size:12px}.reminder-filter-row>span{font-size:12px}.reminder-summary{padding:9px 2px}.reminder-summary .stat-item{min-width:0;min-height:92px;padding-inline:4px}.reminder-summary .stat-item__icon{width:36px;height:36px}.reminder-summary .stat-item__label{font-size:11px}.reminder-summary .stat-item strong{font-size:23px}.reminder-list>a{grid-template-columns:40px 44px minmax(0,1fr) auto 16px;gap:8px;padding-inline:11px}.reminder-list__bell{width:38px;height:38px}.reminder-list__content>span .tag{display:none}.reminder-list>a>.tag{padding-inline:8px;font-size:10px}.reminder-form-page{width:min(100% - 24px,680px);padding-top:env(safe-area-inset-top);padding-bottom:18px}.reminder-form-header{margin-inline:-4px}.reminder-form-section{padding-inline:2px}.reminder-time-grid{grid-template-columns:1.35fr .8fr;gap:8px}.reminder-time-grid>label,.reminder-choice-cards>label>span{padding-inline:10px}}@media (max-width:390px){.reminder-list>a{grid-template-columns:38px 40px minmax(0,1fr) auto 16px;gap:6px}.reminder-filter-row>span{font-size:0}.reminder-choice-cards{grid-template-columns:1fr}}.score-page{max-width:760px;padding-top:calc(25px + env(safe-area-inset-top))}.score-page__header{justify-content:space-between;align-items:flex-start;gap:18px;min-height:90px;display:flex}.score-page__header h1{letter-spacing:-.035em;margin:0;font-size:clamp(25px,5vw,31px);font-weight:770;line-height:1.25}.score-page__header>span{background:var(--surface-muted);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.score-page__header svg{width:22px;height:22px}.score-exam-overview>header{justify-content:space-between;align-items:flex-start;gap:16px;min-height:64px;margin-bottom:14px;padding-inline:2px;display:flex}.score-exam-overview>header h2,.score-exam-overview>header p{margin:0}.score-exam-overview>header h2{letter-spacing:-.02em;font-size:18px;font-weight:760}.score-exam-overview>header p{color:var(--muted);margin-top:5px;font-size:12px}.score-exam-overview>header>a{min-height:42px;color:var(--primary-strong);border:1px solid var(--primary);white-space:nowrap;background:#fff;border-radius:10px;align-items:center;gap:5px;padding-inline:14px;font-size:13px;font-weight:720;text-decoration:none;display:inline-flex}.score-exam-overview>header>a svg{width:18px;height:18px}.score-exam-list{gap:14px;display:grid}.score-exam-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.score-exam-card__summary{min-height:116px;color:inherit;grid-template-columns:52px minmax(0,1fr) 18px;align-items:center;gap:14px;padding:16px;text-decoration:none;display:grid}.score-exam-card__summary>span{width:48px;height:48px;color:var(--primary-strong);background:#e8f6ea;border-radius:50%;place-items:center;display:grid}.score-exam-card__summary>span svg{width:26px;height:26px}.score-exam-card__summary h3,.score-exam-card__summary p{margin:0}.score-exam-card__summary h3{text-overflow:ellipsis;white-space:nowrap;margin-bottom:7px;font-size:17px;line-height:1.25;overflow:hidden}.score-exam-card__summary p{color:var(--muted-strong);font-size:12px;line-height:1.8}.score-exam-card__summary>svg{color:#9aa19c;width:18px;height:18px}.score-exam-card footer{grid-template-columns:1fr 1fr;gap:12px;padding:0 16px 16px;display:grid}.score-exam-card footer a{min-height:42px;color:var(--foreground);border:1px solid var(--border-strong);background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.score-exam-card footer a:last-child{color:var(--primary-strong);border-color:#b9dfc0}.score-exam-card footer svg{width:17px;height:17px}.score-empty{min-height:340px;color:var(--muted);background:var(--surface-muted);border-radius:var(--radius-md);text-align:center;place-content:center;place-items:center;gap:10px;padding:30px;display:grid}.score-empty>svg{width:48px;height:48px;color:var(--primary)}.score-empty h2,.score-empty p{margin:0}.score-empty h2{color:var(--foreground);font-size:19px}.score-empty p{margin-bottom:8px;font-size:13px}.score-detail-topbar{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-height:58px;margin-bottom:12px;display:grid}.score-detail-back{width:44px;height:44px;color:var(--foreground);border-radius:50%;place-items:center;display:grid}.score-detail-back svg{width:22px;height:22px}.score-detail-topbar .page-actions-menu summary{background:var(--surface-muted)}.score-detail-topbar .page-actions-menu a,.score-detail-topbar .page-actions-menu .danger-link{align-items:center;gap:9px;display:flex}.score-detail-topbar .page-actions-menu a svg,.score-detail-topbar .page-actions-menu .danger-link svg{width:18px;height:18px}.exam-switch-menu,.manual-exam-switch{min-width:0;position:relative}.exam-switch-menu summary,.manual-exam-switch summary{cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:5px;min-height:44px;font-size:18px;font-weight:760;list-style:none;display:flex}.exam-switch-menu summary::-webkit-details-marker{display:none}.manual-exam-switch summary::-webkit-details-marker{display:none}.exam-switch-menu summary svg,.manual-exam-switch summary svg{width:16px;height:16px;transition:transform .16s}.exam-switch-menu[open] summary svg,.manual-exam-switch[open] summary svg{transform:rotate(180deg)}.exam-switch-menu>div,.manual-exam-switch>div{z-index:20;border:1px solid var(--border);width:min(230px,76vw);box-shadow:var(--shadow-lg);background:#fffffffa;border-radius:14px;padding:6px;position:absolute;top:48px;left:50%;overflow:hidden;transform:translate(-50%)}.exam-switch-menu>div a,.manual-exam-switch>div a{min-height:44px;color:var(--foreground);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding-inline:12px;font-size:14px;text-decoration:none;display:flex}.exam-switch-menu>div a:hover,.manual-exam-switch>div a:hover{background:var(--surface-muted)}.exam-switch-menu>div a.is-active,.manual-exam-switch>div a.is-active{font-weight:700}.exam-switch-menu>div svg,.manual-exam-switch>div svg{width:17px;height:17px;color:var(--primary-strong)}.score-save-message{margin:0 0 12px}.score-detail-page .score-metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:14px;padding:12px 10px 10px;display:block}.score-detail-page .score-metric-card>h2{letter-spacing:-.02em;margin:0 5px 5px;font-size:15px;font-weight:760}.score-detail-page .score-metric-card>div{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.score-detail-page .score-metric-card article{text-align:center;align-content:center;justify-items:center;gap:3px;min-width:0;min-height:70px;display:grid;position:relative}.score-detail-page .score-metric-card article+article:before{content:"";background:var(--separator);width:1px;position:absolute;top:10px;bottom:10px;left:0}.score-detail-page .score-metric-card strong{font-size:22px;line-height:1.15}.score-detail-page .score-metric-card small{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:550;overflow:hidden}.score-detail-page .score-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:14px;padding:13px 15px 15px}.score-detail-page .score-section>header,.score-detail-page .score-students>header{justify-content:space-between;align-items:center;gap:10px;min-height:43px;display:flex}.score-detail-page .score-section h2,.score-detail-page .score-students h2{letter-spacing:-.02em;margin:0;font-size:17px;font-weight:760}.score-detail-page .score-section>header>span{color:var(--muted);align-items:center;gap:3px;font-size:12px;display:inline-flex}.score-detail-page .score-section>header svg{width:15px;height:15px}.score-detail-page .score-bar-chart{border-bottom:1px solid var(--separator);grid-template-columns:repeat(5,1fr);align-items:end;gap:18px;height:190px;padding:24px 10px 0;display:grid}.score-detail-page .score-bar-chart>div{text-align:center;grid-template-rows:24px minmax(0,1fr) 34px;align-items:end;min-width:0;height:100%;display:grid}.score-detail-page .score-bar-chart strong{font-size:13px;font-weight:680}.score-detail-page .score-bar-chart>div>span{justify-content:center;align-items:end;height:100%;display:flex}.score-detail-page .score-bar-chart i{background:linear-gradient(#57bd6b,#9edda8);border-radius:8px 8px 0 0;width:min(48px,78%);display:block}.score-detail-page .score-bar-chart>div:first-child i{background:linear-gradient(#49b95f,#84d291)}.score-detail-page .score-bar-chart small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-self:center;font-size:11px;overflow:hidden}.score-detail-page .score-students>header{padding-inline:4px;position:relative}.score-sort-menu{position:relative}.score-sort-menu summary{min-height:36px;color:var(--foreground);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:5px;padding-inline:9px;font-size:12px;list-style:none;display:inline-flex}.score-sort-menu summary>span{color:var(--muted)}.score-sort-menu summary::-webkit-details-marker{display:none}.score-sort-menu summary svg{width:15px;height:15px}.score-sort-menu[open] summary svg{transform:rotate(180deg)}.score-sort-menu>div{z-index:8;background:var(--surface);border:1px solid var(--border);width:150px;box-shadow:var(--shadow-lg);border-radius:12px;padding:5px;position:absolute;top:39px;right:0;overflow:hidden}.score-sort-menu a{min-height:40px;color:var(--foreground);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding-inline:10px;font-size:12px;text-decoration:none;display:flex}.score-sort-menu a svg{width:16px;height:16px;color:var(--primary-strong)}.score-sort-menu a:hover{background:var(--surface-muted)}.score-student-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.score-student-table__head,.score-student-row{grid-template-columns:44px 100px repeat(3,minmax(64px,1fr)) 32px;align-items:center;gap:5px;padding-inline:12px;display:grid}.score-student-table__head{min-height:48px;color:var(--muted-strong);background:#fafbfa;font-size:13px;font-weight:650}.score-student-table__head>span:nth-child(2),.score-student-table__head>span:nth-child(n+3){text-align:center}.score-student-row{border-top:1px solid var(--separator);min-height:62px}.score-student-row>span:first-child{font-variant-numeric:tabular-nums}.score-student-row>strong{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:720;overflow:hidden}.score-student-row>b{text-align:center;font-size:16px}.score-student-row>small{color:var(--muted);text-align:center;white-space:nowrap;font-size:11px;font-weight:650}.score-student-row>small.is-up{color:var(--danger)}.score-student-row>small.is-down{color:var(--info)}.score-student-row>small i{font-style:normal}.score-student-row .tag{justify-self:center}.score-student-row>a{width:32px;height:32px;color:var(--primary-strong);border-radius:50%;place-items:center;display:grid}.score-student-row>a:hover{background:var(--primary-soft)}.score-student-row>a svg{width:17px;height:17px}.manual-score-page{max-width:680px;padding-top:calc(10px + env(safe-area-inset-top))}.manual-score-header{grid-template-columns:54px minmax(0,1fr) 68px;align-items:center;gap:4px;min-height:58px;margin-bottom:10px;display:grid}.manual-score-header>a{width:44px;height:44px;color:var(--foreground);border-radius:50%;place-items:center;display:grid}.manual-score-header>a svg{width:22px;height:22px}.manual-exam-switch summary{font-size:17px}.manual-exam-switch summary>span{font-weight:650}.manual-score-save{min-height:42px;color:var(--primary-strong);padding-inline:10px;font-size:14px;font-weight:720}.manual-score-hint{min-height:40px;color:var(--muted);align-items:center;gap:6px;margin:0 0 10px;padding-inline:4px;font-size:12px;display:flex}.manual-score-hint svg{width:16px;height:16px;color:var(--primary-strong)}.manual-score-form{display:block}.manual-score-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.manual-score-table__head,.manual-score-row{grid-template-columns:54px minmax(90px,1fr) minmax(170px,190px);align-items:center;gap:10px;padding-inline:15px;display:grid}.manual-score-table__head{min-height:46px;color:var(--muted-strong);background:#fafbfa;font-size:12px;font-weight:650}.manual-score-table__head>span:last-child{text-align:center}.manual-score-row{border-top:1px solid var(--separator);min-height:66px}.manual-score-row>span{font-variant-numeric:tabular-nums}.manual-score-row>strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.manual-score-editor{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.manual-score-editor>input{width:96px;min-height:42px;color:var(--foreground);border:1px solid var(--border);background:#f9faf9;border-radius:9px;padding:0 10px;font-size:16px}.manual-score-editor>input:focus{background:var(--surface);border-color:#bfe3c6;outline:0;box-shadow:0 0 0 3px #54b8681a}.manual-score-editor>label{color:var(--muted);white-space:nowrap;align-items:center;gap:3px;font-size:11px;display:flex}.manual-score-editor>label input{width:17px;height:17px;accent-color:var(--primary)}@media (max-width:560px){.score-detail-page .score-metric-card{padding-inline:2px}.score-detail-page .score-metric-card>h2{margin-left:12px}.score-detail-page .score-metric-card article{min-height:66px}.score-detail-page .score-metric-card small{font-size:10px}.score-detail-page .score-metric-card strong{font-size:20px}.score-detail-page .score-section{padding-inline:12px}.score-detail-page .score-bar-chart{gap:8px;padding-inline:3px}.score-student-table__head,.score-student-row{grid-template-columns:34px 68px repeat(3,minmax(0,1fr)) 28px;gap:6px;padding-inline:8px}.score-student-table__head{font-size:11px}.score-student-row{min-height:58px}.score-student-row>strong,.score-student-row>b{font-size:14px}.score-student-row>small{font-size:10px}.score-student-row .tag{padding-inline:7px;font-size:10px}.manual-score-page{width:min(100% - 20px,680px)}.manual-score-header{grid-template-columns:44px minmax(0,1fr) 60px}.manual-exam-switch summary{font-size:14px}.manual-score-table__head,.manual-score-row{grid-template-columns:38px minmax(58px,1fr) 146px;gap:6px;padding-inline:9px}.manual-score-table__head{font-size:10px}.manual-score-row>strong{font-size:14px}.manual-score-editor{gap:5px}.manual-score-editor>input{width:84px;min-height:40px;padding-inline:7px}.manual-score-editor>label{font-size:10px}}@media (max-width:370px){.score-detail-topbar{grid-template-columns:40px minmax(0,1fr) 40px;gap:4px}.exam-switch-menu summary{font-size:15px}.score-detail-page .score-metric-card strong{font-size:18px}.score-detail-page .score-metric-card small{font-size:9px}.score-sort-menu summary{padding-inline:5px;font-size:10px}.score-student-table__head,.score-student-row{grid-template-columns:31px 58px repeat(3,minmax(0,1fr)) 26px;gap:5px;padding-inline:6px}.score-student-table__head{font-size:10px}.score-student-row>strong,.score-student-row>b{font-size:13px}.score-student-row .tag{padding-inline:5px;font-size:9px}.manual-exam-switch summary{font-size:12px}.manual-score-table__head,.manual-score-row{grid-template-columns:34px minmax(50px,1fr) 140px;gap:4px;padding-inline:7px}.manual-score-editor>input{width:80px}}.exam-detail-page{max-width:760px;padding-top:calc(13px + env(safe-area-inset-top))}.exam-detail-page>.balanced-page-header{margin-bottom:12px}.exam-detail-page>.balanced-page-header .balanced-back{background:0 0}.exam-detail-hero{border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:linear-gradient(118deg,#f3f9f4,#fbfcfb);grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:15px;margin-bottom:13px;padding:16px 18px;display:grid}.exam-detail-hero>span{width:62px;height:62px;color:var(--primary-strong);background:#e6f4e8;border-radius:50%;place-items:center;display:grid}.exam-detail-hero>span svg{width:32px;height:32px}.exam-detail-hero h1,.exam-detail-hero p{margin:0}.exam-detail-hero h1{text-overflow:ellipsis;white-space:nowrap;font-size:20px;line-height:1.3;overflow:hidden}.exam-detail-hero p{color:var(--muted-strong);margin-top:4px;font-size:12px}.exam-detail-hero nav{gap:7px;display:grid}.exam-detail-hero nav a{min-height:36px;color:var(--primary-strong);background:#fff;border:1px solid #d4e8d8;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding-inline:11px;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.exam-detail-hero nav a:last-child{color:#94a899;background:0 0;border-color:#e0e8e2}.exam-detail-hero nav svg{width:15px;height:15px}.exam-detail-tabs{background:var(--surface);border-bottom:1px solid var(--separator);grid-template-columns:repeat(3,1fr);align-items:stretch;height:58px;margin-bottom:12px;display:grid}.exam-detail-tabs a{color:var(--muted-strong);place-items:center;font-size:14px;font-weight:650;text-decoration:none;display:grid;position:relative}.exam-detail-tabs a.active{color:var(--primary-strong)}.exam-detail-tabs a.active:after{content:"";background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:19%;right:19%}.exam-detail-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:13px;padding:13px 15px 16px;scroll-margin-top:10px}.exam-band-list{gap:6px;display:grid}.exam-band-list>div{grid-template-columns:78px minmax(0,1fr) 44px 50px;align-items:center;gap:9px;min-height:38px;display:grid}.exam-band-list>div>span{color:var(--muted-strong);font-size:12px}.exam-band-list>div>i{background:#f1f3f2;border-radius:999px;height:8px;overflow:hidden}.exam-band-list b{border-radius:999px;height:100%;display:block}.exam-band-list .tone-0,.exam-pie-legend .tone-0{background:#62bd73}.exam-band-list .tone-1,.exam-pie-legend .tone-1{background:#88cf94}.exam-band-list .tone-2,.exam-pie-legend .tone-2{background:#b7dfbd}.exam-band-list .tone-3,.exam-pie-legend .tone-3{background:#ffc04b}.exam-band-list .tone-4,.exam-pie-legend .tone-4{background:#ff7772}.exam-band-list strong{text-align:right;font-size:12px}.exam-band-list em{color:var(--muted);text-align:right;font-size:11px;font-style:normal}.exam-stat-grid{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.exam-stat-grid>div{text-align:center;background:#fafbfa;border-radius:13px;place-content:center;place-items:center;min-height:80px;padding:8px;display:grid}.exam-stat-grid span{color:var(--muted);font-size:12px}.exam-stat-grid strong{font-size:22px;line-height:1.3}.exam-stat-grid small{color:var(--muted);font-size:10px}.exam-pie-wrap{grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr);align-items:center;gap:24px;padding:12px 8px 5px;display:grid}.exam-donut{--pie:#eef0ef 0 100%;aspect-ratio:1;background:conic-gradient(var(--pie));border-radius:50%;justify-self:center;place-items:center;width:180px;display:grid}.exam-donut:before{content:"";aspect-ratio:1;background:var(--surface);border-radius:50%;grid-area:1/1;width:54%}.exam-donut>span{z-index:1;color:var(--muted);text-align:center;grid-area:1/1;font-size:11px;display:grid}.exam-donut strong{color:var(--foreground);font-size:22px;line-height:1.2}.exam-pie-legend{gap:9px;display:grid}.exam-pie-legend>div{grid-template-columns:10px 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.exam-pie-legend i{border-radius:50%;width:9px;height:9px}.exam-pie-legend strong{color:var(--muted-strong);font-weight:550}.exam-results>div{display:grid}.exam-results>div>a{min-height:46px;color:inherit;border-top:1px solid var(--separator);grid-template-columns:1fr 50px 58px;align-items:center;gap:10px;text-decoration:none;display:grid}.exam-results>div>a strong{color:var(--primary-strong);text-align:right}.exam-detail-actions{bottom:calc(var(--nav-height) + 8px + env(safe-area-inset-bottom));z-index:12;border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border-radius:16px;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding:10px;display:grid;position:sticky}.exam-detail-actions a{min-height:48px;color:var(--primary-strong);border:1px solid var(--primary);background:#fff;border-radius:11px;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:720;text-decoration:none;display:flex}.exam-detail-actions a:last-child{color:#fff;background:var(--primary-strong)}.exam-detail-actions svg{width:18px;height:18px}@media (hover:hover){.score-exam-overview>header>a:hover,.score-exam-card footer a:hover,.exam-detail-hero nav a:hover{filter:brightness(.98)}.score-exam-card__summary:hover,.exam-results>div>a:hover{background:#fafbfa}}@media (max-width:560px){.score-page{width:min(100% - 24px,760px);padding-top:calc(18px + env(safe-area-inset-top))}.score-page__header{min-height:84px}.score-page__header h1{font-size:25px}.score-exam-overview>header{gap:10px;min-height:60px}.score-exam-overview>header>a{min-height:40px;padding-inline:11px;font-size:12px}.score-exam-card__summary{grid-template-columns:48px minmax(0,1fr) 16px;gap:11px;padding:15px 13px}.score-exam-card__summary>span{width:46px;height:46px}.score-exam-card__summary h3{font-size:16px}.score-exam-card__summary p{font-size:11px}.score-exam-card footer{gap:9px;padding:0 13px 14px}.exam-detail-page{width:min(100% - 24px,760px);padding-top:calc(8px + env(safe-area-inset-top))}.exam-detail-hero{grid-template-columns:58px minmax(0,1fr) auto;gap:10px;padding:13px 12px}.exam-detail-hero>span{width:54px;height:54px}.exam-detail-hero h1{font-size:17px}.exam-detail-hero p{font-size:10px}.exam-detail-hero nav a{min-height:32px;padding-inline:8px;font-size:10px}.exam-detail-tabs{height:53px}.exam-detail-tabs a{font-size:12px}.exam-detail-section{padding-inline:12px}.exam-band-list>div{grid-template-columns:67px minmax(0,1fr) 36px 42px;gap:6px}.exam-band-list>div>span,.exam-band-list strong,.exam-band-list em{font-size:10px}.exam-pie-wrap{grid-template-columns:145px minmax(0,1fr);gap:14px;padding-inline:0}.exam-donut{width:142px}.exam-pie-legend>div{grid-template-columns:9px 1fr;gap:6px;font-size:10px}.exam-pie-legend strong{grid-column:2;margin-top:-5px;font-size:9px}.exam-detail-actions{bottom:calc(var(--nav-height) + 5px + env(safe-area-inset-bottom));margin-inline:-2px}}@media (max-width:370px){.score-exam-overview>header p{display:none}.score-exam-card__summary{grid-template-columns:44px minmax(0,1fr) 14px;gap:8px;padding-inline:11px}.score-exam-card__summary>span{width:42px;height:42px}.score-exam-card__summary p{font-size:10px}.exam-detail-hero{grid-template-columns:50px minmax(0,1fr)}.exam-detail-hero>span{width:48px;height:48px}.exam-detail-hero nav{grid-column:1/-1;grid-template-columns:1fr 1fr}.exam-pie-wrap{grid-template-columns:1fr}}.student-detail-v3--reminders .student-activity-card__title h3{-webkit-line-clamp:none;display:block;overflow:visible}.student-owed-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin:0 0 6px;padding:0;list-style:none}.student-owed-list li{border-top:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:11px 14px;display:grid}.student-owed-list li:first-child{border-top:0}.student-owed-list strong{font-size:15px;display:block}.student-owed-list small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.student-owed-list time{color:var(--muted);white-space:nowrap;font-size:12px}
