:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#0f1d38;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(22rem,1fr) minmax(28rem,.9fr);background:#fff}.login-brand{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,8vw,8rem);color:#fff;background:radial-gradient(circle at 15% 15%,rgba(66,195,171,.32),transparent 28rem),linear-gradient(145deg,#0f1d38,#15284a 62%,#18365d)}.brand-mark{display:grid;place-items:center;width:4rem;height:4rem;margin-bottom:2rem;border:1px solid rgba(255,255,255,.16);border-radius:1.1rem;background:#ffffff1a;font-size:2rem}.login-brand__eyebrow,.section-kicker{margin:0 0 .8rem;color:#16816f;font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.login-brand__eyebrow{color:#79dec9}.login-brand h1{max-width:42rem;margin:0;font-size:clamp(2.6rem,5vw,5.2rem);line-height:.98;letter-spacing:-.055em}.login-brand>p:last-child{max-width:34rem;margin:2rem 0 0;color:#c5d2e2;font-size:1.08rem;line-height:1.7}.login-panel{display:grid;place-items:center;padding:clamp(2rem,6vw,6rem);background:#f6f8fb}.login-card{width:min(100%,29rem)}.login-card__heading{display:flex;align-items:center;gap:.9rem;margin-bottom:clamp(3rem,7vh,5rem)}.login-card__icon{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.login-card__heading p,.login-card__heading span{display:block;margin:0}.login-card__heading p{font-weight:800}.login-card__heading div>span{margin-top:.2rem;color:#64748b;font-size:.82rem}.login-card__copy h2{margin:0;font-size:2rem;letter-spacing:-.035em}.login-card__copy>p:last-child{margin:.7rem 0 2rem;color:#64748b;line-height:1.5}.login-form{display:grid;gap:.65rem}.login-form label{margin-top:.55rem;font-size:.88rem;font-weight:750}.login-form input{width:100%;height:3.25rem;padding:0 .95rem;border:1px solid #ccd6e2;border-radius:.75rem;color:#0f1d38;background:#fff;outline:none;transition:border .2s,box-shadow .2s}.login-form input:focus{border-color:#16816f;box-shadow:0 0 0 .22rem #16816f21}.primary-button{min-height:3.25rem;margin-top:1rem;border:0;border-radius:.75rem;color:#fff;background:#0f1d38;font-weight:800;transition:transform .15s,background .2s}.primary-button:hover:not(:disabled){background:#16816f;transform:translateY(-1px)}.primary-button:disabled{opacity:.68}.form-error{margin-top:.5rem;padding:.8rem .9rem;border:1px solid #fecaca;border-radius:.7rem;color:#991b1b;background:#fff1f2;font-size:.9rem}.route-status{min-height:100vh;display:grid;place-items:center;color:#52677a}.admin-shell{min-height:100vh;display:grid;grid-template-columns:16rem 1fr;background:#f4f7fb}.admin-sidebar{display:flex;flex-direction:column;padding:1.5rem 1rem;color:#fff;background:#0f1d38}.sidebar-brand{display:flex;align-items:center;gap:.8rem;padding:.2rem .7rem 2rem}.sidebar-brand>span{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:.8rem;background:#ffffff17}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand small{margin-top:.2rem;color:#9fb0c6}.admin-sidebar nav{display:grid;gap:.42rem}.nav-item{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.85rem;padding:0 .85rem;border:0;border-radius:.7rem;color:#cbd5e1;background:transparent;text-align:left;text-decoration:none}.nav-item--active{color:#0f1d38;background:#fff;font-weight:800}.nav-item--disabled{opacity:.48;cursor:not-allowed}.sidebar-logout{margin-top:auto;padding:.75rem;border:1px solid rgba(255,255,255,.16);border-radius:.7rem;color:#dbe5f1;background:transparent}.admin-content{min-width:0}.admin-header{display:flex;align-items:center;justify-content:space-between;min-height:6.25rem;padding:1.2rem 2rem;border-bottom:1px solid #dbe3ee;background:#fff}.admin-header p,.admin-header h1{margin:0}.admin-header p{margin-bottom:.3rem;color:#64748b;font-size:.82rem}.admin-header h1{font-size:1.45rem}.user-summary{display:flex;align-items:center;gap:.7rem}.user-summary>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;color:#0f1d38;background:#e7eef7;font-size:.8rem}.user-summary strong,.user-summary small{display:block}.user-summary small{margin-top:.15rem;color:#64748b;font-size:.72rem}.admin-placeholder{margin:2rem;padding:clamp(2rem,5vw,4rem);border:1px solid #dbe3ee;border-radius:1rem;background:#fff;box-shadow:0 1rem 3rem #0f1d380d}.admin-placeholder h2{margin:0;font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.045em}.admin-placeholder>p:not(.section-kicker){max-width:42rem;color:#64748b;line-height:1.7}.admin-placeholder dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2rem 0 0}.admin-placeholder dl>div{padding:1rem;border-radius:.8rem;background:#f6f8fb}.admin-placeholder dt{color:#64748b;font-size:.78rem}.admin-placeholder dd{margin:.45rem 0 0;font-weight:750;overflow-wrap:anywhere}.status-pill{color:#08735f}.secondary-link{display:inline-flex;margin-top:1.5rem;padding:.75rem 1rem;border:1px solid #ccd6e2;border-radius:.7rem;color:#0f1d38;font-weight:750;text-decoration:none}.secondary-link:hover{border-color:#16816f;color:#08735f}.admin-page{padding:2rem}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.5rem}.page-heading h2,.page-heading p{margin:0}.page-heading h2{font-size:2rem;letter-spacing:-.035em}.page-heading div>p:last-child{margin-top:.45rem;color:#64748b}.compact-button{width:auto;min-height:2.8rem;margin:0;padding:0 1.1rem}.content-card,.users-table-wrap{border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.content-card{padding:2rem;color:#64748b}.users-table-wrap{overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:1rem;border-bottom:1px solid #e7edf4;text-align:left;white-space:nowrap}.users-table th{color:#52677a;background:#fbfcfe;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.users-table tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:.3rem .55rem;border-radius:999px;font-size:.76rem;font-weight:800}.badge--active{color:#08735f;background:#e7f8f2}.badge--inactive{color:#64748b;background:#eef2f7}.table-actions{display:flex;justify-content:flex-end;gap:.45rem}.table-actions button,.modal-actions>button:first-child,.modal-heading>button{border:1px solid #d5deea;border-radius:.55rem;color:#334155;background:#fff}.table-actions button{padding:.45rem .65rem}.table-actions button:disabled{opacity:.45}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#08122394;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.user-modal{width:min(100%,34rem);max-height:calc(100vh - 2rem);overflow-y:auto;padding:1.5rem;border-radius:1rem;background:#fff;box-shadow:0 2rem 6rem #0812234d}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-heading h3{margin:0;font-size:1.55rem}.modal-heading>button{width:2.3rem;height:2.3rem;font-size:1.5rem}.user-form{display:grid;gap:.55rem;margin-top:1.5rem}.user-form label{margin-top:.45rem;font-size:.86rem;font-weight:750}.user-form input,.user-form select{width:100%;height:3rem;padding:0 .85rem;border:1px solid #ccd6e2;border-radius:.7rem;color:#0f1d38;background:#fff}.user-form input:focus,.user-form select:focus{border-color:#16816f;outline:0;box-shadow:0 0 0 .2rem #16816f1f}.user-form small{color:#64748b}.modal-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1rem}.modal-actions>button:first-child{padding:0 1rem}.setup-page{display:grid;gap:1.25rem}.setup-page>.page-heading{margin-bottom:.25rem}.settings-card{padding:1.5rem;border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.card-heading h3,.card-heading p{margin:0}.card-heading h3{font-size:1.15rem}.card-heading p{margin-top:.35rem;color:#64748b;font-size:.9rem}.school-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:1rem}.school-form>div:not(.form-error){display:grid;gap:.45rem}.school-form label{font-size:.82rem;font-weight:750}.school-form input,.school-form select{width:100%;height:2.9rem;padding:0 .8rem;border:1px solid #ccd6e2;border-radius:.65rem;color:#0f1d38;background:#fff}.school-form input:disabled,.school-form select:disabled{color:#64748b;background:#f1f5f9}.full-row{grid-column:1 / -1}.permission-note{margin:0;color:#64748b;font-size:.85rem}.empty-state{display:grid;gap:.35rem;padding:2rem;border:1px dashed #cbd5e1;border-radius:.8rem;color:#64748b;text-align:center}.empty-state strong{color:#334155}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.8rem}.class-card{display:grid;justify-items:start;gap:.55rem;min-height:10rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.8rem;color:#0f1d38;background:#fff;text-align:left;transition:border .2s,transform .15s}.class-card:hover{border-color:#16816f;transform:translateY(-1px)}.class-card strong{margin-top:.25rem;font-size:1.05rem}.class-card small,.class-card>span:last-child{color:#64748b}.checkbox-row{display:flex;align-items:center;gap:.6rem;margin-top:.6rem!important}.checkbox-row input{width:1.1rem;height:1.1rem}.student-filters{display:grid;grid-template-columns:minmax(15rem,1fr) 15rem 10rem;gap:1rem;margin-bottom:1.25rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.student-filters label{display:grid;gap:.4rem}.student-filters label span{color:#52677a;font-size:.78rem;font-weight:750}.student-filters input,.student-filters select{width:100%;height:2.8rem;padding:0 .8rem;border:1px solid #ccd6e2;border-radius:.65rem;background:#fff}.student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}.student-card{overflow:hidden;border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.student-card>img{width:100%;height:12rem;object-fit:cover;background:#e7edf4}.student-card__body{padding:1rem}.student-card__body h3{margin:.75rem 0 .25rem;font-size:1.05rem}.student-card__body p{margin:0 0 .8rem;color:#52677a}.student-card__body small{color:#64748b}.student-card__actions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e7edf4}.student-card__actions button{min-height:2.8rem;border:0;color:#334155;background:#fff}.student-card__actions button+button{border-left:1px solid #e7edf4}.student-card__actions button:hover{color:#08735f;background:#f7fafc}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.form-columns>div{display:grid;gap:.55rem}.student-photo-field{display:grid;grid-template-columns:6rem minmax(0,1fr);align-items:center;gap:1rem;padding:.9rem;border:1px solid #dbe3ee;border-radius:.8rem;background:#f8fafc}.student-photo-field>div:last-child{display:grid;gap:.45rem}.student-photo-field label{font-size:.85rem;font-weight:800}.student-photo-field small{color:#64748b;line-height:1.4}.student-photo-field button{width:fit-content;padding:.45rem .65rem;border:1px solid #ccd6e2;border-radius:.5rem;color:#08735f;background:#fff;font-size:.78rem;font-weight:800}.student-photo-preview-wrap{display:grid;place-items:center;width:6rem;height:6rem;overflow:hidden;border-radius:.8rem;color:#718096;background:#e4eaf0;font-size:.72rem;font-weight:800;text-transform:uppercase}.student-photo-preview-wrap img{width:100%;height:100%;object-fit:cover}.photo-editor-backdrop{z-index:35;background:#050e1cc2}.photo-editor-modal{width:min(100%,44rem)}.photo-editor-help{margin:.7rem 0 1.2rem;color:#52677a;line-height:1.5}.photo-editor-layout{display:grid;grid-template-columns:minmax(16rem,20rem) minmax(11rem,1fr);align-items:center;justify-content:center;gap:1.5rem}.photo-editor-stage{position:relative;width:min(20rem,calc(100vw - 4rem));aspect-ratio:1;overflow:hidden;border-radius:1rem;outline:3px solid #fff;background:#172234;box-shadow:0 0 0 1px #9babbc,0 1rem 2.5rem #0f1d3833;cursor:grab;touch-action:none}.photo-editor-stage:active{cursor:grabbing}.photo-editor-stage:focus-visible{outline:3px solid #17a689}.photo-editor-stage>img{position:absolute;max-width:none;pointer-events:none;-webkit-user-select:none;user-select:none}.photo-editor-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to right,transparent 33.1%,rgba(255,255,255,.75) 33.33%,transparent 33.6%,transparent 66.4%,rgba(255,255,255,.75) 66.67%,transparent 66.9%),linear-gradient(to bottom,transparent 33.1%,rgba(255,255,255,.75) 33.33%,transparent 33.6%,transparent 66.4%,rgba(255,255,255,.75) 66.67%,transparent 66.9%);box-shadow:inset 0 0 0 1px #ffffffe6}.photo-editor-controls{display:grid;gap:.8rem}.photo-editor-controls label{display:flex;justify-content:space-between;gap:1rem;color:#334155;font-size:.85rem}.photo-editor-controls input[type=range]{width:100%;accent-color:#16816f}.photo-editor-controls button{min-height:2.7rem;border:1px solid #ccd6e2;border-radius:.6rem;color:#334155;background:#fff;font-weight:750}.photo-editor-controls small{color:#64748b;line-height:1.5}.student-profile-page{display:grid;gap:1rem}.profile-back{width:fit-content;color:#52677a;font-size:.85rem;font-weight:750;text-decoration:none}.student-profile-header{display:grid;grid-template-columns:7rem minmax(0,1fr) auto;align-items:center;gap:1.3rem;padding:1.4rem;border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.student-profile-header>img{width:7rem;height:7rem;border-radius:1rem;object-fit:cover;background:#e7edf4}.student-profile-header h2{margin:.65rem 0 .25rem;font-size:1.75rem;letter-spacing:-.035em}.student-profile-header p{margin:0;color:#64748b}.student-profile-header>button{min-height:2.8rem;padding:0 1rem;border:1px solid #ccd6e2;border-radius:.65rem;color:#334155;background:#fff;font-weight:750}.profile-tabs{display:flex;overflow-x:auto;border-bottom:1px solid #dbe3ee}.profile-tabs button{min-width:8rem;min-height:3.2rem;padding:0 1rem;border:0;border-bottom:3px solid transparent;color:#64748b;background:transparent;font-weight:750}.profile-tabs button.active{border-bottom-color:#16816f;color:#08735f}.profile-content{min-height:20rem;padding:1.4rem;border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.profile-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.profile-details>div{display:grid;align-content:start;gap:.35rem;min-height:7rem;padding:1rem;border-radius:.8rem;background:#f6f8fb}.profile-details span{color:#64748b;font-size:.75rem;font-weight:750;text-transform:uppercase}.profile-details strong{font-size:1rem;overflow-wrap:anywhere}.profile-details small{color:#64748b}.profile-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem!important}.profile-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.profile-section-heading h3,.profile-section-heading p{margin:0}.profile-section-heading p{margin-top:.35rem;color:#64748b;font-size:.85rem}.profile-section-heading>a{padding:.65rem .8rem;border:1px solid #ccd6e2;border-radius:.6rem;color:#334155;font-size:.8rem;font-weight:750;text-decoration:none}.profile-people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:.8rem}.profile-people-grid article{display:grid;grid-template-columns:3.5rem 1fr;gap:.8rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.8rem}.profile-people-grid h4{margin:.6rem 0 .2rem}.profile-people-grid p{margin:0;color:#64748b;font-size:.82rem}.profile-relation-flags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.7rem}.profile-relation-flags span{padding:.28rem .45rem;border-radius:.45rem;color:#08735f;background:#e7f8f2;font-size:.68rem;font-weight:800}.profile-relation-flags span.muted{color:#64748b;background:#eef2f7}.profile-date-filter{display:grid;gap:.35rem;min-width:11rem}.profile-date-filter span{color:#64748b;font-size:.72rem;font-weight:750}.profile-date-filter input{height:2.7rem;padding:0 .7rem;border:1px solid #ccd6e2;border-radius:.6rem}.profile-attendance-timeline{width:min(100%,38rem);margin:0 auto 1rem}.profile-coming-soon{min-height:14rem;align-content:center}.people-filters{display:grid;grid-template-columns:minmax(15rem,1fr) 10rem;gap:1rem;margin-bottom:1.25rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.people-filters label{display:grid;gap:.4rem}.people-filters label span{color:#52677a;font-size:.78rem;font-weight:750}.people-filters input,.people-filters select{width:100%;height:2.8rem;padding:0 .8rem;border:1px solid #ccd6e2;border-radius:.65rem;background:#fff}.people-list{display:grid;gap:.8rem}.person-card{display:grid;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.person-avatar{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:1rem;color:#08735f;background:#e7f8f2;font-weight:850}.person-avatar--photo{object-fit:cover}.person-card__main{min-width:0}.person-card__main h3{display:inline;margin:0 .6rem;font-size:1rem}.person-card__main p{margin:.45rem 0 .7rem;color:#64748b;font-size:.88rem}.relation-chips{display:flex;flex-wrap:wrap;gap:.4rem}.relation-chip{padding:.32rem .55rem;border-radius:.55rem;color:#155e52;background:#ecf9f5;font-size:.76rem}.relation-chip--muted{color:#64748b;background:#eef2f7}.person-edit-button{padding:.6rem .8rem;border:1px solid #d5deea;border-radius:.6rem;color:#334155;background:#fff}.person-modal{width:min(100%,46rem)}.person-photo-field{display:grid;grid-template-columns:5rem 1fr;align-items:center;gap:1rem;padding:.75rem;border:1px solid #dbe3ee;border-radius:.75rem;background:#f8fafc}.person-photo-field>div{display:grid;place-items:center;width:5rem;height:5rem;overflow:hidden;border-radius:.8rem;color:#08735f;background:#e7f8f2;font-weight:850}.person-photo-field img{width:100%;height:100%;object-fit:cover}.person-photo-field label{display:grid;gap:.35rem}.person-photo-field input{height:auto;padding:.35rem 0;border:0}.person-photo-field small{color:#64748b}.relations-editor,.new-relation{display:grid;gap:.7rem;margin:1rem 0 0;padding:1rem;border:1px solid #dbe3ee;border-radius:.75rem}.relations-editor legend,.new-relation legend{padding:0 .4rem;color:#334155;font-size:.85rem;font-weight:800}.relation-editor{display:grid;grid-template-columns:minmax(7rem,1fr) minmax(8rem,1fr) auto auto auto;align-items:center;gap:.6rem;padding-bottom:.7rem;border-bottom:1px solid #e7edf4}.relation-editor:last-child{padding-bottom:0;border-bottom:0}.relation-editor input:not([type=checkbox]){height:2.4rem}.relation-editor label,.relation-options label{display:flex;align-items:center;gap:.35rem;margin:0;color:#52677a;font-size:.76rem}.relation-editor input[type=checkbox],.relation-options input[type=checkbox]{width:1rem;height:1rem}.relation-options{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.3rem}.dashboard-page{display:grid;gap:1.25rem}.dashboard-page>.page-heading{margin-bottom:0}.dashboard-heading__actions{display:flex;align-items:center;gap:.65rem}.dashboard-heading__actions small{color:#64748b}.dashboard-heading__actions button,.dashboard-heading__actions a{min-height:2.65rem;padding:0 .85rem;border:1px solid #ccd6e2;border-radius:.65rem;color:#334155;background:#fff;font-size:.82rem;font-weight:750;text-decoration:none}.dashboard-heading__actions a{display:inline-flex;align-items:center;border-color:#0f1d38;color:#fff;background:#0f1d38}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}.metric-card{display:flex;align-items:center;gap:.85rem;min-height:7rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.metric-card>span{display:grid;place-items:center;flex:0 0 2.8rem;width:2.8rem;height:2.8rem;border-radius:.75rem;color:#40536a;background:#eef2f7;font-weight:850}.metric-card strong{display:block;font-size:1.8rem;letter-spacing:-.04em}.metric-card p{margin:.2rem 0 0;color:#64748b;font-size:.78rem}.metric-card--green>span{color:#08735f;background:#def6ef}.metric-card--blue>span{color:#246da8;background:#e3f0fb}.metric-card--amber>span{color:#9a670d;background:#fff3cd}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(20rem,.7fr);gap:1rem}.dashboard-panel{min-width:0;padding:1.2rem;border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.dashboard-panel__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.dashboard-panel__heading h3,.dashboard-panel__heading p{margin:0}.dashboard-panel__heading h3{font-size:1.08rem}.dashboard-panel__heading p{margin-top:.3rem;color:#64748b;font-size:.82rem}.dashboard-panel__heading>span{padding:.3rem .55rem;border-radius:999px;color:#52677a;background:#eef2f7;font-size:.72rem;font-weight:800}.dashboard-student-list{display:grid;max-height:32rem;overflow-y:auto}.dashboard-student-list article{display:grid;grid-template-columns:2.7rem minmax(0,1fr) auto 3.5rem;align-items:center;gap:.75rem;min-height:4.3rem;border-bottom:1px solid #e7edf4}.dashboard-student-list article:last-child{border-bottom:0}.dashboard-student-list img{width:2.7rem;height:2.7rem;border-radius:.7rem;object-fit:cover;background:#e7edf4}.dashboard-student-list strong,.dashboard-student-list small{display:block}.dashboard-student-list small{margin-top:.15rem;color:#64748b;font-size:.75rem}.dashboard-student-list time{color:#52677a;font-size:.78rem;text-align:right}.attendance-badge{padding:.3rem .5rem;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.attendance-badge--present{color:#08735f;background:#def6ef}.attendance-badge--left{color:#246da8;background:#e3f0fb}.attendance-badge--not_arrived{color:#64748b;background:#eef2f7}.class-summary-list{display:grid;gap:.75rem}.class-summary-list article{padding:.9rem;border:1px solid #e2e8f0;border-radius:.8rem}.class-summary-list article>div:first-child{display:flex;justify-content:space-between;gap:1rem}.class-summary-list article>div:first-child span{color:#64748b;font-size:.76rem}.class-progress{height:.45rem;margin:.7rem 0;overflow:hidden;border-radius:999px;background:#e7edf4}.class-progress span{display:block;height:100%;border-radius:inherit;background:#17a689}.class-summary-list dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:0}.class-summary-list dl>div{padding:.45rem;border-radius:.5rem;background:#f7f9fb;text-align:center}.class-summary-list dt{color:#64748b;font-size:.64rem}.class-summary-list dd{margin:.2rem 0 0;font-weight:850}.attendance-page{display:grid;gap:1.2rem}.attendance-page>.page-heading{margin-bottom:0}.attendance-toolbar{display:grid;grid-template-columns:11rem 15rem 1fr;align-items:end;gap:1rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.attendance-toolbar>label{display:grid;gap:.4rem}.attendance-toolbar>label span{color:#52677a;font-size:.78rem;font-weight:750}.attendance-toolbar input,.attendance-toolbar select{width:100%;height:2.8rem;padding:0 .8rem;border:1px solid #ccd6e2;border-radius:.65rem;background:#fff}.attendance-mini-metrics{display:flex;justify-content:flex-end;gap:.5rem}.attendance-mini-metrics span{padding:.65rem .75rem;border-radius:.65rem;color:#52677a;background:#f3f6f9;font-size:.74rem;white-space:nowrap}.attendance-mini-metrics strong{color:#0f1d38;font-size:1rem}.attendance-table-wrap{overflow-x:auto;border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.attendance-table{width:100%;border-collapse:collapse}.attendance-table th,.attendance-table td{padding:.85rem 1rem;border-bottom:1px solid #e7edf4;text-align:left;white-space:nowrap}.attendance-table th{color:#52677a;background:#fbfcfe;font-size:.72rem;letter-spacing:.035em;text-transform:uppercase}.attendance-table tr:last-child td{border-bottom:0}.attendance-student{display:flex;align-items:center;gap:.65rem}.attendance-student img{width:2.5rem;height:2.5rem;border-radius:.65rem;object-fit:cover;background:#e7edf4}.timeline-button{padding:.45rem .65rem;border:1px solid #ccd6e2;border-radius:.55rem;color:#334155;background:#fff}.attendance-modal{width:min(100%,42rem)}.attendance-timeline{position:relative;display:grid;gap:0;margin-top:1.5rem;text-align:left}.timeline-event{position:relative;display:grid;grid-template-columns:1.5rem 1fr;gap:.8rem;min-height:7rem}.timeline-event:before{position:absolute;top:1rem;bottom:-1rem;left:.42rem;width:2px;content:"";background:#dbe3ee}.timeline-event:last-child:before{display:none}.timeline-marker{position:relative;z-index:1;width:.95rem;height:.95rem;margin-top:.25rem;border:3px solid #fff;border-radius:50%;background:#64748b;box-shadow:0 0 0 2px #cbd5e1}.timeline-event--entry .timeline-marker{background:#17a689;box-shadow:0 0 0 2px #7ad8c4}.timeline-event--exit .timeline-marker{background:#438bc8;box-shadow:0 0 0 2px #91bee3}.timeline-event__heading{display:flex;justify-content:space-between;gap:1rem}.timeline-event__heading time{font-size:1.25rem;font-weight:850}.timeline-event p{margin:.35rem 0;color:#64748b;font-size:.82rem}.timeline-event button{margin-top:.4rem;padding:.4rem .6rem;border:1px solid #ccd6e2;border-radius:.5rem;color:#334155;background:#fff;font-size:.74rem}.corrected-label{display:inline-flex;padding:.25rem .45rem;border-radius:.45rem;color:#9a670d;background:#fff3cd;font-size:.7rem;font-weight:800}.correction-box{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;padding:1rem;background:#fffffff0}.correction-box form{display:grid;gap:.55rem;width:min(100%,28rem);padding:1.2rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff;box-shadow:0 1rem 3rem #0f1d381f;text-align:left}.correction-box h4{margin:0 0 .5rem}.correction-box label{font-size:.8rem;font-weight:750}.correction-box input{height:2.8rem;padding:0 .75rem;border:1px solid #ccd6e2;border-radius:.6rem}.correction-box form>div:last-child{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.6rem}.correction-box button{min-height:2.6rem;padding:0 .8rem;border:1px solid #ccd6e2;border-radius:.55rem;background:#fff;font-weight:750}.correction-box button[type=submit]{border-color:#0f1d38;color:#fff;background:#0f1d38}.finance-page{display:grid;gap:1.2rem}.student-finance-panel{display:grid;gap:1rem}.inactive-cost-notice{display:grid;gap:.25rem;padding:.9rem 1rem;border:1px solid #f0c36a;border-radius:.7rem;color:#7a4d00;background:#fff8e7}.inactive-cost-notice span{font-size:.9rem}.compact-empty{min-height:7rem}.monthly-package-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem;border:1px solid #cfe3dd;border-radius:.9rem;background:#f8fcfb}.monthly-package-card h4{margin:.3rem 0;font-size:1.1rem}.monthly-package-card p,.monthly-package-card span{margin:0;color:#52677a;font-size:.82rem}.monthly-package-card>button{min-height:2.5rem;padding:0 .8rem;border:1px solid #b9cbc6;border-radius:.6rem;background:#fff;font-weight:750}.package-values{display:flex;gap:1.2rem}.package-values span{display:grid;gap:.2rem}.package-values strong{color:#0f1d38;font-size:1rem}.extras-panel{display:grid;gap:.8rem;margin-top:.5rem;padding-top:1.2rem;border-top:1px solid #dbe3ee}.extras-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.extras-heading h3{margin:0 0 .25rem}.extras-heading p{margin:0;color:#64748b}.extras-heading label{display:grid;gap:.3rem;color:#52677a;font-size:.75rem;font-weight:750}.extras-heading input{height:2.6rem;padding:0 .65rem;border:1px solid #ccd6e2;border-radius:.6rem}.extra-summary{display:flex;gap:.7rem}.extra-summary>span{display:grid;min-width:10rem;gap:.25rem;padding:.8rem 1rem;border-radius:.7rem;background:#f2f6f9}.extra-summary small{color:#64748b}.extra-summary strong{font-size:1.2rem}.extra-summary .extra-warning{color:#9a670d;background:#fff3cd}.extras-table-wrap{overflow-x:auto;border:1px solid #dbe3ee;border-radius:.8rem}.extras-table{width:100%;border-collapse:collapse}.extras-table th,.extras-table td{padding:.7rem .8rem;border-bottom:1px solid #e7edf4;text-align:left;white-space:nowrap}.extras-table th{color:#52677a;background:#fbfcfe;font-size:.7rem;text-transform:uppercase}.extras-table tr:last-child td{border-bottom:0}.charge-section-heading{margin-top:1rem;padding-top:1.2rem;border-top:1px solid #dbe3ee}.package-modal{width:min(48rem,calc(100vw - 2rem))}.schedule-fieldset{display:grid;gap:.45rem;margin:.4rem 0;padding:.8rem;border:1px solid #dbe3ee;border-radius:.7rem}.schedule-fieldset legend{padding:0 .35rem;color:#52677a;font-size:.8rem;font-weight:800}.schedule-row{display:grid;grid-template-columns:minmax(8rem,1fr) 7.5rem auto 7.5rem;align-items:center;gap:.55rem;padding:.45rem .55rem;border-radius:.55rem;background:#f6f8fb;opacity:.65}.schedule-row.enabled{background:#edf8f5;opacity:1}.schedule-row label{display:flex;align-items:center;gap:.5rem;margin:0}.schedule-row input[type=time]{width:100%;height:2.35rem;padding:0 .45rem;border:1px solid #ccd6e2;border-radius:.45rem}.finance-page>.page-heading{margin-bottom:0}.finance-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.finance-metric{display:grid;gap:.3rem;min-height:8rem;padding:1.2rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.finance-metric>span{color:#64748b;font-size:.78rem;font-weight:750}.finance-metric strong{font-size:1.7rem;letter-spacing:-.035em}.finance-metric small{color:#64748b}.finance-metric--amber{border-top:3px solid #e3a923}.finance-metric--green{border-top:3px solid #17a689}.finance-metric--blue{border-top:3px solid #438bc8}.finance-filters{display:grid;grid-template-columns:minmax(13rem,1fr) 11rem 10rem 10rem auto;align-items:end;gap:1rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.9rem;background:#fff}.finance-filters label{display:grid;gap:.4rem}.finance-filters span{color:#52677a;font-size:.78rem;font-weight:750}.finance-filters input,.finance-filters select{height:2.8rem;padding:0 .8rem;border:1px solid #ccd6e2;border-radius:.65rem;background:#fff}.finance-filters>button{height:2.8rem;padding:0 .8rem;border:1px solid #ccd6e2;border-radius:.65rem;color:#40536a;background:#fff;font-weight:750;white-space:nowrap}.finance-filters>button:disabled{opacity:.5}.finance-table-wrap{overflow-x:auto;border:1px solid #dbe3ee;border-radius:1rem;background:#fff}.finance-table{width:100%;border-collapse:collapse}.finance-table th,.finance-table td{padding:.85rem 1rem;border-bottom:1px solid #e7edf4;text-align:left;white-space:nowrap}.finance-table th{color:#52677a;background:#fbfcfe;font-size:.72rem;letter-spacing:.035em;text-transform:uppercase}.finance-table tr:last-child td{border-bottom:0}.finance-table td>a{color:#0f1d38;font-weight:750;text-decoration:none}.charge-status{display:inline-flex;padding:.3rem .5rem;border-radius:999px;font-size:.7rem;font-weight:850}.charge-status--pending{color:#9a670d;background:#fff3cd}.charge-status--paid{color:#08735f;background:#def6ef}.charge-status--canceled{color:#64748b;background:#eef2f7}.charge-actions{display:flex;align-items:center;justify-content:flex-end;gap:.35rem}.charge-actions button{padding:.4rem .55rem;border:1px solid #ccd6e2;border-radius:.5rem;color:#334155;background:#fff;font-size:.72rem}.charge-actions button:nth-child(2){border-color:#9ed9cb;color:#08735f}.charge-actions button:nth-child(3){color:#991b1b}.charge-actions>span{color:#991b1b;font-size:.7rem}.charge-completed-detail{color:#64748b;font-size:.72rem}.charge-modal{width:min(100%,40rem)}.profile-action-button{min-height:2.7rem;padding:0 .85rem;border:1px solid #0f1d38;border-radius:.6rem;color:#fff;background:#0f1d38;font-weight:750}.profile-action-button:disabled{cursor:not-allowed;opacity:.5}.student-charge-list{display:grid;gap:.7rem}.student-charge-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem;border:1px solid #dbe3ee;border-radius:.8rem}.student-charge-card h4{margin:.6rem 0 .2rem}.student-charge-card p{margin:0;color:#64748b;font-size:.82rem}.student-charge-card small{display:block;margin-top:.4rem;color:#64748b}.student-charge-card>strong{font-size:1.1rem;white-space:nowrap}.kiosk-page{min-height:100vh;padding-bottom:2rem;background:#eef3f7}.kiosk-header{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:2rem;min-height:6rem;padding:1rem 2rem;color:#fff;background:#0f1d38}.kiosk-brand{display:flex;align-items:center;gap:.8rem}.kiosk-brand>span{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.85rem;background:#ffffff1a;font-size:1.5rem}.kiosk-brand strong,.kiosk-brand small,.kiosk-clock strong,.kiosk-clock span,.kiosk-present-count strong,.kiosk-present-count span{display:block}.kiosk-brand small,.kiosk-clock span,.kiosk-present-count span{margin-top:.2rem;color:#aebed2;font-size:.78rem}.kiosk-clock{text-align:right;text-transform:capitalize}.kiosk-clock strong{font-size:1.35rem}.kiosk-present-count{min-width:8.5rem;padding:.65rem 1rem;border-radius:.8rem;background:#19b79729;text-align:center}.kiosk-present-count strong{color:#7ce0cb;font-size:1.5rem}.kiosk-admin-link{padding:0;border:0;color:#d9e4ef;background:transparent;font-size:.82rem;text-decoration:none}.kiosk-controls{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;padding:1.5rem 2rem 1rem}.kiosk-status-filters{display:flex;flex-wrap:wrap;gap:.6rem}.kiosk-status-filters button{min-height:3rem;padding:0 1.15rem;border:1px solid #ccd7e3;border-radius:.8rem;color:#40536a;background:#fff;font-weight:750}.kiosk-status-filters button.active{border-color:#0f1d38;color:#fff;background:#0f1d38}.kiosk-controls label{display:grid;gap:.35rem;min-width:15rem;color:#52677a;font-size:.78rem;font-weight:750}.kiosk-controls select{height:3rem;padding:0 .8rem;border:1px solid #ccd7e3;border-radius:.8rem;background:#fff}.kiosk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;padding:1rem 2rem}.kiosk-student-card{overflow:hidden;padding:0;border:2px solid transparent;border-radius:1.15rem;color:#0f1d38;background:#fff;text-align:left;box-shadow:0 .7rem 2rem #0f1d3812;transition:transform .15s,border .2s}.kiosk-student-card:hover{transform:translateY(-2px)}.kiosk-student-card--present{border-color:#34b99d}.kiosk-student-card--left{border-color:#67a7df}.kiosk-student-card>img{width:100%;height:14rem;object-fit:cover;background:#dfe7ef}.kiosk-student-card>div{position:relative;display:grid;gap:.28rem;padding:1rem 1rem 1.15rem}.kiosk-student-card strong{padding-right:1rem;font-size:1.12rem}.kiosk-student-card small{color:#64748b}.kiosk-student-card div>span:last-child{margin-top:.45rem;color:#52677a;font-size:.82rem;font-weight:750}.kiosk-status-dot{position:absolute;top:1.1rem;right:1rem;width:.8rem;height:.8rem;border-radius:50%;background:#9aa8b7}.kiosk-student-card--present .kiosk-status-dot{background:#17a689;box-shadow:0 0 0 .3rem #ddf6ef}.kiosk-student-card--left .kiosk-status-dot{background:#438bc8;box-shadow:0 0 0 .3rem #e3f0fb}.kiosk-empty,.kiosk-error{display:grid;gap:.3rem;margin:1rem 2rem;padding:2rem;border-radius:1rem;text-align:center}.kiosk-empty{color:#64748b;background:#fff}.kiosk-error{color:#991b1b;background:#fff1f2}.kiosk-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:1rem;background:#050e1cb8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.kiosk-dialog{position:relative;width:min(100%,46rem);max-height:calc(100vh - 2rem);overflow-y:auto;padding:2rem;border-radius:1.3rem;background:#fff;text-align:center;box-shadow:0 2rem 7rem #00000059}.kiosk-dialog-close{position:absolute;top:1rem;right:1rem;width:3rem;height:3rem;border:0;border-radius:.8rem;color:#52677a;background:#eef2f6;font-size:1.8rem}.kiosk-dialog-photo{width:8rem;height:8rem;margin-bottom:1rem;border-radius:1.2rem;object-fit:cover}.kiosk-dialog h2{margin:0;font-size:2rem}.kiosk-dialog-class{margin:.35rem 0 1.5rem;color:#64748b}.pickup-step h3,.manual-pickup h3,.operator-step h3{margin:0 0 1rem}.pickup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.7rem}.pickup-grid button{display:grid;justify-items:center;gap:.35rem;min-height:9rem;padding:1rem;border:1px solid #ccd7e3;border-radius:.9rem;color:#0f1d38;background:#fff}.pickup-grid button>span{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;color:#08735f;background:#e4f7f1;font-weight:850}.pickup-grid button>img{width:3.5rem;height:3.5rem;border-radius:50%;object-fit:cover}.pickup-grid button small{color:#64748b}.pickup-grid .pickup-other{border-style:dashed}.manual-pickup{display:grid;gap:.65rem;text-align:left}.manual-pickup label{font-size:.85rem;font-weight:750}.manual-pickup input{height:3.4rem;padding:0 1rem;border:1px solid #bccada;border-radius:.8rem}.operator-step>p{color:#64748b}.operator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.7rem;margin-top:1rem}.operator-grid button{display:grid;justify-items:center;gap:.55rem;min-height:8rem;padding:1rem;border:1px solid #ccd7e3;border-radius:.9rem;color:#0f1d38;background:#fff}.operator-grid button>span{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:50%;color:#fff;background:#197b70;font-weight:850}.confirmation-step>p{color:#52677a;font-size:1.05rem}.confirmation-time{display:block;margin:1rem 0;font-size:2.5rem}.kiosk-dialog-actions{display:flex;justify-content:center;gap:.8rem;margin-top:1.5rem}.kiosk-dialog-actions button{min-height:3.4rem;padding:0 1.3rem;border:1px solid #ccd7e3;border-radius:.8rem;background:#fff;font-weight:800}.kiosk-dialog-actions .kiosk-confirm-button{border-color:#0f1d38;color:#fff;background:#0f1d38}.kiosk-dialog-actions .kiosk-confirm-button:disabled{opacity:.55}.kiosk-toast{position:fixed;right:1.5rem;bottom:1.5rem;z-index:40;padding:1rem 1.25rem;border-radius:.85rem;color:#fff;background:#08735f;box-shadow:0 1rem 3rem #08735f4d;font-weight:800}.foundation{min-height:100vh;display:grid;place-items:center;padding:2rem}.foundation__card{width:min(100%,44rem);padding:3rem;border:1px solid #dce5ec;border-radius:1.5rem;background:#fff}.foundation__eyebrow{color:#197b70;font-weight:750}.foundation__description{color:#52677a;line-height:1.65}.foundation__status{display:inline-flex;align-items:center;gap:.65rem}.status-dot{width:.7rem;height:.7rem;border-radius:50%;background:#9a6a12}.status-dot--online{background:#16816f}@media(max-width:820px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh}.admin-shell{grid-template-columns:1fr}.admin-sidebar{display:none}.admin-header{padding:1rem}.admin-placeholder{margin:1rem}.admin-placeholder dl{grid-template-columns:1fr}.admin-page{padding:1rem}.page-heading{align-items:stretch;flex-direction:column;gap:1rem}.compact-button{width:100%}.card-heading{align-items:stretch;flex-direction:column}.school-form,.student-filters,.people-filters{grid-template-columns:1fr}.person-card{grid-template-columns:3.5rem 1fr}.person-edit-button{grid-column:1 / -1}.relation-editor,.form-columns{grid-template-columns:1fr}.student-photo-field{grid-template-columns:5rem minmax(0,1fr)}.student-photo-preview-wrap{width:5rem;height:5rem}.photo-editor-layout{grid-template-columns:1fr}.photo-editor-stage{justify-self:center}.student-profile-header{grid-template-columns:5rem 1fr}.student-profile-header>img{width:5rem;height:5rem}.student-profile-header>button{grid-column:1 / -1}.profile-details{grid-template-columns:1fr}.profile-section-heading,.dashboard-heading__actions{align-items:stretch;flex-direction:column}.metric-grid{grid-template-columns:1fr 1fr}.dashboard-columns{grid-template-columns:1fr}.dashboard-student-list article{grid-template-columns:2.7rem minmax(0,1fr) auto}.dashboard-student-list time{display:none}.attendance-toolbar{grid-template-columns:1fr}.attendance-mini-metrics{justify-content:stretch;overflow-x:auto}.attendance-mini-metrics span{flex:1;text-align:center}.finance-metrics,.finance-filters,.monthly-package-card{grid-template-columns:1fr}.package-values{flex-wrap:wrap}.extras-heading{align-items:stretch;flex-direction:column}.extra-summary{flex-direction:column}.schedule-row{grid-template-columns:1fr 1fr}.schedule-row>span{display:none}.student-charge-card{grid-template-columns:1fr auto}.student-charge-card .charge-actions{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap}.kiosk-header{grid-template-columns:1fr auto;gap:1rem;padding:1rem}.kiosk-clock,.kiosk-admin-link{display:none}.kiosk-controls{align-items:stretch;flex-direction:column;padding:1rem}.kiosk-controls label{min-width:0}.kiosk-status-filters{display:grid;grid-template-columns:1fr 1fr}.kiosk-status-filters button{padding:0 .5rem}.kiosk-grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.7rem;padding:.5rem 1rem}.kiosk-student-card>img{height:10rem}.kiosk-dialog{padding:1.3rem}.kiosk-dialog-photo{width:6.5rem;height:6.5rem}.kiosk-dialog-actions{flex-direction:column}}
