@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/app/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(/app/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(/app/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(/app/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(/app/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(/app/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(/app/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}:root{--bg: #f4f6fb;--surface: #fff;--surface-2: #f8fafc;--text: #0f172a;--muted: #64748b;--border: #e3e8ef;--border-strong: #cbd5e1;--accent: #4f46e5;--accent-strong: #4338ca;--accent-soft: #eef2ff;--accent-text: #fff;--success: #047857;--success-soft: #ecfdf5;--warn: #b45309;--warn-soft: #fffbeb;--error: #dc2626;--error-soft: #fef2f2;--info: #0369a1;--info-soft: #f0f9ff;--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .05);--shadow: 0 1px 3px rgb(15 23 42 / .07), 0 1px 2px rgb(15 23 42 / .04);--shadow-lg: 0 12px 32px rgb(15 23 42 / .14), 0 2px 6px rgb(15 23 42 / .06);--sidebar: 15.5rem;font-family:Inter Variable,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"cv11","ss03";color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}@media (prefers-color-scheme: dark){:root{--bg: #0b1020;--surface: #121a2b;--surface-2: #0f1626;--text: #e5e9f2;--muted: #94a3b8;--border: #233047;--border-strong: #334563;--accent: #818cf8;--accent-strong: #a5b4fc;--accent-soft: #1e2350;--accent-text: #0b1020;--success: #34d399;--success-soft: #0b2a22;--warn: #fbbf24;--warn-soft: #2d2209;--error: #f87171;--error-soft: #2f1215;--info: #38bdf8;--info-soft: #0b2233;--shadow-sm: none;--shadow: 0 1px 2px rgb(0 0 0 / .4);--shadow-lg: 0 12px 32px rgb(0 0 0 / .5)}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1,h2,h3{letter-spacing:-.01em;color:var(--text)}h1{font-size:1.6rem;font-weight:700;margin:0 0 1rem}h2{font-size:1.1rem;font-weight:650;margin:0 0 .75rem}h3{font-size:.95rem;font-weight:650;margin:1rem 0 .4rem}p{margin:0 0 .75rem}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm)}.narrow{max-width:27rem;margin:10vh auto}form{display:grid;gap:.85rem;margin-bottom:.75rem}label{display:grid;gap:.3rem;font-size:.85rem;font-weight:500;color:var(--muted)}input,select,textarea{font:inherit;font-size:.925rem;padding:.55rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:1rem;height:1rem}textarea{width:100%}button,a.button{font:inherit;font-size:.9rem;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;background:var(--accent);color:var(--accent-text);text-decoration:none;line-height:1.2;transition:background .15s,border-color .15s,box-shadow .15s}button:hover:not(:disabled),a.button:hover{background:var(--accent-strong)}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.55;cursor:default}button.secondary,a.button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.secondary:hover:not(:disabled),a.button.secondary:hover{background:var(--surface-2);border-color:var(--muted)}button.ghost{background:transparent;color:var(--text)}button.ghost:hover:not(:disabled){background:color-mix(in srgb,var(--text) 6%,transparent)}button.danger{background:var(--error);color:#fff}button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--error) 85%,#000)}button.sm,a.button.sm{padding:.35rem .65rem;font-size:.82rem}button.icon{padding:.45rem}button.link{background:none;border:0;color:var(--accent);padding:0;font-weight:500}button.link:hover:not(:disabled){background:none;text-decoration:underline}.error{color:var(--error)}p.error,p[role=alert].error{background:var(--error-soft);border:1px solid color-mix(in srgb,var(--error) 25%,transparent);padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.9rem}span.error{font-size:.85rem}.choices{list-style:none;padding:0;display:grid;gap:.5rem}.choices button{width:100%;justify-content:flex-start}.secret{word-break:break-all}.spacer{flex:1}table{border-collapse:separate;border-spacing:0;width:100%;background:var(--surface)}th,td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--border)}th{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.table-card table,table.month,table.plan,table.mapping,table.import-check,table.grid-table,.register,table.lines,.timetable,.charge-detail table{border:0;border-radius:0;box-shadow:none}table+h2,table+h3{margin-top:1.5rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.row>input,.row>select{flex:1 1 12rem}.row>select.compact{flex:0 0 auto}.links{display:grid;gap:.4rem;justify-items:start}.muted{color:var(--muted);font-size:.9rem}.plain{list-style:none;padding:0;margin:0 0 .75rem;display:grid;gap:.35rem}.split{display:grid;grid-template-columns:minmax(14rem,1fr) minmax(0,2fr);gap:1rem;align-items:start}.list{max-height:70vh;overflow-y:auto}.item{width:100%;display:grid;justify-content:stretch;justify-items:start;text-align:left;gap:.15rem;background:var(--surface);color:var(--text);border:1px solid var(--border);padding:.7rem .9rem;border-radius:var(--radius-sm);font-weight:450;box-shadow:var(--shadow-sm)}.item:hover:not(:disabled){background:var(--surface);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.item strong{font-weight:600}.row>.item{flex:1 1 16rem;width:auto}.item.selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}h2{font-size:1.2rem;margin-top:0}h3{font-size:1rem;margin-bottom:.4rem}@media (max-width: 800px){.split{grid-template-columns:1fr}}.timetable-wrap{overflow-x:auto}.timetable{table-layout:fixed;min-width:640px}.timetable th[scope=row]{width:6.5rem;font-weight:500;white-space:nowrap;vertical-align:top}.timetable td{vertical-align:top;padding:.25rem;height:3rem}.timetable td.clickable{cursor:pointer}.timetable td.clickable:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.timetable .break-row td,.timetable .break-row th{height:auto;padding:.15rem .5rem;color:var(--muted);font-size:.8rem;background:var(--bg)}.lesson{display:grid;align-content:start;justify-content:stretch;justify-items:start;gap:.1rem;width:100%;height:100%;text-align:left;font-size:.85rem;font-weight:450;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--text);border-left:3px solid var(--accent);border-radius:4px;padding:.3rem .4rem;margin-bottom:.2rem}.lesson:disabled{cursor:default;opacity:1}.lesson.warn{border-left-color:var(--error);background:color-mix(in srgb,var(--error) 14%,var(--surface))}.lesson small{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tabs{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tabs button{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:.55rem .8rem;margin-bottom:-1px;font-weight:550}.tabs button:hover:not(:disabled){background:transparent;color:var(--text)}.tabs button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent);background:transparent}.chip{font-size:.75rem;font-weight:550;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.chip.published{border-color:var(--accent);color:var(--accent)}textarea{font:inherit;padding:.5rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);width:100%}.register td{text-align:center;width:2.5rem}.register th[scope=row]{font-weight:400}.register caption{text-align:left;padding-bottom:.4rem}.editor{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}.editor.with-form{grid-template-columns:minmax(0,1fr) 20rem}@media (max-width: 1100px){.editor.with-form{grid-template-columns:minmax(0,1fr)}}.day-heading{font-size:.95rem;margin:1rem 0 .4rem}.day-heading:first-letter{text-transform:uppercase}.section-gap{margin-top:1rem}.chip.accepted{border-color:var(--accent);color:var(--accent)}.chip.rejected{border-color:var(--error);color:var(--error)}.corner{position:fixed;top:.75rem;right:.75rem}@media (max-width: 640px){.corner{position:static;display:flex;justify-content:flex-end;padding:.75rem 1rem 0}}select.compact{padding:.2rem .4rem;font-size:.85rem}fieldset{border:0;padding:0;margin:0}fieldset legend{font-size:.9rem;color:var(--muted);margin-right:.5rem}label.check{display:inline-flex;flex-direction:row;align-items:center;gap:.3rem;color:var(--text)}.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:.75rem;margin-bottom:.75rem}table.month{width:100%;font-size:.8rem;border-radius:6px}table.month caption{text-align:left;font-weight:600;padding:.3rem 0}table.month caption:first-letter{text-transform:uppercase}table.month th,table.month td{text-align:center;padding:.2rem 0;border:0}table.month th{color:var(--muted);font-weight:500}.day{border-radius:4px}.day.weekend{color:var(--muted)}.day.holiday{background:color-mix(in srgb,var(--error) 30%,var(--surface))}.day.break{background:color-mix(in srgb,#e3a008 35%,var(--surface))}.day.no_classes{background:color-mix(in srgb,var(--muted) 35%,var(--surface))}.day.partial{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--muted) 30%,var(--surface)) 0 3px,var(--surface) 3px 6px)}.day.outside_term{color:var(--muted);background:var(--bg)}.day.school{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.legend{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.85rem;margin:0 0 1rem}.legend .day{display:inline-block;width:.9rem;height:.9rem;vertical-align:middle;border:1px solid var(--border)}.chip.holiday{border-color:var(--error);color:var(--error)}.chip.break{border-color:#b7791f;color:#b7791f}section.card{margin-bottom:1rem}.timetable td.closed{background:repeating-linear-gradient(45deg,var(--bg) 0 6px,var(--surface) 6px 12px)}.timetable th .closure{display:block;font-size:.75rem;font-weight:500;color:var(--error)}.lesson.cancelled{opacity:.65;background:var(--bg);border-left-color:var(--muted)}.lesson.cancelled strong{text-decoration:line-through}.lesson.changed{border-left-color:#b7791f;background:color-mix(in srgb,#e3a008 14%,var(--surface))}.lesson small.flag{color:var(--warn);font-weight:600}.lesson.cancelled small.flag{color:var(--muted)}.chip.changed{border-color:var(--warn);color:var(--warn)}.day-table td{vertical-align:top}.day-table td .chip{margin-right:.25rem}.day-table tr.selected td{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}@media (max-width: 640px){.day-table{display:block;overflow-x:auto}}.notice{padding:.65rem .9rem;border-radius:var(--radius-sm);background:var(--info-soft);border:1px solid color-mix(in srgb,var(--info) 20%,transparent);color:var(--text);font-size:.9rem}.notice.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.demo-notice{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-bottom:1.25rem;padding:.7rem 1rem;border-radius:var(--radius);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);font-size:.9rem}.demo-notice>svg{color:var(--accent);flex:none}.demo-notice>span:not(.spacer){flex:1 1 18rem}.demo-notice a.button{padding:.4rem .8rem;font-size:.85rem}input.narrow-input{width:6rem;flex:0 0 auto}label>input:not([type=checkbox]):not([type=radio]),label>select,label>textarea{min-width:0;width:100%}.row>label{flex:1 1 9rem;min-width:0}.row>label.check{flex:0 0 auto}label.inline{display:inline-flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--text)}select.grade-input{width:auto;min-width:5rem}input.wide{width:100%}.sheet-scroll{overflow-x:auto}table.pauta th,table.pauta td{text-align:center;white-space:nowrap}table.pauta th[scope=row]{text-align:left;font-weight:500}table.pauta td.negative{color:var(--error);font-weight:700}table.pauta td.changed sup{color:var(--warn)}table.pauta td.empty{color:var(--muted)}table.pauta td.mark{color:var(--muted);font-style:italic;font-size:.85rem}table.pauta tr.left th,table.pauta tr.left td{color:var(--muted)}table.pauta td.editable{cursor:pointer}table.pauta td.editable:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}table.pauta td.selected{outline:2px solid var(--accent);outline-offset:-2px}table.pauta td.report-cell{text-align:left;white-space:normal;min-width:14rem;max-width:26rem;font-size:.85rem}table.pauta tfoot td,table.pauta tfoot th{font-weight:600;background:var(--bg)}.minutes{white-space:pre-wrap}.chip.open{border-color:var(--warn);color:var(--warn)}.results th,.results td{text-align:center}.results th[scope=row],.results th:first-child{text-align:left}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.5rem;margin-bottom:.75rem}.stats>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;display:grid;gap:.2rem;box-shadow:var(--shadow-sm)}.stats span{color:var(--muted);font-size:.8rem}.stats strong{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stats .alert strong{color:var(--error)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tr.cancelled td{color:var(--muted);text-decoration:line-through}tr.cancelled td:first-child,tr.cancelled td:last-child{text-decoration:none}tr.detail>td{background:var(--bg)}.charge-detail{display:grid;gap:.5rem;padding:.25rem 0}table.lines{font-size:.9rem}.chip.charge-paid{border-color:transparent;background:var(--success-soft);color:var(--success)}.chip.charge-overdue{border-color:transparent;background:var(--error-soft);color:var(--error)}.chip.charge-partial,.chip.charge-open{border-color:transparent;background:var(--warn-soft);color:var(--warn)}.chip.service{margin:0 .25rem .15rem 0;display:inline-block}button.danger{background:var(--error)}.inline-form{margin:0;flex:1 1 20rem}.balance{font-size:1.05rem}.balance.overdue strong{color:var(--error)}.row.months label.check{flex:0 0 auto}fieldset{border:0;padding:0;margin:0;display:grid;gap:.75rem}ul.notices>li{border-bottom:1px solid var(--border);padding:.5rem 0;min-width:0}.notice-row{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:baseline}.notice-row>:first-child{flex:1 1 14rem}.notice-row strong.num{font-variant-numeric:tabular-nums}ul.notices>li.cancelled .notice-row strong{text-decoration:line-through;color:var(--muted)}.lines-scroll{overflow-x:auto;margin-top:.5rem}@media (max-width: 640px){table.charges,table.lines{display:block;overflow-x:auto}}@media print{body{background:#fff}.shell{display:block}.sidebar,.topbar,.no-print,.corner,.toasts,.back-link{display:none!important}.shell main{max-width:none;padding:0}.card{border:0;padding:0}table.pauta{font-size:9pt}table.pauta td.report-cell{max-width:none}}.badge{display:inline-block;min-width:1.25rem;padding:0 .4rem;border-radius:999px;background:var(--error);color:#fff;font-size:.7rem;font-weight:700;line-height:1.25rem;text-align:center}ul.threads{gap:.5rem}.thread-item{display:grid;gap:.2rem;padding:.7rem .9rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);text-decoration:none;min-width:0}.thread-item:hover{border-color:var(--accent)}.thread-item.unread{box-shadow:inset 3px 0 0 var(--accent)}.thread-top{display:flex;gap:.5rem;align-items:baseline;min-width:0}.thread-subject{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.thread-item.unread .thread-subject{font-weight:700}.thread-top .when{white-space:nowrap}.dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--accent);flex:0 0 auto;align-self:center}.snippet{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-title{margin-bottom:.25rem;overflow-wrap:anywhere}ul.messages{gap:.75rem}.message{min-width:0}.message.mine{border-left:3px solid var(--accent)}.message-head{display:flex;flex-wrap:wrap;gap:.25rem .75rem;justify-content:space-between;align-items:baseline}.message-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.attachments{margin:.5rem 0 0}.attachments a,.files li{overflow-wrap:anywhere}.read-by{margin:.5rem 0 0;font-size:.8rem}.link-like{color:var(--accent);cursor:pointer;text-decoration:underline}.files label.inline{position:relative}.files input.sr-only{left:0;top:0}label.inline:focus-within .link-like{outline:2px solid var(--accent);outline-offset:2px}.files .muted{margin:.25rem 0 0}.choices-inline{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-bottom:.5rem}.row.checks{gap:.4rem 1rem}.guardian-link .row.checks{margin:.25rem 0 0}table.grid-table{width:auto}table.grid-table input[type=time]{padding:.3rem .4rem}label.rule-line{display:flex;flex-direction:row;align-items:center;gap:.6rem;color:var(--text)}label.rule-line>input[type=number]{width:5rem;flex:0 0 auto}.address{display:flex;align-items:center;gap:.25rem;min-width:0}.address>.muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}.address>input{flex:1 1 8rem;min-width:6rem}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.setup-step h2{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.step-number{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--accent);color:var(--accent-text);font-size:.9rem}.step-done{font-size:.85rem;font-weight:400;color:var(--accent)}.setup-form{display:grid;gap:.75rem;max-width:46rem}.setup-form fieldset{border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;min-width:0}.setup-school+.setup-school{border-top:1px solid var(--border);padding-top:.5rem}.row.wrap{flex-wrap:wrap}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.25rem .75rem}.choices-list{display:grid;gap:.35rem}table.plan{border-collapse:collapse;width:100%}table.plan th{text-align:left;font-weight:400;color:var(--muted);font-size:.85rem}table.plan td{padding:.15rem .25rem .15rem 0;vertical-align:middle}table.plan input[type=date]{width:9.5rem}table.plan tr.dropped td:nth-child(2){text-decoration:line-through;color:var(--muted)}.class-level{align-items:center;padding:.2rem 0}.class-level .level-name{min-width:5rem}.class-level label.inline>input[type=number]{width:4.5rem;flex:0 0 auto}.setup-form select.fit{width:auto;justify-self:start}.chips{display:inline-flex;flex-wrap:wrap;gap:.3rem}.chip{display:inline-flex;align-items:center;gap:.2rem;padding:.05rem .5rem;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.chip button.link{padding:0 .15rem}ol.checklist li.done a{color:var(--muted)}.narrow-field input{width:7rem}@media (max-width: 640px){table.plan,table.plan tbody,table.plan tr,table.plan td{display:block}table.plan thead{display:none}table.plan tr{border-bottom:1px solid var(--border);padding:.3rem 0}}.table-scroll{overflow-x:auto;max-width:100%}table.import-check{border-collapse:collapse;width:100%;font-size:.9rem}table.import-check th{text-align:left;font-weight:400;color:var(--muted)}table.import-check td,table.import-check th{padding:.3rem .5rem .3rem 0;border-bottom:1px solid var(--border);vertical-align:top}table.import-check tr.status-error td{background:color-mix(in srgb,var(--error) 6%,transparent)}.tag{display:inline-block;padding:0 .4rem;border-radius:4px;font-size:.8rem;border:1px solid var(--border);white-space:nowrap}.tag.new{border-color:var(--accent);color:var(--accent)}.tag.error{border-color:var(--error);color:var(--error)}table.mapping select{max-width:16rem}pre.email-preview{white-space:pre-wrap;font:inherit;background:var(--bg, transparent);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem}.card details{margin-bottom:.6rem}table.import-check td{overflow-wrap:anywhere}@media (max-width: 640px){table.import-check,table.import-check tbody,table.import-check tr,table.import-check td{display:block}table.import-check thead{display:none}table.import-check tr{border-bottom:1px solid var(--border);padding:.35rem 0}table.import-check td{border:0;padding:.05rem 0}table.import-check td:first-child{color:var(--muted);font-size:.8rem}table.import-check td:first-child:before{content:"#"}}.day-nav{align-items:center;gap:.75rem}.child-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:.75rem;align-items:start}.child-card{margin:0;display:grid;gap:.5rem;border-left:4px solid var(--border)}.child-card.here{border-left-color:var(--accent)}.child-card.gone{opacity:.8}.child-card .child-head{display:flex;gap:.65rem;align-items:center}.child-card .child-head>span{display:grid;min-width:0}.child-card .child-head .muted{font-size:.82rem}ul.timeline{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}ul.timeline li{display:grid;grid-template-columns:3rem 1fr auto;gap:.4rem;align-items:baseline}ul.timeline .time{color:var(--muted);font-variant-numeric:tabular-nums}.action-bar{display:flex;flex-wrap:wrap;gap:.3rem}.action-bar button,.choice-buttons button{padding:.45rem .7rem;background:var(--surface);color:var(--text);border:1px solid var(--border)}.action-bar button[aria-pressed=true],.choice-buttons button[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.action-form{display:grid;gap:.5rem;padding:.5rem;border:1px solid var(--border);border-radius:6px}.choice-buttons{display:flex;flex-wrap:wrap;gap:.3rem}.action-form label.inline>input[type=time]{width:7rem;flex:0 0 auto}.action-form label.inline>input[type=number]{width:6rem;flex:0 0 auto}.daily-notes{white-space:pre-wrap;background:color-mix(in srgb,var(--accent) 6%,var(--surface));padding:.4rem .6rem;border-radius:6px}.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh;background:linear-gradient(to right,var(--surface) var(--sidebar),var(--bg) var(--sidebar))}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--surface);display:flex;flex-direction:column}.workspace{border-left:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.6rem;padding:1rem 1rem .75rem;min-height:4rem}.brand-mark{flex:0 0 auto;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:10px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#06b6d4));color:#fff;font-weight:700;font-size:.85rem;letter-spacing:.02em}.brand-name{font-weight:650;font-size:.92rem;line-height:1.25;display:inline-flex;align-items:center;gap:.3rem;color:var(--text);text-align:left}.brand .dropdown-trigger{padding:.2rem .3rem;justify-content:flex-start}.brand .close-menu{display:none;margin-left:auto}.sidebar nav{padding:.25rem .75rem 1.5rem;display:grid;gap:.9rem}.nav-section{display:grid;gap:.1rem}.nav-heading{font-size:.7rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.2rem .65rem .3rem}.sidebar nav a{display:flex;align-items:center;gap:.65rem;padding:.48rem .65rem;border-radius:var(--radius-sm);color:color-mix(in srgb,var(--text) 82%,var(--muted));text-decoration:none;font-size:.9rem;font-weight:500}.sidebar nav a svg{color:var(--muted);flex:0 0 auto}.sidebar nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar nav a.active svg{color:var(--accent)}.sidebar nav a .badge{margin-left:auto}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.5rem;height:3.5rem;padding:0 1.25rem;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar .menu-button,.topbar-group{display:none}.topbar-group{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-link{position:relative;display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-sm);color:var(--muted)}.icon-link:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.badge.floating{position:absolute;top:0;right:-2px;min-width:1.05rem;line-height:1.05rem;font-size:.62rem;padding:0 .25rem}.user-chip{display:inline-flex;align-items:center;gap:.5rem;font-weight:550;color:var(--text)}.user-name{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell main{padding:1.75rem 2rem 3rem;width:100%;max-width:80rem}.scrim{display:none}@media (max-width: 900px){.shell{grid-template-columns:minmax(0,1fr);background:var(--bg)}.workspace{border-left:0}.sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:min(18rem,85vw);transform:translate(-100%);transition:transform .2s ease;box-shadow:var(--shadow-lg)}.menu-open .sidebar{transform:none}.menu-open .scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0f172a59}.brand .close-menu{display:inline-flex}.topbar{padding:0 .75rem}.topbar .menu-button,.topbar-group{display:inline-flex}.user-name{display:none}.shell main{padding:1.25rem 1rem 2.5rem}.narrow{margin:1rem}}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1.5rem;margin-bottom:1.5rem}.page-title{min-width:0}.page-title h1{margin:0}.page-subtitle{margin:.3rem 0 0;color:var(--muted)}.page-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.back-link{display:inline-flex;align-items:center;gap:.2rem;font-size:.85rem;color:var(--muted);text-decoration:none;margin-bottom:.35rem}.back-link:hover{color:var(--accent)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.9rem}.section-head h2{margin:0}.section-actions{display:flex;gap:.5rem;align-items:center}.avatar{display:inline-grid;place-items:center;border-radius:50%;font-weight:650;flex:0 0 auto;letter-spacing:.02em}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.12rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.pill.accent{background:var(--accent-soft);color:var(--accent);border-color:transparent}.pill.success{background:var(--success-soft);color:var(--success);border-color:transparent}.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.pill.danger{background:var(--error-soft);color:var(--error);border-color:transparent}.pill.info{background:var(--info-soft);color:var(--info);border-color:transparent}.pill-dot{width:.4rem;height:.4rem;border-radius:50%;background:currentColor}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr));gap:.9rem;margin-bottom:1.25rem}.stat-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label icon" "value icon" "hint hint";column-gap:.6rem;align-items:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none}.stat-card.link-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow)}.stat-icon{grid-area:icon;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:10px;background:var(--accent-soft);color:var(--accent)}.stat-icon.success{background:var(--success-soft);color:var(--success)}.stat-icon.warn{background:var(--warn-soft);color:var(--warn)}.stat-icon.danger{background:var(--error-soft);color:var(--error)}.stat-icon.info{background:var(--info-soft);color:var(--info)}.stat-label{grid-area:label;font-size:.8rem;font-weight:550;color:var(--muted)}.stat-value{grid-area:value;font-size:1.45rem;margin-top:.15rem;white-space:nowrap;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2}.stat-hint{grid-area:hint;font-size:.78rem;color:var(--muted)}.empty-state{display:grid;justify-items:center;gap:.4rem;text-align:center;padding:2.5rem 1rem;color:var(--text)}.empty-state .muted{margin:0;max-width:28rem}.empty-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--surface-2);color:var(--muted);margin-bottom:.3rem;border:1px solid var(--border)}.skeleton{display:grid;gap:.55rem;padding:.5rem 0}.skeleton span{display:block;height:.8rem;border-radius:6px;background:linear-gradient(90deg,var(--surface-2),color-mix(in srgb,var(--border) 70%,var(--surface)),var(--surface-2));background-size:200% 100%;animation:shimmer 1.2s infinite linear}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1rem}.toolbar>select{width:auto;min-width:9rem}.toolbar>label.inline{white-space:nowrap}.toolbar>label.inline>select{width:auto;min-width:9rem}.toolbar .spacer{flex:1}.search-input{position:relative;display:flex;align-items:center;flex:1 1 16rem;max-width:26rem}.search-input>svg{position:absolute;left:.7rem;color:var(--muted);pointer-events:none}.search-input input{width:100%;padding-left:2.1rem;padding-right:2rem}.search-input input::-webkit-search-cancel-button{display:none}.search-input button{position:absolute;right:.25rem;padding:.3rem}.segmented{display:inline-flex;padding:.2rem;gap:.15rem;background:color-mix(in srgb,var(--text) 5%,var(--surface));border-radius:10px;border:1px solid var(--border);flex-wrap:wrap}.segmented button{background:transparent;color:var(--muted);padding:.35rem .75rem;font-size:.84rem;border-radius:8px}.segmented button:hover:not(:disabled){background:transparent;color:var(--text)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.segmented .count{font-size:.72rem;padding:0 .35rem;border-radius:999px;background:color-mix(in srgb,var(--text) 8%,transparent)}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.table-card .table-scroll{overflow-x:auto}table.data-table th{white-space:nowrap}table.data-table td{vertical-align:middle}table.data-table tr.clickable{cursor:pointer}table.data-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 3%,var(--surface))}table.data-table tr.clickable:focus-visible td{background:var(--accent-soft);outline:none}.align-right{text-align:right}.align-center{text-align:center}th.align-right .sort{justify-content:flex-end}button.sort{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem}button.sort:hover{color:var(--text)}button.sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.cell-main{display:flex;align-items:center;gap:.65rem;min-width:0}.cell-text{display:grid;gap:.1rem;min-width:0}.cell-main .cell-text{display:grid;min-width:0}.cell-main .cell-text strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-main .cell-text span{font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .9rem;border-top:1px solid var(--border);background:var(--surface)}.pagination .pages{display:flex;align-items:center;gap:.15rem}.pagination button.page{min-width:2rem;padding:.3rem .5rem;font-size:.85rem;color:var(--muted)}.pagination button.page[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.pagination .gap{color:var(--muted);padding:0 .25rem}.dropdown{position:relative}.dropdown-trigger{padding:.25rem .4rem}.dropdown-menu{position:absolute;top:calc(100% + .35rem);z-index:60;min-width:14rem;padding:.35rem;display:grid;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.dropdown-menu.right{right:0}.dropdown-menu.left{left:0}.dropdown-menu hr{border:0;border-top:1px solid var(--border);margin:.3rem 0}.menu-item{justify-content:space-between;background:transparent;color:var(--text);font-weight:500;padding:.45rem .6rem;border-radius:6px;text-align:left}.menu-item:hover:not(:disabled){background:var(--surface-2)}.menu-item svg{color:var(--muted)}.menu-header{display:grid;gap:.1rem;padding:.45rem .6rem .6rem;border-bottom:1px solid var(--border);margin-bottom:.3rem}.menu-header .muted{font-size:.8rem}.menu-label{display:flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:.4rem .6rem .2rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a73;display:grid;place-items:center;padding:1rem;animation:fade .15s ease}.modal{width:min(32rem,100%);max-height:calc(100vh - 2rem);display:flex;flex-direction:column;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);animation:pop .15s ease}.modal.wide{width:min(48rem,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .5rem}.modal-head h2{margin:0}.modal-body{padding:.5rem 1.25rem 1rem;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 16px 16px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.98)}}.toasts{position:fixed;bottom:1.25rem;right:1.25rem;z-index:200;display:grid;gap:.5rem}.toast{padding:.7rem 1rem;border-radius:10px;background:var(--text);color:var(--surface);box-shadow:var(--shadow-lg);font-size:.9rem;font-weight:500;animation:pop .2s ease}.toast.danger{background:var(--error);color:#fff}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.greeting{margin-bottom:1.5rem}.greeting h1{margin:0;font-size:1.75rem}.capitalize:first-letter{text-transform:uppercase}.callout{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.9rem 1.1rem;margin-bottom:1.25rem;background:linear-gradient(90deg,var(--accent-soft),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));border-radius:var(--radius)}.callout>div{flex:1 1 18rem}.callout p{margin:.1rem 0 0}.callout-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:10px;background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);gap:1.25rem;align-items:start}.dash-main,.dash-side{display:grid;gap:1.25rem;min-width:0}.dash-grid section.card{margin:0}@media (max-width: 1000px){.dash-grid{grid-template-columns:minmax(0,1fr)}}ul.agenda,ul.feed{list-style:none;margin:0;padding:0;display:grid}ul.agenda li{display:grid;grid-template-columns:3.5rem 1fr auto;gap:.9rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border)}ul.agenda li:last-child{border-bottom:0}ul.agenda li.cancelled .agenda-body strong{text-decoration:line-through;color:var(--muted)}.agenda-time{display:grid;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.2}.agenda-time small{color:var(--muted);font-weight:450}.agenda-body{display:grid;min-width:0}.agenda-body .muted{font-size:.82rem}ul.feed li{border-bottom:1px solid var(--border)}ul.feed li:last-child{border-bottom:0}ul.feed li>a,ul.feed li:not(:has(>a)){display:flex;align-items:center;gap:.75rem;padding:.6rem 0;color:var(--text);text-decoration:none;min-width:0}ul.feed li>a:hover .feed-top strong{color:var(--accent)}ul.feed li>a.unread .feed-top strong{font-weight:700}.feed-body{display:grid;min-width:0;flex:1}.feed-top{display:flex;justify-content:space-between;gap:.75rem;min-width:0}.feed-top strong{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-top .muted{white-space:nowrap;font-size:.8rem}.feed-body>.muted,.feed-snippet{font-size:.83rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--accent);flex:0 0 auto}.date-tile{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:10px;line-height:1;flex:0 0 auto;background:var(--accent-soft);color:var(--accent)}.date-tile strong{font-size:1rem}.date-tile small{font-size:.65rem;text-transform:uppercase;font-weight:600}.date-tile.holiday{background:var(--error-soft);color:var(--error)}.date-tile.break{background:var(--warn-soft);color:var(--warn)}.child-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.9rem}.child-tile{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.child-tile-head{display:flex;gap:.75rem;align-items:center}.child-tile-head>div{display:grid}.child-tile-head .muted{font-size:.85rem}.child-status{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.88rem;color:var(--text)}.child-links{display:flex;flex-wrap:wrap;gap:.4rem}.checks{display:grid;gap:.5rem}.checks label.check{align-items:flex-start;font-weight:450}.checks label.check input{margin-top:.2rem}.pad{padding:1rem 1.25rem}ul.threads{gap:0;margin:0}ul.threads>li{border-bottom:1px solid var(--border)}ul.threads>li:last-child{border-bottom:0}.thread-item{display:flex;align-items:flex-start;gap:.85rem;padding:.9rem 1.1rem;border:0;border-radius:0;box-shadow:none}.thread-item:hover{background:var(--surface-2);border:0}.thread-item.unread{box-shadow:inset 3px 0 0 var(--accent);background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.thread-avatar{flex:0 0 auto}.thread-avatar.announcement{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.thread-main{display:grid;gap:.2rem;min-width:0;flex:1}.thread-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.83rem;color:var(--muted)}.thread-item .dot{margin-top:.5rem}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0f172a4d;animation:fade .15s ease}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(36rem,100%);display:flex;flex-direction:column;background:var(--bg);box-shadow:var(--shadow-lg);animation:slide-in .2s ease}.drawer .modal-head{background:var(--surface);border-bottom:1px solid var(--border);padding-bottom:1rem}.drawer-body{padding:1rem 1.25rem 2rem;overflow-y:auto;flex:1}.drawer-body>section.card,.drawer-body>.card{margin-bottom:1rem}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}.result-count{margin:-.25rem 0 .6rem;font-size:.85rem}.pills{display:inline-flex;flex-wrap:wrap;gap:.25rem}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:22rem}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.9rem}.class-card{display:flex;gap:.9rem;align-items:center;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}.class-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow);transform:translateY(-1px)}.class-mark{display:grid;place-items:center;min-width:3.4rem;height:3.4rem;padding:0 .4rem;border-radius:12px;font-weight:750;font-size:1.05rem;background:var(--accent-soft);color:var(--accent);text-align:center;line-height:1.1}.class-mark.cycle-creche,.class-mark.cycle-pre_school{font-size:.72rem;background:#fdf2f8;color:#be185d}.class-mark.cycle-cycle_1{background:#fff7ed;color:#c2410c}.class-mark.cycle-cycle_2{background:#ecfeff;color:#0e7490}.class-mark.cycle-cycle_3{background:#f0fdf4;color:#15803d}@media (prefers-color-scheme: dark){.class-mark[class*=cycle-]{background:var(--accent-soft);color:var(--accent)}}.class-info{display:grid;gap:.15rem;justify-items:start;min-width:0}.class-info .muted{font-size:.8rem}.narrow-col{width:3rem}.section-actions .search-input{max-width:16rem}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-weight:550;color:var(--muted);white-space:nowrap}span.num{font-variant-numeric:tabular-nums;white-space:nowrap}table.data-table tr.cancelled td{color:var(--muted)}table.data-table tr.cancelled .cell-text strong{text-decoration:line-through}.callout+.notice,.callout+p{margin-top:-.5rem}ul.request-list{display:grid;gap:.9rem}.request-card{display:grid;gap:.75rem}.request-head{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.request-title{display:grid;flex:1;min-width:10rem}.request-title .muted{font-size:.85rem}blockquote.request-body{margin:0;padding:.6rem .85rem;border-left:3px solid var(--border-strong);background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.request-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0}.request-actions input{flex:1 1 14rem}.limit-bar{height:.4rem;border-radius:999px;background:var(--surface-2);overflow:hidden;border:1px solid var(--border)}.limit-bar span{display:block;height:100%;background:var(--warn)}.limit-bar span.exceeded{background:var(--error)}.child-switch{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.25rem}.child-switch button{justify-content:flex-start;gap:.65rem;padding:.55rem .9rem .55rem .55rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-sm);text-align:left}.child-switch button:hover:not(:disabled){background:var(--surface-2)}.child-switch button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);background:var(--surface)}.child-switch button span{display:grid;line-height:1.25}.child-switch small{color:var(--muted);font-weight:450}.row>input[type=date],.toolbar>input[type=date]{flex:0 0 auto;width:auto}.months table.month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:.35rem .5rem .5rem;border-collapse:separate}.months table.month caption{padding:.2rem .25rem .4rem}.months table.month th{background:transparent;text-transform:none;letter-spacing:0;font-size:.72rem}.day-nav-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.day-nav-bar .date-label{font-weight:600;padding:0 .35rem}.day-nav-bar .date-label:first-letter{text-transform:uppercase}.progress{height:.45rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden;min-width:6rem}.progress>span{display:block;height:100%;background:var(--accent);border-radius:999px}.progress.done>span{background:var(--success)}.list-cards{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.list-card{display:flex;align-items:center;gap:.9rem;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;width:100%;text-align:left;font-weight:450;justify-content:flex-start}button.list-card:hover:not(:disabled),a.list-card:hover{background:var(--surface);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow)}.list-card .lc-main{display:grid;min-width:0;flex:1;gap:.1rem}.list-card .lc-main .muted{font-size:.84rem}.list-card .lc-side{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.time-tile{display:grid;place-items:center;min-width:3.5rem;padding:.35rem .4rem;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}.time-tile small{font-weight:500;font-size:.72rem;color:color-mix(in srgb,var(--accent) 70%,var(--muted))}.time-tile.done{background:var(--success-soft);color:var(--success)}.time-tile.done small{color:var(--success)}.time-tile.off{background:var(--surface-2);color:var(--muted)}.notice>svg{vertical-align:-3px;margin-right:.35rem}.row-actions{display:inline-flex;gap:.35rem;justify-content:flex-end;flex-wrap:wrap}small.block{display:block;margin-top:.2rem}table.data-table tr.changed-row td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.class-mark.small{min-width:2.9rem;height:2.9rem;font-size:.9rem;border-radius:10px}.progress-line{display:flex;align-items:center;gap:.6rem}.progress-line .progress{width:8rem;flex:0 0 auto}section.card.flush .table-card{border:0;box-shadow:none;border-radius:0;margin:0 -1.25rem}.auth-layout{display:grid;grid-template-columns:minmax(20rem,34rem) minmax(0,1fr);min-height:100vh}.auth-brand{position:relative;overflow:hidden;color:#fff;padding:3rem;background:radial-gradient(circle at 20% 15%,rgb(255 255 255 / .16),transparent 40%),linear-gradient(150deg,#4338ca,#4f46e5 45%,#0891b2);display:flex;align-items:center}.auth-brand:after{content:"";position:absolute;right:-6rem;bottom:-6rem;width:22rem;height:22rem;border-radius:50%;background:#ffffff14}.auth-brand-inner{position:relative;z-index:1;display:grid;gap:1rem;max-width:26rem}.auth-brand h2{color:#fff;font-size:2rem;line-height:1.15;margin:.5rem 0 0;letter-spacing:-.02em}.auth-brand p{color:#ffffffd9;margin:0;font-size:1rem}.auth-brand ul{list-style:none;padding:0;margin:.75rem 0 0;display:grid;gap:.75rem}.auth-brand li{display:flex;align-items:center;gap:.65rem;font-weight:500}.auth-brand li svg{flex:0 0 auto;padding:.35rem;box-sizing:content-box;border-radius:8px;background:#ffffff24}.brand-mark.large{width:3.25rem;height:3.25rem;border-radius:14px;background:#ffffff29;box-shadow:inset 0 0 0 1px #ffffff40}.auth-main{position:relative;display:flex;flex-direction:column;justify-content:center;padding:2rem 1.25rem}.auth-main>.narrow{margin:0 auto;width:100%;box-shadow:var(--shadow);padding:2rem}.auth-main .corner{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:1rem}@media (max-width: 900px){.auth-layout{grid-template-columns:minmax(0,1fr)}.auth-brand{display:none}.auth-main{justify-content:flex-start;padding-top:4rem}.auth-main>.narrow{padding:1.5rem}}.version-row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.version-row>.list-card{flex:1 1 22rem}.version-row.selected>.list-card{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.avatar{background:hsl(var(--h, 231) 70% 94%);color:hsl(var(--h, 231) 55% 38%)}@media (prefers-color-scheme: dark){.avatar{background:hsl(var(--h, 231) 35% 24%);color:hsl(var(--h, 231) 80% 82%)}}.console{min-height:100vh;background:var(--bg)}.console-top{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding:.6rem 2rem;background:var(--surface);border-bottom:1px solid var(--border)}.console-brand{display:inline-flex;align-items:center;gap:.45rem;font-weight:650}.console-brand svg{color:var(--accent)}.console-top nav{display:flex;gap:.25rem;flex-wrap:wrap}.console-top nav a{padding:.4rem .75rem;border-radius:var(--radius-sm);color:var(--muted);text-decoration:none;font-weight:500}.console-top nav a:hover{background:var(--surface-2);color:var(--text)}.console-top nav a.active{background:var(--accent-soft);color:var(--accent)}.console>main{padding:1.75rem 2rem 3rem;max-width:80rem;margin:0 auto}.console-privacy{margin-top:2rem;font-size:.8rem}@media (max-width: 48rem){.console-top,.console>main{padding-left:1rem;padding-right:1rem}}.bars{display:flex;align-items:flex-end;gap:4px;height:7rem}.bars>span{flex:1;min-height:3px;border-radius:3px 3px 0 0;background:var(--accent)}.bars>span.zero{background:var(--border)}.bars-axis{display:flex;justify-content:space-between;margin-top:.35rem;font-size:.75rem}dl.facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.45rem 1.25rem;align-items:center;margin:0}dl.facts dt{color:var(--muted);font-size:.875rem}dl.facts dd{margin:0}dl.facts select{width:auto;max-width:100%}address.billing{font-style:normal;line-height:1.6}.tag-picker{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.35rem;min-width:0}.tag-picker legend{font-size:.85rem;font-weight:600;margin-bottom:.35rem;padding:0}.tag-picker .tag{font:inherit;font-size:.8rem;line-height:1.2;padding:.25rem .65rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:none}.tag-picker .tag[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.tags{display:inline-flex;flex-wrap:wrap;gap:.3rem;align-items:center}.block{display:block}.dish-row{display:grid;gap:.6rem;padding:.8rem;margin:0 0 .6rem}.menu-table th,.menu-table td{vertical-align:top}.menu-table th[scope=row]{white-space:nowrap}.menu-list{margin:0 0 .3rem}.menu-list li+li{margin-top:.2rem}.meal-week{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.meal-day h3{margin:0 0 .5rem;font-size:1rem}.meal-service+.meal-service{border-top:1px solid var(--border);margin-top:.7rem;padding-top:.7rem}.meal-service h4{margin:0 0 .3rem;font-size:.9rem;color:var(--muted)}.meal-cell{display:grid;gap:.35rem;margin-top:.4rem;min-width:0}.meal-cell select{max-width:100%}.counts li{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.plates h4{margin:.8rem 0 .3rem}.columns{columns:2 14rem}.meal-day h3:first-letter{text-transform:uppercase}.callout-card{border-color:var(--accent)}.reenrol-row{display:grid;gap:.4rem}.reenrol-row input{flex:1 1 14rem;min-width:0}.pre-wrap{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.request-list{display:grid;gap:.75rem}.request-list .link-card{display:grid;gap:.3rem;color:inherit;text-decoration:none}.request-list .link-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow)}.row.spread{justify-content:space-between;align-items:center}.request-page>.card{margin-bottom:1rem}
