:root{color:#173128;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#d7dfab47,#0000 26%),linear-gradient(#f7f8f2 0%,#eef1e7 100%);font-family:Manrope,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100vh}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{background:radial-gradient(circle at 100% 0,#f7d66a2e,#0000 24%),linear-gradient(#ffffffd6,#f5f7f0f5);grid-template-columns:286px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe0;border-right:1px solid #17312814;grid-template-rows:auto auto auto 1fr auto;gap:.8rem;height:100vh;padding:1.1rem .95rem 1rem;display:grid;position:sticky;top:0;overflow-y:auto}.sidebar__brand,.sidebar__user,.sidebar__switcher,.placeholder-card,.section-page__intro,.status-page__panel,.dashboard-stat{background:#ffffffeb;border:1px solid #17312814;border-radius:22px;box-shadow:0 16px 32px #1731280f}.sidebar__brand,.sidebar__user,.sidebar__switcher{padding:.9rem .95rem .95rem 1rem}.brand-mark{color:#fff;background:linear-gradient(#3f6e56 0%,#2f5641 100%);border-radius:16px;place-items:center;width:2.8rem;height:2.8rem;font-weight:800;display:grid;box-shadow:0 14px 28px #355f4938}.sidebar__brand{align-items:center;gap:.8rem;display:flex}.sidebar__eyebrow,.section-page__eyebrow{letter-spacing:.09em;text-transform:uppercase;color:#6f845d;margin:0 0 .28rem;font-size:.72rem;font-weight:700}.sidebar__brand strong,.sidebar__user strong,.topbar__identity strong{color:#173128;display:block}.sidebar__user span,.topbar__identity span{color:#5e6f63;margin-top:.24rem;font-size:.92rem;display:inline-block}.sidebar__switcher label{color:#42554b;margin-bottom:.48rem;font-size:.9rem;font-weight:700;display:block}.sidebar__switcher select{color:#173128;background:#f8faf4;border:1px solid #355f4929;border-radius:14px;width:100%;min-height:2.8rem;padding:.72rem .9rem}.sidebar__nav{align-content:start;gap:.75rem;display:grid}.sidebar__primary{gap:.32rem;display:grid}.sidebar__group{gap:.35rem;display:grid}.sidebar__group-toggle{color:#274338;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.55rem;width:100%;padding:.5rem .6rem;font-size:.92rem;font-weight:800;display:flex}.sidebar__group-arrow{color:#6f845d;flex:none;width:.9rem;font-size:.72rem}.sidebar__group-items{gap:.18rem;padding-left:1.55rem;display:grid}.sidebar__system-actions{gap:.42rem;margin-top:.32rem;display:grid}.sidebar__link{color:#4e6258;border-radius:14px;padding:.56rem .78rem;font-size:.92rem;font-weight:600;transition:background-color .18s,color .18s,transform .18s}.sidebar__link:hover{color:#173128;background:#d6e0b447;transform:translate(2px)}.sidebar__link--primary{font-weight:800}.sidebar__link.active{color:#fff;background:linear-gradient(#3c6c53 0%,#355f49 100%);box-shadow:0 12px 22px #355f4938}.logout-button,.topbar__logout,.menu-toggle,.primary-link,.secondary-link,.topbar__icon{cursor:pointer;border:0;border-radius:14px;min-height:2.9rem}.logout-button,.topbar__logout{color:#8b5037;background:#fff6f1;border:1px solid #ac684c38;padding:.72rem .9rem;font-weight:700}.sidebar__logout-actions{gap:.55rem;display:grid}.logout-button--soft,.secondary-link{color:#355f49;background:#f7faf4;border:1px solid #355f492e}.secondary-link,.primary-link{justify-content:center;align-items:center;padding:.8rem .95rem;font-weight:700;display:inline-flex}.primary-link{color:#fff;background:linear-gradient(#3c6c53 0%,#355f49 100%);box-shadow:0 14px 26px #355f4933}.content-shell{grid-template-rows:auto 1fr;min-width:0;display:grid}.topbar{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f8f2e6;border-bottom:1px solid #17312814;justify-content:space-between;align-items:center;gap:.8rem;padding:.85rem 1.1rem;display:flex;position:sticky;top:0}.topbar__identity{min-width:0}.topbar__actions{align-items:center;gap:.5rem;display:flex}.topbar__search{color:#7b8c82;background:#ffffffdb;border:1px solid #17312814;border-radius:14px;align-items:center;min-width:200px;min-height:2.9rem;padding:0 .95rem;font-size:.92rem;display:inline-flex}.children-toolbar,.schedule-toolbar{padding:1rem 1.1rem}.schedule-table-toolbar{gap:.9rem;padding:1rem 1.1rem;display:grid}.schedule-table-toolbar__main{flex-wrap:wrap;gap:.65rem;display:flex}.schedule-table-toolbar__filters,.schedule-toolbar__filters,.schedule-form__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.schedule-toolbar label,.schedule-table-toolbar label,.schedule-form label{gap:.42rem;display:grid}.schedule-toolbar span,.schedule-table-toolbar span,.schedule-form span{color:#42554b;font-size:.93rem;font-weight:700}.schedule-toolbar select,.schedule-table-toolbar select,.schedule-form input,.schedule-form select,.schedule-form textarea{color:#173128;width:100%;font:inherit;background:#f8faf4;border:1px solid #355f4929;border-radius:14px;padding:.8rem .9rem}.schedule-form select[multiple]{min-height:8.5rem}.schedule-table-wrap{background:#ffffffeb;border:1px solid #17312814;border-radius:22px;overflow:auto;box-shadow:0 16px 32px #1731280f}.schedule-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1100px}.schedule-table th,.schedule-table td{vertical-align:top;background:#fffffff0;border-bottom:1px solid #17312814;border-right:1px solid #17312814}.schedule-table thead th{z-index:5;color:#173128;text-align:left;background:#f7f8f2;padding:.68rem .72rem;position:sticky;top:0}.schedule-table__date-head,.schedule-table__date-cell{z-index:4;background:#f7f8f2;width:7.4rem;min-width:7.4rem;position:sticky;left:0}.schedule-table__date-head{z-index:6}.schedule-table__time-head,.schedule-table__time-cell{z-index:4;background:#f7f8f2;width:8.1rem;min-width:8.1rem;position:sticky;left:7.4rem}.schedule-table__time-head{z-index:6}.schedule-table__date-cell{text-align:left;padding:.34rem .5rem}.schedule-table__date-cell strong,.schedule-table__date-cell span{display:block}.schedule-table__date-cell span{color:#607166;margin-top:.12rem;font-size:.74rem}.schedule-table__date-spacer{height:1rem;display:block}.schedule-table__time-cell{text-align:left;vertical-align:top;color:#173128;padding:.34rem .5rem;font-size:.71rem;font-weight:600}.schedule-table__time-cell.is-today,.schedule-table__date-cell.is-today{background:#f7d66a2e}.schedule-table__cell{min-width:13rem;padding:0}.schedule-cell{min-height:0;padding:.16rem}.schedule-cell--compact{align-content:start;gap:.14rem;display:grid}.schedule-cell__more,.schedule-cell__empty{color:#708279;font-size:.88rem}.schedule-card-mini{background:#fbfcf8;border:1px solid #355f4914;border-radius:10px;gap:.2rem;padding:.2rem .22rem;display:grid}.schedule-card-mini__top{justify-content:space-between;align-items:flex-start;gap:.45rem;display:flex}.schedule-card-mini__title{color:#173128;min-width:0;font-size:.81rem;line-height:1.12;display:block}.attendance-summary-chip{color:#355f49;width:100%;font:inherit;cursor:pointer;background:#53806514;border:1px solid #355f491f;border-radius:999px;justify-content:space-between;align-items:center;gap:.5rem;padding:.24rem .42rem;font-size:.73rem;display:flex}.attendance-summary-chip strong{color:#355f49;font-size:.7rem;font-weight:800}.attendance-summary-chip.has-issues{color:#8d5b24;background:#c691421f;border-color:#c6914238}.attendance-summary-chip.has-issues strong{color:#8d5b24}.schedule-entry{background:#fff;border:1px solid #17312814;border-radius:16px;padding:.8rem;box-shadow:0 10px 18px #1731280a}.schedule-entry__top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.schedule-entry__top h3{color:#173128;margin:0;font-size:1rem}.schedule-attendance{border-top:1px solid #17312814;gap:.65rem;margin-top:.8rem;padding-top:.8rem;display:grid}.schedule-attendance__list{gap:.5rem;display:grid}.schedule-attendance__row{grid-template-columns:minmax(0,1.3fr) 160px minmax(0,1fr);align-items:center;gap:.55rem;display:grid}.schedule-attendance__row span{color:#29453a;font-size:.92rem}.schedule-attendance__row select,.schedule-attendance__row input{color:#173128;width:100%;min-height:2.5rem;font:inherit;background:#f8faf4;border:1px solid #355f4929;border-radius:12px;padding:.65rem .75rem}.schedule-table-footer{justify-content:center;display:flex}.children-search{color:#173128;width:100%;min-height:2.85rem;font:inherit;background:#f8faf4;border:1px solid #355f4929;border-radius:14px;margin-top:.55rem;padding:.72rem .9rem}.children-card__top{justify-content:space-between;align-items:flex-start;gap:.9rem;display:flex}.children-card__top p{color:#5e6f63;margin:.32rem 0 0}.children-status{color:#9a6225;background:#c691421f;border-radius:999px;flex:none;justify-content:center;align-items:center;min-height:2rem;padding:.32rem .7rem;font-size:.82rem;font-weight:800;display:inline-flex}.children-status.is-active{color:#355f49;background:#355f491f}.topbar__icon{background:#ffffffdb;border:1px solid #17312814;width:2.9rem}.page-content{padding:1.15rem}.section-page,.status-page{gap:1rem;display:grid}.section-page__intro,.status-page__panel{padding:1.35rem}.section-page__intro h1,.status-page__panel h1{letter-spacing:-.035em;color:#173128;margin:0 0 .68rem;font-size:clamp(1.9rem,3.8vw,2.9rem);line-height:1.04}.section-page__intro p,.status-page__panel p,.placeholder-card p{color:#56685e;max-width:64ch;margin:0;line-height:1.65}.status-page__actions{flex-wrap:wrap;gap:.7rem;margin-top:1rem;display:flex}.placeholder-grid,.dashboard-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.placeholder-card,.editor-card{padding:1.2rem}.placeholder-card h2,.editor-card h2{color:#173128;margin:0 0 .9rem}.dashboard-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem;display:grid}.dashboard-stats--compact{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-stat{padding:1rem 1rem .95rem}.dashboard-stat span{color:#6b7f74;font-size:.85rem;display:block}.dashboard-stat strong{color:#173128;margin-top:.35rem;font-size:1.75rem;line-height:1;display:block}.dashboard-stat small{color:#708279;margin-top:.3rem;display:block}.dashboard-links{flex-wrap:wrap;gap:.65rem;margin-top:1rem;display:flex}.dashboard-list{color:#56685e;margin:0;padding-left:1.1rem;line-height:1.65}.editor-card{background:#ffffffeb;border:1px solid #17312814;border-radius:22px;box-shadow:0 16px 32px #1731280f}.editor-card label,.checkbox-group{gap:.42rem;margin-bottom:.9rem;display:grid}.editor-card label span,.checkbox-group legend{color:#42554b;font-size:.93rem;font-weight:700}.editor-card input,.editor-card textarea,.editor-card select{color:#173128;resize:vertical;background:#f8faf4;border:1px solid #355f4929;border-radius:14px;width:100%;padding:.8rem .9rem}.editor-card__button{width:100%}.checkbox-group{border:0;padding:0}.checkbox-group label{grid-template-columns:auto 1fr;align-items:center;margin:0}.stack-list{gap:.8rem;display:grid}.stack-list__item{background:#f7f8f2;border:1px solid #17312814;border-radius:18px;gap:.55rem;padding:.95rem;display:grid}.stack-list__item strong{color:#173128;margin-bottom:.3rem;display:block}.stack-list__item p{color:#5a6b61;margin:0}.stack-list__meta{flex-wrap:wrap;gap:.4rem;display:flex}.stack-list__meta span{color:#345441;background:#d6e0b475;border-radius:999px;padding:.38rem .6rem;font-size:.82rem;font-weight:700}.preview-card{background:#f7f8f2;border:1px solid #17312814;border-radius:18px;margin-top:1rem;padding:1rem}.preview-card strong,.preview-card p{margin:0 0 .7rem}.overlay-shell{z-index:80;position:fixed;inset:0}.overlay-backdrop{background:#17312847;position:absolute;inset:0}.overlay-drawer,.overlay-modal{background:#fffef9;border-left:1px solid #355f4924;position:absolute;box-shadow:-22px 0 42px #17312824}.overlay-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(34rem,92vw);display:grid;top:0;bottom:0;right:0}.overlay-modal{border:1px solid #355f4924;border-radius:22px;grid-template-rows:auto minmax(0,1fr);width:min(48rem,100vw - 2rem);max-height:calc(100vh - 2rem);display:grid;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 48px #17312829}.overlay-drawer__header,.overlay-modal__header{border-bottom:1px solid #355f491a;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1rem .85rem;display:flex}.overlay-drawer__header strong,.overlay-modal__header strong{color:#173128;font-size:1.08rem;display:block}.overlay-drawer__header span,.overlay-modal__header span{color:#607166;margin-top:.25rem;font-size:.88rem;display:block}.overlay-close{color:#355f49;cursor:pointer;background:#f7faf4;border:1px solid #355f4924;border-radius:14px;min-width:2.5rem;min-height:2.5rem}.overlay-drawer__actions{gap:.6rem;padding:.85rem 1rem 0;display:flex}.overlay-drawer__body,.overlay-modal__body{padding:1rem;overflow:auto}.inspector-stack{gap:.8rem;display:grid}.entity-inline,.entity-pill,.entity-list__item,.entity-title-button{cursor:pointer;background:0 0;border:0}.entity-inline{color:#2f634b;font:inherit;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.entity-title-button{color:#173128;font:inherit;text-align:left;padding:0;font-weight:700}.entity-pill{color:#29453a;background:#f7faf4;border:1px solid #355f491f;border-radius:999px;padding:.34rem .56rem;font-size:.85rem}.entity-list{gap:.42rem;display:grid}.entity-list__item{color:#29453a;text-align:left;font:inherit;background:#f7faf4;border:1px solid #355f491a;border-radius:14px;padding:.6rem .72rem}.attendance-panel__item{background:#f7faf4;border:1px solid #355f491a;border-radius:14px;justify-content:space-between;align-items:flex-start;gap:.8rem;padding:.72rem;display:flex}.attendance-panel__meta{gap:.18rem;display:grid}.attendance-panel__meta span,.attendance-panel__meta small{color:#607166}.my-child-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:1rem;display:grid}.my-child-lessons{gap:.55rem;margin-top:.75rem;display:grid}.my-child-lesson{background:#f7faf4;border:1px solid #355f491a;border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.7rem;padding:.72rem .78rem;display:grid}.my-child-lesson span{gap:.12rem;display:grid}.my-child-lesson small{color:#607166}.inspector-form{gap:.8rem;display:grid}.inspector-form label{gap:.32rem;display:grid}.inspector-form span{color:#355f49;font-size:.88rem;font-weight:700}.inspector-form input,.inspector-form select,.inspector-form textarea{color:#173128;width:100%;min-height:2.7rem;font:inherit;background:#f8faf4;border:1px solid #355f4929;border-radius:14px;padding:.68rem .78rem}.inspector-form select[multiple]{min-height:7rem}.inspector-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.schedule-table__date-cell.is-clickable{cursor:pointer}.error-text{color:#9a4d3c;font-weight:600}.menu-toggle{background:#ffffffeb;border:1px solid #355f4933;flex-direction:column;justify-content:center;align-items:center;gap:.24rem;width:2.9rem;padding:0;display:none}.menu-toggle span{background:#173128;border-radius:999px;width:1rem;height:2px;display:block}@media (width<=1120px){.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=980px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:30;width:min(320px,88vw);transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.menu-toggle{display:inline-flex}.topbar__search,.topbar__icon{display:none}.placeholder-grid,.dashboard-grid,.admin-grid,.dashboard-stats,.dashboard-stats--compact,.my-child-grid,.schedule-table-toolbar__filters,.schedule-toolbar__filters,.schedule-form__grid,.inspector-form__grid{grid-template-columns:1fr}}@media (width<=720px){.topbar{padding:.8rem .9rem}.topbar__actions{display:none}.page-content{padding:.9rem}.schedule-attendance__row{grid-template-columns:1fr}.overlay-drawer{width:min(38rem,100vw)}}
