body{min-width:320px;min-height:100vh;margin:0}#root{width:100%;min-height:100vh}:root{--color-primary:#2c5282;--color-primary-hover:#23456d;--color-primary-soft:#e8eef6;--color-accent:#d69e2e;--color-accent-soft:#f8efd9;--color-success:#2f855a;--color-danger:#c53030;--color-danger-soft:#fdecec;--color-background:#f7f8fa;--color-surface:#fff;--color-surface-muted:#f1f4f8;--color-text:#1f2937;--color-text-muted:#64748b;--color-border:#e2e8f0;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-sm:0 2px 8px #0f172a0f;--shadow-md:0 8px 24px #0f172a17;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;color:var(--color-text);background:var(--color-background);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{background:var(--color-background);min-width:320px;min-height:100vh;color:var(--color-text);margin:0}#root{min-height:100vh}.page-shell{min-height:100vh;padding:var(--space-5);place-items:center;display:grid}.login-card,.home-card{background:#fff;border:1px solid #d8dde3;border-radius:14px;width:min(100%,420px);padding:32px;box-shadow:0 12px 32px #00000014}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}h1,h2,h3,p{overflow-wrap:break-word}h1{margin:0;font-size:2rem}a{color:var(--color-primary)}.subtitle{margin:var(--space-2) 0 1.75rem;color:var(--color-text-muted)}button,input,textarea,select{font:inherit}button{border-radius:var(--radius-sm)}.primary-button,.secondary-button{border-radius:var(--radius-sm);cursor:pointer;min-height:44px;padding:.65rem 1rem;transition:background-color .15s,border-color .15s,color .15s,opacity .15s}.primary-button{background:var(--color-primary);color:#fff;border:0;font-weight:700}.primary-button:hover:not(:disabled){background:var(--color-primary-hover)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.65}.secondary-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.secondary-button:hover:not(:disabled){background:var(--color-surface-muted)}.form-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.icon-button{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;display:inline-flex}.icon-button:hover{background:var(--color-surface-muted)}.icon-button:disabled{cursor:default;opacity:.5}.icon-button.danger{color:var(--color-danger)}.icon-button.danger:hover:not(:disabled){background:var(--color-danger-soft)}form{gap:var(--space-3);display:grid}label{margin-top:var(--space-2);font-weight:600}.form-page{width:min(100%,44rem)}.service-form{gap:var(--space-5);flex-direction:column;display:flex}.form-field{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--color-text);font-weight:600}.required-indicator{margin-left:var(--space-1);color:var(--color-danger)}.text-field-input,input[type=text],input[type=password],input[type=number],input[type=date],textarea,select{border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);border:1px solid #9ca3af;padding:.7rem .8rem}.text-field-input:focus,input:focus,textarea:focus,select:focus{border-color:var(--color-primary);outline:3px solid #2c52822e}.text-field-input:disabled,input:disabled,textarea:disabled,select:disabled{background:var(--color-surface-muted);cursor:not-allowed}.text-field-input-error{border-color:var(--color-danger)}.form-field-helper,.form-field-error{margin:0;font-size:.85rem}.form-field-helper{color:var(--color-text-muted)}.form-field-error,.error-message{color:var(--color-danger);font-weight:600}.remember-row{margin:var(--space-3) 0;align-items:center;gap:.55rem;font-weight:400;display:flex}.remember-row input{width:1.125rem;height:1.125rem}.tag-input-container{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid #9ca3af;flex-wrap:wrap;min-height:2.75rem;padding:.45rem .6rem;display:flex}.tag-input-container:focus-within{border-color:var(--color-primary);outline:3px solid #2c52822e}.tag-input{min-width:10rem;padding:var(--space-1);color:var(--color-text);background:0 0;border:0;outline:0;flex:1}.tag-chip{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .55rem;display:inline-flex}textarea,select{font:inherit}.tag-suggestions{background:#fff;border:1px solid #d1d5db;border-radius:.4rem;flex-direction:column;display:flex}.tag-suggestion{color:#111827;text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #e5e7eb;padding:.65rem .75rem}.tag-suggestion:last-child{border-bottom:none}.tag-suggestion:hover{background:#f3f4f6}.schema-viewer textarea{resize:vertical;min-height:28rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.5}.schema-viewer{gap:var(--space-3);width:min(100%,60rem);display:grid}.schema-output-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-3);font-weight:600;display:flex}.schema-copy-actions{align-items:center;gap:var(--space-3);display:flex}.schema-copy-message{color:var(--color-success);font-size:.9rem;font-weight:600}.schema-json{max-height:36rem;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);color:#f8fafc;white-space:pre;background:#172b46;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.55;overflow:auto}.login-secondary-link{width:fit-content;margin:var(--space-4) auto 0;color:var(--color-primary);font-weight:600;text-decoration:none;display:block}.login-secondary-link:hover{text-decoration:underline}.account-creation-card{width:min(100%,34rem)}.account-creation-card form{gap:var(--space-4)}.login-links{justify-content:center;gap:var(--space-3) var(--space-5);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.login-links .login-secondary-link{margin:0}.app-shell{background:var(--color-background);grid-template-columns:17rem minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{height:100vh;padding:var(--space-5);color:#fff;background:#172b46;flex-direction:column;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:var(--space-3);padding:0 var(--space-2) var(--space-5);border-bottom:1px solid #ffffff1f;flex:none;display:flex}.sidebar-brand-mark{border-radius:var(--radius-md);background:var(--color-accent);color:#172b46;letter-spacing:.05em;flex:none;place-items:center;width:2.75rem;height:2.75rem;font-size:.8rem;font-weight:800;display:grid}.sidebar-brand-name,.sidebar-brand-subtitle{margin:0}.sidebar-brand-name{font-size:1.05rem;font-weight:700}.sidebar-brand-subtitle{color:#ffffff9e;margin-top:.1rem;font-size:.75rem}.sidebar-nav{gap:var(--space-2);min-height:0;padding-top:var(--space-5);padding-right:var(--space-1);scrollbar-gutter:stable;flex-direction:column;flex:auto;display:flex;overflow-y:auto}.sidebar-section{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.sidebar-section-label{padding:0 var(--space-3);color:#ffffff80;letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:700}.sidebar-link{align-items:center;gap:var(--space-3);min-height:2.75rem;padding:var(--space-3);border-radius:var(--radius-sm);color:#ffffffc7;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sidebar-link svg{flex:none;width:1.15rem;height:1.15rem}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link.active{color:#fff;background:#ffffff21;font-weight:600}.sidebar-link.active svg{color:var(--color-accent)}.sidebar-footer{padding-top:var(--space-4);border-top:1px solid #ffffff1f;flex:none}.sidebar-user{align-items:center;gap:var(--space-3);padding:var(--space-2);display:flex}.sidebar-user-avatar{background:var(--color-accent-soft);width:2.25rem;height:2.25rem;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.sidebar-user-details{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sidebar-user-role{color:#ffffff8c;font-size:.75rem}.sidebar-logout{align-items:center;gap:var(--space-3);width:100%;margin-top:var(--space-2);padding:var(--space-3);color:#ffffffb8;cursor:pointer;text-align:left;background:0 0;border:0;display:flex}.sidebar-logout:hover{color:#fff;background:#ffffff14}.sidebar-logout svg{width:1.1rem;height:1.1rem}.app-main{min-width:0}.app-content{width:min(100%,90rem);padding:var(--space-7);margin:0 auto}@media (width<=800px){.app-shell{display:block}.app-sidebar{width:100%;height:auto;position:static}.sidebar-nav{scrollbar-gutter:auto;flex:none;min-height:auto;padding-right:0;overflow-y:visible}.sidebar-footer{margin-top:var(--space-4)}.app-content{padding:var(--space-5)}}.dashboard-page{min-height:100%}.dashboard-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.attendance-summary{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s,border-color .18s;position:relative;overflow:hidden}.attendance-summary:before{content:"";background:var(--color-primary);width:.3rem;position:absolute;inset:0 auto 0 0}.clickable-summary:hover{box-shadow:var(--shadow-md);border-color:#2c528247;transform:translateY(-3px)}.attendance-summary-header{padding-left:var(--space-2)}.attendance-summary-header h2{color:var(--color-text);margin:0;font-size:1.15rem}.attendance-summary-subtitle{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:.9rem}.attendance-values{gap:var(--space-3);margin-top:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.attendance-value{justify-items:center;gap:var(--space-2);min-width:0;padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-muted);text-align:center;display:grid}.attendance-value strong{white-space:nowrap;max-width:100%;font-size:clamp(1.35rem,1.8vw,2rem);line-height:1}.attendance-value span{max-width:100%;color:var(--color-text-muted);text-align:center;font-size:.72rem;font-weight:600;line-height:1.2}.attendance-value svg{width:1.35rem;height:1.35rem}.attendance-value strong{font-size:clamp(1.65rem,3vw,2.25rem);line-height:1}.attendance-value span{color:var(--color-text-muted);font-size:.82rem;font-weight:600}.attendance-in-person svg,.attendance-in-person strong{color:#0072b2}.attendance-zoom svg,.attendance-zoom strong{color:#e69f00}.attendance-total svg,.attendance-total strong{color:var(--color-primary)}@media (width<=1050px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=520px){.attendance-summary{padding:var(--space-5)}.attendance-values{grid-template-columns:1fr}.attendance-value{text-align:left;grid-template-columns:auto 1fr auto;place-items:center start}.attendance-value strong{justify-self:end}}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-5);margin-bottom:var(--space-7);display:flex}.page-eyebrow{margin:0 0 var(--space-2);color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:800}.page-header h1{color:var(--color-text);margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.05}.page-description{max-width:44rem;margin:var(--space-3) 0 0;color:var(--color-text-muted);line-height:1.6}.dashboard-role-tile{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);gap:1.25rem;padding:1.5rem;display:grid}.dashboard-role-tile-heading{align-items:center;gap:.75rem;display:flex}.dashboard-role-tile-heading svg{width:2rem;height:2rem;color:var(--color-primary)}.dashboard-role-tile-heading h2{margin:0}.dashboard-role-tile-heading p{color:var(--color-text-muted);margin:.15rem 0 0}.dashboard-role-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.dashboard-role-stats>div{gap:.25rem;display:grid}.dashboard-role-stats strong{font-size:2rem;line-height:1}.dashboard-role-stats span{color:var(--color-text-muted)}.dashboard-tile-link{width:fit-content;text-decoration:none;display:inline-flex}@media (width<=700px){.dashboard-role-stats{grid-template-columns:1fr}}.coverage-dashboard-tile{text-decoration:none}.coverage-dashboard-tile h2{margin-bottom:.5rem}.coverage-dashboard-tile p{margin:0}.coverage-dashboard-count{font-size:1.5rem}.dashboard-toolbar{margin:calc(var(--space-5) * -1) 0 var(--space-5);justify-content:flex-end;display:flex}.dashboard-customize-button{align-items:center;gap:.5rem;display:inline-flex}.dashboard-customize-button svg{width:1rem;height:1rem}.dashboard-tile-slot{min-width:0}.dashboard-tile-slot>*{height:100%}.dashboard-empty-state{padding:var(--space-7);border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);text-align:center}.dashboard-empty-state h2{margin-top:0}.dashboard-customizer-backdrop{z-index:1000;padding:var(--space-5);background:#0000007a;place-items:center;display:grid;position:fixed;inset:0}.dashboard-customizer{width:min(46rem,100%);max-height:min(46rem,100vh - 2rem);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);overflow:auto}.dashboard-customizer-heading h2{margin:0}.dashboard-customizer-heading p{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.dashboard-customizer-list{gap:var(--space-3);margin-top:var(--space-5);display:grid}.dashboard-customizer-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex}.dashboard-customizer-row label{align-items:flex-start;gap:var(--space-3);cursor:pointer;min-width:0;display:flex}.dashboard-customizer-row label>span{gap:.2rem;display:grid}.dashboard-customizer-row small{color:var(--color-text-muted);line-height:1.35}.dashboard-order-buttons{gap:var(--space-2);flex:none;display:flex}.dashboard-order-buttons button{min-width:2.5rem;padding-inline:.65rem}.dashboard-customizer-actions{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-6);display:flex}.dashboard-customizer-actions>div{gap:var(--space-3);display:flex}@media (width<=640px){.dashboard-toolbar{justify-content:stretch}.dashboard-customize-button{justify-content:center;width:100%}.dashboard-customizer-row{align-items:flex-start}.dashboard-customizer-actions{flex-direction:column-reverse;align-items:stretch}.dashboard-customizer-actions>div{grid-template-columns:1fr 1fr;display:grid}}.service-tag-pill{background:var(--color-accent-soft);color:#855d0b;white-space:nowrap;border-radius:999px;width:fit-content;padding:.25rem .55rem;font-size:.75rem;font-weight:700;line-height:1.2;display:inline-flex}.service-link{color:var(--color-primary)}.clickable-row:hover{background:var(--color-surface-muted)}.clickable-row{cursor:pointer;transition:background-color .15s}.clickable-row:hover .service-link{color:#1d4ed8;text-decoration-color:currentColor}.service-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.attendance-chart{width:100%;margin-top:1.5rem}.people-toolbar{margin-bottom:var(--space-5)}.people-search{align-items:center;gap:var(--space-3);width:min(100%,34rem);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);margin:0;display:flex}.people-search:focus-within{border-color:var(--color-primary);outline:3px solid #2c52822e}.people-search svg{width:1.15rem;color:var(--color-text-muted);flex:none}.people-search input{background:0 0;border:0;outline:0;width:100%;min-height:3rem;padding:0}.account-status{background:var(--color-primary-soft);color:var(--color-primary);white-space:nowrap}.account-status.inactive{background:var(--color-danger-soft);color:var(--color-danger)}.empty-state{padding:var(--space-7);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);text-align:center;justify-items:center;display:grid}.empty-state svg{width:2rem;height:2rem}.empty-state h2{margin:var(--space-3) 0 0;color:var(--color-text)}.empty-state p{margin:var(--space-2) 0 0}.page-header-actions .primary-button{align-items:center;gap:var(--space-2);display:inline-flex}.page-header-actions .primary-button svg{width:1rem;height:1rem}@media (width<=600px){.account-status{grid-column:2;justify-self:start}}.person-profile-layout{width:min(100%,52rem)}.person-profile-layout.editing{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(17rem,21rem);width:100%;display:grid}.person-account-panel{top:var(--space-6);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);position:sticky}.person-account-heading{align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.person-profile-avatar{background:var(--color-primary-soft);width:3rem;height:3rem;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.person-account-heading h2{margin:0 0 var(--space-2);font-size:1.1rem}.profile-status{background:var(--color-primary-soft);width:fit-content;color:var(--color-primary);border-radius:999px;padding:.25rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.profile-status.pending{background:var(--color-accent-soft);color:#855d0b}.profile-status.inactive{background:var(--color-danger-soft);color:var(--color-danger)}.account-details{gap:var(--space-4);margin:var(--space-5) 0 0;display:grid}.account-details div{gap:var(--space-1);display:grid}.account-details dt{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:700}.account-details dd{overflow-wrap:anywhere;margin:0;font-weight:600}.account-role-summary{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.account-role-summary h3{margin:0;font-size:.9rem}.person-form{gap:var(--space-5);flex-direction:column;display:flex}.person-name-fields{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr);display:grid}.role-selector{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0}.role-selector legend{padding:0 var(--space-2);font-weight:700}.role-selector-help{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:.9rem}.role-options{gap:var(--space-3);display:grid}.role-option{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);cursor:pointer;margin:0;display:flex}.role-option:hover{background:var(--color-surface-muted)}.role-option input{flex:none;width:1.1rem;height:1.1rem;margin-top:.15rem}.role-option span{gap:var(--space-1);flex-direction:column;display:flex}.role-option small{color:var(--color-text-muted)}.warning-message{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-accent-soft);color:#6f4c07;border:1px solid #e8c46c}.warning-message p{margin:var(--space-2) 0 0}.success-message{color:var(--color-success);font-weight:600}@media (width<=850px){.person-profile-layout.editing{grid-template-columns:1fr}.person-account-panel{position:static}}.account-readonly-field{flex-direction:column;gap:.35rem;display:flex}.account-readonly-field label{margin:0;font-weight:600}.readonly-value{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);min-height:2.75rem;color:var(--color-text);padding:.75rem .9rem}.muted-text{color:var(--color-text-muted);font-style:italic}.relationship-list{gap:.75rem;display:grid}.relationship-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.relationship-row>div{gap:.15rem;display:grid}.relationship-row small{color:var(--color-text-muted)}.person-account-panel input[type=search],.person-account-panel select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:.7rem .8rem}.parent-search-results{gap:.5rem;max-height:240px;margin-top:.5rem;display:grid;overflow-y:auto}.parent-search-result{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;gap:.15rem;padding:.7rem .8rem;display:grid}.parent-search-result:hover,.parent-search-result.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.parent-search-result small{color:var(--color-text-muted)}.people-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.people-search{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-items:center;gap:.5rem;width:min(100%,520px);padding:0 .75rem;display:flex}.people-search svg{width:18px;height:18px;color:var(--color-text-muted);flex:none}.people-search input{background:0 0;border:0;outline:0;width:100%;padding:.7rem 0}.people-result-count{white-space:nowrap;color:var(--color-text-muted);font-size:.9rem}.people-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow-x:auto}.people-table{border-collapse:collapse;width:100%}.people-table th,.people-table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:.65rem .8rem}.people-table th{background:var(--color-surface-muted);color:var(--color-text-muted);white-space:nowrap;font-size:.8rem;font-weight:700}.people-table tbody tr:last-child td{border-bottom:0}.people-table-row{cursor:pointer}.people-table-row:hover{background:var(--color-surface-muted)}.people-table-row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.people-name-cell{align-items:center;gap:.6rem;min-width:180px;display:flex}.people-mini-avatar{background:var(--color-surface-muted);border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:.75rem;font-weight:700;display:inline-grid}.people-role-cell{max-width:280px}@media (width<=800px){.people-toolbar{flex-direction:column;align-items:stretch}.people-search{width:100%}.people-result-count{align-self:flex-end}}.person-form-page{width:100%}.person-tabs{margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border);gap:.25rem;display:flex}.person-tab{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:.8rem 1rem;font-weight:700;position:relative}.person-tab:hover{color:var(--color-text);background:var(--color-surface-muted)}.person-tab.active{color:var(--color-primary)}.person-tab.active:after{background:var(--color-primary);content:"";height:3px;position:absolute;bottom:-1px;left:0;right:0}.person-edit-form,.person-tab-panel,.person-new-form{width:min(100%,58rem)}.person-tab-panel{gap:var(--space-5);display:grid}.person-section-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);display:flex}.person-section-heading h2{margin:0}.person-section-heading p{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.person-account-summary{margin-top:var(--space-2);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.person-account-grid,.person-role-options{grid-template-columns:repeat(2,minmax(0,1fr))}.person-subsection{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.person-subsection h3{margin:0 0 var(--space-4)}.person-parent-search{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:.7rem .8rem}@media (width<=700px){.person-tabs{overflow-x:auto}.person-tab{white-space:nowrap}.person-name-fields,.person-account-grid,.person-role-options{grid-template-columns:1fr}}.person-top-actions{justify-content:flex-end;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.person-save-clean{opacity:.65;cursor:default}.roles-page{width:100%}.role-management-layout{align-items:start;gap:var(--space-6);grid-template-columns:minmax(14rem,19rem) minmax(0,1fr);display:grid}.role-list-panel,.role-editor-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.role-list-panel{overflow:hidden}.role-list-panel h2,.role-editor-panel h2{margin:0;font-size:1.1rem}.role-list-panel h2{padding:var(--space-4);border-bottom:1px solid var(--color-border)}.role-list{display:grid}.role-list-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);border:0;border-bottom:1px solid var(--color-border);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.role-list-item:last-child{border-bottom:0}.role-list-item:hover{background:var(--color-surface-muted)}.role-list-item.active{background:var(--color-primary-soft)}.role-list-item svg{width:1.15rem;color:var(--color-primary)}.role-list-item>span:not(.role-inactive-pill){gap:var(--space-1);min-width:0;display:grid}.role-list-item small{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.role-inactive-pill{background:var(--color-danger-soft);color:var(--color-danger);border-radius:999px;padding:.2rem .45rem;font-size:.7rem;font-weight:700}.role-list-empty{padding:var(--space-4);color:var(--color-text-muted);margin:0}.role-editor-panel{padding:var(--space-5)}.role-editor-panel>h2{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.role-editor-form{gap:var(--space-5);margin-top:var(--space-5);flex-direction:column;display:flex}.role-active-option,.permission-option{align-items:flex-start;gap:var(--space-3);cursor:pointer;margin:0;display:flex}.role-active-option{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.role-active-option input,.permission-option input{flex:none;width:1.1rem;height:1.1rem;margin-top:.15rem}.role-active-option span,.permission-option span{gap:var(--space-1);display:grid}.role-active-option small,.permission-option small{color:var(--color-text-muted)}.permission-selector{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0}.permission-selector legend{padding:0 var(--space-2);font-weight:700}.permission-options{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.permission-option{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.permission-option:hover{background:var(--color-surface-muted)}.permission-option code{width:fit-content;color:var(--color-primary);font-size:.75rem}.permission-option.inactive{cursor:not-allowed;opacity:.6}@media (width<=950px){.role-management-layout,.permission-options{grid-template-columns:1fr}}.reports-page{width:100%}.report-controls{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.report-control{align-content:start;gap:var(--space-2);display:grid}.report-control label{margin:0}.report-match-mode,.report-tag-selector{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0}.report-match-mode{align-content:start;gap:var(--space-3);display:grid}.report-match-mode legend,.report-tag-selector legend{padding:0 var(--space-2);font-weight:700}.report-match-mode label,.report-tag-option{align-items:center;gap:var(--space-2);margin:0;font-weight:500;display:flex}.report-match-mode input,.report-tag-option input{width:1rem;height:1rem}.report-tag-selector{grid-column:1/-1}.report-tag-options{gap:var(--space-2);flex-wrap:wrap;display:flex}.report-tag-option{border:1px solid var(--color-border);cursor:pointer;border-radius:999px;padding:.4rem .7rem}.report-tag-option:has(input:checked){background:var(--color-accent-soft);color:#855d0b;border-color:#d5a329}.report-actions{grid-column:1/-1}.report-results{margin-top:var(--space-6)}.report-chart{min-height:28rem;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.report-summary{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.report-summary>div{justify-items:center;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:center;display:grid}.report-summary strong{color:var(--color-primary);font-size:1.65rem;line-height:1}.report-summary span{color:var(--color-text-muted);font-size:.78rem;font-weight:600}@media (width<=1000px){.report-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=650px){.report-controls{padding:var(--space-4);grid-template-columns:1fr}.report-tag-selector,.report-actions{grid-column:auto}.report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.report-chart{padding:var(--space-4) var(--space-2)}}.report-toolbar{margin-bottom:var(--space-3);justify-content:flex-end;display:flex}.report-export{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:#172b46;background:#fff}.report-export-header{justify-content:space-between;align-items:flex-start;gap:var(--space-5);margin-bottom:var(--space-4);display:flex}.report-export-header h2{margin:0;font-size:1.35rem}.report-export-header p{margin:var(--space-2) 0 0;color:#64748b;font-size:.9rem}.report-export-filters{gap:var(--space-3);text-align:right;max-width:24rem;display:grid}.report-export-filters div{gap:var(--space-1);display:grid}.report-export-filters strong{color:#64748b;letter-spacing:.05em;text-transform:uppercase;font-size:.7rem}.report-export-filters span{font-size:.9rem;font-weight:600}.report-export .report-chart{box-shadow:none;border:0}.report-export-footer{margin-top:var(--space-4);color:#64748b;text-align:right;font-size:.75rem}@media (width<=650px){.report-export{padding:var(--space-3)}.report-export-header{flex-direction:column}.report-export-filters{text-align:left;max-width:none}}.tag-admin-page{width:100%}.tag-admin-layout{align-items:start;gap:var(--space-6);grid-template-columns:minmax(16rem,21rem) minmax(0,1fr);display:grid}.tag-list-panel,.tag-editor-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.tag-list-panel{overflow:hidden}.tag-list-search{align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--color-border);display:flex}.tag-list-search svg{width:1rem;color:var(--color-text-muted);flex:none}.tag-list-search input{background:0 0;border:0;outline:0;width:100%;min-height:2.5rem;padding:0}.tag-admin-list{display:grid}.tag-admin-list-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);border:0;border-bottom:1px solid var(--color-border);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;display:grid}.tag-admin-list-item:last-child{border-bottom:0}.tag-admin-list-item:hover{background:var(--color-surface-muted)}.tag-admin-list-item.active{background:var(--color-primary-soft)}.tag-admin-list-item>span{gap:var(--space-1);min-width:0;display:grid}.tag-admin-list-item strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-admin-list-item small{color:var(--color-text-muted)}.tag-admin-list-item svg{width:1rem;color:var(--color-primary)}.tag-list-empty{padding:var(--space-5);color:var(--color-text-muted);text-align:center;margin:0}.tag-editor-panel{padding:var(--space-5)}.tag-editor-panel>h2{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);margin:0;font-size:1.1rem}.tag-editor-form{gap:var(--space-5);margin-top:var(--space-5);flex-direction:column;display:flex}.tag-usage-message{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-text-muted);margin:0}.tag-form-actions .danger-button svg{width:1rem}@media (width<=850px){.tag-admin-layout{grid-template-columns:1fr}}.tag-form-actions .secondary-button,.tag-form-actions .danger-button{align-items:center;gap:var(--space-2);display:inline-flex}.tag-form-actions svg{width:1rem}.tag-split-panel,.tag-combine-panel{gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.tag-split-heading p,.tag-combine-heading p{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.tag-form-actions{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.tag-primary-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.tag-form-actions button{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.tag-form-actions svg{width:1rem;height:1rem}.tag-delete-help{margin:calc(var(--space-3) * -1) 0 0;color:var(--color-text-muted);font-size:.82rem}.tag-split-panel,.tag-combine-panel{gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);flex-direction:column;display:flex}.tag-split-heading h3,.tag-combine-heading h3{margin:var(--space-1) 0 0;font-size:1.05rem}.tag-split-heading p:last-child,.tag-combine-heading p:last-child{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.tag-operation-label{color:var(--color-primary);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}.tag-split-panel .warning-message,.tag-combine-panel .warning-message{margin:0}@media (width<=600px){.tag-form-actions,.tag-primary-actions{flex-direction:column;align-items:stretch;width:100%}.tag-form-actions button,.tag-primary-actions button{width:100%}}.toast-container{z-index:1000;right:var(--space-5);bottom:var(--space-5);gap:var(--space-3);pointer-events:none;width:min(100vw - 2rem,24rem);display:grid;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);pointer-events:auto;border:1px solid;grid-template-columns:auto minmax(0,1fr) auto;animation:.2s ease-out toast-enter;display:grid}.toast>svg{width:1.2rem;height:1.2rem}.toast-success{color:var(--color-success);border-color:#228b5e66}.toast-error{color:var(--color-danger);border-color:#be353566}.toast-dismiss{border-radius:var(--radius-sm);color:currentColor;cursor:pointer;background:0 0;border:0;place-items:center;width:2rem;height:2rem;padding:0;display:grid}.toast-dismiss:hover{background:#0000000f}.toast-dismiss svg{width:1rem;height:1rem}@keyframes toast-enter{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}@media (width<=600px){.toast-container{width:auto;bottom:1rem;left:1rem;right:1rem}}.teacher-absence-tile{text-decoration:none}.teacher-absence-tile h2,.teacher-absence-tile p{margin-top:0}.teacher-absence-card{background:var(--surface,#fff);border:1px solid var(--border-color,#d9d9d9);border-radius:12px;max-width:760px;padding:1.5rem}.teacher-absence-card form{gap:1.25rem;display:grid}.teacher-absence-card .form-field{gap:.4rem;display:grid}.teacher-absence-card select,.teacher-absence-card textarea{box-sizing:border-box;width:100%}.teacher-absence-actions{align-items:center;gap:.75rem;display:flex}.teacher-absence-page{gap:1.25rem;display:grid}.teacher-absence-card h2{margin-top:0}.teacher-absence-history{gap:1rem;display:grid}.teacher-absence-history-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);padding:1rem}.teacher-absence-history-item p{margin-bottom:0}.teacher-absence-history-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.teacher-absence-history-heading h3{margin:0}.teacher-absence-history-heading p{color:var(--color-text-muted);margin:.25rem 0 0}.teacher-absence-history-heading>strong{background:var(--color-surface-muted);white-space:nowrap;border-radius:999px;padding:.3rem .6rem}.teacher-absence-edit{gap:.5rem;margin-top:1rem;display:grid}.teacher-absence-edit textarea{box-sizing:border-box;width:100%}.teacher-absence-help-text{color:var(--color-text-muted);font-size:.9rem}@media (width<=650px){.teacher-absence-history-heading{flex-direction:column}}.teacher-schedule-page{gap:1.25rem;display:grid}.teacher-schedule-toolbar{justify-content:flex-end;display:flex}.teacher-schedule-list{gap:1.25rem;display:grid}.teacher-schedule-date{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.25rem}.teacher-schedule-date>h2{margin:0 0 1rem;font-size:1.15rem}.teacher-schedule-date-items{gap:.75rem;display:grid}.teacher-schedule-item{border-radius:var(--radius-sm);background:var(--color-surface-muted);padding:1rem}.teacher-schedule-item p{margin-bottom:0}.teacher-schedule-item-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.teacher-schedule-item-heading h3{margin:0}.teacher-schedule-item-heading p{color:var(--color-text-muted);margin:.25rem 0 0}.teacher-schedule-item-heading>strong{background:var(--color-surface);white-space:nowrap;border-radius:999px;padding:.3rem .6rem}.teacher-schedule-empty{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.5rem}.teacher-schedule-empty h2{margin-top:0}@media (width<=650px){.teacher-schedule-toolbar{justify-content:flex-start}.teacher-schedule-item-heading{flex-direction:column}}.school-schedule-page{gap:1.25rem;display:grid}.school-schedule-next{gap:.25rem;display:grid}.school-schedule-next>span:first-child{color:var(--color-text-muted);font-weight:600}.school-schedule-next>strong{font-size:1.5rem}.school-schedule-children{gap:.25rem;display:grid}.school-schedule-children span{color:var(--color-text-muted)}.school-schedule-following{color:var(--color-text-muted);margin:0}.school-schedule-canceled-toggle{align-items:center;gap:.5rem;width:fit-content;display:inline-flex}.school-schedule-list{gap:1rem;display:grid}.school-schedule-date{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.25rem}.school-schedule-date.canceled{opacity:.72}.school-schedule-date-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.school-schedule-date-heading h2{margin:0;font-size:1.15rem}.school-schedule-date-heading p{color:var(--color-text-muted);margin:.25rem 0 0}.school-schedule-date-heading>strong{background:var(--color-surface-muted);border-radius:999px;padding:.3rem .6rem}.school-schedule-family-entries{gap:.5rem;margin-top:1rem;display:grid}.school-schedule-family-entries>div{flex-wrap:wrap;gap:.4rem;display:flex}.school-schedule-family-entries span{color:var(--color-text-muted)}.school-schedule-empty{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.5rem}.school-schedule-empty h2{margin-top:0}@media (width<=650px){.school-schedule-date-heading{flex-direction:column}}.teacher-classes-page{gap:1.25rem;display:grid}.teacher-classes-next{color:var(--color-text-muted);margin:0}.teacher-class-card-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.teacher-class-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);gap:0;display:grid;overflow:hidden}.teacher-class-card-main{color:inherit;gap:1rem;padding:1.25rem;text-decoration:none;display:grid}.teacher-class-card-main:hover h2{text-decoration:underline}.teacher-class-review-link{border-top:1px solid var(--color-border);color:var(--color-primary);align-items:center;gap:.45rem;padding:.8rem 1.25rem;text-decoration:none;display:flex}.teacher-class-review-link:hover{text-decoration:underline}.teacher-class-review-link svg{flex:none;width:1rem;height:1rem}.teacher-class-card h2{margin:0}.teacher-class-card p{color:var(--color-text-muted);margin:.25rem 0 0}.teacher-class-card-stats{color:var(--color-text-muted);gap:.4rem;display:grid}.teacher-class-detail-grid{grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:1rem;display:grid}.teacher-class-panel,.teacher-class-empty{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.25rem}.teacher-class-panel h2,.teacher-class-empty h2{margin-top:0}.teacher-class-roster,.teacher-class-teachers{margin:0;padding-left:1.5rem}.teacher-class-roster li,.teacher-class-teachers li{padding:.2rem 0}.teacher-class-facts{gap:.75rem;margin:1.25rem 0 0;display:grid}.teacher-class-facts div{gap:.15rem;display:grid}.teacher-class-facts dt{color:var(--color-text-muted);font-size:.9rem}.teacher-class-facts dd{margin:0;font-weight:600}.teacher-class-date-list{display:grid}.teacher-class-date-row{border-top:1px solid var(--color-border);grid-template-columns:minmax(200px,.8fr) minmax(0,1fr);gap:1rem;padding:.8rem 0;display:grid}.teacher-class-date-row:first-child{border-top:0;padding-top:0}.teacher-class-date-row>div{gap:.2rem;display:grid}.teacher-class-date-row span{color:var(--color-text-muted)}.teacher-class-date-notes{align-content:start}@media (width<=760px){.teacher-class-detail-grid,.teacher-class-date-row{grid-template-columns:1fr}}.teacher-class-section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.teacher-class-section-heading h2{margin:0}.teacher-class-section-heading p{color:var(--color-text-muted);margin:.25rem 0 0}.teacher-homework-form{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);gap:1rem;margin-bottom:1rem;padding:1rem;display:grid}.teacher-homework-form h3{margin:0}.teacher-homework-form label{gap:.4rem;font-weight:600;display:grid}.teacher-homework-form input,.teacher-homework-form textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;padding:.7rem;font-weight:400}.teacher-homework-date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.teacher-homework-form-actions{flex-wrap:wrap;gap:.75rem;display:flex}.teacher-homework-list{gap:.65rem;display:grid}.teacher-homework-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);text-align:left;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.9rem;display:grid}.teacher-homework-row:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.teacher-homework-row-main{gap:.25rem;display:grid}.teacher-homework-row small,.teacher-homework-row>span:last-child{color:var(--color-text-muted)}@media (width<=650px){.teacher-class-section-heading{flex-direction:column}.teacher-homework-date-row,.teacher-homework-row{grid-template-columns:1fr}}.teacher-homework-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.teacher-homework-review-alert{color:var(--color-primary)}.school-admin-page{gap:1.5rem;display:grid}.school-admin-section{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.5rem}.school-admin-section h2,.school-admin-section h3{margin-top:0}.school-admin-section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.school-admin-section-heading p{color:var(--color-text-muted);margin-bottom:0}.school-admin-section input,.school-admin-section select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);padding:.7rem .8rem}.school-admin-inline-form{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.school-admin-checkbox-label{align-items:center;gap:.5rem;display:inline-flex}.school-year-context{gap:.9rem;display:grid}.school-year-label{white-space:0. nowrap}.school-year-create-form{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:1rem;padding:1rem;display:grid}.school-year-create-form>label:not(.school-admin-checkbox-label){gap:.35rem;display:grid}.school-year-current-field{min-height:2.75rem}.school-year-form-actions{grid-column:1/-1;justify-content:flex-end;gap:.75rem;display:flex}.school-admin-tabs{border-bottom:1px solid var(--color-border);gap:.25rem;display:flex}.school-admin-tabs button{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:.8rem 1.25rem;font-weight:600}.school-admin-tabs button:hover{color:var(--color-text)}.school-admin-tabs button.active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.school-class-list-heading{align-items:center}.school-class-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-top:1rem;overflow-x:auto}.school-class-table{border-collapse:collapse;width:100%}.school-class-table th,.school-class-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.75rem .9rem}.school-class-table th{background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.9rem}.school-class-table tbody tr:last-child td{border-bottom:0}.school-class-table-row{cursor:pointer}.school-class-table-row:hover,.school-class-table-row:focus{background:var(--color-primary-soft);outline:none}.school-class-editor-heading{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.school-class-editor-heading h2{margin:0}.school-class-back-button{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.school-class-form{gap:1.25rem;display:grid}.school-class-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.school-class-form-grid label:not(.school-admin-checkbox-label){gap:.35rem;display:grid}.school-class-active-field{align-self:end;min-height:2.75rem}.school-class-form-actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.75rem;padding-top:1rem;display:flex}.school-roster-grid{border-top:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem;padding-top:1.5rem;display:grid}.school-roster-panel{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1rem}.school-roster-list{gap:.5rem;margin-top:.75rem;display:grid}.school-roster-row{background:var(--color-surface-muted);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:1rem;padding:.65rem;display:flex}.school-roster-add{gap:.5rem;margin-bottom:.75rem;display:flex}.school-roster-add select{flex:1}.school-roster-empty{color:var(--color-text-muted);margin:.75rem 0 0}.school-calendar-placeholder{border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);text-align:center;margin-top:1.25rem;padding:2rem}@media (width<=900px){.school-class-form-grid,.school-year-create-form{grid-template-columns:1fr}}@media (width<=800px){.school-roster-grid{grid-template-columns:1fr}.school-admin-section-heading{flex-direction:column}.school-class-list-heading{align-items:stretch}.school-class-form-actions{justify-content:stretch}.school-class-form-actions button{flex:1}}.school-year-controls{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.school-year-controls label{white-space:nowrap;font-weight:600}.school-year-controls select{flex:0 16rem;width:auto;min-width:12rem}.school-calendar-notes-field{grid-column:1/-1}.school-calendar-notes-field textarea{box-sizing:border-box;resize:vertical;width:100%}.school-calendar-heading-actions{align-items:center;gap:.75rem;display:flex}.school-calendar-result{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.5rem;margin:0 0 1rem;padding:.75rem 1rem}.school-calendar-bulk-range{grid-template-columns:repeat(2,minmax(0,14rem));gap:1rem;margin-bottom:1.25rem;display:grid}.school-calendar-bulk-range label,.school-calendar-bulk-day>label:not(.school-admin-checkbox-label){gap:.35rem;display:grid}.school-calendar-bulk-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.school-calendar-bulk-day{border:1px solid var(--color-border);border-radius:.5rem;gap:.75rem;padding:1rem;display:grid}.school-calendar-bulk-note{color:var(--color-text-muted);margin:1rem 0 0}@media (width<=800px){.school-calendar-heading-actions{justify-content:flex-start;width:100%}.school-calendar-bulk-range,.school-calendar-bulk-days{grid-template-columns:1fr}}.school-calendar-display-options{flex-wrap:wrap;align-items:center;gap:1rem;margin:0 0 1rem;display:flex}.school-calendar-hidden-count{color:var(--color-text-muted);font-size:.9rem}.school-coverage-table td:last-child{max-width:24rem}.school-coverage-summary{border:1px solid var(--color-border);border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:1rem;margin:0 0 1rem;padding:.75rem 1rem;display:flex}.school-coverage-summary span+span:before{content:"•";color:var(--color-text-muted);margin-right:1rem}.family-page{gap:1.5rem;display:grid}.family-panel,.family-child-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.5rem}.family-child-list{gap:1rem;display:grid}.family-child-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.family-child-heading h2{margin:0}.family-child-heading p{color:var(--color-text-muted);margin-bottom:0}.family-child-actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.family-login-status{background:var(--color-surface-muted);border-radius:999px;padding:.35rem .65rem;font-size:.85rem;font-weight:600;display:inline-flex}.family-form,.family-login-form{gap:1rem;margin-top:1rem;display:grid}.family-login-form{border-top:1px solid var(--color-border);padding-top:1rem}.family-login-status.active{font-weight:700}.family-login-status.activation_pending,.family-login-status.disabled,.family-login-status.no_login{color:var(--color-text-muted)}@media (width<=700px){.family-child-heading{flex-direction:column}}.homework-date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.homework-date-row label{gap:.4rem;display:grid}.homework-date-row input{box-sizing:border-box;width:100%}@media (width<=700px){.homework-date-row{grid-template-columns:1fr}}.homework-page{gap:1.25rem;display:grid}.homework-back-link{align-items:center;gap:.4rem;width:fit-content;display:inline-flex}.homework-back-link svg{width:18px;height:18px}.homework-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,2fr);gap:1rem;display:grid}.homework-list-panel,.homework-detail-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.25rem}.homework-list-panel h2{margin-top:0}.homework-list{gap:.65rem;display:grid}.homework-list-item{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;gap:.4rem .75rem;padding:.9rem;display:grid}.homework-list-item:hover,.homework-list-item.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.homework-list-main{gap:.2rem;display:grid}.homework-list-main small{color:var(--color-text-muted)}.homework-status{white-space:nowrap;background:var(--color-surface-muted);border-radius:999px;align-self:start;padding:.25rem .5rem;font-size:.78rem;font-weight:700}.homework-feedback-flag{grid-column:1/-1;font-size:.8rem;font-weight:700}.homework-detail-heading h2{margin:0}.homework-detail-heading p{color:var(--color-text-muted)}.homework-dates{grid-template-columns:minmax(0,1fr);gap:1rem;margin:1rem 0;display:grid}.homework-dates>div{border-radius:var(--radius-sm);background:var(--color-surface-muted);gap:.2rem;padding:.75rem;display:grid}.homework-description{margin-top:1.25rem}.homework-description p{white-space:pre-wrap}.homework-files-section,.homework-feedback-panel{border-top:1px solid var(--color-border);margin-top:1.5rem;padding-top:1.25rem}.homework-file-list{gap:.65rem;display:grid}.homework-file-row{border-radius:var(--radius-sm);background:var(--color-surface-muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem;display:grid}.homework-file-row>div:nth-child(2){gap:.15rem;display:grid}.homework-file-row small{color:var(--color-text-muted)}.homework-file-actions{gap:.5rem;display:flex}.homework-file-actions button{align-items:center;gap:.35rem;display:inline-flex}.homework-file-actions svg{width:16px;height:16px}.homework-upload-panel{gap:.75rem;margin-top:1rem;display:grid}.homework-upload-panel label{gap:.4rem;display:grid}.homework-upload-panel button{align-items:center;gap:.4rem;width:fit-content;display:inline-flex}.homework-upload-panel svg{width:17px;height:17px}.homework-feedback-panel{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-top:1.5rem;padding:1rem}.homework-feedback-panel h3{margin-top:0}.homework-submit-panel{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding:1rem;display:flex}.homework-submit-panel p{margin-bottom:0}.homework-empty-detail{text-align:center;color:var(--color-text-muted);padding:2rem 1rem}@media (width<=850px){.homework-layout,.homework-dates{grid-template-columns:1fr}.homework-file-row{grid-template-columns:auto minmax(0,1fr)}.homework-file-actions{grid-column:1/-1}.homework-submit-panel{flex-direction:column;align-items:flex-start}}.homework-review-filters{flex-wrap:wrap;gap:.75rem;display:flex}.homework-feedback-panel textarea{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;resize:vertical;margin-bottom:.75rem;padding:.75rem}.homework-feedback-flag{align-items:center;gap:.25rem;display:inline-flex}.homework-feedback-flag svg{width:14px;height:14px}.homework-student-response{white-space:pre-wrap}.homework-response-panel{gap:.75rem;display:grid}.homework-response-panel textarea{resize:vertical;width:100%}.service-attendance-page{gap:1.25rem;display:grid}.service-attendance-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.5rem}.service-attendance-panel h2{margin-top:0}.service-attendance-form{gap:1rem;display:grid}.service-attendance-form>label,.service-history-child{gap:.4rem;display:grid}.service-attendance-children{border:1px solid var(--color-border);border-radius:var(--radius-sm);gap:.65rem;padding:1rem;display:grid}.service-attendance-children label{align-items:flex-start;gap:.6rem;display:flex}.service-attendance-children label span{gap:.1rem;display:grid}.service-attendance-children label.disabled{opacity:.55}.service-progress{border-radius:var(--radius-sm);background:var(--color-surface-muted);gap:.25rem;margin:1rem 0;padding:1rem;display:grid}.service-progress strong{font-size:1.6rem}.service-progress span{color:var(--color-text-muted)}.service-history-list{gap:.75rem;display:grid}.service-history-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid}.service-history-row>div:nth-child(2){gap:.2rem;display:grid}.service-history-row span{color:var(--color-text-muted)}.service-history-status{justify-items:center;gap:.2rem;font-size:.75rem;display:grid}.service-history-status svg{width:1.5rem;height:1.5rem}.service-history-note{max-width:170px;font-size:.85rem}@media (width<=700px){.service-history-row{grid-template-columns:auto minmax(0,1fr)}.service-history-row>button,.service-history-note{grid-column:1/-1}}.attendance-review-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.attendance-review-toolbar button,.attendance-review-actions button{align-items:center;gap:.35rem;display:inline-flex}.attendance-review-toolbar svg,.attendance-review-actions svg{width:16px;height:16px}.attendance-review-table{gap:.5rem;display:grid}.attendance-review-header,.attendance-review-row{grid-template-columns:40px minmax(140px,1.4fr) minmax(100px,.8fr) minmax(140px,1fr) minmax(140px,1fr) auto;align-items:center;gap:.75rem;display:grid}.attendance-review-header{color:var(--color-text-muted);padding:0 .75rem .5rem;font-weight:700}.attendance-review-header label{align-items:center;gap:.35rem;display:flex}.attendance-review-header label span{display:none}.attendance-review-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.75rem}.attendance-review-actions{gap:.5rem;display:flex}.attendance-review-actions .secondary-button{margin-top:0}@media (width<=900px){.attendance-review-header{display:none}.attendance-review-row{grid-template-columns:auto minmax(0,1fr)}.attendance-review-actions{grid-column:1/-1}}.service-history-actions{flex-wrap:wrap;gap:.5rem;display:flex}.service-history-actions button{align-items:center;gap:.35rem;display:inline-flex}.service-history-actions .secondary-button{margin-top:0}.service-history-actions svg{width:16px;height:16px}.audit-page{gap:1.25rem;display:grid}.audit-filter-panel,.audit-results-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:1.5rem}.audit-filter-form{grid-template-columns:minmax(220px,2fr) minmax(160px,1fr) minmax(160px,1fr) minmax(130px,.8fr) minmax(130px,.8fr);align-items:end;gap:1rem;display:grid}.audit-filter-form label{gap:.4rem;display:grid}.audit-search-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-items:center;gap:.5rem;padding:0 .65rem;display:flex}.audit-search-input svg{width:17px;height:17px;color:var(--color-text-muted)}.audit-search-input input{background:0 0;border:0;outline:0;width:100%;padding:.6rem 0}.audit-filter-actions{grid-column:1/-1;gap:.75rem;display:flex}.audit-results-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.audit-results-heading h2{margin:0}.audit-results-heading span{color:var(--color-text-muted)}.audit-event-list{gap:.5rem;display:grid}.audit-event{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.audit-event-summary{background:var(--color-surface);width:100%;color:var(--color-text);text-align:left;cursor:pointer;border:0;grid-template-columns:24px minmax(165px,.9fr) minmax(170px,1fr) minmax(180px,1.3fr) minmax(140px,1fr);align-items:center;gap:.75rem;padding:.8rem;display:grid}.audit-event-summary:hover{background:var(--color-surface-muted)}.audit-event-summary svg{width:18px;height:18px}.audit-event-time{color:var(--color-text-muted);font-size:.9rem}.audit-event-detail{border-top:1px solid var(--color-border);background:var(--color-surface-muted);padding:1rem}.audit-event-detail dl{gap:.5rem;margin:0 0 1rem;display:grid}.audit-event-detail dl>div{grid-template-columns:150px 1fr;gap:1rem;display:grid}.audit-event-detail dt{font-weight:700}.audit-event-detail dd{margin:0}.audit-event-detail h3{margin-bottom:.5rem}.audit-event-detail pre{border-radius:var(--radius-sm);background:var(--color-surface);white-space:pre-wrap;overflow-wrap:anywhere;max-height:350px;margin:0;padding:1rem;overflow:auto}@media (width<=1050px){.audit-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-search-field{grid-column:1/-1}}@media (width<=800px){.audit-event-summary{grid-template-columns:24px minmax(0,1fr)}.audit-event-summary>:not(svg){grid-column:2}.audit-filter-form{grid-template-columns:1fr}.audit-search-field,.audit-filter-actions{grid-column:auto}.audit-event-detail dl>div{grid-template-columns:1fr;gap:.15rem}}.supplies-page{flex-direction:column;gap:1.25rem;display:flex}.supplies-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.supplies-filters{border:1px solid var(--border-color,#d9d9d9);background:var(--surface-color,#fff);border-radius:.65rem;gap:.35rem;padding:.25rem;display:flex}.supply-filter{cursor:pointer;font:inherit;background:0 0;border:0;border-radius:.45rem;padding:.55rem .8rem}.supply-filter.active{background:#00000014;font-weight:700}.supply-create-form,.supply-request-card,.supply-empty{border:1px solid var(--border-color,#d9d9d9);background:var(--surface-color,#fff);border-radius:.85rem;padding:1.2rem}.supply-create-form{gap:1rem;display:grid}.supply-create-form h2,.supply-request-card h2,.supply-offers h3,.supply-empty h2{margin:0}.supply-create-form label,.supply-offer-form label{gap:.4rem;font-weight:600;display:grid}.supply-create-form input,.supply-create-form textarea,.supply-offer-form textarea{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--border-color,#cfcfcf);border-radius:.55rem;padding:.7rem .75rem}.supply-form-actions,.supply-request-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;display:flex}.supply-request-list{gap:1rem;display:grid}.supply-request-heading{justify-content:space-between;gap:1rem;display:flex}.supply-request-title-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.supply-request-meta{opacity:.72;margin:.35rem 0 0;font-size:.92rem}.supply-request-details{white-space:pre-wrap;margin:1rem 0}.supply-status{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;padding:.2rem .6rem;font-size:.78rem;font-weight:700;display:inline-flex}.supply-status.open{background:#c2760024}.supply-status.fulfilled{background:#0080001f}.supply-offers{background:#00000009;border-radius:.65rem;margin:1rem 0;padding:.9rem}.supply-offers h3{margin-bottom:.65rem;font-size:.95rem}.supply-offer{align-items:flex-start;gap:.65rem;display:flex}.supply-offer+.supply-offer{margin-top:.7rem}.supply-offer svg{flex:none;width:1.1rem;height:1.1rem;margin-top:.15rem}.supply-offer p{white-space:pre-wrap;margin:.2rem 0 0}.supply-own-offer,.supply-fulfilled-note{font-weight:600}.supply-fulfilled-note{margin:1rem 0 0}.supply-offer-form{border-top:1px solid var(--border-color,#d9d9d9);gap:.75rem;margin-top:1rem;padding-top:1rem;display:grid}.supply-result-message{margin:0;font-weight:600}.supply-empty{text-align:center}.supply-empty svg{width:2rem;height:2rem;margin-bottom:.5rem}.supply-empty p{margin-bottom:0}.supplies-page .primary-button,.supplies-page .secondary-button{align-items:center;gap:.45rem;display:inline-flex}.supplies-page .primary-button svg,.supplies-page .secondary-button svg{width:1rem;height:1rem}@media (width<=640px){.supplies-toolbar{align-items:stretch}.supplies-filters{width:100%}.supply-filter{flex:1}.supply-form-actions,.supply-request-actions{justify-content:stretch}}.school-report-page{gap:1.5rem;display:grid}.school-report-controls{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.school-report-controls label{font-weight:700}.school-report-controls select{min-width:220px}.school-report-classes{gap:1.25rem;display:grid}.school-report-class{background:var(--surface,#fff);border:1px solid #172b4624;border-radius:14px;overflow:hidden}.school-report-class>header{border-bottom:1px solid #172b461f;padding:1rem 1.1rem}.school-report-class h2,.school-report-class p{margin:0}.school-report-class header p{opacity:.72;margin-top:.2rem}.school-report-table-wrap{overflow-x:auto}.school-report-table{border-collapse:collapse;width:100%}.school-report-table th,.school-report-table td{text-align:left;vertical-align:top;border-bottom:1px solid #172b4617;padding:.85rem 1.1rem}.school-report-table tbody tr:last-child td{border-bottom:0}.school-report-table th{text-transform:uppercase;letter-spacing:.04em;opacity:.72;font-size:.82rem}.school-report-empty-class{padding:1rem 1.1rem}.report-extreme-summary small{margin-top:.25rem;font-size:.76rem;font-weight:500;line-height:1.25;display:block}
