@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.messages-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}.messages-list{padding:6px;display:flex;flex-direction:column;gap:2px;max-height:calc(100dvh - 220px);overflow:auto}.messages-list .empty{padding:32px 16px;text-align:center;color:var(--text-3)}.messages-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:13px 14px;border-radius:var(--r-md);text-align:left;color:var(--text);min-width:0}.messages-item:hover{background:var(--surface-hover)}.messages-item.active{background:var(--accent-weak)}.messages-item-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.messages-item-top strong{font-size:14px;overflow-wrap:anywhere}.messages-item.unread .messages-item-top strong{font-weight:700}.messages-item time,.messages-item small{color:var(--text-3);font-size:12px;flex-shrink:0}.messages-preview{color:var(--text-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill.accent{background:var(--accent-weak);color:var(--accent-text);align-self:flex-start}.messages-placeholder{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-3)}.thread-view{padding:0;display:flex;flex-direction:column;min-width:0}.thread-head{display:flex;gap:12px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--divider)}.thread-head h2{font-size:18px;margin:0;overflow-wrap:anywhere}.thread-head small{color:var(--text-3);font-size:12px}.thread-back{display:none}.thread-new{display:none;margin-left:auto;flex-shrink:0}.thread-messages{list-style:none;margin:0;padding:20px 22px;display:flex;flex-direction:column;gap:14px}.bubble{max-width:min(620px,88%);padding:12px 15px;border-radius:var(--r-lg);background:var(--surface-hover);align-self:flex-start}.bubble.mine{align-self:flex-end;background:var(--accent-weak)}.bubble-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--text-3);margin-bottom:5px}.bubble-meta strong{color:var(--text-2)}.bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5}.bubble-status{display:block;margin-top:6px;color:var(--text-3);font-size:11px}.thread-reply{padding:16px 22px 20px;border-top:1px solid var(--divider)}.thread-noreply{padding:16px 22px}.link-button{color:var(--accent-text);text-decoration:underline;font-weight:600;padding:0}.segmented{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.segmented button{display:inline-flex;gap:8px;align-items:center;padding:9px 14px;border:1px solid var(--border);border-radius:var(--r-full);font-size:13px;color:var(--text-2);min-height:40px}.segmented button.selected{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text);font-weight:600}.class-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}@media(max-width:760px){.messages-layout{display:block}.messages-list{max-height:none}.messages-screen.has-thread .messages-list,.messages-screen.has-thread .page-heading{display:none}.messages-screen:not(.has-thread) .messages-thread{display:none}.thread-back{display:inline-flex}.thread-new{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:var(--r-full);color:var(--accent-text)}.thread-head,.thread-messages,.thread-reply{padding-left:14px;padding-right:14px}.bubble{max-width:92%}.messages-screen .page-heading .button{margin-top:14px;min-height:44px}}.tt-toolbar{padding:16px;display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin-bottom:20px}.tt-toolbar .field{flex:1;min-width:140px}.tt-week-picker,.tt-buttons,.tt-imports{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tt-week-picker{align-self:center;flex-wrap:nowrap}.tt-imports{margin-bottom:16px}.tt-grid{display:grid;grid-template-columns:repeat(var(--tt-days),minmax(0,1fr));grid-template-rows:auto repeat(var(--tt-lessons),minmax(130px,auto));column-gap:6px}.tt-day{display:grid;grid-template-rows:subgrid;grid-row:span var(--tt-rows);min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow-wrap:anywhere}.tt-day h2{display:flex;flex-wrap:wrap;gap:5px;font-size:13px;padding:10px 6px;margin:0}.tt-cell{position:relative;min-height:130px;border-top:1px solid var(--border);padding:24px 5px 5px}.tt-number{position:absolute;left:7px;top:5px;font-size:11px;color:var(--text-3)}.tt-slot{padding:8px;border-radius:8px;background:var(--accent-weak);display:flex;flex-direction:column;gap:5px;margin-bottom:6px;font-size:12px;border:2px solid transparent}.tt-slot[draggable=true]{cursor:grab}.tt-slot small{font-size:11px}.tt-actions{display:flex;flex-wrap:wrap;gap:8px}.tt-actions button{color:var(--accent);font-size:11px;padding:3px 0;text-decoration:underline}.tt-cancelled{opacity:.7;border-style:dashed;border-color:var(--border)}.tt-cancelled>strong:first-child{text-decoration:line-through}.tt-conflict{border-color:#b32828;background:#fff0ed;color:#722323}.tt-day-off{background:var(--bg)}.tt-day-label{font-size:11px;width:100%;font-weight:400}.tt-cell-add{width:100%;border:1px dashed var(--border);border-radius:6px;padding:5px;color:var(--text-3)}.tt-editor{margin-top:24px;padding:24px;scroll-margin-top:90px}.tt-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:16px 0}.tt-fields>*,.tt-fields input,.tt-fields select,.tt-fields textarea{min-width:0;max-width:100%}.tt-fields textarea{width:100%;min-height:80px}.tt-buttons{margin-top:16px}.tt-cycle{font-size:10px;font-weight:700}.tt-mobile{display:none}@media(max-width:759px){.tt-desktop{display:none!important}.tt-mobile{display:block}.tt-grid{grid-template-columns:1fr;grid-template-rows:none;gap:14px}.tt-day{display:block;grid-row:auto}.tt-day h2{font-size:15px;padding:12px}.tt-cell{min-height:34px;padding:6px 10px 6px 32px}.tt-cell:not(:has(.tt-slot)){display:none}.tt-number{top:14px;left:12px}.tt-slot{font-size:14px;padding:12px;cursor:auto!important}.tt-slot small,.tt-actions button{font-size:13px}.tt-actions button{min-height:44px}.tt-toolbar{display:grid;grid-template-columns:1fr}.tt-week-picker{justify-content:space-between}.tt-fields{grid-template-columns:1fr}.tt-editor{padding:16px}}.personnel-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px;margin-top:20px;align-items:start}.personnel-panels .settings-card{min-width:0}.personnel-panels .field{max-width:100%}.personnel-code-state{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:18px 0}.personnel-code-state output{font-family:var(--font-mono);letter-spacing:2px;font-size:18px}.personnel-panels .form-actions{flex-wrap:wrap}.personnel-panels .check-field{align-items:start}:root{--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace;--fs-11: 11px;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-15: 15px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-32: 32px;--fs-40: 40px;--lh-tight: 1.2;--lh: 1.45;--lh-loose: 1.6;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--tracking-tight: -.011em;--tracking-display: -.022em;--tracking-caps: .06em;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-2xl: 20px;--r-3xl: 28px;--r-full: 999px;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--dur-4: .48s;--z-sticky: 20;--z-nav: 30;--z-popover: 50;--z-drawer: 60;--z-dialog: 70;--z-toast: 80;--z-palette: 90;--tap: 44px;--control-h: 36px;--control-h-lg: 44px;--bg: #F7F7F5;--bg-sunken: #F0F0EC;--surface: #FFFFFF;--surface-2: #FAFAF8;--surface-hover: #F3F3EF;--surface-active: #EBEBE6;--border: #E6E6E0;--border-strong: #D1D1C9;--divider: #EEEEE9;--text: #1C1C1A;--text-2: #45453F;--text-3: #66665E;--text-4: #6E6E66;--accent: #3554D1;--accent-hover: #2944B8;--accent-press: #22399C;--accent-weak: #EEF1FD;--accent-weak-2: #DFE5FB;--accent-text: #2B45B4;--on-accent: #FFFFFF;--focus: #4B6BF0;--success: #1F7A47;--success-weak: #E5F4EA;--success-border: #B8E0C6;--warning: #8A5800;--warning-weak: #FFF3D9;--warning-border: #F0D08A;--warning-solid: #E3A008;--danger: #B42318;--danger-weak: #FDECEA;--danger-border: #F5C2BC;--danger-solid: #D92D20;--info: #1D5FA6;--info-weak: #E7F0FB;--info-border: #BBD3F0;--purple: #6340B8;--purple-weak: #F1ECFC;--purple-border: #D5C8F5;--g5-bg: #E3F4E8;--g5-fg: #17663A;--g4-bg: #E6F0FC;--g4-fg: #1C5596;--g3-bg: #FFF2D2;--g3-fg: #855400;--g2-bg: #FDE7DE;--g2-fg: #A23A12;--g1-bg: #FCE3E5;--g1-fg: #A0162A;--gA-bg: #EDF0F3;--gA-fg: #3A4654;--gMA-bg: #FCE3E5;--gMA-fg: #A0162A;--gV-bg: #F1ECFC;--gV-fg: #5A3BB0;--g5: #2F9E5B;--g4: #3B7DD8;--g3: #E0A11B;--g2: #E2672E;--g1: #D23B4A;--att-unexc-bg: #FDE7E4;--att-unexc-fg: #A61F14;--att-exc-bg: #E3F4E8;--att-exc-fg: #17663A;--att-late-bg: #FFF0CC;--att-late-fg: #7D5000;--att-pend-bg: #E7F0FB;--att-pend-fg: #1D5FA6;--load-0: #2F9E5B;--load-1: #E0A11B;--load-2: #D23B2E;--heat-0: #F0F0EC;--heat-1: #FCEBBF;--heat-2: #F7C38E;--heat-3: #EE8F7E;--subj-1: #3554D1;--subj-2: #0E8A6A;--subj-3: #C2410C;--subj-4: #7C3AED;--subj-5: #B4235A;--subj-6: #0369A1;--subj-7: #4D7C0F;--subj-8: #A16207;--subj-9: #0F766E;--subj-10: #9333EA;--subj-11: #9F1239;--subj-12: #475569;--shadow-xs: 0 1px 1px rgba(17, 17, 15, .04);--shadow-sm: 0 1px 2px rgba(17, 17, 15, .05), 0 1px 3px rgba(17, 17, 15, .05);--shadow-md: 0 4px 12px rgba(17, 17, 15, .07), 0 1px 3px rgba(17, 17, 15, .05);--shadow-lg: 0 16px 40px rgba(17, 17, 15, .12), 0 2px 8px rgba(17, 17, 15, .05);--shadow-overlay: 0 24px 64px rgba(17, 17, 15, .2), 0 4px 16px rgba(17, 17, 15, .08);--ring: 0 0 0 2px var(--surface), 0 0 0 4px var(--focus);--backdrop: rgba(24, 24, 20, .32);--skeleton: #EDEDE8;--skeleton-hi: #F8F8F5;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0E0E10;--bg-sunken: #09090B;--surface: #161619;--surface-2: #1A1A1E;--surface-hover: #202025;--surface-active: #27272D;--border: #2A2A30;--border-strong: #3A3A42;--divider: #222227;--text: #EDEDF0;--text-2: #C8C8CF;--text-3: #9C9CA6;--text-4: #8A8A93;--accent: #7D95FF;--accent-hover: #93A7FF;--accent-press: #A9B9FF;--accent-weak: #1A2040;--accent-weak-2: #232B52;--accent-text: #A3B4FF;--on-accent: #0B1030;--focus: #8EA4FF;--success: #5BCB8A;--success-weak: #12291C;--success-border: #1F4A31;--warning: #F2C14E;--warning-weak: #2E240C;--warning-border: #5A4515;--warning-solid: #E3A008;--danger: #FF8A7E;--danger-weak: #351512;--danger-border: #5E231D;--danger-solid: #F04438;--info: #7DB2F5;--info-weak: #11233A;--info-border: #1E3F66;--purple: #B59CFF;--purple-weak: #221A3D;--purple-border: #3E2F6E;--g5-bg: #13301F;--g5-fg: #74D69A;--g4-bg: #13253F;--g4-fg: #8DB9F5;--g3-bg: #33270B;--g3-fg: #F2C14E;--g2-bg: #3A1C10;--g2-fg: #FF9B6E;--g1-bg: #3B1218;--g1-fg: #FF8A96;--gA-bg: #23272D;--gA-fg: #C2CBD6;--gMA-bg: #3B1218;--gMA-fg: #FF8A96;--gV-bg: #241C3F;--gV-fg: #BFA8FF;--g5: #4CC27D;--g4: #6EA2F0;--g3: #F0BE45;--g2: #FF8A50;--g1: #FF6B7A;--att-unexc-bg: #3B1612;--att-unexc-fg: #FF9488;--att-exc-bg: #13301F;--att-exc-fg: #74D69A;--att-late-bg: #33270B;--att-late-fg: #F2C14E;--att-pend-bg: #11233A;--att-pend-fg: #8DB9F5;--load-0: #4CC27D;--load-1: #F0BE45;--load-2: #FF6B5E;--heat-0: #1C1C20;--heat-1: #3D3010;--heat-2: #55301A;--heat-3: #6A2420;--subj-1: #7D95FF;--subj-2: #34C79E;--subj-3: #FB8B4E;--subj-4: #A78BFA;--subj-5: #F472B6;--subj-6: #38BDF8;--subj-7: #A3D65C;--subj-8: #FBBF24;--subj-9: #2DD4BF;--subj-10: #C084FC;--subj-11: #FB7185;--subj-12: #94A3B8;--shadow-xs: 0 1px 1px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .35);--shadow-overlay: 0 24px 72px rgba(0, 0, 0, .65), 0 4px 16px rgba(0, 0, 0, .4);--backdrop: rgba(0, 0, 0, .55);--skeleton: #222227;--skeleton-hi: #2D2D33;color-scheme:dark}}:root[data-theme=dark]{--bg: #0E0E10;--bg-sunken: #09090B;--surface: #161619;--surface-2: #1A1A1E;--surface-hover: #202025;--surface-active: #27272D;--border: #2A2A30;--border-strong: #3A3A42;--divider: #222227;--text: #EDEDF0;--text-2: #C8C8CF;--text-3: #9C9CA6;--text-4: #8A8A93;--accent: #7D95FF;--accent-hover: #93A7FF;--accent-press: #A9B9FF;--accent-weak: #1A2040;--accent-weak-2: #232B52;--accent-text: #A3B4FF;--on-accent: #0B1030;--focus: #8EA4FF;--success: #5BCB8A;--success-weak: #12291C;--success-border: #1F4A31;--warning: #F2C14E;--warning-weak: #2E240C;--warning-border: #5A4515;--warning-solid: #E3A008;--danger: #FF8A7E;--danger-weak: #351512;--danger-border: #5E231D;--danger-solid: #F04438;--info: #7DB2F5;--info-weak: #11233A;--info-border: #1E3F66;--purple: #B59CFF;--purple-weak: #221A3D;--purple-border: #3E2F6E;--g5-bg: #13301F;--g5-fg: #74D69A;--g4-bg: #13253F;--g4-fg: #8DB9F5;--g3-bg: #33270B;--g3-fg: #F2C14E;--g2-bg: #3A1C10;--g2-fg: #FF9B6E;--g1-bg: #3B1218;--g1-fg: #FF8A96;--gA-bg: #23272D;--gA-fg: #C2CBD6;--gMA-bg: #3B1218;--gMA-fg: #FF8A96;--gV-bg: #241C3F;--gV-fg: #BFA8FF;--g5: #4CC27D;--g4: #6EA2F0;--g3: #F0BE45;--g2: #FF8A50;--g1: #FF6B7A;--att-unexc-bg: #3B1612;--att-unexc-fg: #FF9488;--att-exc-bg: #13301F;--att-exc-fg: #74D69A;--att-late-bg: #33270B;--att-late-fg: #F2C14E;--att-pend-bg: #11233A;--att-pend-fg: #8DB9F5;--load-0: #4CC27D;--load-1: #F0BE45;--load-2: #FF6B5E;--heat-0: #1C1C20;--heat-1: #3D3010;--heat-2: #55301A;--heat-3: #6A2420;--subj-1: #7D95FF;--subj-2: #34C79E;--subj-3: #FB8B4E;--subj-4: #A78BFA;--subj-5: #F472B6;--subj-6: #38BDF8;--subj-7: #A3D65C;--subj-8: #FBBF24;--subj-9: #2DD4BF;--subj-10: #C084FC;--subj-11: #FB7185;--subj-12: #94A3B8;--shadow-xs: 0 1px 1px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .35);--shadow-overlay: 0 24px 72px rgba(0, 0, 0, .65), 0 4px 16px rgba(0, 0, 0, .4);--backdrop: rgba(0, 0, 0, .55);--skeleton: #222227;--skeleton-hi: #2D2D33;color-scheme:dark}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"cv11" 1}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){:root{--dur-1: 0ms;--dur-2: 0ms;--dur-3: 0ms;--dur-4: 0ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:0;background:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:3px}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);padding:10px 12px;min-width:0;max-width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-weak)}textarea{resize:vertical;min-height:72px;line-height:1.5}input[type=date],input[type=time]{font-variant-numeric:tabular-nums}input[type=checkbox]{accent-color:var(--accent);width:19px;height:19px;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.2;letter-spacing:-.8px;font-weight:650}h2{font-size:18px;font-weight:650;letter-spacing:-.35px}h3{font-size:15px;font-weight:600}p{line-height:1.6}svg{flex-shrink:0;vertical-align:middle}strong{font-weight:600}.muted{color:var(--text-3)}.small,small{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:650;color:var(--text-3);display:block;margin-bottom:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid var(--border-strong);border-radius:9px;font-size:13px;font-weight:550;background:var(--surface);transition:background .15s}.button:hover{background:var(--surface-hover)}.button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.button.primary:hover{background:var(--accent-hover)}.button.quiet{border-color:transparent;background:transparent;color:var(--text-3)}.button.full{width:100%;min-height:48px}.success-button{color:var(--success);background:var(--success-weak);border-color:var(--success-border)}.field{display:flex;flex-direction:column;gap:7px;margin:16px 0;font-size:12px;font-weight:550}.field input,.field textarea,.field select{width:100%;font-size:14px;font-weight:400}.field>span{color:var(--text-2)}.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:18px}.saved{display:inline-flex;align-items:center;gap:5px;color:var(--success);font-size:12px}.panel{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-xs)}.notice{display:flex;gap:10px;align-items:center;padding:14px 16px;border-radius:9px;margin:12px 0;font-size:13px}.notice button{text-decoration:underline;flex-shrink:0}.danger{background:var(--danger-weak);color:var(--danger)}.warning{background:var(--warning-weak);color:var(--warning)}.success{background:var(--success-weak);color:var(--success)}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--r-full);font-size:11px;font-weight:550;background:var(--surface-hover);color:var(--text-2)}.pill.success{background:var(--success-weak);color:var(--success)}.pill.warning{background:var(--warning-weak);color:var(--warning)}.empty{padding:45px 24px;text-align:center;color:var(--text-3)}.empty>svg{margin-bottom:15px;color:var(--accent)}.empty h3{margin-bottom:8px;color:var(--text)}.loading{display:flex;gap:10px;align-items:center;justify-content:center;min-height:220px;color:var(--text-3)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand{display:flex;align-items:center;gap:10px;font-size:29px;font-weight:650;letter-spacing:-1.6px;line-height:1}.brand-mark{display:inline-flex;align-items:center;justify-content:center;font-size:28px;letter-spacing:-1px;font-weight:550;width:36px;height:36px;border-radius:10px;background:var(--accent);color:var(--on-accent)}.brand-dot{color:var(--accent)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:18px;background:var(--accent-weak);color:var(--accent-text);font-size:22px;font-weight:550;flex-shrink:0}.avatar.small{width:34px;height:34px;border-radius:50%;font-size:11px}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;color:var(--text-3);border-radius:50%}.icon-button:hover{background:var(--surface-hover)}.login-layout{min-height:100dvh;display:grid;grid-template-columns:44% 56%}.login-story{background:var(--accent-weak);padding:48px 64px;display:flex;flex-direction:column;justify-content:space-between;min-height:100dvh;overflow:hidden}.login-story h1{font-size:56px;line-height:1.13;max-width:360px;letter-spacing:-2.7px;color:var(--accent-text);margin-bottom:22px}.login-story p{color:var(--text-3);max-width:310px;font-size:16px}.login-story .eyebrow{color:var(--accent-text)}.story-footer{font-size:11px;color:var(--text-3)}.story-art{position:relative;width:270px;height:230px;margin-top:24px;display:flex;align-items:center;justify-content:center;color:var(--accent)}.art-ring{position:absolute;width:205px;height:205px;border:1px solid var(--accent);opacity:.13;border-radius:50%;transform:rotate(-24deg)}.story-art>svg{transform:rotate(-12deg)}.art-star,.art-heart{position:absolute;background:var(--surface);border-radius:18px;padding:16px;box-shadow:var(--shadow-md);transform:rotate(10deg)}.art-star{top:8px;right:5px;color:var(--warning)}.art-heart{bottom:0;left:5px;color:var(--purple);transform:rotate(-12deg)}.login-main{display:flex;flex-direction:column;padding:35px 50px}.login-top{display:flex;justify-content:flex-end}.login-top select{border-color:var(--border);font-size:12px;background:transparent}.mobile-brand{display:none}.login-form{width:100%;max-width:370px;margin:auto;padding:35px 0}.login-form h1{margin:20px 0 10px;font-size:29px}.login-form>.muted{margin-bottom:32px}.login-form .field{margin-bottom:22px}.login-icon{width:58px;height:58px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);border-radius:18px;color:var(--accent)}.secure{display:flex;justify-content:center;align-items:center;gap:7px;font-size:11px;color:var(--text-3);margin-top:22px}.school-page{max-width:1050px;margin:0 auto;padding:32px}.school-top{display:flex;justify-content:space-between;align-items:center}.school-picker{max-width:480px;margin:13vh auto}.school-picker>p{margin:12px 0 30px}.school-option{display:flex;width:100%;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:14px;text-align:left}.school-option:hover{border-color:var(--accent);background:var(--accent-weak)}.school-option>span:nth-child(2){flex:1}.school-option small{display:block;color:var(--text-3);margin-top:6px}.school-icon{color:var(--accent);background:var(--accent-weak);border-radius:10px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.offline-page{max-width:600px;padding:60px 24px;margin:15vh auto;text-align:center}.offline-page>svg{color:var(--accent);margin-bottom:24px}.offline-page h1{margin-bottom:20px}.app-shell{display:flex;min-height:100dvh}.sidebar{width:232px;position:fixed;inset:0 auto 0 0;padding:28px 18px 14px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:30}.sidebar>.brand{padding:0 10px;margin-bottom:36px}.school-switch{display:flex;gap:10px;align-items:center;text-align:left;width:100%;padding:9px 4px;color:var(--text-2);margin-bottom:28px}.school-switch strong{font-size:12px;flex:1;line-height:1.45}.school-switch .school-icon{width:34px;height:34px}.role-label{color:var(--text-3);font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:0 12px;margin-bottom:12px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav button{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:9px;text-align:left;font-size:13px;color:var(--text-3);min-height:46px}.sidebar nav button:hover{background:var(--surface-hover)}.sidebar nav button[aria-current]{background:var(--accent-weak);color:var(--accent-text);font-weight:600}.sidebar-bottom{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--text-3);margin-top:auto;padding:20px 10px}.quiet-dot{width:6px;height:6px;background:var(--success);border-radius:50%}.user-account{border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;text-align:left;padding:18px 7px 4px}.user-account strong{font-size:12px}.user-account small{display:block;color:var(--text-3);font-size:10px}.workspace{margin-left:232px;flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:70px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 36px;background:var(--surface)}.desktop-breadcrumb{display:flex;gap:15px;align-items:center;color:var(--text-3);font-size:11px}.desktop-breadcrumb>span{color:var(--border-strong)}.header-profile{display:flex;gap:12px;align-items:center;font-size:12px}.page{padding:34px 36px 42px;width:100%;max-width:1500px;margin:0 auto;flex:1}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.page-heading h1{margin-bottom:10px}.page-heading p{color:var(--text-3);font-size:13px;display:flex;align-items:center;gap:8px}.page-heading .eyebrow{font-size:9px}.date-control{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--surface);flex-shrink:0}.date-control button{display:flex;align-items:center;justify-content:center;width:28px;height:32px;color:var(--text-3)}.date-control input{border:0;padding:6px;font-size:12px;max-width:137px;background:transparent}.page-footer{padding:0 36px 22px;display:flex;align-items:center;gap:6px;color:var(--text-3);font-size:10px}.page-footer button{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:10px;color:var(--text-3)}.offline{background:var(--warning-weak);color:var(--warning);padding:12px 22px;font-size:12px;display:flex;gap:10px;align-items:center}.section-heading{display:flex;align-items:center;gap:10px;margin:28px 0 15px}.count{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--border);min-width:24px;height:24px;border-radius:7px;font-size:11px;color:var(--text-3)}.greeting-card{display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden;background:var(--accent-weak);border:1px solid var(--accent-weak-2);border-radius:16px;padding:28px 32px;min-height:164px}.greeting-date{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--accent-text);margin-bottom:10px;text-transform:capitalize}.greeting-card h2{font-size:25px;letter-spacing:-.65px;margin-bottom:16px}.greeting-count{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-3)}.greeting-art{height:110px;width:145px;position:relative;display:flex;align-items:center;justify-content:center;color:var(--accent);margin-right:20px}.greeting-art span{position:absolute;width:115px;height:115px;border:1px solid var(--accent);opacity:.18;border-radius:50%;right:-15px;top:5px}.greeting-art span+span{right:25px;top:-12px}.day-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px}.day-aside{padding-top:68px}.tip-card{padding:24px;background:var(--surface-2)}.tip-icon{background:var(--warning-weak);color:var(--warning);border-radius:12px;display:flex;width:42px;height:42px;align-items:center;justify-content:center;margin-bottom:20px}.tip-card h3{font-size:17px;line-height:1.4;margin-bottom:10px}.tip-card p{color:var(--text-3);font-size:12px;line-height:1.75}.tip-illustration{display:flex;margin-top:26px;gap:8px}.tip-illustration span{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--success-weak);color:var(--success)}.tip-illustration span:last-child{background:var(--warning-weak);color:var(--warning)}.lesson-list{display:flex;flex-direction:column;gap:12px}.lesson-card{display:flex;align-items:center;gap:20px;width:100%;text-align:left;border:1px solid var(--border);border-radius:13px;padding:22px 20px;background:var(--surface);box-shadow:var(--shadow-xs);transition:border-color .15s,transform .15s}.lesson-card:hover{border-color:var(--accent);transform:translateY(-1px)}.lesson-card.current{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.lesson-time{align-self:flex-start;padding-top:4px;flex-shrink:0;width:48px;text-align:center;font-variant-numeric:tabular-nums}.lesson-time strong{display:block;font-size:15px;letter-spacing:-.4px}.lesson-time small{display:block;color:var(--text-3);font-size:10px;margin-top:4px}.lesson-content{flex:1;min-width:0;padding-left:18px;border-left:1px solid var(--border)}.lesson-status{display:flex;align-items:center;gap:6px;color:var(--text-3);font-size:10px;margin-bottom:6px}.lesson-content>strong{display:block;font-size:17px;line-height:1.3}.lesson-class{font-size:11px;color:var(--text-3);display:block;margin-top:4px}.lesson-topic{color:var(--text-3);font-size:12px;display:block;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-arrow{color:var(--text-3);display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--surface-hover)}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--success)}.back-link{display:flex;gap:6px;align-items:center;color:var(--text-3);font-size:11px;padding:0;margin-bottom:22px}.heading-class{display:inline-block;font-size:15px;margin-left:12px;color:var(--text-3);font-weight:450;border:1px solid var(--border);border-radius:6px;padding:4px 8px;vertical-align:middle;letter-spacing:0}.journal-heading{align-items:flex-start}.journal-heading h1{font-size:28px}.journal-heading>.pill{margin-top:24px}.journal-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.roster{overflow:hidden}.roster-heading{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:10px}.roster-heading h2{display:flex;gap:8px;align-items:center;font-size:16px;margin-bottom:4px}.roster-heading .button{font-size:11px;padding:8px 10px;min-height:38px}.roster-columns,.student-row{display:grid;grid-template-columns:minmax(150px,1fr) 118px 68px;align-items:center;gap:8px;padding:0 16px}.roster-columns{height:38px;background:var(--surface-2);border-top:1px solid var(--divider);border-bottom:1px solid var(--divider);font-size:10px;color:var(--text-3)}.roster-columns>span:last-child{text-align:center}.student-row{min-height:61px;border-bottom:1px solid var(--divider)}.student-row:last-child{border-bottom:0}.student-row:hover{background:var(--surface-2)}.student-name{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:500;min-width:0;line-height:1.4}.student-name>[data-user-text]{min-width:0;overflow-wrap:anywhere}.student-name .avatar{background:var(--bg-sunken);color:var(--text-3);width:28px;height:28px;font-size:9px}.row-number{font-size:10px;width:14px;color:var(--text-4);font-weight:400}.tip-button{color:var(--purple);padding:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto}.attendance-select{font-size:10px;border:0;border-radius:6px;padding:8px 4px;width:100%;background:transparent;color:var(--text-3);height:36px}.attendance-select.absent{background:var(--att-unexc-bg);color:var(--att-unexc-fg)}.attendance-select.late{background:var(--att-late-bg);color:var(--att-late-fg)}.grade-cell{display:flex;justify-content:center}.grade-input{display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:wrap;width:100%;min-height:35px;border:1px dashed var(--border-strong);border-radius:7px;color:var(--text-4);padding:4px}.grade-input:has(.grade){border-style:solid;border-color:var(--border);background:var(--surface)}.grade{display:inline-flex;min-width:30px;height:30px;align-items:center;justify-content:center;border-radius:7px;background:var(--gV-bg);color:var(--gV-fg);font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 5px}.grade-5{background:var(--g5-bg);color:var(--g5-fg)}.grade-4{background:var(--g4-bg);color:var(--g4-fg)}.grade-3{background:var(--g3-bg);color:var(--g3-fg)}.grade-2{background:var(--g2-bg);color:var(--g2-fg)}.grade-1,.grade-X,.grade-MA{background:var(--g1-bg);color:var(--g1-fg)}.grade-A{background:var(--gA-bg);color:var(--gA-fg)}.roster-footer{min-height:45px;border-top:1px solid var(--divider);padding:12px 16px;font-size:10px;color:var(--text-3);display:flex;flex-direction:column;gap:8px}.lesson-details{display:flex;flex-direction:column;gap:18px}.editor{padding:20px}.editor h2{display:flex;gap:8px;align-items:center;font-size:15px}.editor h2>svg{color:var(--text-3)}.editor .field{font-size:11px}.editor textarea{font-size:12px;min-height:66px}.editor .button{font-size:11px;min-height:37px}.editor .form-actions{gap:8px}.workload{padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;font-size:11px;color:var(--text-3);line-height:1.8}.workload strong{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--text-2);margin-bottom:5px}.load-dot{width:6px;height:6px;border-radius:50%;background:var(--success)}.load-dot.busy{background:var(--warning)}.homework-list{border-top:1px solid var(--border);margin-top:22px;padding-top:16px;font-size:11px}.homework-list h3{font-size:11px;margin-bottom:10px}.homework-list time{color:var(--text-3)}.homework-list p{margin:4px 0 10px;white-space:pre-wrap;overflow-wrap:anywhere}.child-hero{position:relative;padding:28px 30px;border-radius:17px;background:linear-gradient(115deg,#3554d1,#5646cc);color:#fff;overflow:hidden;min-height:170px}.child-hero .avatar{background:#ffffff25;color:#fff;width:58px;height:58px}.child-select{display:flex;gap:16px;align-items:center}.child-select h2{font-size:22px;letter-spacing:-.6px}.child-select>div>span{display:block;font-size:12px;opacity:.75;margin-top:4px}.child-select select{background:var(--surface);color:var(--text)}.child-school{display:block;font-size:12px;opacity:.75;margin-top:20px}.child-hero-art{position:absolute;right:38px;top:35px;opacity:.35}.child-hero-art span{font-size:45px;position:absolute;top:35px;right:50px}.parent-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;margin-top:22px}.absence-cta{display:flex;gap:14px;align-items:center;text-align:left;width:100%;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:13px}.absence-cta:hover{border-color:var(--accent)}.tile{width:44px;height:44px;border-radius:12px;display:flex;justify-content:center;align-items:center;background:var(--accent-weak);color:var(--accent);flex-shrink:0}.absence-cta>span:nth-child(2){flex:1}.absence-cta strong{display:block;font-size:14px;line-height:1.4}.absence-cta small{display:block;color:var(--text-3);font-size:11px;margin-top:5px}.absence-cta>svg{color:var(--text-3)}.calm-card{padding:24px;position:relative;overflow:hidden;background:var(--surface-2)}.calm-card>svg{color:var(--purple);margin-bottom:20px}.calm-card h3{font-size:16px;margin-bottom:10px;max-width:180px}.calm-card p{font-size:12px;line-height:1.75;color:var(--text-3)}.calm-decoration{display:block;color:var(--purple);font-size:58px;opacity:.22;text-align:right;line-height:1.4;padding-right:10px}.parent-trust{display:flex;gap:8px;font-size:10px;line-height:1.6;color:var(--text-3);padding:22px 10px}.feed-list{overflow:hidden}.feed-item{display:flex;gap:14px;padding:22px;border-bottom:1px solid var(--divider);align-items:flex-start}.feed-item:last-child{border-bottom:0}.feed-icon{width:38px;height:38px;background:var(--accent-weak);color:var(--accent);display:flex;align-items:center;justify-content:center;border-radius:11px;flex-shrink:0}.feed-icon.absence{background:var(--warning-weak);color:var(--warning)}.feed-icon.message{background:var(--purple-weak);color:var(--purple)}.feed-content{min-width:0;flex:1}.feed-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--text-3);margin-bottom:5px}.feed-meta time{white-space:nowrap}.feed-item h3{font-size:13px;margin-bottom:4px;overflow-wrap:anywhere}.feed-item p{font-size:12px;color:var(--text-3);white-space:pre-wrap;overflow-wrap:anywhere}.feed-item>.grade{margin-top:20px;width:36px;height:36px;font-size:18px}.justifications>h2{margin:24px 0 14px;font-size:16px}.received-card{background:var(--surface);border:1px solid var(--success-border);border-radius:13px;padding:20px;margin-top:12px}.received-title{display:flex;align-items:center;gap:12px}.received-title .tile{background:var(--success-weak);color:var(--success)}.received-title strong{font-size:13px}.received-title small{display:block;color:var(--text-3);font-size:10px;margin-top:5px}.received-card>p{margin-top:14px;font-size:11px}.own-explanation{margin-top:14px;border-top:1px solid var(--divider);padding-top:14px}.own-explanation>span{color:var(--text-3);font-size:10px}.own-explanation p{font-size:12px;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}.child-bar{padding:20px 24px;margin-bottom:24px}.child-bar .avatar{width:42px;height:42px;font-size:15px;border-radius:12px}.child-bar h2{font-size:17px}.subject-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.subject-card{padding:24px}.subject-card h2{display:flex;align-items:center;gap:10px;font-size:16px;margin-bottom:22px}.subject-mark{height:17px;width:4px;border-radius:2px;background:var(--accent)}.subject-card:nth-child(2n) .subject-mark{background:var(--purple)}.subject-results{display:flex;flex-direction:column;gap:15px}.subject-result{display:flex;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--divider)}.subject-result:last-child{border:0;padding:0}.subject-result time{font-size:10px;color:var(--text-3)}.subject-result p{font-size:12px;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}.profile-grid{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:24px;max-width:1000px}.profile-identity{padding:28px 22px;text-align:center}.profile-identity h2{font-size:17px;margin:16px 0 10px}.profile-identity .secure{border-top:1px solid var(--border);padding-top:22px;margin:26px 0 15px}.profile-identity .button{width:100%;font-size:12px;margin-top:10px}.profile-sections{display:flex;flex-direction:column;gap:20px}.settings-card{padding:26px}.settings-card h2{display:flex;align-items:center;gap:10px;font-size:16px;margin-bottom:16px}.settings-card h2 svg{color:var(--accent)}.settings-card>.muted{font-size:12px}.settings-card .field{max-width:400px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check-field{display:flex;gap:10px;align-items:center;font-size:12px;margin-top:12px}.switch-field{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px;font-size:13px}.switch-field input{appearance:none;width:42px;height:25px;padding:2px;border-radius:20px;border:0;background:var(--border-strong);cursor:pointer}.switch-field input:before{content:"";display:block;width:21px;height:21px;background:#fff;border-radius:50%;box-shadow:var(--shadow-xs);transition:transform .15s}.switch-field input:checked{background:var(--accent)}.switch-field input:checked:before{transform:translate(17px)}.modal{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:0;border-radius:20px;max-width:480px;width:calc(100% - 36px);box-shadow:var(--shadow-overlay);max-height:90dvh;overflow:auto}.modal::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-inner{padding:26px}.modal header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:8px}.modal header h2{font-size:21px;line-height:1.3}.modal header .icon-button{margin-right:-10px}.modal h3{font-size:13px;margin:22px 0 12px}.person-label{font-size:16px;font-weight:550;margin:12px 0 20px}.grade-picker{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.grade-picker button{padding:10px 15px;min-width:46px;min-height:46px;border:1px solid var(--border-strong);border-radius:9px;font-size:14px}.grade-picker button.selected{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text);box-shadow:0 0 0 1px var(--accent)}.specialist-note{padding:18px;border-radius:12px;background:var(--purple-weak);color:var(--text-2);font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.steps-label{font-size:11px;color:var(--text-3);margin:12px 0 22px}.reason-list{display:flex;flex-direction:column;gap:10px}.reason-option{display:flex;align-items:center;gap:13px;border:1px solid var(--border);border-radius:11px;padding:16px;text-align:left}.reason-option>svg:first-child{color:var(--accent)}.reason-option>span{flex:1}.reason-option:hover{background:var(--accent-weak);border-color:var(--accent)}.absence-confirm{display:flex;align-items:center;gap:8px;background:var(--success-weak);color:var(--success);padding:12px;border-radius:10px;font-size:12px;margin-bottom:16px}@media(min-width:1500px){.page{padding:42px 48px}.journal-grid{grid-template-columns:minmax(0,1fr) 340px}.roster-columns,.student-row{grid-template-columns:minmax(180px,1fr) 138px 90px;padding:0 24px}.student-row{min-height:65px}.student-name{font-size:14px}.attendance-select{font-size:12px}.day-grid,.parent-grid{grid-template-columns:minmax(0,1fr) 300px}}@media(max-width:1180px)and (min-width:761px){.sidebar{width:205px}.workspace{margin-left:205px}.page{padding:28px 24px}.topbar{padding:0 24px}.day-grid,.parent-grid{grid-template-columns:1fr}.day-aside,.parent-grid>aside{display:none}.journal-grid{grid-template-columns:1fr}.lesson-details{display:grid;grid-template-columns:1fr 1fr}.profile-grid{grid-template-columns:220px 1fr}.login-story{padding:40px}.login-story h1{font-size:46px}}@media(max-width:760px){body{font-size:14px}.mobile-brand{display:block}.brand{font-size:26px}.brand-mark{width:31px;height:31px;font-size:25px;border-radius:9px}.login-layout{display:block;min-height:100dvh}.login-story{display:none}.login-main{min-height:100dvh;padding:24px}.login-top{justify-content:space-between;align-items:center}.login-form{margin:8vh auto auto;max-width:390px;padding-bottom:40px}.login-form h1{font-size:28px}.login-form>.muted{font-size:13px}.login-form .field{margin:22px 0}.login-form input{min-height:48px}.school-page{padding:24px}.school-picker{margin-top:12vh}.school-picker h1{font-size:27px}.school-option{padding:20px 16px}.sidebar{position:fixed;inset:auto 0 0;height:calc(68px + env(safe-area-inset-bottom));width:100%;padding:0 12px env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--border);background:var(--surface);z-index:30}.sidebar>.brand,.sidebar>.school-switch,.sidebar>.role-label,.sidebar-bottom,.user-account{display:none}.sidebar nav{flex-direction:row;justify-content:space-around;gap:4px;height:100%}.sidebar nav button{flex:1;flex-direction:column;gap:4px;justify-content:center;padding:7px 4px;min-height:60px;border-radius:0;font-size:10px;position:relative}.sidebar nav button[aria-current]{background:transparent;color:var(--accent-text)}.sidebar nav button[aria-current]:before{content:"";position:absolute;top:0;left:30%;right:30%;height:2px;background:var(--accent);border-radius:0 0 3px 3px}.workspace{margin-left:0;margin-bottom:calc(68px + env(safe-area-inset-bottom))}.topbar{height:66px;padding:0 20px}.desktop-breadcrumb{display:none}.header-profile{gap:8px}.header-profile>span:first-child{font-size:11px}.header-profile .avatar{width:31px;height:31px;font-size:10px}.page{padding:26px 20px 30px}.page-heading{display:block;margin-bottom:24px}.page-heading h1{font-size:29px;letter-spacing:-1px}.page-heading p{font-size:12px}.page-heading .eyebrow{font-size:9px;margin-bottom:9px}.date-control{margin-top:18px;display:inline-flex;gap:10px}.date-control input{max-width:155px;font-size:12px}.date-control button{width:32px;min-height:34px}.greeting-card{padding:23px 22px;min-height:165px;border-radius:14px}.greeting-date{font-size:10px}.greeting-card h2{font-size:23px;max-width:240px}.greeting-count{font-size:11px}.greeting-art{position:absolute;right:-20px;bottom:-2px;width:80px;opacity:.3;margin:0}.greeting-art>svg{width:35px}.greeting-art span{width:85px;height:85px}.day-grid{display:block}.day-aside{display:none}.section-heading{margin:26px 0 14px}.section-heading h2{font-size:17px}.lesson-card{padding:18px 15px;gap:12px;min-height:120px}.lesson-time{width:42px}.lesson-time strong{font-size:14px}.lesson-content{padding-left:13px}.lesson-content>strong{font-size:17px}.lesson-arrow{width:25px;height:25px}.lesson-arrow svg{width:17px}.page-footer{padding:8px 20px 25px;font-size:9px}.page-footer>button{display:none}.journal-heading h1{font-size:25px}.journal-heading>.pill{margin-top:16px}.back-link{font-size:12px;margin-bottom:20px;min-height:26px}.heading-class{font-size:13px;margin-left:8px}.journal-grid{display:flex;flex-direction:column;gap:22px}.roster{width:calc(100% + 12px);margin-left:-6px;border-radius:13px}.roster-heading{padding:17px 12px;gap:7px}.roster-heading h2{font-size:15px;gap:6px}.roster-heading .button{font-size:10px;min-height:44px;padding:8px}.roster-heading>.button svg{width:16px}.roster-heading .small{font-size:10px}.roster-columns,.student-row{grid-template-columns:minmax(0,1fr) 108px 54px;padding:0 10px;gap:5px}.roster-columns{font-size:9px}.student-row{min-height:62px}.student-name{font-size:12px;gap:5px}.student-name .avatar,.row-number{display:none}.tip-button{padding:3px;min-width:28px;min-height:44px;margin-left:0}.tip-button svg{width:15px}.attendance-select{font-size:10px;padding:8px 0;min-height:44px}.grade-input{min-height:44px;border-style:dashed;padding:3px}.grade-input .grade{min-width:25px;height:28px;font-size:14px}.roster-footer{min-height:20px;padding:8px 12px}.desktop-only{display:none}.lesson-details{width:100%}.editor{padding:21px}.editor h2{font-size:16px}.editor .field{font-size:12px}.editor textarea{font-size:14px}.editor .button{min-height:44px;font-size:12px}.editor .workload{font-size:12px}.editor .workload strong{font-size:11px}.parent-grid{display:block;margin-top:18px}.parent-grid>aside{margin-top:22px}.parent-grid .calm-card{padding:20px}.calm-card>svg{margin-bottom:12px}.calm-card h3{max-width:none;font-size:14px}.calm-card p{font-size:11px}.calm-decoration,.parent-trust{display:none}.child-hero{padding:24px;min-height:172px}.child-select{gap:13px}.child-select h2{font-size:21px}.child-hero .avatar{width:50px;height:50px;font-size:19px;border-radius:15px}.child-school{font-size:11px;max-width:250px;line-height:1.6}.child-hero-art{right:15px;top:85px;opacity:.2}.child-hero-art>svg{width:32px}.child-hero-art span{font-size:25px;right:25px;top:25px}.absence-cta{padding:17px 14px;gap:11px}.absence-cta strong{font-size:13px}.absence-cta small{font-size:10px}.absence-cta .tile{width:37px;height:42px;border-radius:10px}.absence-cta>svg{width:16px}.feed-item{padding:18px 14px;gap:11px}.feed-icon{width:32px;height:34px;border-radius:9px}.feed-icon svg{width:17px}.feed-meta{font-size:9px;gap:5px}.feed-item h3{font-size:12px}.feed-item p{font-size:11px}.feed-item>.grade{width:30px;height:32px;font-size:16px}.received-card{padding:17px 15px}.received-title{gap:10px}.received-title strong{font-size:13px}.received-title small{font-size:9px}.received-title .tile{width:37px;height:38px}.subject-grid{grid-template-columns:1fr;gap:16px}.subject-card{padding:22px}.child-bar{padding:18px}.child-bar h2{font-size:17px}.profile-grid{display:flex;flex-direction:column;gap:20px}.profile-identity{width:100%;padding:24px}.profile-identity .button{min-height:44px}.profile-sections{width:100%;gap:16px}.settings-card{padding:22px}.settings-card .button{min-height:44px;font-size:12px}.settings-card select,.settings-card input[type=time]{min-height:44px}.settings-card h2{font-size:16px}.modal{width:calc(100% - 24px);border-radius:18px;max-height:92dvh}.modal-inner{padding:23px}.modal header h2{font-size:20px}.modal .button{min-height:46px}.grade-picker button{min-width:46px;min-height:48px}.reason-option{min-height:60px;padding:15px}.reason-option span{font-size:13px}.form-actions{gap:10px}.notice{align-items:flex-start;font-size:12px;padding:12px}.notice button{white-space:normal}.offline{font-size:11px}.offline-page{padding:35px 24px;margin:10vh auto}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.greeting-date{text-transform:none}.greeting-date:first-letter{text-transform:uppercase}.date-field{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.date-field>svg{color:var(--text-3)}.date-field input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}.date-field:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-weak)}.field .date-field{width:100%}.date-control .date-field{border:0;min-height:32px;padding:4px 8px}.page-heading .eyebrow,.eyebrow{font-size:11px}.page-heading p{font-size:14px}.roster-hint{padding:0 20px 14px;font-size:13px;color:var(--text-3)}.roster-heading .button{font-size:13px;min-height:42px;padding:8px 14px}.roster-heading .button>span{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25;text-align:left}.all-present-hint{font-size:11px;font-weight:450}.roster-columns{font-size:12px}.roster-columns,.student-row{grid-template-columns:minmax(150px,1fr) 140px 150px}.student-name{font-size:14px}.student-name .avatar{font-size:10px}.row-number{font-size:12px;width:18px}.student-row.absent{background:color-mix(in srgb,var(--att-unexc-bg) 35%,transparent)}.student-row.late{background:color-mix(in srgb,var(--att-late-bg) 35%,transparent)}.attendance-select{font-size:13px;padding:8px 6px;border:1px solid transparent}.attendance-select.present{border-color:var(--border)}.grade-input{flex-wrap:nowrap;justify-content:flex-start;gap:4px;min-height:38px;padding:3px 5px}.grade-input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.grade-input>svg{margin:auto}.grade-input .grade{min-width:28px;height:28px;font-size:14px}.grade-more{font-size:12px;color:var(--text-3);font-weight:600;padding:0 2px}.roster-footer{font-size:12px}.tip-button{border-radius:50%}.tip-button:hover{background:var(--purple-weak)}.tip-privacy{margin-top:14px}.editor .field{font-size:13px}.editor textarea{font-size:14px}.editor .button{font-size:13px}.workload{font-size:13px;line-height:1.6}.workload strong{font-size:12px}.workload.busy{border-color:var(--warning-border, var(--border));background:var(--warning-weak)}.workload ul{margin:6px 0 0;padding-left:18px}.homework-list,.homework-list h3,.lesson-status,.lesson-class,.lesson-topic{font-size:13px}.feed-meta{font-size:12px}.feed-item h3{font-size:15px}.feed-item p{font-size:14px}.received-title small,.own-explanation>span{font-size:12px}.received-card>p,.own-explanation p{font-size:13px}.absence-cta small{font-size:13px}.absence-cta strong{font-size:16px}.subject-result time{font-size:12px}.subject-result p,.calm-card p{font-size:13px}.parent-trust,.sidebar-bottom,.page-footer{font-size:12px}.grade-picker .grade-choice{font-weight:650;font-size:17px;min-width:52px;min-height:52px}.grade-choice-5{background:var(--g5-bg);color:var(--g5-fg)}.grade-choice-4{background:var(--g4-bg);color:var(--g4-fg)}.grade-choice-3{background:var(--g3-bg);color:var(--g3-fg)}.grade-choice-pass{background:var(--gA-bg);color:var(--gA-fg)}.grade-choice-X,.grade-choice-fail{background:var(--g1-bg);color:var(--g1-fg)}.grade-choice-verbal{background:var(--gV-bg);color:var(--gV-fg)}@media(max-width:760px){body{font-size:16px}.page-heading h1{font-size:30px}.page-heading p{font-size:15px}.page-heading .eyebrow{font-size:11px}.date-control .date-field{font-size:15px}.greeting-date{font-size:13px}.greeting-card h2{font-size:25px}.greeting-count,.lesson-status,.lesson-class,.lesson-topic{font-size:14px}.lesson-content>strong{font-size:19px}.lesson-time strong{font-size:16px}.lesson-time small{font-size:13px}.sidebar nav button{font-size:12px}.sidebar nav{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;justify-content:flex-start}.sidebar nav::-webkit-scrollbar{display:none}.sidebar nav button{flex:1 0 auto;min-width:64px}.header-profile>span:first-child{font-size:14px}.back-link{font-size:15px}.journal-heading h1{font-size:28px}.roster-heading h2{font-size:18px}.roster-heading .small{font-size:13px}.roster-heading .button{font-size:14px;min-height:52px;padding:8px 12px}.roster-hint{padding:0 12px 12px;font-size:14px}.roster-columns,.student-row{grid-template-columns:minmax(0,1fr) 112px 64px;padding:0 10px;gap:6px}.roster-columns{font-size:12px}.student-row{min-height:64px}.student-name{font-size:16px;gap:6px;line-height:1.3}.attendance-select{font-size:14px;min-height:46px;padding:8px 4px}.grade-input{min-height:46px;justify-content:center;gap:2px}.grade-input .grade{min-width:24px;height:30px;font-size:15px;padding:0 4px}.grade-more{font-size:11px}.roster-footer{font-size:13px}.editor h2{font-size:18px}.editor .field{font-size:14px}.editor textarea{font-size:16px}.editor .button{font-size:15px;min-height:48px}.editor .workload{font-size:14px}.editor .workload strong{font-size:13px}.homework-list,.homework-list h3{font-size:14px}.child-select h2{font-size:22px}.child-select>div>span,.child-school{font-size:14px}.absence-cta strong{font-size:17px}.absence-cta small{font-size:14px}.feed-meta{font-size:13px}.feed-item h3{font-size:16px}.feed-item p,.feed-item small{font-size:15px}.received-title strong{font-size:16px}.received-title small,.own-explanation>span{font-size:13px}.received-card>p,.own-explanation p{font-size:15px}.calm-card h3{font-size:17px}.calm-card p{font-size:14px}.subject-card h2{font-size:18px}.subject-result time{font-size:13px}.subject-result p{font-size:15px}.settings-card h2{font-size:18px}.settings-card>.muted,.settings-card .muted{font-size:14px}.field{font-size:14px}.field input,.field textarea,.field select{font-size:16px}.check-field,.switch-field{font-size:15px}.page-footer{font-size:12px}.steps-label{font-size:13px}.reason-option span{font-size:16px}.absence-confirm{font-size:15px}.modal header h2{font-size:22px}.notice{font-size:14px}.offline{font-size:13px}}.page-date:first-letter{text-transform:uppercase}.page-date{letter-spacing:0;font-size:14px;font-weight:550}@media(min-width:761px){.app-shell{background:linear-gradient(90deg,var(--surface) 0 231px,var(--border) 231px 232px,var(--bg) 232px)}}@media(min-width:761px)and (max-width:1180px){.app-shell{background:linear-gradient(90deg,var(--surface) 0 204px,var(--border) 204px 205px,var(--bg) 205px)}}:root{--font-sans:"Inter Variable","Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif}.closure-layout{display:flex;flex-direction:column;gap:8px;max-width:1100px}.closure-section .section-heading h2{display:flex;align-items:center;gap:8px}.closure-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.closure-card{padding:20px;display:flex;flex-direction:column;gap:10px}.closure-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.closure-card header small,.closure-history small,.closure-current small{display:block;color:var(--text-3);font-size:12px;margin-top:3px}.closure-card .form-actions{margin-top:6px}.closure-summary{font-size:13px;color:var(--text-2)}.closure-note{font-size:13px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);overflow-wrap:anywhere}.closure-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.closure-rows li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:11px 0;border-top:1px solid var(--divider)}.closure-rows li:first-child{border-top:0}.warning-rows li{color:var(--text-2);flex-wrap:nowrap;align-items:flex-start}.warning-rows li>svg{color:var(--warning);margin-top:2px}.row-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 200px;font-size:13px}.row-text small{color:var(--text-3);font-size:12px;overflow-wrap:anywhere}.closure-subheading{margin:22px 0 10px;font-size:14px;color:var(--text-2)}.closure-history{list-style:none;margin:0;padding:4px 18px}.closure-history li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--divider)}.closure-history li:first-child{border-top:0}.closure-history li>span:first-child{min-width:0;overflow-wrap:anywhere}.closure-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:4px 20px}.closure-report{display:flex;flex-direction:column;gap:14px;margin-top:14px}.closure-stats{display:flex;gap:10px;flex-wrap:wrap}.stat{display:inline-flex;align-items:baseline;gap:6px;padding:10px 14px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);font-size:12px;color:var(--text-3)}.stat strong{font-size:20px;color:var(--text)}.stat.danger strong{color:var(--danger)}.stat.success strong{color:var(--success)}.stat.warning strong{color:var(--warning)}.stat.danger,.stat.success,.stat.warning{background:var(--surface)}.closure-current{display:flex;justify-content:space-between;gap:12px;padding:16px 20px;align-items:flex-start}.closure-current.returned{border-color:var(--danger-border)}.closure-current.approved{border-color:var(--success-border)}.closure-reason{margin-top:8px;font-size:13px;overflow-wrap:anywhere}.closure-reason>span:first-child{font-weight:600}.closure-block{padding:16px 20px}.closure-block h3{display:flex;gap:8px;align-items:center;margin-bottom:6px}.inline-grades{display:flex;gap:6px;flex-wrap:wrap}.grade-chip{display:inline-flex;padding:2px;border-radius:var(--r-md);border:1px solid var(--border);min-width:44px;min-height:44px;justify-content:center;align-items:center;background:var(--surface)}.grade-chip:hover{background:var(--surface-hover)}.outcome-select{min-height:44px;max-width:100%}.success-notice{background:var(--success-weak);color:var(--success)}.closure-submit{padding:4px 20px 18px}.documents-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.documents-form{padding:24px}.documents-form h2{margin-bottom:14px}.documents-form .two-columns>*,.conversions li>*{min-width:0}.documents-form .saved{overflow-wrap:anywhere}.document-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.document-kind{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:14px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);min-height:72px}.document-kind>svg{color:var(--accent);margin-top:2px}.document-kind strong{display:block;font-size:14px}.document-kind small{display:block;color:var(--text-3);font-size:12px;line-height:1.4;margin-top:2px}.document-kind.selected{border-color:var(--accent);background:var(--accent-weak);box-shadow:0 0 0 1px var(--accent) inset}.language-choice{border:0;padding:0;margin:8px 0 0;display:flex;gap:8px;flex-wrap:wrap}.language-choice legend{font-size:12px;font-weight:550;color:var(--text-2);margin-bottom:8px;padding:0}.segment{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--border-strong);border-radius:var(--r-md);font-size:13px;cursor:pointer}.segment.selected{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text)}.segment input{accent-color:var(--accent);margin:0}.conversions{margin-top:18px;padding:16px;border-radius:var(--r-lg);background:var(--surface-2)}.conversions ul{list-style:none;margin:10px 0 0;padding:0}.conversions li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0}.conversions select{min-height:44px;width:auto}.documents-issued{padding:20px}.documents-issued ul{list-style:none;margin:12px 0 0;padding:0}.documents-issued li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--divider)}.documents-issued li:first-child{border-top:0}.documents-issued small{color:var(--text-3);font-size:12px}.documents-issued code{font-family:var(--font-mono);font-size:11px;color:var(--text-4)}.data-card{padding:20px;margin-top:16px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.data-card p{font-size:13px;color:var(--text-2)}@media(max-width:1180px){.documents-layout{grid-template-columns:minmax(0,1fr)}.documents-layout>*{min-width:0}}@media(max-width:760px){.closure-cards{grid-template-columns:1fr}.closure-filters{grid-template-columns:1fr;gap:0;padding:4px 16px}.closure-card,.closure-block,.closure-current{padding:16px}.closure-submit{padding:4px 16px 16px}.closure-current{flex-direction:column}.row-text{font-size:15px}.row-text small{font-size:13px}.document-kinds{grid-template-columns:1fr}.documents-form .two-columns{grid-template-columns:1fr;gap:0}.documents-form{padding:18px}.conversions li{flex-wrap:wrap;gap:6px 12px}.conversions select{flex:1 1 100%;width:100%;max-width:100%}.closure-card .form-actions .button,.closure-submit .button,.documents-form .form-actions .button{flex:1 1 auto}.roster-columns,.student-row{grid-template-columns:minmax(0,1fr) 124px 58px}.attendance-select{font-size:13px;padding:8px 2px 8px 6px;text-overflow:clip}}.module-tabs{display:flex;gap:4px;padding:4px;margin:4px 0 18px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);width:max-content;max-width:100%;overflow-x:auto}.module-tabs button{padding:8px 14px;border-radius:var(--r-md);font-size:13px;font-weight:550;color:var(--text-3);white-space:nowrap}.module-tabs button[aria-selected=true]{background:var(--accent-weak);color:var(--accent-text)}.module-tabs button:hover{color:var(--text)}.section-heading.wrap{flex-wrap:wrap}.section-heading .push{margin-left:auto}.section-heading select{min-height:40px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface)}.module-list{display:flex;flex-direction:column;gap:10px;margin:12px 0}.module-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;width:100%;padding:14px 18px;text-align:left}.module-row:hover{background:var(--surface-hover)}.module-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}.module-row-main small{color:var(--text-3);font-size:12px}.module-row-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.module-row-meta code,.facts code,.feed-link code{font-family:var(--font-mono);font-size:12px;padding:2px 6px;border-radius:var(--r-sm);background:var(--bg-sunken)}.module-list .pill{margin-top:0}.follow-row,.invoice-card{padding:16px 18px}.follow-row header,.invoice-card header{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-start;justify-content:space-between}.follow-row header>span,.invoice-card header>span{display:flex;flex-direction:column;gap:2px}.follow-row header small,.invoice-card header small{color:var(--text-3);font-size:12px}.step-list{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}.step-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:var(--r-full);font-size:12px;background:var(--info-weak);color:var(--text-2)}.step-chip.authority{background:var(--warning-weak);color:var(--warning)}.follow-row .form-actions{margin-top:10px}.responsible{display:flex;gap:6px;align-items:center;margin:0 0 12px}table.lines{width:100%;border-collapse:collapse;margin:12px 0 6px;font-size:13px}table.lines th{text-align:left;font-weight:500;padding:6px 0}table.lines th small{display:block;color:var(--text-3);font-size:12px;font-weight:400}table.lines td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding:6px 0}table.lines tfoot th,table.lines tfoot td{border-top:1px solid var(--border);font-weight:650;padding-top:8px}.table-panel{overflow-x:auto;margin:12px 0}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:10px 14px;border-bottom:1px solid var(--divider, var(--border));text-align:left}.data-table thead th{font-size:12px;color:var(--text-3);font-weight:550}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.languages-table select{min-height:36px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.timeline{list-style:none;margin:12px 0;padding:6px 18px}.timeline li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.timeline li:last-child{border-bottom:0}.timeline time{color:var(--text-3);font-size:12px;font-variant-numeric:tabular-nums}.timeline small{display:block;color:var(--text-3);font-size:12px}.timeline .empty{display:block;padding:24px}.facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:12px 0;font-size:13px}.facts dt{color:var(--text-3)}.facts dd{margin:0}.version-list{margin:8px 0 12px;padding-left:20px;font-size:13px}.version-list li{margin-bottom:10px}.version-list .pill{margin-top:6px}.dialog-section{border-top:1px solid var(--border);padding-top:14px;margin-top:16px}.dialog-section h3{display:flex;gap:8px;align-items:center}.plan-row{padding:12px 0;border-bottom:1px solid var(--border)}.plan-row header{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.plan-row .pill{margin-top:0}.plan-students{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 12px}.plan-students small{color:var(--text-3);font-size:12px}.inline-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.inline-row .field{flex:1 1 140px;margin-bottom:8px}.feed-target{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.feed-target>span:first-child{display:flex;flex-direction:column}.feed-target small{color:var(--text-3);font-size:12px}.feed-actions{display:flex;gap:8px;flex-wrap:wrap}.feed-link{margin-top:14px}.feed-link code{display:block;overflow-wrap:anywhere;padding:8px 10px}.export-card{margin-top:20px}.settings-card h3{font-size:14px;margin:20px 0 4px}@media(max-width:760px){.two-columns{grid-template-columns:1fr;gap:0}.module-tabs{width:100%}.module-tabs button{flex:1 0 auto;font-size:14px;padding:10px 12px}.section-heading .push{margin-left:0;width:100%}.module-row,.follow-row,.invoice-card{padding:14px}.module-row-main small,.follow-row header small,.invoice-card header small,.timeline small,.feed-target small{font-size:13px}.step-chip{font-size:13px}table.lines,.data-table{font-size:14px}.data-table th,.data-table td{padding:10px}.timeline{padding:4px 14px}.timeline li{grid-template-columns:60px minmax(0,1fr)}.plan-students{grid-template-columns:1fr}}@media(max-width:760px){.sidebar nav{background:linear-gradient(to right,var(--surface) 30%,transparent) left/36px 100% no-repeat local,linear-gradient(to left,var(--surface) 30%,transparent) right/36px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.16),transparent) left/12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.16),transparent) right/12px 100% no-repeat scroll}}.life-columns{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.life-columns>*{min-width:0}@media(min-width:1181px){.life-columns.class-desk-columns{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}}.class-desk-columns .life-student{flex-wrap:wrap}.class-desk-columns .life-student .button{margin-left:auto}.life-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.life-stat{display:flex;gap:12px;align-items:center;padding:18px}.life-stat strong{display:block;font-size:24px;letter-spacing:-.5px;line-height:1.1}.life-stat span:not(.tile){display:block;font-size:12px;color:var(--text-2)}.life-stat small{display:block;color:var(--text-3);font-size:11px;margin-top:2px}.life-stat.warn .tile{background:var(--warning-weak);color:var(--warning)}.life-stat.danger .tile{background:var(--danger-weak);color:var(--danger)}.life-list{overflow:hidden}.life-row,.life-line{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border-bottom:1px solid var(--divider);text-align:left;background:var(--surface);min-width:0}button.life-row:hover,button.life-line:hover{background:var(--surface-hover)}.life-row:last-child,.life-line:last-child{border-bottom:0}.life-line>span:not(.pill):not(.grade):not(.avatar){flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.life-line strong,.life-row strong{font-size:14px;overflow-wrap:anywhere}.life-line small,.life-row small{color:var(--text-3);font-size:12px;overflow-wrap:anywhere}.life-row-title{display:flex;flex-direction:column;min-width:90px}.life-row-cells{flex:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-width:0}.life-row-cells>span{display:flex;flex-direction:column;font-size:16px;font-weight:600;min-width:0}.life-row-cells>span small{font-weight:450;font-size:10px;text-transform:uppercase;letter-spacing:.6px}.life-row-cells>span em{font-style:normal;font-size:11px;color:var(--danger);font-weight:550}.life-row-cells .warn{color:var(--warning)}.life-row-cells .danger{color:var(--danger)}.life-row-arrow{color:var(--text-4);flex-shrink:0}.life-cards{display:grid;gap:12px}.life-card{padding:18px;display:flex;flex-direction:column;gap:6px}.life-card small{color:var(--text-3)}.life-card p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.life-card .button{align-self:flex-start;margin-top:6px}.life-chips{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:6px;margin-top:4px}.life-chips .pill{font-size:10px;max-width:100%}.life-chips .pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-chips .pill .step-subject{overflow:visible;white-space:normal}.life-student .button{flex-shrink:0;min-height:38px;font-size:12px}.life-student .button small{color:var(--text-3)}.life-section{padding:22px;margin-bottom:18px}.life-section h2{display:flex;align-items:center;gap:9px;font-size:16px;margin-bottom:12px}.life-section h2 svg{color:var(--accent)}.life-section textarea{resize:vertical}.life-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6}.life-answers{border-top:1px solid var(--divider);padding-top:14px;margin-top:14px}.life-answers:first-of-type{border-top:0;margin-top:0;padding-top:0}.life-answers h3{font-size:13px;margin-bottom:8px}.life-answers dl{display:grid;gap:8px}.life-answers dt{font-size:12px;color:var(--text-3)}.life-answers dd{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.life-agreements{list-style:none;display:grid;gap:10px;margin-bottom:12px}.life-agreements li{display:flex;gap:10px;align-items:flex-start}.life-agreements li>span{display:flex;flex-direction:column;gap:2px;min-width:0}.life-agreements li small{color:var(--text-3);font-size:12px}.life-agreements li.done strong{text-decoration:line-through;color:var(--text-3)}.life-agreements input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--accent)}.life-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:7px;flex-shrink:0}.life-agreement-form{border-top:1px solid var(--divider);padding-top:8px}.life-people{list-style:none;display:grid;gap:8px}.life-people li{display:flex;justify-content:space-between;gap:10px;font-size:13px;min-width:0}.life-people li>span{overflow-wrap:anywhere}.life-people li small{color:var(--text-3);text-align:right;flex-shrink:0}.life-notes{list-style:none;display:grid;gap:12px;margin-top:12px}.life-notes li{border-left:3px solid var(--accent-weak-2);padding-left:12px}.life-notes time{font-size:11px;color:var(--text-3)}.life-notes p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.life-files{list-style:none;display:grid;gap:6px;margin:10px 0}.life-files li{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;font-size:13px;min-width:0}.life-files li>svg{color:var(--accent);flex-shrink:0}.life-file-name{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent-text)}.life-files small{color:var(--text-3);flex-shrink:0}.life-files .icon-button{min-width:36px;min-height:36px}.life-upload{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}.life-upload>.notice{flex-basis:100%;margin:4px 0 0}.life-homework-files{margin-top:6px}.life-homework{padding:18px;display:flex;flex-direction:column;gap:10px}.life-homework-head{display:flex;align-items:center;gap:12px}.life-homework-head>div{flex:1;min-width:0;display:flex;flex-direction:column}.life-homework-head small{color:var(--text-3)}.life-homework>.button{align-self:flex-start}.life-handin{border-top:1px solid var(--divider);padding-top:6px}.life-timetable{list-style:none;padding:6px 0}.life-timetable li{display:flex;gap:14px;padding:12px 18px;align-items:baseline;border-bottom:1px solid var(--divider)}.life-timetable li:last-child{border-bottom:0}.life-timetable li>span:last-child{display:flex;flex-direction:column;min-width:0}.life-timetable li small{color:var(--text-3);overflow-wrap:anywhere}.life-timetable li.cancelled strong{text-decoration:line-through;color:var(--text-3)}.life-time{width:54px;flex-shrink:0;font-weight:650;color:var(--accent-text);font-variant-numeric:tabular-nums}.life-grades{list-style:none;display:grid;gap:12px}.life-grades li{display:flex;gap:12px;align-items:flex-start}.life-grades li>span{display:flex;flex-direction:column;min-width:0}.life-grades small{color:var(--text-3);overflow-wrap:anywhere}.life-done{display:flex;gap:12px;align-items:center;color:var(--text-3);padding:12px 4px;font-size:13px}.life-done svg{color:var(--purple);flex-shrink:0}@media(max-width:1180px){.life-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.life-columns{grid-template-columns:1fr}}@media(max-width:760px){.life-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.life-stat{padding:14px;gap:10px}.life-stat .tile{width:36px;height:36px;border-radius:10px}.life-stat strong{font-size:20px}.life-row{flex-wrap:wrap;padding:14px}.life-row-cells{grid-template-columns:repeat(3,minmax(0,1fr));flex-basis:100%;order:3}.life-row-arrow{display:none}.life-line{padding:13px 14px;gap:10px}.life-student{flex-wrap:wrap}.life-student .button{margin-left:auto}.life-section{padding:18px}.life-timetable li{padding:11px 14px}}.pill.danger{background:var(--danger-weak);color:var(--danger)}.threshold-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border:1px solid var(--border);border-radius:var(--r-md);padding:4px 12px 8px;margin:14px 0}.threshold-grid legend{font-size:12px;font-weight:550;color:var(--text-2);padding:0 6px}.threshold-grid .field{margin:8px 0}.scale-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.scale-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;border-bottom:1px solid var(--divider, var(--border))}.scale-row .field{margin:8px 0}.scale-actions{display:flex;gap:2px;padding-bottom:8px}.choice-list{display:flex;flex-direction:column;gap:2px;margin:6px 0 12px}.weekday-list{display:flex;flex-wrap:wrap;gap:4px 18px}.question-row{border:1px solid var(--border);border-radius:var(--r-md);padding:4px 14px 12px;margin:14px 0}.question-row>legend{font-size:12px;font-weight:600;padding:0 6px}.question-row .field{margin:10px 0}.plain-list{list-style:none;margin:8px 0;padding:0}.plain-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--divider, var(--border))}.plain-list li>span{display:flex;flex-direction:column;gap:2px;min-width:0}.plain-list small{color:var(--text-3)}.sub-form{border-top:1px solid var(--border);margin-top:14px;padding-top:4px}.retention-table td{vertical-align:top}.behaviour-list{list-style:none;margin:8px 0;padding:0}.behaviour-list li{padding:10px 0;border-bottom:1px solid var(--divider, var(--border))}.behaviour-selects{display:grid;grid-template-columns:1fr 1fr;gap:10px}.behaviour-selects .field{margin:8px 0 0}.manager-day .life-stats{margin-bottom:8px}.day-lesson-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;justify-content:space-between}.day-lesson-row .life-row-title{min-width:0}.statement-entry{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between}.statement-entry select{max-width:100%}.contract-clause{border-bottom:1px solid var(--divider, var(--border));padding:10px 0}.contract-clause h3{font-size:13px;margin:0 0 4px}.contract-clause p{white-space:pre-wrap;overflow-wrap:anywhere}.clause-editor{border:1px solid var(--border);border-radius:var(--r-md);padding:4px 14px 12px;margin:14px 0}.clause-editor legend{font-size:12px;font-weight:600;padding:0 6px}.ehis-reminder{display:flex;flex-wrap:wrap;gap:10px;align-items:center}@media(max-width:760px){.threshold-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scale-row{grid-template-columns:minmax(0,1fr);gap:0}.scale-actions{justify-content:flex-end}.behaviour-selects{grid-template-columns:1fr}.weekday-list{flex-direction:column}.plain-list .icon-button{min-width:44px;min-height:44px}}.upload-button{cursor:pointer;margin:6px 0 4px}.contract-text{margin:8px 0 4px;font-size:13px}.contract-text summary{cursor:pointer;color:var(--accent-text);font-weight:550;min-height:32px;display:flex;align-items:center}.ehis-card{margin-bottom:18px;border-color:var(--warning)}.ehis-reminder .field{flex:1 1 160px;margin:8px 0}.statement-entry .warn{color:var(--warning)}.day-lesson-row.cancelled strong{text-decoration:line-through}.multi-text{border:0;padding:0;margin:16px 0;min-width:0}.multi-text legend{font-size:12px;font-weight:550;color:var(--text-2);margin-bottom:8px}.multi-text .field{margin-top:10px}.multi-text .warning-text{color:var(--warning)}.lang-mark{font-size:10px;letter-spacing:.5px;text-transform:uppercase}.skip-link{position:fixed;left:12px;top:-60px;z-index:var(--z-toast);padding:10px 16px;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-weight:600;box-shadow:var(--shadow-md);transition:top var(--dur-1)}.skip-link:focus,.skip-link:focus-visible{top:12px;outline:2px solid var(--focus);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,summary:focus-visible,label:focus-within>input[type=checkbox]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}main[tabindex="-1"]:focus{outline:none}@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}.mfa-heading{display:flex;align-items:center;gap:8px;margin:20px 0 8px;font-size:14px}.mfa-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--divider)}.mfa-row>span{display:flex;flex-direction:column;gap:2px;min-width:0}.mfa-row small{color:var(--text-3)}.mfa-list{list-style:none;margin:0;padding:0}.mfa-box{margin:12px 0;padding:14px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2)}.mfa-inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.mfa-inline .field{flex:1;min-width:180px;margin:8px 0}.qr{width:180px;max-width:100%;padding:10px;background:#fff;border-radius:var(--r-md)}.qr svg{display:block;width:100%;height:auto}.recovery-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;list-style:none;padding:0;margin:10px 0 0}.recovery-codes code{font-family:var(--font-mono);font-size:14px;letter-spacing:.5px}.mfa-required{max-width:640px}.mfa-required .settings-card{text-align:left;margin:20px 0}.login-form .button+.button{margin-top:10px}.table-scroll{overflow-x:auto}.retention-table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}.retention-table th,.retention-table td{text-align:left;padding:8px;border-top:1px solid var(--divider);vertical-align:top}.retention-table th{color:var(--text-2);font-weight:600}.retention-choice{border:0;padding:0;margin:12px 0}.retention-choice legend{font-weight:600;margin-bottom:6px}
