@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--background:#fff;--soft-pink:#fde8ee;--pink:#f56e8a;--login-beige:#b88a63;--login-beige-soft:#f4ebe2;--login-blue:#78b6f7;--plum:#33263a;--muted:#766d79;--blue:#287fbb;--green:#3d9b67;--danger:#c93655;--border:#e9e3e8;--focus:#176da4;--control-border:#e1d6df;--control-border-hover:#c5acbc;--control-focus:color-mix(in srgb, var(--pink) 55%, var(--plum));--control-hover:var(--soft-pink);--control-selected:color-mix(in srgb, var(--pink) 26%, white);--control-selected-hover:color-mix(in srgb, var(--pink) 34%, white);--schedule-marker-height:44px;font-synthesis:none;font-family:Geist Variable,Geist,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--background);color:var(--plum);min-width:320px}body{min-width:320px;min-height:100vh;margin:0}button,input{color:inherit;font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}.app-shell{--day-accent-strong:color-mix(in srgb, var(--day-accent) 44%, var(--plum))}:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 65%, white);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.separator{background:var(--border);flex-shrink:0}.separator--horizontal{width:100%;height:1px}.separator--vertical{width:1px;height:100%}.resizable-panel-group{min-width:0;min-height:0;display:flex}.resizable-handle{background:var(--border);justify-content:center;align-items:center;display:flex;position:relative}.resizable-handle:focus-visible{outline-offset:-3px}.resizable-handle__grip{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;justify-content:center;align-items:center;width:18px;height:34px;display:flex}.resizable-handle__grip svg{width:15px;height:15px}.button{cursor:pointer;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.65rem 1rem;font-size:.94rem;font-weight:650;transition:background-color .15s,border-color .15s,color .15s,transform .15s;display:inline-flex}.button:not(:disabled):active{transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.52}.button--primary{background:var(--blue);color:#fff}.button--primary:not(:disabled):hover{background:#176da4}.button--secondary{border-color:var(--blue);color:var(--blue);background:#fff}.button--secondary:not(:disabled):hover{background:#eef7fc}.button--quiet{color:var(--plum);background:0 0}.button--quiet:not(:disabled):hover{background:#f7f4f6}.button--danger{color:var(--danger);background:#fff;border-color:#f3ccd5}.button--danger:not(:disabled):hover{background:#fff1f4}.button--icon{flex:0 0 44px;width:44px;height:44px;padding:0}.center-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.center-state p{color:var(--muted);margin:.8rem 0 1.5rem}.center-state--error>svg{color:var(--danger);width:36px;height:36px}.center-state h1{margin:1rem 0 0;font-size:1.35rem}.spinner{color:var(--pink);width:34px;height:34px;animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:radial-gradient(circle at 18% 8%,#d0bba542,#0000 32%),#fff;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-panel{border:1px solid var(--border);background:#fff;border-radius:18px;width:100%;max-width:520px;padding:1.4rem;box-shadow:0 18px 55px #33263a1a}.login-brand,.brand{align-items:center;line-height:1;text-decoration:none;display:inline-flex}.brand-logo{max-width:100%;height:auto;display:block}.login-brand{width:clamp(160px,40vw,190px)}.login-heading{align-items:flex-start;gap:.9rem;margin:2.2rem 0 1.5rem;display:flex}.login-heading__icon{background:var(--login-beige-soft);color:var(--login-beige);border-radius:50%;flex:0 0 48px;justify-content:center;align-items:center;height:48px;display:flex}.login-heading h1{margin:0;font-size:clamp(1.35rem,6vw,1.85rem);line-height:1.18}.login-heading p{color:var(--muted);margin:.35rem 0 0;font-size:.94rem}.role-picker{border:0;gap:.65rem;margin:0;padding:0;display:grid}.role-option{border:1px solid var(--border);cursor:pointer;text-align:left;background:#fff;border-radius:14px;min-height:68px;padding:.85rem 1rem}.role-option:hover{border-color:color-mix(in srgb, var(--login-beige) 28%, white)}.role-option[data-selected=true]{background:color-mix(in srgb, var(--login-beige-soft) 76%, white);border-color:color-mix(in srgb, var(--login-beige) 38%, white)}.role-option__name,.role-option__description{display:block}.role-option__name{font-size:1.05rem;font-weight:800}.role-option__description{color:var(--muted);margin-top:.14rem;font-size:.85rem}.pin-field{margin-top:1.25rem}.pin-field label,.activity-form label>span,.activity-form__field>span{margin:0 0 .4rem;font-size:.83rem;font-weight:650;display:block}.pin-field input{font-variant-numeric:tabular-nums;letter-spacing:.7em;text-align:center;text-indent:.7em;background:#fff;border:1px solid #cec5cd;border-radius:12px;width:100%;min-height:48px;padding:.7rem .85rem;font-size:1.45rem}.pin-field input[aria-invalid=true]{border-color:var(--danger)}.form-control{background:var(--background);border:1px solid var(--control-border);color:var(--plum);border-radius:12px;width:100%;min-width:0;min-height:48px;padding:.65rem .85rem;font-size:1rem;font-weight:500;line-height:1.5}.form-control::placeholder,.form-control[data-placeholder]{color:var(--muted);opacity:1}.form-control:hover:not(:disabled):not(:has(:disabled)){border-color:var(--control-border-hover)}.form-control:focus-visible,.input-group:has(:focus-visible){border-color:var(--control-focus);outline:2px solid var(--control-focus);outline-offset:2px}.form-control[aria-invalid=true]{border-color:var(--danger)}.form-control:user-invalid{border-color:var(--danger)}.input-group:has([aria-invalid=true],:user-invalid){border-color:var(--danger)}.form-control:disabled,.input-group:has(:disabled){cursor:not-allowed;opacity:.52}.input-group{align-items:center;padding:0;display:flex}.input-group>.input-group__input{border-radius:inherit;background:0 0;border:0;outline:none;flex:1;min-height:46px}.input-group__input:disabled{opacity:1}.input-group__addon{flex-shrink:0;align-items:center;padding-right:2px;display:flex}.field-help{color:var(--muted);text-align:right;margin:.35rem 0 0;font-size:.8rem}.time-select{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.3rem;display:grid}.time-select__separator{color:var(--muted);font-weight:650}.shadcn-select__trigger{cursor:pointer;font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:.35rem;display:flex}.shadcn-select__icon{flex-shrink:0;width:18px;height:18px}.floating-surface{background:var(--background);border:1px solid var(--border);color:var(--plum);z-index:60;border-radius:12px;outline:none;box-shadow:0 14px 36px #33263a29}.shadcn-select__content{max-height:min(18rem, var(--radix-select-content-available-height));min-width:var(--radix-select-trigger-width);overflow:hidden}.shadcn-select__content--popper{transform-origin:var(--radix-select-content-transform-origin)}.shadcn-select__viewport{padding:.3rem}.shadcn-select__viewport--popper{min-width:var(--radix-select-trigger-width)}.shadcn-select__scroll-button{color:var(--muted);justify-content:center;align-items:center;height:28px;display:flex}.dropdown-option{color:var(--plum);cursor:pointer;font-variant-numeric:tabular-nums;user-select:none;border-radius:8px;outline:none;align-items:center;min-height:44px;padding:.6rem 2.25rem .6rem .75rem;font-size:1rem;font-weight:500;line-height:1.5;display:flex;position:relative}.dropdown-option>span{overflow-wrap:anywhere;min-width:0}.dropdown-option:hover,.dropdown-option[data-highlighted]{background:var(--control-hover)}.dropdown-option[aria-selected=true],.dropdown-option[data-state=checked]{background:var(--control-selected)}.dropdown-option:is([aria-selected=true],[data-state=checked]):is(:hover,[data-highlighted]){background:var(--control-selected-hover)}.dropdown-option[data-disabled]{opacity:.45;pointer-events:none}.dropdown-option__indicator{justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;right:.75rem}.shadcn-select__label{color:var(--muted);padding:.4rem .65rem;font-size:.75rem;font-weight:650}.shadcn-select__separator{background:var(--border);height:1px;margin:.25rem 0}.login-submit.button--primary{background:var(--login-blue);color:#fff;width:100%;margin-top:1rem}.login-submit.button--primary:not(:disabled):hover{background:color-mix(in oklab, var(--login-blue) 88%, var(--plum))}.login-back{width:100%;margin-top:.3rem}.form-message{border-radius:10px;align-items:center;gap:.45rem;margin:.8rem 0 0;padding:.7rem .8rem;font-size:.88rem;display:flex}.form-message--error{color:#9e2942;background:#fff0f3}.form-message--success{color:#29744b;background:#edf8f2}.app-header{z-index:20;background:#fffffff5;justify-content:space-between;align-items:stretch;height:48px;padding:6px 1rem 0;line-height:1;display:flex;position:sticky;top:0}.app-header .brand{flex:0 0 118px;justify-content:flex-start;width:118px;height:100%}.account{align-items:center;gap:.6rem;height:100%;display:flex}.account>span{align-items:center;height:100%;font-size:.94rem;font-weight:650;line-height:1;display:flex}.account .button{align-self:stretch;height:100%;min-height:0;padding-top:0;padding-bottom:0}.account .button,.account__logout-label{line-height:1}.account__settings{color:var(--plum);border-radius:10px;align-items:center;gap:.4rem;min-height:44px;padding:0 .5rem;font-size:.94rem;font-weight:650;text-decoration:none;display:inline-flex}.account__settings:hover,.account__settings[aria-current=page]{background:#f7f4f6}.settings-shell{--day-accent:#c4d8e0}.settings-page{max-width:760px;margin:0 auto;padding:1.5rem 1rem 3rem}.settings-back{color:var(--muted);align-items:center;gap:.45rem;min-height:44px;font-size:.9rem;text-decoration:none;display:inline-flex}.settings-back:hover{color:var(--blue)}.settings-intro{margin:1rem 0 1.75rem}.settings-intro h1{letter-spacing:-.035em;margin:0 0 .65rem;font-size:clamp(1.5rem,4vw,1.85rem)}.settings-intro p,.settings-note,.settings-loading{color:var(--muted);margin:0;font-size:.94rem;line-height:1.55}.settings-catalogs{gap:1.5rem;display:grid}.catalog-section{border:1px solid var(--border);border-radius:14px;padding:1.25rem;scroll-margin-top:1.5rem}.catalog-heading{align-items:center;gap:.65rem;margin-bottom:1.25rem;display:flex}.catalog-heading>svg{color:var(--blue);flex-shrink:0}.catalog-heading h2{margin:0;font-size:1.1rem}.catalog-count{color:var(--muted);margin-left:auto;font-size:.85rem}.catalog-add label{margin-bottom:.4rem;font-size:.83rem;font-weight:650;display:block}.catalog-add__controls,.catalog-edit{gap:.5rem;display:flex}.catalog-add__controls input,.catalog-edit input{flex:1}.catalog-add__controls>.button{flex-shrink:0}.catalog-list{margin:1rem 0 0;padding:0;list-style:none}.catalog-row{border-top:1px solid var(--border);align-items:center;gap:.75rem;min-height:60px;padding:.4rem 0;display:flex}.catalog-row__name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:.94rem}.catalog-row__actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.catalog-row__actions .button--quiet{color:var(--muted)}.catalog-edit,.catalog-delete{width:100%}.catalog-delete p{overflow-wrap:anywhere;margin:0 0 .4rem;font-size:.9rem;line-height:1.5}.catalog-empty{color:var(--muted);margin:1rem 0 0;font-size:.88rem;line-height:1.5}.settings-note{margin-top:1.5rem;font-size:.85rem}.catalog-load-error,.settings-loading{margin-bottom:1rem}.catalog-section .form-message{overflow-wrap:anywhere}.catalog-name-row{align-items:center;gap:.5rem;display:flex}.catalog-name-toggle,.catalog-manage-button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.catalog-name-toggle:not(:disabled):hover,.catalog-manage-button:hover{background:var(--control-hover);color:var(--plum)}.catalog-manage-button:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}.catalog-name-toggle:disabled{cursor:not-allowed}.catalog-name-popover{--popover-padding:.3rem;max-height:min(320px, var(--radix-popover-content-available-height));overscroll-behavior:contain;width:var(--radix-popover-trigger-width);overflow-y:auto}.catalog-name-popover ul{margin:0;padding:0;list-style:none}.catalog-option-hint{color:var(--muted);margin:0;padding:.7rem;font-size:.83rem;line-height:1.5}.catalog-name-error button{color:var(--blue);font:inherit}.catalog-name-error{color:var(--danger);font-size:.8rem;line-height:1.5}.catalog-name-error p{margin:.35rem 0}.catalog-name-popover .catalog-name-error{padding:.4rem .75rem}.catalog-name-error button{cursor:pointer;background:0 0;border:0;min-height:44px;padding:0;text-decoration:underline}@media (width<=420px){.account{gap:.15rem}.account .button{padding-inline:.5rem}.account__logout-label{display:none}.settings-page{padding-top:.5rem}.catalog-section{padding:1rem}.catalog-add__controls,.catalog-edit{flex-wrap:wrap}.catalog-add__controls input,.catalog-edit input{flex-basis:100%}.catalog-add__controls>.button{width:100%}}.day-page{max-width:1240px;margin:0 auto;padding-bottom:3rem;overflow:hidden}.schedule-workspace{height:auto!important;display:block!important;overflow:visible!important}.week-master-panel,.schedule-workspace__handle{display:none!important}.day-detail-panel{flex:auto!important;width:100%!important;display:block!important;overflow:visible!important}.day-workspace{touch-action:pan-y;transition:opacity .15s}.day-workspace--loading{opacity:.58;pointer-events:none}.week-overview{touch-action:pan-y;display:none}.day-banner{background:var(--day-accent);color:#fff;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:.6rem;min-height:84px;padding:.55rem .5rem;display:grid}.day-banner__center{text-align:center;min-width:0}.day-banner__status{justify-content:center;align-items:center;gap:.4rem;max-width:100%;padding:.45rem .6rem;font-size:.86rem;font-weight:700;line-height:1.2;display:inline-flex}.day-banner__status svg{flex:none}.day-banner__date-trigger{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;width:100%;min-width:0;min-height:44px;padding:.65rem .5rem;display:flex}.day-banner__date-trigger:not(:disabled):hover,.day-banner__date-trigger[data-state=open]{background:color-mix(in srgb, currentColor 10%, transparent)}.day-banner__date-trigger:disabled{cursor:wait}.day-banner__date-trigger .day-banner__copy{display:block}.day-banner__nav.button--quiet{color:inherit}.day-banner__nav.button--quiet:not(:disabled):hover{background:color-mix(in srgb, currentColor 12%, transparent)}.day-banner__copy h1,.day-banner__title{margin:0;font-size:clamp(1.12rem,5vw,1.55rem);font-weight:700;line-height:1.08;display:block}.day-banner__quote{opacity:.72;margin:.25rem 0 0;font-size:.925rem;font-weight:700;line-height:1.2;display:block}.popover-content{padding:var(--popover-padding,.75rem);transform-origin:var(--radix-popover-content-transform-origin)}.popover-content[data-state=open]{animation:.14s ease-out popover-in}@keyframes popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.day-date-picker{width:min(320px,100vw - 2rem)}.calendar,.calendar__months,.calendar__month{width:100%}.calendar{position:relative}.calendar__month{gap:.65rem;display:grid}.calendar__nav{pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.calendar__nav-button{color:var(--plum);cursor:pointer;pointer-events:auto;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex}.calendar__nav-button:hover{background:var(--control-hover)}.calendar__nav-button svg{width:16px;height:16px}.calendar__month-caption{justify-content:center;align-items:center;height:32px;padding:0 2.5rem;display:flex}.calendar__caption-label{font-size:.92rem;font-weight:650}.calendar__month-grid{border-collapse:collapse;table-layout:fixed;width:100%}.calendar__weekday{color:var(--muted);text-align:center;height:28px;font-size:.72rem;font-weight:600}.calendar__day{text-align:center;height:36px;padding:1px}.calendar__day-button{cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:.82rem;font-weight:500;display:inline-flex}.calendar__day-button:hover{background:var(--control-hover)}.calendar__day-button:focus-visible,.calendar__nav-button:focus-visible{outline:2px solid var(--control-focus);outline-offset:1px}.calendar__day--selected .calendar__day-button{background:var(--control-selected);color:var(--plum)}.calendar__day--selected .calendar__day-button:hover{background:var(--control-selected-hover)}.calendar__day--today:not(.calendar__day--selected) .calendar__day-button{box-shadow:inset 0 0 0 1px var(--control-border-hover)}.calendar__day--outside{opacity:.34}.calendar__day--disabled{opacity:.35;pointer-events:none}.calendar__day--hidden{visibility:hidden}.schedule-section{padding:.75rem 1rem 0}.lesson-list,.activity-list{margin:0 .25rem;padding:0;list-style:none}.lesson-list{gap:.25rem;margin:0;display:grid}.lesson-row{grid-template-columns:32px minmax(0,1fr) 44px;align-items:center;gap:.5rem;min-height:60px;padding:.25rem 1rem;transition:background-color .15s;display:grid;position:relative}.lesson-row--completed{background:#f1faf4;border-radius:12px}.lesson-number{border:2px solid color-mix(in srgb, var(--day-accent) 55%, white);z-index:1;background:#fff;border-radius:50%;justify-content:center;align-self:center;align-items:center;width:30px;height:30px;font-size:.92rem;font-weight:800;display:flex;position:relative}.lesson-copy{min-width:0}.lesson-meta{flex-wrap:wrap;align-items:baseline;gap:.2rem .65rem;display:flex}.lesson-meta strong{font-size:1rem;line-height:1.25}.lesson-meta time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:700}.activity-row strong{font-size:1rem;line-height:1.25}.homework-check{cursor:pointer;justify-content:flex-end;align-items:center;width:44px;height:44px;display:flex;position:relative}.homework-check input{opacity:0;width:1px;height:1px;position:absolute}.homework-check span{background:#fff;border:2px solid #a89ea6;border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;margin:0;transition:background-color .15s,border-color .15s;display:flex}.homework-check svg{color:#fff;opacity:0;stroke-width:3px;width:18px;height:18px}.homework-check input:checked+span{background:var(--green);border-color:var(--green)}.homework-check input:checked+span svg{opacity:1}.homework-check input:focus-visible+span{outline:3px solid color-mix(in srgb, var(--focus) 65%, white);outline-offset:3px}.homework-check--readonly{cursor:default;opacity:.78}.homework-error{margin-bottom:.8rem}.lunch-divider{background:color-mix(in srgb, var(--day-accent) 32%, white);color:color-mix(in srgb, var(--day-accent) 62%, var(--plum));min-height:var(--schedule-marker-height);white-space:nowrap;justify-content:center;align-items:center;gap:.55rem;width:100%;margin-top:1rem;padding:.5rem 1rem;font-size:.92rem;font-weight:600;display:flex}.lunch-divider strong{font-size:.9rem;font-weight:650;line-height:1.25}.lunch-divider svg{flex:none;width:18px;height:18px}.lunch-editor__display{padding-left:3.25rem;padding-right:3.25rem;position:relative}.lunch-editor__display strong{text-overflow:ellipsis;min-width:0;overflow:hidden}.lunch-editor__edit{color:color-mix(in srgb, var(--day-accent) 34%, #aaa3ad);flex:0 0 44px;margin:0;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.lunch-editor__edit.button--quiet:not(:disabled):hover{background:color-mix(in srgb, var(--day-accent) 14%, white);color:color-mix(in srgb, var(--day-accent) 62%, var(--plum))}.lunch-editor__form{flex-wrap:nowrap;justify-content:flex-start;gap:.35rem;padding:.35rem .5rem}.lunch-editor__form input{min-height:44px;padding:0 .55rem}.lunch-editor__form input[type=time]{font-variant-numeric:tabular-nums;flex:0 0 6.75rem}.lunch-editor__label{flex:auto}.lunch-editor__form .button{flex:0 0 44px}.lunch-editor__message{margin:.5rem 1rem 0}.after-school{padding-top:.75rem}.activity-row{border-bottom:1px solid var(--border);grid-template-columns:32px 3.4rem minmax(0,1fr);align-items:baseline;gap:.55rem;min-height:68px;padding:.55rem .5rem;display:grid}.lesson-row:last-child,.activity-row:last-child{border-bottom:0}.activity-row time,.lunch-divider time{font-variant-numeric:tabular-nums;letter-spacing:.01em;font-family:inherit;font-size:.9rem;font-weight:600;line-height:1.25}.activity-row time{color:var(--muted)}.activity-row strong{font-weight:600}.schedule-empty{color:var(--muted);text-align:center;margin:0;padding:1.1rem .5rem 1.2rem;line-height:1.5}.day-sections{margin-top:.75rem}.day-sections .editor-panel{margin:0 .5rem}.day-sections .lunch-editor+.editor-panel,.alice-day .lunch-divider+.editor-panel{margin-top:.85rem}.editor-panel__toolbar{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;padding-left:.5rem;padding-right:.5rem;display:flex}.editor-panel__toolbar:empty{display:none}.editor-panel__toolbar h2{color:var(--day-accent-strong);margin:0;font-size:1rem}.editor-add-button.button--icon{background:color-mix(in srgb, var(--day-accent) 12%, white);border-color:color-mix(in srgb, var(--day-accent) 12%, white);color:color-mix(in srgb, var(--day-accent) 68%, var(--plum));border-radius:11px;flex-basis:36px;width:36px;height:36px;min-height:36px}.editor-add-button.button--secondary:not(:disabled):hover{background:color-mix(in srgb, var(--day-accent) 20%, white);border-color:color-mix(in srgb, var(--day-accent) 20%, white)}.editor-list{border:0;border-radius:0;overflow:visible}.editor-row{grid-template-columns:3.6rem minmax(0,1fr) auto;align-items:center;gap:.65rem;min-height:68px;padding:.6rem .25rem .6rem .4rem;display:grid}.editor-row+.editor-row{border-top:1px solid color-mix(in srgb, var(--border) 58%, transparent)}.editor-row time{font-variant-numeric:tabular-nums;font-family:inherit;font-size:.9rem;font-weight:600;line-height:1.25}.editor-row>span{min-width:0;font-family:inherit;font-size:.9rem;font-weight:600;line-height:1.25}.alice-lesson-list,.alice-activity-list{margin:0;padding:0;list-style:none}.alice-lesson-list,.lesson-editor-list{gap:.15rem;display:grid}.lesson-display-row{border-radius:14px}.lesson-display-row+.lesson-display-row{border-top:0}.lesson-display-row--completed{background:color-mix(in srgb, var(--day-accent) 32%, white)}.alice-lesson-row{grid-template-columns:30px minmax(0,1fr) 36px;padding-inline:.5rem}.alice-day .lesson-number{background:color-mix(in srgb, var(--day-accent) 12%, white);color:var(--day-accent-strong);border:0;width:26px;height:26px;font-size:.78rem}.lesson-display-row--completed .lesson-number{background:color-mix(in srgb, var(--day-accent) 28%, white);color:color-mix(in srgb, var(--day-accent) 40%, var(--plum))}.lesson-display-row__copy{flex-direction:column;gap:.15rem;min-width:0;display:flex}.lesson-display-row__meta{flex-wrap:wrap;align-items:baseline;gap:.18rem .5rem;display:flex}.lesson-display-row__meta strong{font-size:.9rem;font-weight:600;line-height:1.25}.lesson-display-row__meta time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:600}.lesson-homework{color:var(--muted);margin-top:.15rem;font-size:.78rem;line-height:1.3;display:block}.alice-day .homework-check{width:36px;height:36px}.alice-day .homework-check span{background:color-mix(in oklab, var(--day-accent) 18%, white);border-color:#0000;border-radius:9px;width:30px;height:30px}.alice-day .homework-check svg{color:var(--day-accent-ink)}.alice-day .homework-check input:checked+span{background:var(--day-accent);border-color:var(--day-accent)}.alice-day .homework-check input:not(:checked)+span{color:var(--day-accent)}.alice-day .homework-check:hover input:not(:checked)+span{background:color-mix(in oklab, var(--day-accent) 28%, white);border-color:#0000}.alice-day .homework-check:hover input:checked+span{background:color-mix(in srgb, var(--day-accent) 88%, var(--plum));border-color:color-mix(in srgb, var(--day-accent) 88%, var(--plum))}.activity-display-row{grid-template-columns:3rem minmax(0,1fr);align-items:center;padding-left:.4rem}.activity-display-row--editable{grid-template-columns:3rem minmax(0,1fr) auto}.activity-display-row__actions{align-self:center}.lesson-editor-row{grid-template-columns:30px minmax(0,1fr) calc(60px + .2rem);padding-inline:.5rem;position:relative}.lesson-editor-row--dragging{background:color-mix(in srgb, var(--day-accent) 10%, white);box-shadow:inset 3px 0 0 var(--day-accent);opacity:.72}.lesson-editor-row--drop-before:before,.lesson-editor-row--drop-after:after{background:var(--day-accent);content:"";pointer-events:none;z-index:2;border-radius:999px;height:3px;position:absolute;left:.55rem;right:.55rem}.lesson-editor-row--drop-before:before{top:-2px}.lesson-editor-row--drop-after:after{bottom:-2px}.lesson-drag-handle{color:color-mix(in srgb, var(--day-accent) 24%, #aaa3ad);cursor:grab;touch-action:none;border-radius:10px;flex-basis:30px;width:30px;height:30px;min-height:30px}.lesson-drag-handle[aria-pressed=true]{cursor:grabbing}.lesson-drag-handle.button--quiet:not(:disabled):hover{background:color-mix(in srgb, var(--day-accent) 12%, white);color:color-mix(in srgb, var(--day-accent) 68%, var(--plum))}.lesson-editor-row__actions{grid-template-columns:repeat(2,30px);gap:.2rem;display:grid}.editor-row__actions{gap:.2rem;display:flex}.editor-action-button.button--icon{border-radius:10px;flex-basis:30px;width:30px;height:30px;min-height:30px}.editor-action-button.button--quiet,.editor-row__actions .editor-action-button.button--danger{color:color-mix(in srgb, var(--day-accent) 24%, #aaa3ad)}.editor-action-button.button--quiet:not(:disabled):hover{background:color-mix(in srgb, var(--day-accent) 10%, white);color:color-mix(in srgb, var(--day-accent) 68%, var(--plum))}.editor-row__actions .editor-action-button.button--danger{background:0 0;border-color:#0000}.editor-row__actions .editor-action-button.button--danger:not(:disabled):hover{color:var(--danger);background:#fff1f4}.editor-empty{color:var(--muted);text-align:center;margin:0;padding:1.2rem}.activity-form{background:color-mix(in srgb, var(--day-accent) 7%, white);border:1px solid color-mix(in srgb, var(--day-accent) 22%, var(--border));border-radius:14px;margin:0 0 .85rem;padding:1rem;container:editor-form/inline-size}.lesson-form{background:color-mix(in srgb, var(--day-accent) 8%, white);border-color:color-mix(in srgb, var(--day-accent) 28%, white)}.editor-list .activity-form{border:0;border-radius:0;margin:0}.editor-list .lesson-form{border:1px solid color-mix(in srgb, var(--day-accent) 28%, white);border-radius:14px;margin:0 .5rem .5rem}.activity-form h3{margin:0 0 .85rem;font-size:.94rem;font-weight:650}.lesson-form h3{color:color-mix(in srgb, var(--day-accent) 58%, var(--plum));letter-spacing:-.01em;font-size:1rem;font-weight:750;line-height:1.2}.activity-form__fields{gap:.75rem;display:grid}.activity-form__actions{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.activity-form__actions .button{border-radius:10px;min-height:36px;padding:.45rem .7rem;font-size:.84rem;font-weight:600}.activity-form__actions .button--primary{background:color-mix(in srgb, var(--day-accent) 16%, white);border-color:color-mix(in srgb, var(--day-accent) 16%, white);color:color-mix(in srgb, var(--day-accent) 68%, var(--plum))}.activity-form__actions .button--primary:not(:disabled):hover{background:color-mix(in srgb, var(--day-accent) 24%, white)}.activity-form__actions .button--quiet{background:color-mix(in srgb, var(--day-accent) 7%, white);color:color-mix(in srgb, var(--day-accent) 48%, var(--plum))}.activity-form__actions .button--quiet:not(:disabled):hover{background:color-mix(in srgb, var(--day-accent) 14%, white);color:color-mix(in srgb, var(--day-accent) 66%, var(--plum))}.activity-form__actions svg{width:16px;height:16px}.global-toast{z-index:40;max-width:420px;margin:0;position:fixed;bottom:1rem;left:1rem;right:1rem;box-shadow:0 8px 30px #33263a29}@media (width<=719px){.app-header{padding-top:2px}.day-banner{grid-template-columns:44px minmax(0,1fr) 44px;gap:.35rem;min-height:72px;padding:.4rem .35rem}.day-banner__copy h1,.day-banner__title{font-size:clamp(1.05rem,4.6vw,1.16rem)}.day-banner__quote{font-size:.875rem}.day-sections{margin-top:.45rem}.day-sections .editor-panel{margin-left:.875rem;margin-right:.875rem}.day-sections .lunch-editor+.editor-panel,.alice-day .lunch-divider+.editor-panel{margin-top:.45rem}.editor-panel__toolbar{min-height:34px;margin-bottom:.4rem}.editor-panel__toolbar h2{font-size:.94rem}.editor-add-button.button--icon{border-radius:10px;flex-basis:32px;width:32px;height:32px;min-height:32px}.editor-row{gap:.3rem;min-height:48px;padding:.18rem .1rem .18rem .25rem}.editor-row>span,.lesson-display-row__copy strong{font-size:.84rem}.alice-lesson-row{grid-template-columns:28px minmax(0,1fr) 32px;padding-inline:.5rem}.alice-day .lesson-number{width:24px;height:24px;font-size:.72rem}.alice-day .homework-check{width:32px;height:32px}.alice-day .homework-check span{width:28px;height:28px}.activity-display-row{grid-template-columns:2.75rem minmax(0,1fr);align-items:center;padding-left:.35rem}.activity-display-row--editable{grid-template-columns:2.75rem minmax(0,1fr) auto}.editor-row time,.lesson-display-row__copy time{font-size:.72rem}.activity-display-row time{font-size:.84rem}.lesson-editor-row{grid-template-columns:28px minmax(0,1fr) calc(56px + .15rem);padding-inline:.5rem}.lesson-drag-handle,.editor-action-button.button--icon{flex-basis:28px;width:28px;height:28px;min-height:28px}.lesson-editor-row__actions{grid-template-columns:repeat(2,28px);gap:.15rem}.editor-row__actions{gap:.15rem}.activity-display-row__actions{align-self:center}.lunch-divider{min-height:40px;margin-top:.45rem;padding:.3rem .75rem}.lunch-editor__display{padding-left:3rem;padding-right:3rem}.lunch-editor__edit{flex-basis:36px;width:36px;height:36px;min-height:36px}.after-school{padding-top:.45rem}}@media (width>=720px){.app-header{padding:6px 1.25rem 0}.day-page{padding:0 .75rem 4rem}.day-content{border:0;border-radius:0;overflow:hidden}.day-banner{min-height:112px;padding:1rem 1.25rem}.schedule-section{padding-left:2rem;padding-right:2rem}.lesson-row{grid-template-columns:44px minmax(0,1fr) 52px;gap:1rem;min-height:68px}.activity-row{grid-template-columns:44px 4.25rem minmax(0,1fr)}.day-sections{margin-top:1rem}.day-sections .editor-panel{margin-left:1rem;margin-right:1rem}.activity-form__fields{grid-template-columns:9rem minmax(0,1fr)}}@media (width>=1024px){.app-header{padding-top:8px}.day-page{max-width:none;padding:.75rem}.schedule-workspace{border:1px solid var(--border);border-radius:14px;min-height:0;height:calc(100vh - 72px)!important;display:flex!important;overflow:hidden!important}.week-master-panel{min-width:0;display:block!important;overflow:auto!important}.schedule-workspace__handle{background:var(--border);cursor:col-resize;flex:0 0 1px;width:1px;display:flex!important}.schedule-workspace__handle:before{content:"";width:9px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.schedule-workspace__handle .resizable-handle__grip{z-index:1;width:16px;height:30px;position:relative}.day-detail-panel{background:#fff;min-width:0;container:day-detail/size;display:block!important;overflow:hidden auto!important}.week-overview{background:#fff;min-width:660px;height:100%;display:block;overflow:auto}.week-overview__toolbar{text-align:center;z-index:3;background:color-mix(in srgb, var(--week-selected-accent) 9%, white);height:76px;color:color-mix(in srgb, var(--week-selected-accent) 58%, var(--plum));grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;padding:.45rem .85rem;display:grid;position:sticky;top:0}.week-overview__toolbar .button--quiet{color:inherit}.week-overview__toolbar .button--quiet:not(:disabled):hover{background:color-mix(in srgb, var(--week-selected-accent) 16%, white)}.week-overview__toolbar h2{margin:0;font-size:.94rem;font-weight:650;line-height:1.2}.week-grid{grid-template-rows:repeat(2,minmax(min-content,1fr));grid-template-columns:repeat(7,minmax(0,1fr));height:calc(100% - 76px);min-height:calc(100% - 76px);display:grid}.week-day{--week-day-accent-strong:color-mix(in srgb, var(--week-day-accent) 44%, var(--plum));border:0;border-right:1px solid var(--border);color:var(--plum);font:inherit;grid-template-rows:var(--schedule-marker-height) minmax(0, 1fr) var(--schedule-marker-height) minmax(0, 1fr);text-align:left;background:#fff;align-content:stretch;min-width:0;padding:0;transition:background-color .15s,box-shadow .15s;display:grid;position:relative}.week-day:nth-child(7n){border-right:0}.week-day:has(.week-day__select:not(:disabled):hover){background:color-mix(in srgb, var(--week-day-accent) 12%, white)}.week-day:has(.week-day__select:focus-visible){outline:3px solid var(--focus);outline-offset:-3px;z-index:1}.week-day__select{cursor:pointer;z-index:0;background:0 0;border:0;padding:0;position:absolute;inset:0}.week-day__select:focus-visible{outline:0}.week-day__select:disabled{cursor:wait}.week-day--selected{background:color-mix(in srgb, var(--week-day-accent) 14%, white);z-index:1}.week-day--selected .week-day__header{background:var(--week-day-accent)}.week-day__header{background:var(--week-day-accent);color:#fff;min-height:var(--schedule-marker-height);pointer-events:none;z-index:1;align-items:center;min-width:0;padding:.45rem .5rem;display:flex;position:relative}.week-day__header strong{text-overflow:ellipsis;white-space:nowrap;font-size:.71rem;font-weight:700;overflow:hidden}.week-day__section{pointer-events:none;z-index:1;border-top:0;align-content:start;gap:.22rem;min-height:0;padding:.55rem .4rem;display:grid;position:relative;overflow:hidden auto}.week-day__section-label{color:var(--week-day-accent-strong);letter-spacing:.025em;text-transform:uppercase;margin-bottom:.1rem;font-size:.63rem;font-weight:800}.week-day__item{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.25rem;min-width:0;font-size:.71rem;line-height:1.25;display:grid}.week-day__item--lesson{grid-template-columns:16px minmax(0,1fr);column-gap:.125rem}.week-day__item--lesson-timed{grid-template-columns:16px auto minmax(0,1fr)}.week-day__item time,.week-day__lunch time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.63rem;font-weight:700}.week-day__item>.week-day__item-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.week-day__homework-check{cursor:pointer;pointer-events:auto;justify-content:center;align-self:center;align-items:center;width:16px;height:16px;display:flex;position:relative}.week-day__homework-check input{opacity:0;width:1px;height:1px;position:absolute}.week-day__homework-check span{background:color-mix(in oklab, var(--week-day-accent) 10%, white);border:1px solid color-mix(in oklab, var(--week-day-accent) 50%, white);border-radius:4px;justify-content:center;align-items:center;width:12px;height:12px;transition:background-color .15s,border-color .15s;display:flex}.week-day__homework-check svg{color:var(--plum);opacity:0;stroke-width:3.2px;width:9px;height:9px}.week-day__homework-check input:checked+span{background:var(--week-day-accent);border-color:var(--week-day-accent)}.week-day__homework-check input:checked+span svg{opacity:1}.week-day__homework-check input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.week-day__homework-check:not(.week-day__homework-check--readonly):hover span{background:color-mix(in oklab, var(--week-day-accent) 18%, white);border-color:color-mix(in oklab, var(--week-day-accent) 68%, white)}.week-day__homework-check--readonly{cursor:default}.week-day__empty{color:var(--muted);font-size:.69rem}.week-day__lunch{background:color-mix(in srgb, var(--week-day-accent) 38%, white);color:color-mix(in srgb, var(--week-day-accent) 62%, var(--plum));min-height:var(--schedule-marker-height);pointer-events:none;z-index:1;grid-template-columns:15px auto minmax(0,1fr);align-items:center;gap:.3rem;padding:.35rem .6rem;font-size:.69rem;font-weight:650;display:grid;position:relative}.week-day__lunch time{color:inherit;opacity:.9;font-weight:600}.week-day__lunch svg{flex:none}.day-detail-panel .day-content{border:0;border-radius:0}.day-detail-panel .day-banner{z-index:4;height:76px;min-height:76px;padding:.45rem .5rem;position:sticky;top:0}.day-detail-panel .day-banner__copy h1,.day-detail-panel .day-banner__title{font-size:.94rem}.day-detail-panel .day-banner__quote{font-size:.825rem}.day-detail-panel .day-sections .editor-panel{margin-left:.5rem;margin-right:.5rem}.day-detail-panel .day-sections{margin-top:.5rem}.day-detail-panel .day-sections>.editor-panel:first-child{min-height:calc(50cqh - 61.5px)}.day-detail-panel .day-sections .lunch-editor+.editor-panel,.day-detail-panel .alice-day .lunch-divider+.editor-panel{margin-top:.55rem}.day-detail-panel .editor-panel__toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:.45rem;padding-left:.5rem;padding-right:.5rem}.day-detail-panel .editor-panel__toolbar .button{margin-left:auto}.day-detail-panel .editor-add-button.button--icon{flex-basis:34px;width:34px;height:34px;min-height:34px}.day-detail-panel .schedule-section{padding-left:1rem;padding-right:1rem}.day-detail-panel .editor-list{border-radius:0}.day-detail-panel .editor-row{gap:.35rem;min-height:52px;padding:.22rem .15rem .22rem .3rem}.day-detail-panel .alice-lesson-row{padding-inline:.5rem}.day-detail-panel .activity-display-row{grid-template-columns:2.5rem minmax(0,1fr);column-gap:.75rem;padding-left:.5rem}.day-detail-panel .activity-display-row--editable{grid-template-columns:2.5rem minmax(0,1fr) auto}.day-detail-panel .activity-list{margin-top:1.3rem}.day-detail-panel .lesson-editor-row{grid-template-columns:28px minmax(0,1fr) calc(56px + .2rem);padding-inline:.5rem}.day-detail-panel .lesson-drag-handle,.day-detail-panel .editor-action-button.button--icon{flex-basis:28px;width:28px;height:28px;min-height:28px}.day-detail-panel .lesson-editor-row__actions{grid-template-columns:repeat(2,28px)}.day-detail-panel .editor-row>span,.day-detail-panel .lesson-display-row__copy strong{font-size:.86rem}.day-detail-panel .lesson-display-row__copy time,.day-detail-panel .editor-row time{font-size:.74rem}.day-detail-panel .activity-display-row time{font-size:.86rem}.day-detail-panel .lunch-divider{min-height:var(--schedule-marker-height);padding-top:.25rem;padding-bottom:.25rem}.day-detail-panel .lesson-row{grid-template-columns:32px minmax(0,1fr) 44px;gap:.4rem;min-height:54px;padding:.15rem .5rem}.day-detail-panel .activity-row{grid-template-columns:32px 3.5rem minmax(0,1fr);gap:.4rem;min-height:54px;padding:.25rem .4rem}}@container editor-form (width<=28rem){.activity-form__fields{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.spinner{animation-duration:1.5s}}
