:root{color:#1e293b;background:#f5f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#10383a;color:#eef8f7;padding:24px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:32px}.brandMark{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:#f0c36a;color:#10383a;font-weight:800}.brand strong,.brand span{display:block}.brand span{color:#a7c6c4;font-size:13px}.nav{display:grid;gap:6px}.navSection{display:grid;gap:8px}.navSectionTitle{color:#9fb8b5;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.navSectionList{display:grid;gap:6px}.nav button{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:#d8e9e7;cursor:pointer;text-align:left}.nav button.active,.nav button:hover{background:#1f5557;color:#fff}.content{padding:28px;overflow:auto}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.topActions{display:flex;align-items:center;gap:10px}.userLine{display:block;margin-top:8px;color:#64748b;font-size:14px;font-weight:700}.eyebrow{margin:0 0 6px;color:#64748b;font-size:14px;font-weight:700}h1,h2,p{margin-top:0}h1{max-width:720px;margin-bottom:0;font-size:32px;line-height:1.15;letter-spacing:0}h2{margin-bottom:4px;font-size:18px;letter-spacing:0}.iconButton{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d9e2df;border-radius:8px;background:#fff;color:#10383a;cursor:pointer}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin-bottom:20px}.viewStack{display:grid;gap:20px}.metric,.panel{border:1px solid #dbe4e0;border-radius:8px;background:#fff;box-shadow:0 8px 24px #10383a0f}.metric{min-height:128px;padding:16px}.metricIcon{display:grid;place-items:center;width:34px;height:34px;margin-bottom:14px;border-radius:8px;background:#edf6f3;color:#11756f}.metric span{display:block;color:#64748b;font-size:13px}.metric strong{display:block;margin-top:4px;font-size:26px}.metric.danger .metricIcon{background:#fff1f1;color:#c2413f}.metric.warning .metricIcon{background:#fff7df;color:#9a6700}.layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.15fr);gap:20px;margin-bottom:20px}.layout.wide{grid-template-columns:minmax(460px,1.2fr) minmax(360px,.8fr)}.panel{padding:18px}.proposalHero{display:grid;gap:18px;padding:22px;background:linear-gradient(135deg,#10383af5,#11756ff0),#10383a;color:#f3fbfa}.proposalHero .eyebrow,.proposalHero p,.proposalHero span{color:#d8ebe9}.proposalHero h2{margin-bottom:10px;font-size:26px;color:#fff}.proposalHero p{max-width:760px;font-size:15px;line-height:1.6}.proposalStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.proposalStats article,.proposalBand{border-radius:8px}.proposalStats article{padding:14px;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.proposalStats strong{display:block;margin-bottom:6px;font-size:18px;color:#fff}.proposalStats span{display:block;font-size:13px;line-height:1.45}.proposalGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.proposalCard{min-height:100%}.proposalBand{background:#f8faf9}.proposalPills{display:flex;flex-wrap:wrap;gap:10px}.proposalPills span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid #dbe4e0;border-radius:999px;background:#fff;color:#10383a;font-size:13px;font-weight:700}.proposalList{display:grid;gap:10px;margin:0;padding-left:18px;color:#334155}.proposalList li{line-height:1.5}.editItem{align-items:stretch}.editForm{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr) auto;gap:10px;width:100%}.schoolForm{grid-template-columns:1.4fr 1fr .6fr .8fr 1fr auto auto}.classroomForm{grid-template-columns:1.3fr .8fr 1fr 110px auto}.studentForm{grid-template-columns:1.1fr 1.1fr .9fr 1fr .8fr auto}.userForm{grid-template-columns:repeat(3,minmax(0,1fr))}.userForm .toggleField{grid-column:1 / -1}.userForm button{justify-self:start}.permissionGroups{display:grid;gap:12px;margin-top:14px}.permissionGroup{display:grid;gap:8px;padding:12px;border:1px solid #e7eeeb;border-radius:8px;background:#fbfcfb}.permissionGroup strong{color:#10383a}.permissionChips{display:flex;flex-wrap:wrap;gap:8px}.permissionChip{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid #dbe4e0;border-radius:999px;background:#fff;color:#334155;font-size:12px;font-weight:600}.editForm input,.editForm select{min-height:40px;padding:0 10px;border:1px solid #dbe4e0;border-radius:8px;background:#fff;color:#1e293b;outline:0}.editForm input[readonly]{background:#f8faf9;color:#64748b}.toggleField{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;border:1px solid #dbe4e0;border-radius:8px;background:#fff;color:#1e293b}.toggleField input{margin:0}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.panelActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}.panelHeader p{margin-bottom:0;color:#64748b;font-size:14px}.classroomList,.logList,.receivableList{display:grid;gap:10px}.classroom,.logItem,.receivable{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:68px;padding:12px;border:1px solid #e7eeeb;border-radius:8px;background:#fbfcfb}.classroom span,.logItem span,.receivable span{display:block;color:#64748b;font-size:13px}.classroom b{display:grid;place-items:center;min-width:36px;height:36px;border-radius:8px;background:#edf6f3;color:#11756f}.logItem{justify-content:flex-start}.logItem p{margin:5px 0 0;color:#334155;font-size:14px}.logItem small{display:block;margin-top:5px;color:#64748b;font-size:13px}.logForm{display:grid;gap:10px}.compactForm{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.occurrenceForm{grid-template-columns:1fr 1fr 2fr auto}.receivableForm{grid-template-columns:1fr 1fr 1fr 120px auto}.announcementForm{grid-template-columns:1fr 180px 1fr auto}.logForm select,.logForm input,.logForm textarea,.compactForm select,.compactForm input,.compactForm textarea{width:100%;border:1px solid #dbe4e0;border-radius:8px;background:#fff;color:#1e293b;outline:0}.logForm select,.logForm input,.compactForm select,.compactForm input{min-height:40px;padding:0 10px}.logForm textarea,.compactForm textarea{min-height:82px;padding:10px;resize:vertical}.announcementBody{grid-column:1 / -1}.quickGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.primaryButton,.textButton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border-radius:8px;cursor:pointer;font-weight:700}.primaryButton{border:0;background:#11756f;color:#fff}.primaryButton:disabled{cursor:not-allowed;opacity:.72}.textButton{min-height:30px;padding:0 10px;border:1px solid #dbe4e0;background:#fff;color:#11756f}.avatar{display:grid;flex:0 0 auto;place-items:center;width:42px;height:42px;border-radius:8px;background:#f0c36a;color:#10383a;font-weight:800}.search{display:flex;align-items:center;gap:8px;width:min(320px,100%);min-height:38px;padding:0 10px;border:1px solid #dbe4e0;border-radius:8px;color:#64748b;background:#fff}.search input{width:100%;border:0;outline:0}.table{display:grid;overflow:hidden;border:1px solid #e7eeeb;border-radius:8px}.tableRow{display:grid;grid-template-columns:1fr 1fr 1.4fr 1fr 120px;gap:12px;align-items:center;min-height:48px;padding:10px 12px;border-bottom:1px solid #e7eeeb}.tableRow:last-child{border-bottom:0}.tableRow.header{min-height:42px;background:#f8faf9;color:#64748b;font-size:13px;font-weight:700}.amount{display:grid;justify-items:end;gap:6px}.stackList{display:grid;gap:10px}.entityGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.entityGrid.singleGrid{grid-template-columns:1fr}.entityCard{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-height:110px;padding:14px;border:1px solid #e7eeeb;border-radius:8px;background:#fbfcfb}.entityCard strong,.entityCard span,.entityCard p{display:block}.entityCard span,.entityCard p{color:#64748b;font-size:13px}.entityCard span{margin-top:2px}.entityCard p{margin:7px 0 0}.cardActions{display:grid;justify-items:end;gap:8px}.modalOverlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:#10383a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modalPanel{width:min(920px,100%);max-height:min(90vh,920px);overflow:auto;padding:18px;border:1px solid #dbe4e0;border-radius:8px;background:#fff;box-shadow:0 24px 64px #10383a3d}.modalHeader{margin-bottom:16px}.modalForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field{display:grid;gap:6px}.fieldInline{display:flex;align-items:flex-start;gap:8px}.fieldInline>input{flex:1 1 auto;min-width:0}.fieldInline .textButton{flex:0 0 auto;margin-top:0}.field>span{color:#334155;font-size:13px;font-weight:700}.modalForm .toggleField,.modalForm .primaryButton{grid-column:1 / -1}.field input,.field select,.field textarea{width:100%}.modalForm input,.modalForm select{min-height:40px;padding:0 10px;border:1px solid #dbe4e0;border-radius:8px;background:#fff;color:#1e293b;outline:0}.modalForm input:disabled,.modalForm select:disabled{background:#f8faf9;color:#64748b}.studentCreateForm{margin-bottom:14px}.stackItem{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-height:74px;padding:12px;border:1px solid #e7eeeb;border-radius:8px;background:#fbfcfb}.stackItem span,.stackItem p{color:#64748b;font-size:13px}.stackItem span{display:block;margin-top:2px}.stackItem p{margin:7px 0 0}.itemActions{display:grid;justify-items:end;gap:8px}.attendanceActions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#edf6f3;color:#11756f;font-size:12px;font-weight:700}.badge.overdue{background:#fff1f1;color:#c2413f}.badge.open{background:#fff7df;color:#9a6700}.badge.paid{background:#edf6f3;color:#11756f}.badge.pending{background:#fff7df;color:#9a6700}.badge.present{background:#edf6f3;color:#11756f}.badge.absent{background:#fff1f1;color:#c2413f}.badge.answered,.badge.approved,.badge.received,.badge.shared{background:#edf6f3;color:#11756f}.state{display:grid;place-items:center;min-height:100vh;padding:24px;color:#10383a;font-weight:700}.errorState{color:#c2413f}.loginPage{display:grid;place-items:center;min-height:100vh;padding:24px;background:#f5f7f4}.loginPanel{display:grid;gap:20px;width:min(440px,100%);padding:24px;border:1px solid #dbe4e0;border-radius:8px;background:#fff;box-shadow:0 16px 36px #10383a1a}.loginBrand{margin-bottom:0;color:#10383a}.loginForm{display:grid;gap:12px}.loginForm h1{margin-bottom:6px;font-size:26px}.loginForm p{margin-bottom:0;color:#64748b}.loginForm input{width:100%;min-height:42px;padding:0 12px;border:1px solid #dbe4e0;border-radius:8px;outline:0}.formError{color:#c2413f;font-size:13px;font-weight:700}.inlineError{display:block;margin:-4px 0 12px}.demoLogins{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:1120px){.app{grid-template-columns:1fr}.sidebar{position:static;padding:16px}.metricGrid{grid-template-columns:repeat(3,minmax(140px,1fr))}.layout,.layout.wide,.proposalGrid,.proposalStats,.entityGrid,.modalForm{grid-template-columns:1fr}.editForm,.schoolForm,.classroomForm,.studentForm,.userForm,.compactForm,.announcementForm,.occurrenceForm,.receivableForm{grid-template-columns:1fr 1fr}}@media(max-width:680px){.content{padding:18px}.topbar,.panelHeader{align-items:stretch;flex-direction:column}.topActions{justify-content:flex-start}h1{font-size:25px}.nav button{font-size:13px}.metricGrid{grid-template-columns:1fr 1fr}.quickGrid,.compactForm,.announcementForm,.editForm,.schoolForm,.classroomForm,.studentForm,.userForm,.occurrenceForm,.receivableForm,.tableRow{grid-template-columns:1fr}.tableRow.header{display:none}.receivable{align-items:flex-start;flex-direction:column}.stackItem{flex-direction:column}.itemActions{justify-items:start}.attendanceActions{justify-content:flex-start}.amount{justify-items:start}.demoLogins{grid-template-columns:1fr}.modalOverlay{padding:12px}}
