*{box-sizing:border-box;margin:0;padding:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-body:"Segoe UI", "IBM Plex Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-display:Georgia, "Times New Roman", serif;--font-mono:"Cascadia Code", "SFMono-Regular", Consolas, monospace;--bg:#e8f0eb;--paper:#fffdf8;--paper-2:#f5f1e8;--paper-3:#e8e2d3;--ink:#202721;--muted:#627166;--quiet:#5f6d63;--line:#d8d0bf;--line-dark:#958a74;--accent:#357667;--on-accent:#fff;--accent-dark:#255c50;--accent-soft:#dcefe6;--amber:#986a3c;--danger:#b94a40;--on-danger:#fff;--danger-soft:#f5ded9;--success:#2f7957;--row-hover:#2f6f5e12;--shadow:0 18px 50px #242d261a;--shadow-focus:0 0 0 3px var(--accent-soft);--radius-sm:4px;--radius-md:7px;--radius:var(--radius-md);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--control-height:44px;--control-height-lg:46px;--container:1240px;--duration-fast:.14s;--duration-base:.18s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--transition:var(--duration-base) var(--ease-standard)}body.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#151b18;--paper:#202822;--paper-2:#27312b;--paper-3:#303a32;--ink:#eef3ed;--muted:#b9c2ba;--quiet:#8e9a92;--line:#3a453d;--line-dark:#66736a;--accent:#83bfa9;--on-accent:#15241d;--accent-dark:#a9d7c4;--accent-soft:#83bfa924;--amber:#d59b60;--danger:#e1847b;--on-danger:#24100e;--danger-soft:#b94a402e;--success:#92d0b4;--row-hover:#83bfa917;--shadow:0 18px 50px #00000042}html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden}body{--backdrop-x:0px;--backdrop-y:0px;isolation:isolate;background:var(--bg);max-width:100%;min-height:100vh;color:var(--ink);font-family:var(--font-body);text-rendering:optimizelegibility;position:relative;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;transform:translate3d(var(--backdrop-x), var(--backdrop-y), 0) scale(1.04);will-change:transform;background:radial-gradient(#20272109 .7px,#0000 .8px) 0 0/8px 8px,linear-gradient(90deg,#2027210f 1px,#0000 1px) 0 0/32px 32px,linear-gradient(#2027210d 1px,#0000 1px) 0 0/32px 32px;transition:transform 1.15s cubic-bezier(.16,1,.3,1);position:fixed;inset:-96px}body.dark:before{background:radial-gradient(#eef3ed05 .7px,#0000 .8px) 0 0/8px 8px,linear-gradient(90deg,#eef3ed09 1px,#0000 1px) 0 0/32px 32px,linear-gradient(#eef3ed07 1px,#0000 1px) 0 0/32px 32px}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation;border:0}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--paper);width:100%;color:var(--ink);transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);outline:0}input,select{min-height:var(--control-height-lg);padding:11px var(--space-3)}textarea{padding:var(--space-3);resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0}input::placeholder,textarea::placeholder{color:var(--quiet)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}::selection{background:var(--accent);color:var(--on-accent)}.hidden{display:none!important}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app{min-height:100vh}.login-screen{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{border:1px solid var(--line-dark);border-radius:var(--radius);background:linear-gradient(90deg, #2f6f5e14 0 1px, transparent 1px 100%), var(--paper);width:min(100%,430px);box-shadow:var(--shadow);background-size:26px 100%;padding:30px 32px 26px;position:relative}.logo{margin-bottom:24px}.logo h1,.brand-mark{font-family:var(--font-display)}.logo h1{letter-spacing:-.02em;font-size:32px;line-height:.95}.logo p,.login-text p{color:var(--muted)}.logo p{margin-top:6px;font-size:13px}.login-text{margin-bottom:18px}.login-text h2{letter-spacing:-.01em;margin-bottom:7px;font-size:25px;line-height:1.12}.login-text p{line-height:1.55}.login-form,.modal-form{display:grid}.login-form{gap:12px}.modal-form{gap:14px}.login-form label,.modal-form label{color:var(--muted);gap:7px;font-size:13px;font-weight:760;display:grid}.password-field{display:block;position:relative}.password-field input{padding-right:52px}.icon-btn{width:var(--control-height);height:var(--control-height);border-radius:var(--radius);color:var(--quiet);transition:background var(--transition), color var(--transition), transform var(--transition);background:0 0;place-items:center;display:grid}.password-toggle{position:absolute;top:50%;right:1px;transform:translateY(-50%)}.icon-btn svg,.photo-placeholder svg{width:19px;height:19px}.icon-btn:hover{background:var(--paper-2);color:var(--accent-dark)}.primary-btn,.modal-btn{min-height:var(--control-height-lg);border-radius:var(--radius);transition:transform var(--transition), background var(--transition), color var(--transition), border-color var(--transition);font-weight:800}.primary-btn,.modal-btn.primary{background:var(--accent);color:var(--on-accent)}.primary-btn:hover:not(:disabled),.modal-btn.primary:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px)}:is(.primary-btn,.modal-btn,.theme-toggle,.logout-btn,.week-btn,.day-tab,.edit-profile-btn,.remove-photo-btn):active:not(:disabled){transform:translateY(1px)}.login-links{color:var(--muted);text-align:center;justify-items:center;gap:2px;font-size:14px;display:grid}.login-links button{min-height:30px;color:var(--accent-dark);text-underline-offset:3px;background:0 0;padding-inline:8px;font-weight:760;text-decoration:underline}.form-message{border-radius:var(--radius);padding:10px 11px;font-size:14px;line-height:1.45}.form-message.error{background:var(--danger-soft);color:var(--danger)}.form-message.info{background:var(--accent-soft);color:var(--accent-dark)}.demo-entry{gap:3px;margin-top:18px;display:grid}.auth-divider{color:var(--quiet);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin-bottom:2px;font-size:12px;line-height:1;display:grid}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);height:1px}.auth-divider span{padding-inline:3px}.presentation-trigger{min-height:var(--control-height);color:var(--accent-dark);text-underline-offset:3px;transition:transform var(--transition), color var(--transition);background:0 0;justify-self:center;padding:7px 10px;font-weight:800;text-decoration:underline}.presentation-trigger:hover{color:var(--accent)}.presentation-trigger:active{transform:translateY(1px)}.demo-storage-note{color:var(--muted);text-align:center;font-size:12px;line-height:1.5}.demo-storage-note button{min-height:var(--control-height);color:var(--accent-dark);font-size:inherit;text-underline-offset:3px;background:0 0;margin:-12px -8px;padding:8px;font-weight:800;text-decoration:underline}.onboarding-screen{min-height:100dvh;padding:18px}.onboarding-screen.hidden,.onboarding-screen:not(.hidden)~.login-screen,.onboarding-screen:not(.hidden)~.dashboard-screen,.onboarding-screen:not(.hidden)~.teacher-screen{display:none}.onboarding-header{border-bottom:2px solid var(--line-dark);justify-content:space-between;align-items:center;width:min(100%,980px);min-height:62px;margin-inline:auto;display:flex}.onboarding-support{width:var(--control-height);height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);place-items:center;display:grid}.onboarding-support school-icon{font-size:20px}.onboarding-card{border:1px solid var(--line-dark);background:linear-gradient(90deg, #2f6f5e0f 0 1px, transparent 1px 100%), var(--paper);width:min(100%,720px);min-height:520px;box-shadow:var(--shadow);text-align:center;background-size:32px 100%;flex-direction:column;justify-content:center;align-items:center;margin:clamp(30px,7vh,76px) auto 30px;padding:clamp(28px,6vw,58px);display:flex}.onboarding-card h1{max-width:620px;font-family:var(--font-display);letter-spacing:-.035em;margin:8px 0 12px;font-size:clamp(30px,6vw,48px);line-height:1.02}.onboarding-card>p:not(.onboarding-eyebrow,.onboarding-inline-status,.onboarding-waiting){max-width:560px;color:var(--muted);line-height:1.6}.onboarding-eyebrow{color:var(--accent-dark);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:850}.onboarding-visual{width:min(240px,58vw);color:var(--ink);margin-bottom:18px}.onboarding-visual svg,.device-choice-grid svg{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:100%}.onboarding-visual .accent,.device-choice-grid .accent{stroke:var(--accent)}.onboarding-actions{grid-template-columns:1fr 1fr;gap:10px;width:min(100%,420px);margin-top:26px;display:grid}.onboarding-actions .primary-btn,.onboarding-secondary,.onboarding-sticky-action,.onboarding-open-diary,.onboarding-card>[data-onboarding-complete]{min-height:48px;padding:11px 18px}.onboarding-secondary{border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);font-weight:800}.onboarding-about{min-height:36px;color:var(--accent-dark);text-underline-offset:4px;background:0 0;grid-column:1/-1;padding:4px 8px;font-weight:780;text-decoration:underline}.onboarding-privacy{color:var(--quiet);text-underline-offset:3px;font-size:12px;text-decoration:underline;position:fixed;bottom:18px;right:24px}.device-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;margin-top:28px;display:grid}.device-choice-grid button{border:1px solid var(--line-dark);background:var(--paper);min-height:250px;color:var(--ink);text-align:center;transition:transform var(--transition), background var(--transition);align-content:center;place-items:center;gap:8px;padding:24px;display:grid}.device-choice-grid button:hover{background:var(--accent-soft);transform:translateY(-2px)}.device-choice-grid svg{width:132px;height:92px}.device-choice-grid strong{font-size:19px}.device-choice-grid span{color:var(--muted);font-size:13px}.extension-store-list{gap:9px;width:100%;margin-top:24px;display:grid}.extension-store-card{border:1px solid var(--line-dark);background:var(--paper);min-height:76px;color:var(--ink);text-align:left;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px 15px;text-decoration:none;display:grid}.extension-store-card.is-recommended{border-width:2px;border-color:var(--accent)}.extension-store-card.is-unavailable{opacity:.72}.extension-store-card>span:nth-child(2){gap:3px;display:grid}.extension-store-card small{color:var(--muted)}.extension-store-card em{background:var(--accent-soft);color:var(--accent-dark);text-transform:uppercase;padding:5px 8px;font-size:11px;font-style:normal;font-weight:850}.browser-icon{border:1px solid var(--line-dark);color:#fff;border-radius:50%;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.browser-icon.is-chromium{background:#3972d7}.browser-icon.is-edge{background:#147d72}.browser-icon.is-firefox{background:#8f4bd6}.store-divider{color:var(--quiet);grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:12px;display:grid}.store-divider:before,.store-divider:after{content:"";background:var(--line);height:1px}.onboarding-inline-status{min-height:20px;color:var(--danger);margin:12px 0 0;font-size:13px}.onboarding-sticky-action,.onboarding-card>[data-onboarding-complete]{width:min(100%,360px);margin-top:12px}.sync-guide{counter-reset:guide;text-align:left;gap:10px;width:100%;margin-top:22px;display:grid}.sync-guide li{border:1px solid var(--line);background:var(--paper);counter-increment:guide;grid-template-columns:34px minmax(0,1fr);gap:2px 12px;padding:13px 14px;display:grid}.sync-guide li:before{content:counter(guide);background:var(--accent);width:30px;height:30px;color:var(--on-accent);grid-row:1/span 2;place-items:center;font-weight:900;display:grid}.sync-guide span,.sync-help span{color:var(--muted);font-size:13px;line-height:1.45}.sync-help{border-left:3px solid var(--amber);background:var(--paper-2);text-align:left;gap:4px;width:100%;margin-top:12px;padding:13px 14px;display:grid}.onboarding-open-diary{place-items:center;width:min(100%,360px);margin-top:18px;text-decoration:none;display:grid}.onboarding-waiting,.onboarding-loading{color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.onboarding-waiting{margin-top:14px;font-size:13px}.onboarding-waiting i,.onboarding-loading i{border:2px solid var(--line-dark);border-top-color:var(--accent);border-radius:50%;width:17px;height:17px;animation:.7s linear infinite feedback-spin}.onboarding-success{border:2px solid var(--success);background:color-mix(in srgb, var(--success) 14%, var(--paper));width:84px;height:84px;color:var(--success);border-radius:50%;place-items:center;margin-bottom:20px;font-size:42px;font-weight:900;display:grid}@media (width<=620px){.onboarding-screen{padding:12px}.onboarding-card{min-height:calc(100dvh - 98px);margin:12px auto 0;padding:26px 18px}.onboarding-actions,.device-choice-grid{grid-template-columns:1fr}.device-choice-grid button{min-height:170px}.device-choice-grid svg{height:72px}.extension-store-card{grid-template-columns:42px minmax(0,1fr)}.extension-store-card em{grid-column:2;justify-self:start}}.dashboard-screen,.teacher-screen{min-height:100dvh;padding:18px}.login-screen,.dashboard-screen,.teacher-screen{will-change:opacity, transform}.screen-enter{animation:.22s both screenEnter}.screen-exit{pointer-events:none;animation:.18s both screenExit}.topbar,.dashboard-layout,.teacher-layout{width:min(100%, var(--container));margin-inline:auto}.topbar{border-bottom:2px solid var(--line-dark);grid-template-columns:1fr auto;align-items:center;gap:16px;min-height:64px;margin-bottom:18px;display:grid}.brand-mark{color:var(--ink);font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(28px,4vw,42px);font-weight:700;text-decoration:none}.topbar-actions{align-items:center;gap:8px;display:flex}school-icon{vertical-align:middle;pointer-events:none;flex-shrink:0;width:1em;height:1em;display:inline-flex}school-icon svg{width:100%;height:100%}.theme-toggle,.logout-btn,.week-btn{min-height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);transition:transform var(--transition), border-color var(--transition), background var(--transition), color var(--transition), opacity var(--transition);border-radius:0;padding:0 12px;font-weight:760}.theme-toggle{justify-content:center;align-items:center;gap:8px;line-height:1;display:inline-flex}.logout-btn,.week-btn{justify-content:center;align-items:center;gap:7px;display:inline-flex}.logout-btn school-icon{font-size:18px}.edit-profile-btn school-icon,.modal-icon school-icon{pointer-events:none;font-size:20px}.theme-icon{place-items:center;width:20px;height:20px;line-height:0;display:inline-grid}.theme-toggle:hover,.logout-btn:hover,.week-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}.theme-toggle:hover:not(:disabled),.logout-btn:hover:not(:disabled){transform:translateY(-1px)}.week-btn:disabled{opacity:.42}.dashboard-layout{gap:18px;min-width:0;display:grid}.daily-brief{border-bottom:1px solid var(--line-dark);padding-bottom:18px}.brief-copy{align-content:end;min-height:150px;padding:20px 24px 20px 0;display:grid}.card-label,.panel-label{color:var(--accent-dark);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:820}.card-label{margin-bottom:14px}.daily-brief h2{letter-spacing:-.045em;text-wrap:balance;max-width:820px;margin-bottom:12px;font-size:clamp(34px,6vw,68px);line-height:.95}.card-description{max-width:700px;color:var(--muted);line-height:1.62}.journal-shell{grid-template-columns:minmax(0,1fr) minmax(292px,322px);align-items:start;gap:20px;display:grid}.journal-main{border:1px solid var(--line-dark);background:linear-gradient(90deg, #a7633126 1px, transparent 1px), linear-gradient(#20272114 1px, transparent 1px), var(--paper);background-size:92px 100%,100% 48px,auto;align-content:start;min-width:0;display:grid}.journal-main.is-empty-day{grid-template-rows:auto 1fr;min-height:100%}.journal-main.is-quiet-empty{grid-template-rows:auto auto;align-self:start;min-height:0}body.dark .journal-main{background:linear-gradient(90deg, #d59b6024 1px, transparent 1px), linear-gradient(#eef3ed13 1px, transparent 1px), var(--paper);background-size:92px 100%,100% 48px,auto}.week-switcher{border-bottom:1px solid var(--line-dark);min-width:0;padding:18px 18px 16px}.student-period-bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:38px;margin-bottom:12px;padding-bottom:12px;display:flex}.student-term-control{width:min(190px,55%);display:block;position:relative}.student-term-control select{appearance:none;border:1px solid var(--line-dark);background:var(--paper);width:100%;min-height:38px;color:var(--ink);border-radius:0;padding:7px 36px 7px 11px;font-size:13px;font-weight:750}.student-term-arrow{width:8px;height:8px;color:var(--muted);pointer-events:none;border-bottom:2px solid;border-right:2px solid;position:absolute;top:50%;right:14px;transform:translateY(-70%)rotate(45deg)}.week-switcher-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:15px;display:grid}.week-title{text-align:center}.week-title h3,.panel-header h3{letter-spacing:-.01em;margin-top:4px;font-size:22px;line-height:1.15}.week-switcher-header .week-btn:first-child{justify-self:start}.week-switcher-header .week-btn:last-child{justify-self:end}.day-tabs{border:1px solid var(--line-dark);background:var(--paper);grid-template-columns:repeat(7,1fr);display:grid}.day-tab{border-right:1px solid var(--line);min-height:70px;color:var(--ink);transition:background var(--transition), color var(--transition);background:0 0;place-items:center;gap:4px;padding:10px 8px;display:grid}.day-tab:last-child{border-right:0}.day-tab span{font-size:17px;font-weight:850}.day-tab small{color:var(--quiet);font-variant-numeric:tabular-nums;font-size:12px;font-weight:760}.day-tab:hover{background:var(--accent-soft)}.day-tab.active{background:var(--accent);color:var(--on-accent)}.day-tab.active small{color:var(--on-accent)}.day-tab.real-today:not(.active){box-shadow:inset 0 -4px 0 var(--amber)}.diary-panel{min-width:0;padding:20px 18px 22px}.journal-main.is-empty-day .diary-panel{grid-template-rows:auto 1fr;display:grid}.journal-main.is-quiet-empty .diary-panel{display:block}.panel-header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;margin-bottom:15px;display:grid}.panel-note{max-width:260px;color:var(--muted);text-align:right;font-size:14px;line-height:1.4}.panel-note:empty{display:none}.diary-table-wrap{border:1px solid var(--line-dark);background:var(--paper);overflow-x:auto}.journal-main.is-empty-day .diary-table-wrap{min-height:280px;display:grid}.journal-main.is-quiet-empty .diary-table-wrap{display:none}.diary-table{table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:700px}.diary-lesson-col{width:220px}.diary-grade-col,.diary-attendance-col{width:112px}.diary-table th,.diary-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:15px 14px}.diary-table th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;background:var(--paper-2);font-size:12px;font-weight:820}.diary-table th+th,.diary-table td+td{border-left:1px solid var(--line)}.diary-table th:nth-child(3),.diary-table th:nth-child(4){width:96px}.diary-table th:nth-child(3),.diary-table td:nth-child(3),.diary-table th:nth-child(4),.diary-table td:nth-child(4){text-align:center;vertical-align:middle;width:112px}.diary-table tbody tr:last-child td{border-bottom:0}.diary-table tbody tr{transition:background var(--transition)}.diary-table tbody tr:hover{background:var(--row-hover)}.lesson-cell{gap:5px;display:grid}.lesson-cell strong{font-size:16px;font-weight:820}.lesson-subject-link{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:inline}.lesson-subject-link:hover,.lesson-subject-link:focus-visible{text-underline-offset:3px;text-decoration:underline}.lesson-cell span{color:var(--muted);font-size:14px}.grade{color:var(--accent-dark);font-size:20px;font-weight:900;display:inline}.attendance-mark{color:var(--muted);font-size:12px;font-weight:800;display:inline}.attendance-mark.is-absent{color:var(--amber)}.attendance-mark.is-present{color:var(--accent-dark)}.lesson-extras{border-top:1px dashed var(--line);gap:6px;margin-top:10px;padding-top:10px;display:grid}.lesson-note,.lesson-materials{color:var(--muted);gap:2px;font-size:13px;line-height:1.4;display:grid}.lesson-note strong,.lesson-materials strong{color:var(--accent-dark);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:850}.lesson-materials>span{flex-wrap:wrap;gap:5px 10px;display:flex}.lesson-materials a{color:var(--accent-dark);text-underline-offset:3px;font-weight:750;text-decoration:underline}.empty-state{min-height:100%;color:var(--muted);align-content:center;justify-items:start;gap:8px;padding:24px 26px;line-height:1.55;display:grid}.empty-state-label{color:var(--accent-dark);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:850}.empty-state h4{color:var(--ink);font-family:var(--font-display);font-size:clamp(28px,4vw,42px);line-height:1.05}.empty-state p:last-child{max-width:460px}.student-sidebar{border-left:1px solid var(--line-dark);align-content:start;align-self:stretch;align-items:start;gap:14px;padding-left:20px;display:grid;position:sticky;top:18px}.student-profile-disclosure{min-width:0}.student-profile-disclosure>summary{display:none}.student-card{background:0 0;border:0;grid-template-rows:auto auto;align-self:start;height:auto;display:grid}.student-photo-area{background:var(--paper-2);border-bottom:0;gap:9px;padding:0;display:grid}.student-photo{aspect-ratio:10/14;border:1px dashed var(--line-dark);background:linear-gradient(#2f6f5e0f 1px, transparent 1px), linear-gradient(90deg, #2f6f5e0f 1px, transparent 1px), var(--paper);cursor:pointer;min-height:292px;transition:border-color var(--transition), background var(--transition);background-size:18px 18px;position:relative;overflow:hidden}.student-photo:hover{border-color:var(--accent);background-color:var(--accent-soft)}.student-photo input{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.student-photo:has(input:focus-visible){border-color:var(--accent);box-shadow:var(--shadow-focus)}.photo-placeholder{width:100%;height:100%;color:var(--accent-dark);text-align:center;align-content:center;place-items:center;gap:10px;font-size:13px;font-weight:800;display:grid}.student-photo-img{object-fit:cover;width:100%;height:100%;display:block}.student-info{gap:14px;min-width:0;padding:15px 14px 14px;display:grid}.student-header-strip{gap:2px;display:grid}.student-name-row{flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;display:flex}.student-badge{letter-spacing:-.01em;min-width:0;font-size:18px;font-weight:860;line-height:1.15}.class-link{min-height:0;color:var(--accent-dark);text-underline-offset:3px;background:0 0;justify-self:start;padding:0 4px;font-size:14px;font-weight:820;line-height:1.45;text-decoration:underline;position:relative}.class-link:before{content:"";position:absolute;inset:-12px -8px}.online-status{color:var(--success);justify-self:start;font-size:13px;font-weight:820}.online-status:before{content:"";vertical-align:1px;background:currentColor;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.teacher-line{color:var(--muted);font-size:14px;line-height:1.5}.teacher-line span{color:var(--ink);font-weight:720}.account-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid}.account-disclosure{display:grid}.account-disclosure>summary{display:none}.account-detail{min-width:0;min-height:var(--control-height);color:var(--muted);grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;padding:0;font-size:14px;line-height:1.45;display:grid}.account-detail+.account-detail{border-top:1px solid var(--line)}.account-detail>span{color:var(--quiet)}.account-detail strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:720;overflow:hidden}.masked-detail{align-items:center;gap:6px;min-width:0;display:inline-flex}.detail-eye-btn{width:var(--control-height);height:var(--control-height);color:var(--accent-dark);flex-shrink:0}.detail-eye-btn svg{width:17px;height:17px}.edit-profile-btn,.remove-photo-btn{border:1px solid var(--line-dark);background:var(--paper);color:var(--accent-dark);transition:transform var(--transition), background var(--transition), border-color var(--transition);border-radius:0;font-weight:820}.edit-profile-btn{min-height:var(--control-height);justify-content:center;justify-self:stretch;align-items:center;gap:8px;padding:9px 12px;display:inline-flex}.remove-photo-btn{min-height:var(--control-height);padding:0 12px;font-size:13px}.edit-profile-btn:hover,.remove-photo-btn:hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-message{text-align:left;margin-top:8px}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(8px);background:#12181480;place-items:center;padding:20px;animation:.16s both fadeIn;display:grid;position:fixed;inset:0}.modal-overlay.is-closing{pointer-events:none;animation:.16s both modalFadeOut}.modal-overlay.is-closing .modal-card{animation:.16s both modalLeave}.modal-card{border:1px solid var(--line-dark);border-left:8px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--paper);width:min(100%,430px);max-height:calc(100dvh - 40px);box-shadow:var(--shadow);padding:24px;animation:.18s both modalAppear;position:relative;overflow:auto}.register-modal{width:min(100%,520px)}.demo-access-card{border:1px solid var(--line-dark);background:var(--paper-2);margin:18px 0;padding:18px}.demo-access-card>p{color:var(--muted);margin-bottom:14px;line-height:1.5}.demo-access-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.demo-access-details div{border-top:1px solid var(--line);padding-top:10px}.demo-access-details dt{color:var(--quiet);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800}.demo-access-details dd{color:var(--ink);font-weight:800}.demo-access-warning{margin-bottom:18px}.modal-primary-action{width:100%}.profile-modal-card{width:min(100%,720px)}.class-modal-card{width:min(100%,780px)}.class-modal-eyebrow{letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:850;color:var(--accent-dark)!important;margin-bottom:6px!important}.class-modal-card>h3{margin-bottom:5px;font-size:clamp(27px,4vw,38px)}.class-modal-summary{font-size:14px;margin-bottom:20px!important}.class-teacher-card{border:1px solid var(--line-dark);border-left:5px solid var(--accent);background:linear-gradient(90deg, var(--accent-soft), transparent 58%), var(--paper-2);grid-template-columns:64px minmax(0,1fr);align-items:center;gap:16px;padding:18px;display:grid}.class-avatar{border:1px solid var(--line-dark);background:var(--paper);width:42px;height:42px;color:var(--accent-dark);font-family:var(--font-mono);letter-spacing:.04em;flex:none;place-items:center;font-size:13px;font-weight:850;display:grid}.class-teacher-avatar{background:var(--accent);width:64px;height:64px;color:var(--on-accent);font-size:18px}.class-person-copy{min-width:0}.class-person-role{color:var(--accent-dark);letter-spacing:.05em;text-transform:uppercase;margin-bottom:3px;font-size:12px;font-weight:850}.class-person-copy h4{margin-bottom:5px;font-size:19px;line-height:1.25}.class-person-copy>p:not(.class-person-role),.class-person-copy a{color:var(--muted);font-size:13px;line-height:1.5}.class-person-copy a{color:var(--accent-dark);overflow-wrap:anywhere;text-underline-offset:3px;margin-top:3px;font-weight:720;display:inline-block}.class-students-section{margin-top:22px}.class-section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.class-section-heading h4{font-size:17px}.class-section-heading span{color:var(--muted);font-size:13px}.class-student-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.class-student-card{border:1px solid var(--line);background:var(--paper-2);align-items:center;gap:11px;min-width:0;min-height:62px;padding:9px 11px;display:flex}.class-student-card.is-current{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}.class-student-name{gap:2px;min-width:0;display:grid}.class-student-name strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.25;overflow:hidden}.class-student-name span{color:var(--accent-dark);text-transform:uppercase;font-size:11px;font-weight:800}.profile-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.profile-form-grid .wide-field{grid-column:1/-1}.profile-actions{margin-top:2px}.modal-card h3{letter-spacing:-.01em;margin-bottom:12px;padding-right:32px;font-size:23px;line-height:1.15}.modal-card>p{color:var(--muted);margin-bottom:20px;line-height:1.56}.modal-icon{width:var(--control-height);height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper-2);color:var(--accent-dark);place-items:center;margin-bottom:14px;font-size:21px;font-weight:900;display:grid}.modal-close{width:var(--control-height);height:var(--control-height);border:1px solid var(--line);background:var(--paper-2);color:var(--ink);transition:background var(--transition), border-color var(--transition);border-radius:0;justify-content:center;align-items:center;font-size:0;line-height:1;display:flex;position:absolute;top:14px;right:14px}.modal-close:before{content:"×";font-size:24px;line-height:1;display:block;transform:translateY(-1px)}.modal-close:hover{border-color:var(--accent);background:var(--accent-soft)}.modal-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.modal-btn.secondary{border:1px solid var(--line-dark);background:var(--paper-2);color:var(--ink)}.modal-btn.secondary:hover:not(:disabled){border-color:var(--accent);background:var(--paper);color:var(--accent-dark);transform:translateY(-1px)}.modal-btn.danger{background:var(--danger);color:var(--on-danger)}.modal-btn.danger:hover:not(:disabled){filter:brightness(.9);transform:translateY(-1px)}.helper-text{color:var(--muted);margin-top:17px;font-size:14px;line-height:1.5;margin-bottom:0!important}.demo-credential-list{display:grid}.demo-credential-list div{border-top:1px solid var(--line);grid-template-columns:132px minmax(0,1fr);gap:12px;padding:10px 0;display:grid}.demo-credential-list dt{color:var(--muted);font-weight:750}.demo-credential-list dd{overflow-wrap:anywhere;min-width:0;color:var(--ink)}.demo-credential-list code{font-family:var(--font-mono);font-size:13px;font-weight:750}.modal-open{overflow:hidden}.connection-banner,.app-notification{z-index:40;border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);box-shadow:var(--shadow);font-size:14px;font-weight:700;line-height:1.45;position:fixed}.connection-banner{right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));left:var(--space-4);max-width:640px;min-height:var(--control-height);align-items:center;gap:var(--space-3);border-color:var(--amber);margin-inline:auto;padding:11px 14px;display:flex}.connection-indicator{border:2px solid var(--paper);background:var(--amber);width:10px;height:10px;box-shadow:0 0 0 2px var(--amber);border-radius:50%;flex:none}.app-notification{top:var(--space-4);right:var(--space-4);width:min(360px,100vw - 32px);min-height:var(--control-height);opacity:0;pointer-events:none;transition:opacity var(--transition), transform var(--transition);border-left-width:4px;padding:11px 14px;transform:translateY(-10px)}.app-notification.is-visible{opacity:1;transform:translateY(0)}.app-notification.info{border-left-color:var(--accent)}.app-notification.success{border-left-color:var(--success)}.app-notification.error{border-left-color:var(--danger)}.student-photo.is-loading{pointer-events:none}.student-photo.is-loading:before{content:"";z-index:2;background:color-mix(in srgb, var(--paper) 72%, transparent);position:absolute;inset:0}.student-photo.is-loading:after{content:"";z-index:3;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:-14px;animation:.7s linear infinite feedback-spin;position:absolute;top:50%;left:50%}@keyframes feedback-spin{to{transform:rotate(360deg)}}@media (width<=560px){.connection-banner{right:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom));left:var(--space-3)}.app-notification{top:calc(var(--space-3) + env(safe-area-inset-top));right:var(--space-3);width:calc(100vw - 24px)}}.support-btn{min-height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);align-items:center;gap:7px;padding:0 12px;font-weight:760;display:inline-flex}.support-btn school-icon{font-size:18px}.support-backdrop{z-index:69;background:#0c120f3d;position:fixed;inset:0}.support-panel{z-index:70;border:1px solid var(--line-dark);background:var(--paper);grid-template-rows:auto minmax(0,1fr) auto auto;width:min(390px,100vw - 36px);height:min(620px,100dvh - 36px);display:grid;position:fixed;bottom:18px;right:18px;overflow:hidden;box-shadow:0 20px 60px #09120e3d}.support-panel[hidden],.support-backdrop[hidden]{display:none}.support-header{border-bottom:1px solid var(--line-dark);background:var(--paper-2);grid-template-columns:38px 40px minmax(0,1fr) 38px;align-items:center;gap:9px;min-height:64px;padding:9px 11px;display:grid}.support-header>div{gap:2px;display:grid}.support-header small{color:var(--muted);font-size:11px}.support-avatar{background:var(--accent);width:38px;height:38px;color:var(--on-accent);border-radius:50%;place-items:center;display:grid}.support-avatar school-icon{font-size:19px}.support-icon-button{width:38px;height:38px;color:var(--ink);background:0 0;place-items:center;display:grid}.support-icon-button:hover{background:var(--accent-soft);color:var(--accent-dark)}.support-menu{z-index:2;border-right:1px solid var(--line-dark);background:var(--paper);width:min(290px,84%);padding:14px;position:absolute;top:64px;bottom:0;left:0;box-shadow:18px 0 38px #09120e29}.support-menu[hidden]{display:none}.support-menu-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.support-menu-heading button{background:var(--accent);min-height:34px;color:var(--on-accent);padding:6px 10px;font-weight:800}.support-conversation-list{gap:7px;display:grid}.support-conversation-list button{border:1px solid var(--line);background:var(--paper);color:var(--ink);text-align:left;gap:3px;padding:11px;display:grid}.support-conversation-list button.is-active{border-color:var(--accent);background:var(--accent-soft)}.support-conversation-list small,.support-menu-empty{color:var(--muted);font-size:12px}.support-chat{background:linear-gradient(90deg, #2f6f5e0b 0 1px, transparent 1px 100%), var(--paper);background-size:28px 100%;min-height:0;position:relative;overflow:hidden}.support-messages{flex-direction:column;gap:8px;height:100%;padding:14px;display:flex;overflow-y:auto}.support-message{border:1px solid var(--line-dark);background:var(--paper);align-self:flex-start;max-width:84%;padding:9px 11px 7px}.support-message.is-own{border-color:var(--accent);background:var(--accent-soft);align-self:flex-end}.support-message p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.support-message time{color:var(--quiet);text-align:right;margin-top:4px;font-size:10px;display:block}.support-empty{align-content:end;gap:7px;padding:16px;display:grid;position:absolute;inset:0}.support-empty[hidden]{display:none}.support-empty p{color:var(--muted);margin-bottom:3px;font-size:13px}.support-empty button{border:1px solid var(--line);background:var(--paper);min-height:38px;color:var(--ink);text-align:left;padding:8px 10px}.support-empty button:hover{border-color:var(--accent);background:var(--accent-soft)}.support-status{border-top:1px solid var(--line);color:var(--muted);padding:8px 12px;font-size:12px}.support-status.is-error{color:var(--danger)}.support-form{border-top:1px solid var(--line-dark);background:var(--paper);grid-template-columns:minmax(0,1fr) 44px;gap:8px;padding:10px;display:grid}.support-form input{min-width:0}.support-form button{background:var(--accent);color:var(--on-accent);place-items:center;display:grid}.support-form button:disabled{opacity:.45}.support-close-conversation{border-top:1px solid var(--line);background:var(--paper-2);min-height:38px;color:var(--danger);font-weight:800}@media (width<=560px){.support-panel{border:0;width:100%;height:100dvh;inset:0}.support-btn{width:var(--control-height);padding:0}.support-btn span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.support-console-page{background:var(--canvas);min-height:100dvh}.relay-status{min-height:100dvh;color:var(--muted);background:var(--canvas);place-items:center;font-weight:750;display:grid}.support-console-login{place-items:center;min-height:100dvh;padding:24px;display:grid}.support-console-card{border:1px solid var(--line-dark);background:var(--paper);gap:16px;width:min(420px,100%);padding:30px;display:grid;box-shadow:0 20px 60px #09120e24}.support-console-card label{gap:7px;font-weight:750;display:grid}.support-console-topbar{border-bottom:1px solid var(--line-dark);background:var(--paper);justify-content:space-between;align-items:center;min-height:64px;padding:10px 18px;display:flex}.support-console-workspace .support-panel{grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-columns:minmax(230px,300px) minmax(0,1fr);width:auto;height:auto;inset:82px 18px 18px}.support-console-workspace .support-header{grid-column:2}.support-console-workspace .support-menu{width:auto;box-shadow:none;grid-area:1/1/-1;display:block;position:static;overflow-y:auto}.support-console-workspace .support-chat,.support-console-workspace .support-status,.support-console-workspace .support-form,.support-console-workspace .support-close-conversation{grid-column:2}.support-console-workspace .support-backdrop{display:none}@media (width<=760px){.support-console-workspace .support-panel{grid-template-columns:1fr;inset:64px 0 0}.support-console-workspace .support-header,.support-console-workspace .support-chat,.support-console-workspace .support-status,.support-console-workspace .support-form,.support-console-workspace .support-close-conversation{grid-column:1}.support-console-workspace .support-menu{width:min(320px,86%);position:absolute;top:64px;bottom:0}}html.presentation-active,html.presentation-closing,body.presentation-active,body.presentation-closing{overscroll-behavior:none;overflow:hidden}:root{--presentation-device-shell:#202721;--presentation-device-trim:#958a74;--presentation-device-detail:#6f6759}body.dark{--presentation-device-shell:#0b110e;--presentation-device-trim:#3f876f;--presentation-device-detail:#83bfa9}body.presentation-active[data-presentation-scene="0"]{--backdrop-x:10px;--backdrop-y:-44px}body.presentation-active[data-presentation-scene="1"]{--backdrop-x:-6px;--backdrop-y:-72px}body.presentation-active[data-presentation-scene="2"]{--backdrop-x:8px;--backdrop-y:-100px}body.presentation-active[data-presentation-scene="3"]{--backdrop-x:-8px;--backdrop-y:-128px}body.presentation-active[data-presentation-scene="4"]{--backdrop-x:0px;--backdrop-y:-156px}.presentation-screen{z-index:30;outline:0;min-height:100dvh;padding:clamp(22px,4vw,54px);position:fixed;inset:0;overflow:hidden}.presentation-layout{grid-template-columns:minmax(500px,1.15fr) minmax(320px,.85fr);align-items:center;gap:clamp(36px,6vw,92px);width:min(100%,1320px);height:100%;margin-inline:auto;display:grid}.presentation-device-column{perspective:1200px;place-items:center;min-width:0;display:grid}.presentation-laptop{transform-origin:50%;filter:drop-shadow(0 28px 34px #141c1733);width:min(100%,720px);transition:transform .78s cubic-bezier(.16,1,.3,1);transform:translate(0,0)scale(.94)}.presentation-laptop-lid{border:2px solid var(--presentation-device-trim);background:var(--presentation-device-shell);border-bottom-width:8px;border-radius:16px 16px 7px 7px;width:88%;margin-inline:auto;padding:14px;position:relative}.presentation-laptop-camera{z-index:2;background:var(--presentation-device-detail);border-radius:50%;width:4px;height:4px;position:absolute;top:5px;left:50%;transform:translate(-50%)}.presentation-laptop-screen{aspect-ratio:16/10;border:1px solid color-mix(in srgb, var(--paper) 28%, transparent);background:var(--paper-2);overflow:hidden}.presentation-laptop-base{border:2px solid var(--presentation-device-trim);background:var(--presentation-device-shell);clip-path:polygon(6% 0,94% 0,100% 72%,91% 100%,9% 100%,0 72%);border-top:0;width:100%;height:clamp(42px,6vw,70px);position:relative}.presentation-laptop-base span{border:1px solid var(--presentation-device-detail);border-top:0;border-radius:0 0 8px 8px;width:18%;height:9px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.presentation-mini-app{background:linear-gradient(90deg, color-mix(in srgb, var(--ink) 5%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--ink) 4%, transparent) 1px, transparent 1px), var(--paper);height:100%;color:var(--ink);background-size:20px 20px;grid-template-rows:44px auto 1fr;padding:0 12px 12px;font-size:clamp(7px,.72vw,10px);display:grid}.mini-topbar{border-bottom:1px solid var(--line-dark);justify-content:space-between;align-items:center;display:flex}.mini-topbar strong{font-family:var(--font-display);letter-spacing:-.04em;font-size:17px}.mini-topbar-actions{gap:5px;display:flex}.mini-topbar-actions i{border:1px solid var(--line-dark);background:var(--paper);width:24px;height:17px}.mini-hero{border-bottom:1px solid var(--line);transition:opacity .52s var(--ease-standard), filter .52s var(--ease-standard);gap:2px;padding:6px 5px;display:grid}.mini-hero small,.mini-week small,.mini-diary small{color:var(--accent-dark);font-size:.82em;font-weight:850}.mini-hero strong{font-family:var(--font-display);font-size:clamp(15px,1.7vw,23px);line-height:1}.mini-hero span{color:var(--muted)}.mini-dashboard{grid-template-columns:minmax(0,1fr) 27%;gap:10px;min-height:0;padding-top:10px;display:grid}.mini-journal{grid-template-rows:auto 1fr;gap:8px;min-width:0;display:grid}.mini-week,.mini-diary,.mini-profile,.mini-lesson{transition:opacity .52s var(--ease-standard), filter .52s var(--ease-standard), transform .62s var(--ease-standard), box-shadow .52s var(--ease-standard)}.mini-week{border:1px solid var(--line-dark);background:var(--paper);padding:5px}.mini-week-heading{text-align:center;grid-template-columns:25px 1fr 25px;align-items:center;gap:5px;margin-bottom:4px;display:grid}.mini-week-heading>i{border:1px solid var(--line);height:19px;color:var(--muted);place-items:center;font-style:normal;display:grid}.mini-week-heading span{display:grid}.mini-days{border:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid}.mini-days>span{border-right:1px solid var(--line);min-height:25px;color:var(--muted);place-items:center;gap:2px;font-weight:850;display:grid}.mini-days>span>span,.mini-days>span>small{line-height:1;transform:translateY(1px)}.mini-days>span:last-child{border-right:0}.mini-days .is-selected{background:var(--accent);color:var(--on-accent)}.mini-days .is-selected small{color:inherit}.mini-diary{border:1px solid var(--line-dark);background:var(--paper);min-height:0;padding:6px}.mini-diary-heading{justify-content:space-between;align-items:end;gap:8px;margin-bottom:4px;display:flex}.mini-diary-heading>span{display:grid}.mini-diary-heading strong{font-family:var(--font-display);font-size:1.35em}.mini-diary-heading>small{color:var(--muted)}.mini-lessons{border:1px solid var(--line)}.mini-lesson{border-bottom:1px solid var(--line);grid-template-columns:1.45fr 1fr 26px 64px;align-items:center;gap:5px;min-height:27px;padding:3px 5px;display:grid}.mini-lesson:last-child{border-bottom:0}.mini-lesson>span:first-child{gap:2px;display:grid}.mini-lesson>span:first-child small,.mini-homework,.mini-attendance{color:var(--muted)}.mini-grade{color:var(--success);text-align:center;font-size:1.35em;font-weight:900}.mini-attendance{text-align:right;font-size:.82em;font-weight:780}.mini-attendance.is-absent{color:var(--amber)}.mini-profile{border-left:1px solid var(--line-dark);align-content:start;gap:6px;min-width:0;padding-left:9px;display:grid}.mini-photo{aspect-ratio:4/3;border:1px dashed var(--line-dark);color:var(--accent-dark);place-items:center;font-size:17px;display:grid}.mini-profile>span{color:var(--accent-dark);font-weight:850}.mini-profile>small{color:var(--muted);line-height:1.35}.mini-profile>i{background:var(--line);height:1px;margin-top:5px}.presentation-result-grade,.presentation-result-attendance{opacity:0;transform:translateY(8px)}.presentation-copy-column{align-content:center;gap:28px;min-width:0;display:grid}.presentation-copy-stack{min-height:330px;position:relative}.presentation-copy{opacity:0;pointer-events:none;transition:opacity .42s var(--ease-standard), transform .62s var(--ease-standard);align-content:center;gap:16px;display:grid;position:absolute;inset:0;transform:translateY(24px)}.presentation-copy.is-active{opacity:1;pointer-events:auto;transform:translateY(0)}.presentation-eyebrow{color:var(--accent-dark);letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:850}.presentation-copy h2{max-width:650px;font-family:var(--font-display);letter-spacing:-.045em;font-size:clamp(46px,6vw,82px);line-height:.95}.presentation-copy p:last-child{max-width:620px;color:var(--muted);font-size:clamp(17px,1.6vw,22px);line-height:1.6}.presentation-progress{align-items:center;gap:8px;display:flex}.presentation-progress>span{background:var(--line-dark);opacity:.45;width:24px;height:3px;transition:width var(--transition), background var(--transition), opacity var(--transition)}.presentation-progress>span.is-active{background:var(--accent);opacity:1;width:42px}.presentation-progress small{color:var(--quiet);font-family:var(--font-mono);margin-left:5px;font-size:12px}.presentation-back{z-index:3;min-height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);transition:opacity .34s var(--ease-standard), transform .34s var(--ease-standard), background var(--transition);align-items:center;gap:8px;padding:8px 13px;font-weight:800;display:inline-flex;position:fixed;top:clamp(18px,3vw,38px);right:clamp(18px,3vw,38px)}.presentation-back:hover{background:var(--accent-soft)}.presentation-back.is-hidden{opacity:0;pointer-events:none;transform:translateY(-12px)}.presentation-hint{z-index:2;bottom:max(18px, env(safe-area-inset-bottom));color:var(--quiet);transition:opacity .3s var(--ease-standard), transform .3s var(--ease-standard);align-items:center;gap:8px;font-size:12px;font-weight:760;animation:1.8s ease-in-out infinite presentationHintPulse;display:flex;position:fixed;left:50%;transform:translate(-50%)}.presentation-hint.is-hidden{opacity:0;pointer-events:none;animation:none;transform:translate(-50%,10px)}.presentation-mouse{border:1px solid;border-radius:9px;width:16px;height:24px;display:inline-block;position:relative}.presentation-mouse i{background:currentColor;border-radius:2px;width:2px;height:5px;animation:1.2s ease-in-out infinite presentationWheel;position:absolute;top:5px;left:50%;transform:translate(-50%)}.presentation-hint-arrow{place-items:center;gap:0;width:12px;height:15px;display:grid}.presentation-hint-arrow i{border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;transform:rotate(45deg)}.presentation-hint-arrow i+i{margin-top:-5px}.presentation-hint-touch{display:none}@media (hover:none) and (pointer:coarse){.presentation-hint-desktop,.presentation-mouse{display:none}.presentation-hint-touch{display:inline}}.presentation-final-action{z-index:3;bottom:max(28px, env(safe-area-inset-bottom));min-height:var(--control-height-lg);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);opacity:1;transition:opacity .36s var(--ease-standard), transform .52s var(--ease-standard), background var(--transition);padding:10px 22px;font-weight:850;position:fixed;left:50%;transform:translate(-50%)}.presentation-final-action:hover{background:var(--accent-dark)}.presentation-final-action.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,18px)}.presentation-screen[data-scene="1"] .presentation-laptop{transform:translate(1.5%,2%)scale(1.01)}.presentation-screen[data-scene="1"] :is(.mini-hero,.mini-diary,.mini-profile){opacity:.24;filter:saturate(.4)}.presentation-screen[data-scene="1"] .presentation-focus-week{box-shadow:0 0 0 3px var(--accent-soft);transform:scale(1.025)}.presentation-screen[data-scene="2"] .presentation-laptop{transform:translate(3%,-1%)scale(1.045)}.presentation-screen[data-scene="2"] :is(.mini-hero,.mini-week,.mini-profile){opacity:.22;filter:saturate(.35)}.presentation-screen[data-scene="2"] .mini-lesson:not(.presentation-focus-lesson){opacity:.25}.presentation-screen[data-scene="2"] .presentation-focus-lesson{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent);transform:scale(1.025)}.presentation-screen[data-scene="3"] .presentation-laptop{transform:translate(2%,-2%)scale(1.035)}.presentation-screen[data-scene="3"] :is(.mini-hero,.mini-week,.mini-profile){opacity:.28}.presentation-screen[data-scene="3"] .presentation-result-grade,.presentation-screen[data-scene="3"] .presentation-result-attendance{opacity:1;transform:translateY(0)}.presentation-screen[data-scene="3"] .mini-lesson{background:color-mix(in srgb, var(--accent-soft) 35%, var(--paper))}.presentation-screen[data-scene="4"] .presentation-laptop{opacity:.62;transform:translate(-2%)scale(.84)}.presentation-screen.is-forward .presentation-copy.is-leaving{transform:translateY(-32px)}.presentation-screen.is-forward .presentation-copy.is-entering{animation:presentationCopyForward .62s var(--ease-standard) both}.presentation-screen.is-backward .presentation-copy.is-leaving{transform:translateY(32px)}.presentation-screen.is-backward .presentation-copy.is-entering{animation:presentationCopyBackward .62s var(--ease-standard) both}@media (width<=900px){.presentation-screen{padding:72px 22px 64px}.presentation-layout{grid-template-rows:minmax(0,1.1fr) minmax(210px,.9fr);grid-template-columns:1fr;align-items:stretch;gap:12px}.presentation-laptop{width:min(92vw,610px)}.presentation-copy-column{align-content:start;align-self:stretch;gap:14px}.presentation-copy-stack{min-height:190px}.presentation-copy{text-align:center;align-content:start;gap:9px}.presentation-copy h2,.presentation-copy p:last-child{margin-inline:auto}.presentation-copy h2{font-size:clamp(36px,8vw,62px)}.presentation-copy p:last-child{max-width:680px;font-size:16px;line-height:1.45}.presentation-progress{justify-content:center}.presentation-hint-desktop,.presentation-mouse{display:none}.presentation-hint-touch{display:inline}}@media (width<=560px){.presentation-screen{padding:64px 14px 66px}.presentation-layout{grid-template-rows:minmax(0,.95fr) minmax(235px,1.05fr)}.presentation-laptop{width:min(94vw,390px)}.presentation-laptop-lid{border-radius:11px 11px 5px 5px;width:94%;padding:8px}.presentation-laptop-base{width:100%;height:34px}.presentation-mini-app{grid-template-rows:34px auto 1fr;padding:0 7px 7px;font-size:6px}.mini-topbar strong{font-size:12px}.mini-hero{padding-block:5px}.mini-hero strong{font-size:14px}.mini-dashboard{gap:6px;padding-top:6px}.mini-journal{gap:5px}.mini-week,.mini-diary{padding:4px}.mini-week-heading{grid-template-columns:18px 1fr 18px;margin-bottom:3px}.mini-week-heading>i{height:17px}.mini-days>span{min-height:22px}.mini-lesson{grid-template-columns:1.35fr .95fr 18px 46px;gap:3px;min-height:25px;padding:3px}.mini-profile{gap:3px;padding-left:5px}.presentation-copy-stack{min-height:220px}.presentation-copy h2{font-size:clamp(33px,10vw,45px)}.presentation-copy p:last-child{font-size:14px}.presentation-back{top:12px;right:12px}.presentation-back span:last-child{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.presentation-hint-desktop,.presentation-mouse{display:none}.presentation-hint-touch{display:inline}.presentation-hint{width:max-content}.presentation-progress>span{width:16px}.presentation-progress>span.is-active{width:30px}}@media (height<=620px) and (orientation:landscape){.presentation-screen{padding:52px 24px 48px}.presentation-layout{grid-template-rows:1fr;grid-template-columns:minmax(420px,1.1fr) minmax(280px,.9fr);gap:34px}.presentation-laptop{width:min(62vw,600px)}.presentation-copy-stack{min-height:230px}.presentation-copy{padding-top:36px}.presentation-copy h2{font-size:clamp(36px,5.5vw,52px)}.presentation-copy p:last-child{font-size:15px;line-height:1.4}.presentation-back{width:var(--control-height);justify-content:center;padding:0;top:12px;right:12px}.presentation-back span:last-child{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.teacher-layout{gap:18px;display:grid}.teacher-topbar{margin-bottom:18px}.teacher-topbar-actions{flex-wrap:wrap;justify-content:flex-end}.teacher-back-btn{min-height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);transition:transform var(--transition), border-color var(--transition), background var(--transition), color var(--transition);justify-content:center;align-items:center;gap:7px;padding:0 12px;font-weight:760;display:inline-flex}.teacher-back-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark);transform:translateY(-1px)}.teacher-back-btn school-icon,.teacher-subject-arrow school-icon,.teacher-scroll-controls school-icon,.teacher-editor button school-icon{stroke-width:2.2px;flex:none;font-size:19px}.teacher-overview{gap:20px}.teacher-overview-hero{border-bottom:1px solid var(--line-dark);flex-direction:column;justify-content:center;min-height:150px;padding:18px 0 22px;display:flex}.teacher-overview-hero .card-label{margin-bottom:14px}.teacher-overview-hero h1{letter-spacing:-.045em;max-width:1000px;margin-bottom:12px;font-size:clamp(32px,4vw,50px);line-height:1.08}.teacher-overview-hero>p:last-child{color:var(--muted);font-size:16px;line-height:1.5}.teacher-overview-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.teacher-class-browser,.teacher-profile-card{border:1px solid var(--line-dark);background:linear-gradient(#2f6f5e09 1px, transparent 1px), linear-gradient(90deg, #2f6f5e09 1px, transparent 1px), var(--paper);background-size:22px 22px}.teacher-class-browser{min-width:0;padding:20px}.teacher-section-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;margin-bottom:18px;padding-bottom:16px;display:grid}.teacher-section-heading h2{margin-top:5px;font-size:clamp(28px,4vw,42px);line-height:1}.teacher-section-heading>p{color:var(--muted);font-size:13px;font-weight:700}.teacher-class-list{gap:10px;display:grid}.teacher-class-card{border:1px solid var(--line);background:var(--paper-2)}.teacher-class-card>summary{min-height:72px;color:var(--ink);cursor:pointer;transition:background var(--transition), color var(--transition);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:13px 16px;list-style:none;display:grid}.teacher-class-card>summary::-webkit-details-marker{display:none}.teacher-class-card>summary:hover{background:var(--accent-soft)}.teacher-class-title{gap:4px;display:grid}.teacher-class-title strong{font-family:var(--font-display);font-size:25px;line-height:1}.teacher-class-title small,.teacher-subject-button small{color:var(--muted);font-size:12px;line-height:1.35}.teacher-class-summary{color:var(--muted);align-items:center;gap:12px;font-size:13px;font-weight:750;display:flex}.teacher-class-summary i{width:10px;height:10px;transition:transform var(--transition);border-bottom:2px solid;border-right:2px solid;transform:rotate(45deg)translateY(-2px)}.teacher-class-card[open] .teacher-class-summary i{transform:rotate(225deg)translate(-1px,-1px)}.teacher-subject-list{border-top:1px solid var(--line);display:grid}.teacher-subject-button{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 82%, transparent);min-height:68px;color:var(--ink);text-align:left;transition:background var(--transition), color var(--transition);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 16px 12px 28px;display:grid}.teacher-subject-button:last-child{border-bottom:0}.teacher-subject-button:hover{background:var(--accent-soft);color:var(--accent-dark)}.teacher-subject-button>span:first-child{gap:5px;display:grid}.teacher-subject-button strong{font-size:16px;line-height:1.25}.teacher-subject-arrow{transition:transform var(--transition);font-size:21px}.teacher-subject-button:hover .teacher-subject-arrow{transform:translate(3px)}.teacher-profile-card{grid-template-columns:68px minmax(0,1fr);gap:16px;padding:20px;display:grid;position:sticky;top:18px}.teacher-profile-mark{border:1px solid var(--line-dark);background:var(--accent-soft);width:68px;height:78px;color:var(--accent-dark);font-family:var(--font-display);place-items:center;font-size:27px;font-weight:700;display:grid}.teacher-profile-heading{align-self:center}.teacher-profile-heading h2{margin:4px 0 6px;font-size:20px;line-height:1.15}.teacher-online-status{color:var(--success);font-size:12px;font-weight:800}.teacher-online-status:before{content:"";vertical-align:1px;background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.teacher-profile-details{border-top:1px solid var(--line);grid-column:1/-1;margin-top:4px;display:grid}.teacher-profile-details>div{border-bottom:1px solid var(--line);gap:5px;padding:12px 0;display:grid}.teacher-profile-details>div:last-child{border-bottom:0;padding-bottom:0}.teacher-profile-details dt{color:var(--muted);letter-spacing:.045em;text-transform:uppercase;font-size:11px;font-weight:800}.teacher-profile-details dd{font-size:14px;font-weight:700;line-height:1.45}.teacher-journal-view{gap:16px}.teacher-journal-route{border-bottom:1px solid var(--line-dark);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px;padding:16px 0 20px;display:grid}.teacher-journal-route h1{margin:6px 0 8px;font-size:clamp(34px,5vw,56px);line-height:.98}.teacher-journal-route>div:first-child>p:last-child{max-width:760px;color:var(--muted);line-height:1.5}.teacher-journal-tools{align-items:end;gap:8px;display:flex}.teacher-term-select{min-width:180px;color:var(--muted);letter-spacing:.045em;text-transform:uppercase;gap:6px;font-size:11px;font-weight:800;display:grid}.teacher-term-select select{width:100%;min-height:var(--control-height);appearance:none;background:var(--paper);letter-spacing:0;text-transform:none;border-radius:0;padding-right:38px;font-size:14px;font-weight:700}.teacher-select-control{display:block;position:relative}.teacher-select-arrow{width:8px;height:8px;color:var(--muted);pointer-events:none;border-bottom:2px solid;border-right:2px solid;position:absolute;top:50%;right:15px;transform:translateY(-70%)rotate(45deg)}.teacher-scroll-controls{gap:6px;display:flex}.teacher-scroll-controls button{min-width:var(--control-height);height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);transition:background var(--transition), border-color var(--transition), color var(--transition);padding:0 8px;font-size:18px;font-weight:800}.teacher-scroll-controls button school-icon{font-size:21px}.teacher-scroll-controls button:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}.teacher-register-caption{grid-template-columns:minmax(0,1fr) minmax(240px,460px);align-items:end;gap:20px;margin-bottom:14px;display:grid}.teacher-register-caption h2{margin-top:4px;font-size:clamp(25px,3vw,36px);line-height:1}.teacher-register-caption>p{color:var(--muted);text-align:right;font-size:13px;line-height:1.45}.teacher-scroll-hint-touch{display:none}@media (hover:none),(pointer:coarse){.teacher-scroll-hint-desktop{display:none}.teacher-scroll-hint-touch{display:inline}}.teacher-register-viewport{border:1px solid var(--line-dark);background:var(--paper);overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y;scrollbar-color:var(--accent) var(--paper-3);scrollbar-width:thin;max-width:100%;overflow:auto hidden}.teacher-register-viewport:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.teacher-register-grid{--register-number:36px;--register-student:178px;--register-count:44px;--register-average:50px;--register-lesson:47px;--register-final-average:50px;--register-term-grade:64px;grid-template-columns:var(--register-number) var(--register-student) var(--register-count) var(--register-average) repeat(var(--teacher-lesson-count), var(--register-lesson)) var(--register-final-average) var(--register-term-grade);background:var(--line);gap:1px;width:max-content;min-width:100%;display:grid}.teacher-register-cell{background:var(--paper);min-width:0;min-height:44px;color:var(--ink);transition:background var(--transition);justify-content:center;align-items:center;padding:4px;display:flex;position:relative}.teacher-register-corner,.teacher-register-date{background:var(--paper-2);min-height:56px;color:var(--muted);letter-spacing:.035em;text-align:center;text-transform:uppercase;font-size:10px;font-weight:850}.teacher-register-corner.is-student{text-align:left;justify-content:flex-start;padding-left:9px}.teacher-register-date{color:var(--ink);letter-spacing:0;flex-direction:column;gap:4px;padding-inline:3px}.teacher-register-date strong{font-family:var(--font-mono);font-size:10px}.teacher-homework-slot{border:1px solid var(--line);width:19px;height:19px;color:var(--accent-dark);cursor:pointer;place-items:center;font-size:14px;line-height:1;display:grid}.teacher-homework-slot:hover,.teacher-homework-slot:focus-visible,.teacher-homework-slot.has-homework{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}.teacher-register-cell.is-left-sticky,.teacher-register-cell.is-top-sticky{z-index:4;position:sticky}.teacher-register-cell.is-top-sticky{z-index:6;top:0}.teacher-register-cell.is-number{left:0}.teacher-register-cell.is-student{left:var(--register-number);box-shadow:inset 1px 0 var(--line-dark)}.teacher-register-cell.is-count{left:calc(var(--register-number) + var(--register-student));box-shadow:inset 1px 0 var(--line-dark)}.teacher-register-cell.is-average{left:calc(var(--register-number) + var(--register-student) + var(--register-count));box-shadow:inset 1px 0 var(--line-dark), inset -2px 0 var(--line-dark)}.teacher-register-cell.is-final-average{border-left:2px solid var(--line-dark)}.teacher-register-cell.is-left-sticky{background:var(--paper-2)}.teacher-register-cell.is-top-sticky.is-left-sticky{z-index:8}.teacher-register-number,.teacher-register-summary{color:var(--muted);font-family:var(--font-mono);font-size:11px;font-weight:700}.teacher-register-student{white-space:nowrap;justify-content:flex-start;padding-left:9px;overflow:hidden}.teacher-register-student strong{text-overflow:ellipsis;font-size:12px;line-height:1.15;overflow:hidden}.teacher-register-entry{font-family:var(--font-mono);text-align:center;font-size:11px;font-weight:800}.teacher-register-entry>button,.teacher-register-term-result>button{width:100%;min-width:0;min-height:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-self:stretch}.teacher-register-entry>button:hover,.teacher-register-entry>button:focus-visible,.teacher-register-term-result>button:hover,.teacher-register-term-result>button:focus-visible{background:0 0;outline:0}.teacher-register-cell.is-alternate-row{background:color-mix(in srgb, var(--paper-2) 62%, var(--paper))}.teacher-register-entry:has(>button:hover){background:color-mix(in srgb, var(--accent) 16%, var(--paper))}.teacher-register-term-result:has(>button:hover){background:color-mix(in srgb, var(--accent) 16%, var(--paper))}.teacher-register-term-result:has(>button:focus-visible){background:color-mix(in srgb, var(--accent) 16%, var(--paper))}.teacher-register-entry.is-absent{color:var(--amber)}.teacher-register-entry.has-comment,.teacher-register-entry.is-comment{background:color-mix(in srgb, var(--amber) 16%, var(--paper));color:var(--amber)}.teacher-register-entry.has-comment:after{content:"";background:var(--amber);width:6px;height:6px;position:absolute;top:5px;right:5px}.teacher-register-cell.is-row-highlighted{background:color-mix(in srgb, var(--accent) 16%, var(--paper))}.teacher-register-entry:has(>button:hover){background:color-mix(in srgb, var(--accent) 16%, var(--paper))}.teacher-register-term-result{color:var(--accent-dark);font-family:var(--font-mono);font-weight:850;background:var(--accent-soft)!important}.teacher-register-cell.is-month-boundary{border-left:2px solid var(--line-dark)}body.journal-editor-open{overflow:hidden}.teacher-editor-backdrop{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#090f0b94;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.teacher-editor{border:1px solid var(--line-dark);background:linear-gradient(#2f6f5e0a 1px, transparent 1px), linear-gradient(90deg, #2f6f5e0a 1px, transparent 1px), var(--paper);background-size:22px 22px;width:min(620px,100%);max-height:min(780px,100dvh - 40px);padding:20px;overflow-y:auto;box-shadow:0 24px 70px #04090647}.teacher-editor-header{border-bottom:1px solid var(--line-dark);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;margin-bottom:18px;padding-bottom:16px;display:grid}.teacher-editor-header h2{margin:4px 0 5px;font-size:clamp(25px,4vw,36px);line-height:1}.teacher-editor-header p:last-child{color:var(--muted);font-size:12px;line-height:1.45}.teacher-editor-close{width:var(--control-height);height:var(--control-height);border:1px solid var(--line-dark);background:var(--paper-2);color:var(--ink);font-size:24px}.teacher-editor-close school-icon{font-size:25px}.teacher-editor-section{border:0;min-width:0;margin:0 0 16px;padding:0}.teacher-editor-section legend,.teacher-editor-field>span{color:var(--muted);letter-spacing:.045em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:850;display:block}.teacher-grade-picker{flex-wrap:wrap;gap:6px;display:flex}.teacher-grade-choice,.teacher-absence-choice,.teacher-quick-comments button,.teacher-symbols button,.teacher-clear-grade,.teacher-editor-actions button{border:1px solid var(--line-dark);background:var(--paper-2);min-height:40px;color:var(--ink);transition:background var(--transition), border-color var(--transition), color var(--transition);border-radius:0;font-weight:800}.teacher-grade-choice,.teacher-absence-choice,.teacher-clear-grade{width:44px;min-width:44px;height:44px;min-height:44px;padding:0}.teacher-grade-choice.is-wide{width:82px;min-width:82px}.teacher-clear-grade{color:var(--muted);place-items:center;margin:0;display:inline-grid}.teacher-clear-grade:hover,.teacher-clear-grade:focus-visible{border-color:var(--amber);background:color-mix(in srgb, var(--amber) 12%, var(--paper));color:var(--amber)}.teacher-grade-choice:hover,.teacher-grade-choice:focus-visible,.teacher-grade-choice.is-selected,.teacher-absence-choice:hover,.teacher-absence-choice:focus-visible,.teacher-absence-choice.is-selected{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.teacher-absence-choice.is-selected{border-color:var(--amber);background:color-mix(in srgb, var(--amber) 18%, var(--paper));color:var(--amber)}.teacher-editor-field{margin-bottom:12px;display:block}.teacher-editor-field textarea{resize:vertical;border:1px solid var(--line-dark);background:var(--paper-2);width:100%;min-height:84px;color:var(--ink);font:inherit;border-radius:0;padding:10px 11px;line-height:1.45}.teacher-editor-field textarea:disabled{opacity:.52}.teacher-quick-comments,.teacher-symbols{flex-wrap:wrap;gap:6px;margin:-4px 0 16px;display:flex}.teacher-quick-comments button,.teacher-symbols button,.teacher-clear-grade{min-height:34px;color:var(--accent-dark);padding:5px 10px;font-size:12px}.teacher-no-homework{min-height:44px;color:var(--ink);align-items:center;gap:9px;margin-bottom:14px;font-size:13px;font-weight:750;display:flex}.teacher-no-homework input{width:18px;height:18px;accent-color:var(--accent)}.teacher-editor-message{min-height:18px;color:var(--amber);margin-top:4px;font-size:12px;line-height:1.4}.teacher-editor-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:10px;padding-top:14px;display:flex}.teacher-editor-actions button{min-width:190px;min-height:var(--control-height);justify-content:center;align-items:center;gap:7px;display:inline-flex}.teacher-editor-actions school-icon{font-size:22px}.teacher-editor-actions .is-primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}@media (width<=560px){.teacher-editor-backdrop{align-items:end;padding:0}.teacher-editor{width:100%;max-height:min(88dvh,760px);padding:16px 14px max(16px, env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0}.teacher-editor-actions button span:last-child{display:inline}.teacher-editor-actions button{width:100%;min-width:0}}.teacher-hero{border-bottom:1px solid var(--line-dark);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px;padding:20px 0 18px;display:grid}.teacher-hero h1,.teacher-hero h2{letter-spacing:-.035em;margin-top:8px;font-size:clamp(34px,5vw,68px);line-height:.95}.teacher-hero p:not(.card-label),.teacher-role-line{color:var(--muted);font-size:16px;line-height:1.45}.teacher-role-line strong{color:var(--ink)}.teacher-workspace{grid-template-columns:minmax(270px,340px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.teacher-assignments,.teacher-journal-panel{border:1px solid var(--line-dark);background:linear-gradient(#2f6f5e09 1px, transparent 1px), linear-gradient(90deg, #2f6f5e09 1px, transparent 1px), var(--paper);background-size:22px 22px}.teacher-assignments{gap:10px;padding:14px;display:grid}.teacher-assignment{border:1px solid var(--line);background:var(--paper-2);width:100%;color:var(--ink);text-align:left;cursor:pointer;transition:background var(--transition), border-color var(--transition), transform var(--transition);border-radius:0;gap:7px;padding:14px;display:grid}.teacher-assignment:hover,.teacher-assignment.active,.teacher-assignment.is-active{border-color:var(--accent);background:var(--accent-soft);transform:translate(2px)}.teacher-assignment strong{font-size:18px;line-height:1.2}.teacher-assignment span{color:var(--muted);font-size:13px;line-height:1.35}.teacher-journal-panel{min-width:0;padding:16px}.teacher-journal-head{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;margin-bottom:14px;padding-bottom:14px;display:grid}.teacher-journal-head h2,.teacher-journal-head h3{margin-top:4px;font-size:clamp(24px,3vw,38px);line-height:1.05}.teacher-journal-meta{color:var(--muted);text-align:right;gap:4px;font-size:14px;display:grid}.teacher-journal-head label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;gap:6px;font-size:12px;font-weight:800;display:grid}.teacher-journal-head select{border:1px solid var(--line-dark);background:var(--paper-2);min-width:220px;min-height:40px;color:var(--ink);font:inherit;letter-spacing:0;text-transform:none;border-radius:0;padding:0 10px;font-size:14px}.teacher-table-wrap{border:1px solid var(--line);background:var(--paper);overflow-x:auto}.teacher-journal-table{border-collapse:collapse;width:100%;min-width:980px}.teacher-journal-table th,.teacher-journal-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px}.teacher-journal-table th{color:var(--muted);letter-spacing:.04em;text-align:left;text-transform:uppercase;font-size:12px;font-weight:850}.teacher-journal-table th+th,.teacher-journal-table td+td{border-left:1px solid var(--line)}.teacher-journal-table tr.saved{background:var(--accent-soft)}.teacher-journal-table tr.dirty{background:color-mix(in srgb, var(--amber) 9%, var(--paper))}.teacher-journal-table tr.save-error{background:color-mix(in srgb, #b42318 8%, var(--paper))}.teacher-student-cell{gap:4px;min-width:180px;display:grid}.teacher-student-cell strong{font-size:16px}.teacher-student-cell span{color:var(--muted);font-size:13px}.grade-chip-list{flex-wrap:wrap;gap:6px;max-width:250px;display:flex}.grade-chip,.attendance-chip,.save-row-btn{border:1px solid var(--line-dark);background:var(--paper-2);min-height:32px;color:var(--ink);transition:background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);border-radius:0;font-weight:800}.teacher-save-cell{min-width:132px}.teacher-row-status{color:var(--muted);margin-top:7px;font-size:12px;line-height:1.3;display:block}.save-error .teacher-row-status{color:#b42318}.grade-chip{min-width:36px;padding:0 8px}.grade-chip.active,.grade-chip.is-active,.attendance-chip.active,.attendance-chip.is-active{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.attendance-chip{min-width:48px}.save-row-btn{background:var(--accent-soft);color:var(--accent-dark);padding:0 12px}.save-row-btn:hover,.grade-chip:hover,.attendance-chip:hover{border-color:var(--accent);transform:translateY(-1px)}.teacher-field{resize:vertical;border:1px solid var(--line);background:var(--paper-2);width:100%;min-width:170px;min-height:72px;color:var(--ink);font:inherit;border-radius:0;padding:10px;line-height:1.4}.teacher-field:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.teacher-empty{min-height:280px;color:var(--muted);text-align:center;place-items:center;padding:28px;display:grid}.admin-placeholder .teacher-hero{align-items:center;min-height:360px}@media (width<=940px){.teacher-overview-grid{grid-template-columns:1fr}.teacher-profile-card{order:-1;grid-template-columns:68px minmax(0,1fr);position:static}.teacher-profile-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.teacher-profile-details>div:nth-last-child(-n+2){border-bottom:0}}@media (width<=760px){.teacher-screen{padding:14px}.teacher-overview-hero{min-height:170px;padding:18px 0 22px}.teacher-overview-hero h1{font-size:clamp(36px,10vw,52px)}.teacher-class-browser{padding:14px}.teacher-section-heading{grid-template-columns:1fr;align-items:start;gap:8px}.teacher-class-card>summary{min-height:68px;padding-inline:13px}.teacher-subject-button{padding-left:18px}.teacher-journal-head{grid-template-columns:1fr;align-items:start}.teacher-journal-head select{min-width:0}.teacher-journal-route{grid-template-columns:1fr;align-items:start;gap:12px;padding:4px 0 12px}.teacher-journal-route h1{margin:5px 0;font-size:30px}.teacher-journal-view{gap:12px}.teacher-journal-tools{align-items:end}.teacher-term-select{flex:1;min-width:0}.teacher-register-caption{grid-template-columns:1fr;gap:8px}.teacher-register-caption>p{text-align:left}.teacher-scroll-hint-desktop{display:none}.teacher-scroll-hint-touch{display:inline}.teacher-register-grid{--register-number:34px;--register-student:164px;--register-count:42px;--register-average:48px;--register-lesson:46px}}@media (width<=560px){.teacher-screen{padding:12px}.teacher-topbar{z-index:20;background:var(--bg);grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:56px;margin-bottom:12px;position:sticky;top:0}.teacher-topbar-actions{flex-wrap:nowrap;gap:6px}.teacher-topbar .theme-toggle,.teacher-topbar .logout-btn,.teacher-back-btn{width:var(--control-height);min-width:var(--control-height);padding:0}.teacher-back-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.teacher-overview{gap:12px}.teacher-overview-hero{min-height:150px}.teacher-overview-hero .card-label{margin-bottom:10px}.teacher-overview-hero h1{margin-bottom:10px;font-size:clamp(32px,10vw,42px)}.teacher-overview-hero>p:last-child{font-size:14px}.teacher-overview-grid{gap:12px}.teacher-profile-card{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:14px}.teacher-profile-mark{width:58px;height:66px;font-size:23px}.teacher-profile-heading h2{font-size:17px}.teacher-profile-details{grid-template-columns:1fr}.teacher-profile-details>div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.teacher-profile-details>div:last-child{border-bottom:0}.teacher-class-browser{padding:12px}.teacher-register-grid{--register-count:0px;--register-average:0px}.teacher-register-cell.is-count,.teacher-register-cell.is-average{min-width:0;padding:0;font-size:0;position:relative;left:auto;overflow:hidden}.teacher-register-cell.is-student{box-shadow:inset 1px 0 var(--line-dark), inset -2px 0 var(--line-dark)}.teacher-section-heading h2{font-size:30px}.teacher-class-title strong{font-size:22px}.teacher-class-summary{font-size:12px}.teacher-journal-panel{padding:12px}}@keyframes modalAppear{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modalLeave{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(10px)scale(.985)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalFadeOut{0%{opacity:1}to{opacity:0}}@keyframes screenEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes screenExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@keyframes loginLeaveForPresentation{0%{opacity:1;transform:translateY(0)scale(1)}70%{opacity:.92}to{opacity:0;transform:translateY(-115vh)scale(.96)}}@keyframes loginReturnFromPresentation{0%{opacity:0;transform:translateY(-90vh)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes presentationEnter{0%{opacity:0;transform:translateY(105vh)}35%{opacity:1}to{opacity:1;transform:translateY(0)}}@keyframes presentationLeave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(105vh)}}@keyframes presentationCopyForward{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes presentationCopyBackward{0%{opacity:0;transform:translateY(-32px)}to{opacity:1;transform:translateY(0)}}@keyframes presentationHintPulse{0%,to{opacity:.46}50%{opacity:.82}}@keyframes presentationWheel{0%{opacity:0;transform:translate(-50%)}35%{opacity:1}to{opacity:0;transform:translate(-50%,6px)}}.login-screen.is-leaving-presentation .login-card{pointer-events:none;animation:.76s cubic-bezier(.55,.06,.9,.42) both loginLeaveForPresentation}.login-screen.is-returning-presentation .login-card{animation:.76s cubic-bezier(.16,1,.3,1) both loginReturnFromPresentation}.presentation-screen.is-entering-presentation .presentation-layout,.presentation-screen.is-entering-presentation .presentation-back,.presentation-screen.is-entering-presentation .presentation-hint{animation:.76s cubic-bezier(.16,1,.3,1) both presentationEnter}.presentation-screen.is-leaving-presentation .presentation-layout,.presentation-screen.is-leaving-presentation .presentation-back,.presentation-screen.is-leaving-presentation .presentation-hint,.presentation-screen.is-leaving-presentation .presentation-final-action{pointer-events:none;animation:.76s cubic-bezier(.55,.06,.9,.42) both presentationLeave}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=980px){.journal-shell{grid-template-columns:1fr}.brief-copy{min-height:0;padding-right:0}.student-sidebar{border-bottom:1px solid var(--line-dark);border-left:0;order:-1;grid-template-columns:1fr;align-items:start;padding-bottom:18px;padding-left:0;position:static}.student-card{grid-template-columns:140px minmax(0,1fr)}.student-photo-area{border-right:1px solid var(--line-dark);border-bottom:0;padding:10px}.student-photo{aspect-ratio:4/5;width:100%;min-height:168px}}@media (width>=761px) and (width<=1100px) and (orientation:portrait){:root{--container:920px}.dashboard-screen{padding:18px 20px}.brief-copy{min-height:128px}.daily-brief h2{font-size:clamp(38px,7vw,56px)}.journal-shell{grid-template-columns:1fr}.student-sidebar{border-bottom:1px solid var(--line-dark);border-left:0;order:-1;padding-bottom:18px;padding-left:0;display:block;position:static}.student-card{grid-template-columns:130px minmax(0,1fr);min-height:0;display:grid}.student-photo-area{border-right:1px solid var(--line-dark);border-bottom:0;padding:10px}.student-photo{aspect-ratio:4/5;width:100%;min-height:156px}.student-info{grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);align-items:start}.student-header-strip,.teacher-line,.edit-profile-btn{grid-column:1}.account-disclosure{grid-area:1/2/span 3}.edit-profile-btn{justify-self:start;min-width:180px}}@media (width<=760px){.dashboard-screen,.login-screen{padding:14px}.topbar{grid-template-columns:1fr;align-items:stretch}.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.theme-toggle,.logout-btn,.week-btn{width:100%}.daily-brief h2{font-size:38px}.week-switcher,.diary-panel{padding-left:18px}.journal-main{background:var(--paper)}.week-switcher-header{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.student-period-bar{flex-direction:column;align-items:stretch;gap:7px}.student-term-control{width:100%}.week-title{order:-1;grid-column:1/-1}.day-tabs{scrollbar-width:none;overscroll-behavior-x:contain;display:flex;overflow-x:auto}.day-tabs::-webkit-scrollbar{display:none}.day-tab{border-right:1px solid var(--line);flex:0 0 76px}.panel-header{grid-template-columns:1fr}.panel-note{text-align:left;max-width:none}.student-sidebar{order:-1;grid-template-columns:1fr;padding-left:12px}.student-card{grid-template-rows:auto;grid-template-columns:78px minmax(0,1fr);align-items:start}.student-photo-area{border-right:1px solid var(--line-dark);background:0 0;border-bottom:0;padding:0 10px 0 0}.student-photo{aspect-ratio:4/5;width:66px;min-height:84px}.remove-photo-btn{min-height:var(--control-height);padding-inline:6px;font-size:11px}.student-info{padding:0 0 0 12px}.profile-form-grid{grid-template-columns:1fr}.profile-form-grid .wide-field{grid-column:auto}}@media (width<=760px),(height<=560px) and (orientation:landscape) and (width<=950px){.student-profile-disclosure>summary{min-height:var(--control-height);color:var(--accent-dark);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-weight:800;list-style:none;display:flex}.student-profile-disclosure>summary::-webkit-details-marker{display:none}.student-profile-disclosure[open]>summary{border-bottom:1px solid var(--line);margin-bottom:12px}.student-profile-disclosure>summary .disclosure-icon:before{content:"+";font-size:20px}.student-profile-disclosure[open]>summary .disclosure-icon:before{content:"−"}.student-period-bar{flex-direction:row;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px}.student-term-control{width:min(190px,60%)}.student-term-control select{min-height:var(--control-height)}.diary-table-wrap:has(.diary-table){background:0 0;border:0;overflow:visible}.diary-table{min-width:0}.diary-table thead{display:none}.diary-table,.diary-table td{width:100%;display:block}.diary-table tbody{gap:10px;display:grid}.diary-table tr{border:1px solid var(--line-dark);background:var(--paper);grid-template-columns:minmax(0,1fr) auto;padding:14px;display:grid}.diary-table tr:last-child{border-bottom:1px solid var(--line-dark)}.diary-table td{border:0;padding:8px 0}.diary-table td:first-child,.diary-table td:nth-child(2){grid-column:1/-1}.diary-table td:first-child{border-bottom:1px dashed var(--line);padding-top:0;padding-bottom:11px}.diary-table td:nth-child(2){padding-bottom:11px}.diary-table td:nth-child(3){justify-self:start}.diary-table td:nth-child(4){text-align:right;justify-self:end}.diary-table td+td{border-left:0}.diary-table th:nth-child(3),.diary-table td:nth-child(3),.diary-table th:nth-child(4),.diary-table td:nth-child(4){text-align:left;vertical-align:top;width:auto}.diary-table td:before{content:attr(data-label);color:var(--quiet);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:820;display:block}.diary-table td:first-child:before{display:none}.grade,.attendance-mark{margin:0}}@media (height<=560px) and (orientation:landscape){.dashboard-screen{padding:10px 12px}.topbar{grid-template-columns:auto minmax(320px,1fr);min-height:48px;margin-bottom:10px}.brand-mark{font-size:26px}.topbar-actions{justify-content:flex-end;display:flex}.daily-brief{padding-bottom:10px}.brief-copy{min-height:82px;padding-block:6px}.card-label{margin-bottom:5px}.daily-brief h2{margin-bottom:5px;font-size:32px;line-height:1}.card-description{font-size:14px;line-height:1.35}.journal-shell{grid-template-columns:minmax(0,1fr) 260px;gap:12px}.student-photo-area{display:none}.student-card{min-height:0}.student-info{gap:9px;padding:11px}.teacher-line,.account-detail{font-size:13px}.week-switcher,.diary-panel{padding:12px}.day-tab{min-height:54px}}@media (width<=560px),(height<=560px) and (orientation:landscape) and (width<=950px){.dashboard-screen,.login-screen{padding:12px}.topbar{z-index:20;background:var(--bg);grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:56px;margin-bottom:12px;position:sticky;top:0}.topbar-actions{gap:6px;display:flex}.theme-toggle,.logout-btn{width:var(--control-height);min-width:var(--control-height);padding:0}.theme-text,.logout-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.demo-credential-list div{grid-template-columns:1fr;gap:4px}.demo-credential-list dd{overflow-wrap:normal}.login-card{border-left-width:1px;padding:26px 20px 24px}.brand-mark{font-size:28px}.dashboard-layout{gap:12px}.daily-brief{padding-bottom:14px}.brief-copy{min-height:0;padding:8px 2px 4px}.card-label{margin-bottom:7px}.daily-brief h2{margin-bottom:8px;font-size:clamp(32px,10vw,42px);line-height:.98}.card-description{font-size:14px;line-height:1.45}.journal-shell{grid-template-columns:1fr;gap:12px}.student-sidebar{border:1px solid var(--line-dark);background:var(--paper);order:-1;gap:0;padding:4px 12px}.student-card{grid-template-columns:68px minmax(0,1fr)}.student-photo-area{padding-right:10px}.student-photo{width:56px;min-height:70px}.photo-placeholder{gap:0}.photo-placeholder span{display:none}.remove-photo-btn{width:56px;min-height:32px;padding:0 3px;font-size:10px}.student-info{gap:9px;padding-left:12px}.student-badge{font-size:16px}.teacher-line{font-size:13px;line-height:1.4}.account-disclosure>summary{min-height:var(--control-height);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--accent-dark);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:800;list-style:none;display:flex}.account-disclosure>summary::-webkit-details-marker{display:none}.disclosure-icon:before{content:"+";font-size:20px;line-height:1}.account-disclosure[open] .disclosure-icon:before{content:"−"}.account-disclosure[open] .account-details{margin-top:7px}.account-details{border-top:0}.account-detail{grid-template-columns:64px minmax(0,1fr);font-size:13px}.edit-profile-btn{min-height:var(--control-height)}.week-switcher{padding:12px}.week-switcher-header{grid-template-columns:var(--control-height) minmax(0, 1fr) var(--control-height);gap:8px;margin-bottom:12px}.week-title{order:0;grid-column:auto}.week-title h3{margin-top:2px;font-size:18px}.week-btn{width:var(--control-height);padding:0;font-size:20px}.week-btn-label{display:none}.day-tabs{scroll-snap-type:x proximity}.day-tab{scroll-snap-align:center;flex-basis:64px;min-height:60px;padding:8px 6px}.day-tab span{font-size:15px}.diary-panel{padding:14px 12px 16px}.panel-header{gap:8px;margin-bottom:12px}.panel-note{font-size:13px}.modal-actions{grid-template-columns:1fr}.modal-overlay{place-items:end center;padding:16px 0 0}.modal-card{width:100%;max-height:calc(100dvh - 16px);padding:22px 18px calc(22px + env(safe-area-inset-bottom));border:0;border-top:6px solid var(--accent);border-radius:var(--radius) var(--radius) 0 0}.class-teacher-card{grid-template-columns:52px minmax(0,1fr);gap:13px;padding:14px}.class-teacher-avatar{width:52px;height:52px;font-size:15px}.class-student-grid{grid-template-columns:1fr}.class-student-card{min-height:58px}}@media (height<=560px) and (orientation:landscape) and (width<=950px){.student-card{grid-template-columns:1fr}.student-info{grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:0}.student-header-strip,.teacher-line{grid-column:1}.account-disclosure{grid-column:1/-1}.edit-profile-btn{grid-area:1/2/span 2;align-self:stretch;min-width:150px}}[hidden]{display:none!important}.student-section-nav{flex-wrap:wrap;gap:8px;display:flex}.student-section-nav button,.achievement-panel button,.achievement-table button{background:var(--paper);min-height:44px;color:var(--accent-dark);padding:8px 12px;font-weight:700}.student-section-nav button{border:1px solid var(--line-dark)}.student-section-nav button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}#studentTodayButton{margin-left:auto}.achievement-panel{background:var(--paper);min-width:0;padding:20px}.achievement-panel h2{margin:12px 0;font-size:28px}.result-legend{color:var(--muted);margin:-2px 0 16px;font-size:13px;line-height:1.5}.result-legend-forecast{color:var(--muted);font-weight:800}.result-legend strong{color:var(--ink)}.achievement-note{color:var(--muted);margin:12px 0;font-size:13px;line-height:1.6}.achievement-scroll{border:1px solid var(--line-dark);max-width:100%;overflow-x:auto}.achievement-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.achievement-table th,.achievement-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;background:var(--paper);min-width:104px;padding:10px}.achievement-table th:first-child{text-align:left;z-index:1;border-right:2px solid var(--line-dark);overflow-wrap:anywhere;min-width:160px;max-width:200px;position:sticky;left:0}.achievement-table thead th{background:var(--paper-3)}.achievement-table small{color:var(--muted);white-space:nowrap;margin-top:6px;display:block}.achievement-table button{width:100%;text-align:inherit;border:0;border-radius:8px}.achievement-table button:hover,.achievement-panel button:hover{background:var(--accent-soft)}.achievement-period{gap:8px;max-width:240px;display:grid}.teacher-student-search{max-width:280px;color:var(--muted);gap:6px;margin-bottom:12px;font-size:12px;display:grid}.teacher-student-search input{min-height:44px}[data-editor-message] button{background:var(--paper-3);min-height:44px;color:var(--ink);margin:4px;padding:8px}.achievement-period select{min-height:44px}.achievement-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.achievement-stats dt{color:var(--muted);font-size:12px}.achievement-stats dd{margin:6px 0 0;font-size:24px;font-weight:800}.achievement-records{padding:0;list-style:none}.achievement-records li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.achievement-records p{overflow-wrap:anywhere;color:var(--muted);font-size:13px}.achievement-records strong{white-space:nowrap}body.subject-detail-open{overflow:hidden}.subject-detail-backdrop{z-index:80;border:0;border-radius:0;width:100%;animation:.18s ease-out both subject-backdrop-in;position:fixed;inset:0;background:#141c186b!important;min-height:0!important;padding:0!important}.subject-detail-drawer{z-index:81;border-left:1px solid var(--line-dark);background:var(--paper);width:min(520px,100%);padding:28px;animation:.24s cubic-bezier(.2,.75,.2,1) both subject-drawer-in;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-18px 0 48px #141c1838}.subject-detail-drawer h2{max-width:430px;margin:18px 44px 24px 0;line-height:1.15}.subject-detail-drawer h2 span{color:var(--muted)}.subject-detail-close{border:1px solid var(--line-dark);border-radius:50%;width:44px;min-height:44px;font-size:26px;line-height:1;position:absolute;top:18px;right:18px;background:var(--paper-2)!important;color:var(--ink)!important;padding:0!important}.subject-average-card,.grade-goal-card,.subject-grade-history{border:1px solid var(--line);background:var(--paper-2);border-radius:14px;margin-top:16px}.subject-average-card{justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.subject-average-card span{color:var(--muted);font-size:14px;font-weight:700}.subject-average-card strong{font-size:30px}.grade-goal-card,.subject-grade-history{padding:20px}.grade-goal-card h3,.subject-grade-history h3{margin:0}.grade-goal-card>p{color:var(--muted);margin:8px 0 16px}.grade-goal-card form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.grade-goal-card label{color:var(--muted);gap:7px;font-size:13px;font-weight:700;display:grid}.grade-goal-card input{width:100%;min-height:44px}.grade-goal-card button{border:1px solid var(--accent-dark);border-radius:10px;min-height:44px;background:var(--accent)!important;color:var(--on-accent)!important}.grade-goal-card small{color:var(--muted);margin-top:12px;line-height:1.45;display:block}.goal-message{border-radius:10px;margin:14px 0 0;padding:12px;line-height:1.45}.goal-message.is-success{background:var(--accent-soft);color:var(--accent-dark)}.goal-message.is-warning{background:var(--danger-soft);color:var(--danger)}.subject-grade-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.subject-grade-heading ul{gap:5px;margin:0;padding:0;list-style:none;display:flex}.subject-grade-heading li{border-radius:999px;padding:4px 7px;font-size:11px;font-weight:800}.subject-grade-history .subject-grade-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.subject-grade-history .subject-grade-tile{aspect-ratio:1;border:1px solid;border-radius:12px;place-content:center;justify-items:center;gap:6px;min-height:72px;padding:9px;display:grid}.subject-grade-history .subject-grade-tile time{color:inherit;opacity:.72;font-size:12px;font-weight:700}.subject-grade-history .subject-grade-tile strong{font-size:22px;line-height:1}.grade-tone-low{background:var(--danger-soft);color:var(--danger)}.grade-tone-middle{color:#6f5512;background:#f3e6b8}.grade-tone-high{background:var(--accent-soft);color:var(--success)}.grade-tone-neutral{background:var(--paper-3);color:var(--ink)}@keyframes subject-backdrop-in{0%{opacity:0}}@keyframes subject-drawer-in{0%{opacity:0;transform:translate(32px)}}@media (width<=760px){.achievement-panel{padding:12px}.achievement-table th:first-child{min-width:128px;max-width:140px}.achievement-table th,.achievement-table td{min-width:92px;padding:6px}.achievement-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-detail-drawer{border-left:0;padding:20px 16px}.grade-goal-card form{grid-template-columns:1fr}.grade-goal-card button{width:100%}}@media (prefers-reduced-motion:reduce){.subject-detail-backdrop,.subject-detail-drawer{animation:none}}html[data-theme=dark] .grade-tone-middle{color:#f0cf75;background:#8a6c2147}.student-section-nav{--nav-inset:8px;--active-section:0;isolation:isolate;border-bottom:1px solid var(--line-dark);background:var(--paper);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:8px;display:grid;position:relative}.student-section-nav:before{content:"";z-index:0;left:var(--nav-inset);top:var(--nav-inset);bottom:var(--nav-inset);width:calc((100% - 2 * var(--nav-inset)) / 3);border-radius:var(--radius);background:var(--accent);transform:translateX(calc(var(--active-section) * 100%));pointer-events:none;transition:transform .28s cubic-bezier(.2,.7,.2,1);position:absolute}.student-section-nav button{z-index:1;border-radius:var(--radius);background:0 0;border:0;transition:color .18s;position:relative}.student-section-nav button[aria-pressed=true]{background:0 0}.student-section-nav button:not([aria-pressed=true]):hover{background:var(--accent-soft)}.student-period-bar{justify-content:flex-start;gap:10px}#studentYearLabel{letter-spacing:.02em;color:var(--ink);margin-right:auto;font-size:16px;font-weight:800}.student-period-bar .student-term-control{flex:0 0 142px;width:142px}.student-term-control select{min-height:44px}.student-calendar-control{border:1px solid var(--line-dark);background:var(--paper);width:44px;height:44px;color:var(--accent-dark);flex:0 0 44px;place-items:center;display:grid;position:relative}.student-calendar-control school-icon{width:21px;height:21px}.student-calendar-control input{opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.student-calendar-control:focus-within{outline:3px solid var(--accent);outline-offset:3px}.student-calendar-control input::-webkit-calendar-picker-indicator{cursor:pointer;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.current-week-link{color:var(--accent-dark);text-underline-offset:3px;background:0 0;margin-top:4px;padding:4px 6px;font-size:12px;font-weight:700;text-decoration:underline;animation:.18s fadeIn}.diary-day-footer{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:18px;margin-top:20px;padding-top:16px;font-size:13px;line-height:1.6;display:grid}.diary-day-footer .panel-label{margin-bottom:6px}.diary-day-footer.is-messages-only{grid-template-columns:1fr}#studentClassMessages{overflow-wrap:anywhere}.result-table{table-layout:fixed;min-width:480px}.result-table td{padding-top:0;padding-bottom:0}.result-period-value{padding:10px 0}.result-mark-col{width:56px}.result-table th,.result-table td{font-variant-numeric:tabular-nums;min-width:0;height:52px;padding:12px 6px}.result-table th:first-child{min-width:200px;max-width:none;padding:12px}.result-table .is-half-year{background:var(--paper-2);border-left:2px solid var(--line-dark)}.result-table small{margin-top:2px;font-size:10px}.result-forecast{color:var(--muted)}.result-summary th,.result-summary td{background:var(--paper-2);font-weight:800}.schedule-panel{background:var(--paper);min-width:0}.schedule-tabs{border-bottom:1px solid var(--line-dark);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:16px;display:grid}.schedule-tabs button{text-align:left;border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);padding:10px 12px;font-weight:700}.schedule-tabs button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark)}.schedule-content{min-width:0;padding:20px 18px}.schedule-content h2{margin-bottom:20px;font-size:26px}.schedule-content h3,.schedule-content h4{margin:14px 0}.schedule-card-grid.is-bells{gap:0}.schedule-card-grid.is-bells .schedule-card{padding-right:18px}.schedule-card-grid.is-bells .schedule-card+.schedule-card{border-left:1px solid var(--line-dark);padding-left:18px;padding-right:0}.schedule-card-grid.is-bells .schedule-card>h3{margin-top:2px;margin-bottom:8px}.schedule-card-grid.is-bells .schedule-card section>h4{margin-top:8px}.schedule-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.schedule-card{min-width:0}.schedule-table-scroll{border:1px solid var(--line-dark);overflow-x:auto}.schedule-table{table-layout:fixed;border-collapse:collapse;text-align:left;width:100%;font-size:13px}.schedule-table th{background:var(--paper-2)}.schedule-table td,.schedule-table th{border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;padding:12px}.schedule-table td p{color:var(--muted);margin-top:6px;line-height:1.5}.schedule-table td:last-child{white-space:normal}.schedule-time-cell,.schedule-room-cell,.schedule-holiday-dates,.schedule-subjects-table td:last-child,.schedule-subjects-table th:last-child{white-space:nowrap;overflow-wrap:normal;word-break:normal}.lesson-time-col{width:100px}.lesson-room-col{width:54px}.schedule-room-cell p{min-height:1.5em;margin-top:0!important}.schedule-room-cell p+p{margin-top:6px!important}.holiday-name-col{width:36%}.holiday-date-col{width:42%}.holiday-duration-col{width:22%}.schedule-holidays-table td:first-child p{font-size:12px}.subjects-name-col{width:31%}.subjects-teacher-col{width:49%}.subjects-level-col{width:20%}.schedule-empty{text-align:center}.schedule-date-separator{color:var(--muted);display:block}@media (width<=760px){.schedule-card-grid{grid-template-columns:1fr}.schedule-card-grid.is-bells .schedule-card,.schedule-card-grid.is-bells .schedule-card+.schedule-card{border-left:0;padding:0}.schedule-card-grid.is-bells .schedule-card+.schedule-card{border-top:1px solid var(--line-dark);padding-top:18px}.schedule-content{padding:16px 12px}.result-table th:first-child{min-width:200px;max-width:none}}@media (width<=560px){.student-period-bar{gap:8px}.student-section-nav{--nav-inset:6px;padding:6px}.student-section-nav button{padding:8px;font-size:13px}.diary-day-footer{grid-template-columns:1fr;gap:12px}.schedule-tabs{padding:12px}.schedule-tabs button{font-size:12px}}@media (prefers-reduced-motion:reduce){.student-section-nav:before,.student-section-nav button{transition:none}.current-week-link{animation:none}}.legal-page{background:var(--canvas);min-height:100dvh}.legal-header{border-bottom:1px solid var(--line-dark);background:var(--paper);justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:12px clamp(18px,4vw,56px);display:flex}.legal-header a:last-child{color:var(--accent-dark);font-weight:760}.legal-document{border:1px solid var(--line-dark);background:var(--paper);width:min(820px,100% - 32px);margin:48px auto;padding:clamp(24px,5vw,54px)}.legal-document h1{margin-top:8px;font-size:clamp(32px,6vw,54px);line-height:1.02}.legal-updated{color:var(--quiet);margin-top:12px}.legal-document section{margin-top:34px}.legal-document h2{margin-bottom:9px;font-size:20px}.legal-document section p{color:var(--muted);line-height:1.65}
