:root{color:#17233c;background:#f3f7fb;font-family:Inter,Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.1;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}.flex-1{flex:1 1 0%}.min-w-0{min-width:0}.w-full{width:100%}.overflow-x-hidden{overflow-x:hidden}.overflow-x-auto{overflow-x:auto}.min-w-\[1000px\]{min-width:1000px}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}html{font-size:90%}body{margin:0;color:#17233c;font-weight:400;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button,a,input,select,textarea{transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(10,169,156,.3);outline-offset:3px}button:active:not(:disabled){transform:translateY(1px)}.page-shell,.dashboard-shell,.success-shell,.auth-shell{width:min(100% - 32px,1120px);margin:0 auto;padding:40px 0 56px}.landing-shell{width:min(100% - 32px,1180px);min-height:100vh;margin:0 auto;padding:28px 0 48px}.landing-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:46px}.landing-brand,.landing-nav,.landing-actions{display:inline-flex;align-items:center;gap:12px}.landing-brand{border:0;padding:0;color:#17233c;background:transparent;font-weight:800;letter-spacing:0}.landing-brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;color:#fff;background:linear-gradient(135deg,#079a8f,#1d4eed);box-shadow:0 12px 28px #0f498733}.landing-nav{flex-wrap:wrap;justify-content:flex-end}.landing-nav a,.landing-nav button,.landing-secondary-link{min-height:46px;border:1px solid #cbd6e2;border-radius:8px;padding:0 16px;color:#17233c;background:#fff;font-weight:700;text-decoration:none}.landing-nav a,.landing-nav button{display:inline-flex;align-items:center}.landing-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);gap:clamp(28px,6vw,72px);align-items:center;min-height:calc(100vh - 170px);padding-bottom:56px}.landing-eyebrow{display:inline-flex;margin-bottom:18px;color:#087d73;font-size:13px;font-weight:800;letter-spacing:.08em}.landing-hero h1,.redirect-shell h1{color:#17233c;font-size:clamp(48px,9vw,104px);line-height:.95;letter-spacing:0}.landing-hero p,.redirect-shell p{max-width:640px;margin-top:22px;color:#5b6b84;font-size:clamp(18px,2.2vw,24px);line-height:1.45}.landing-actions{flex-wrap:wrap;margin-top:34px}.landing-primary-link,.landing-secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:58px;border-radius:8px;padding:0 24px;font-weight:800;text-decoration:none}.landing-primary-link{color:#fff;background:linear-gradient(135deg,#079a8f,#1d4eed);box-shadow:0 18px 42px #2563eb33}.landing-info-panel{display:grid;gap:14px;padding:18px;border:1px solid #dfe8f2;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f23401a}.landing-info-panel div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid #e5edf5;border-radius:8px;background:#f8fafc}.landing-info-panel span{color:#5b6b84;font-size:14px;font-weight:700}.landing-info-panel strong{color:#17233c;font-size:24px}.redirect-shell{display:grid;place-content:center;justify-items:start;gap:18px}.redirect-shell .landing-brand{margin-bottom:8px}.hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-bottom:28px}.logo{width:74px;height:74px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#079a8f,#0d4be9);border-radius:22px;box-shadow:0 18px 38px #0f498738}h1,h2,p{margin:0}.hero h1,.dashboard-header h1,.auth-shell h1,.success-shell h1{font-size:clamp(28px,3vw,32px);line-height:1.2;letter-spacing:0;color:#17233c;font-weight:700}.hero p,.dashboard-header p,.auth-shell>p,.success-shell>p{margin-top:6px;color:#5b6b84;font-size:16px;font-weight:400}.hero h1,.auth-shell h1,.success-shell h1{font-size:clamp(32px,5vw,54px);line-height:1.05}.hero p,.auth-shell>p,.success-shell>p{font-size:20px}.form-panel,.login-panel,.receipt-panel,.data-panel,.class-panel{background:#fff;border-radius:8px;padding:clamp(22px,4vw,44px);border:1px solid #dfe8f2;box-shadow:0 4px 12px #1f29370d}.section-heading{display:flex;align-items:center;gap:14px;margin:30px 0 18px}.section-heading:first-of-type{margin-top:0}.section-heading svg{color:#079a8f}.section-heading h2{color:#17233c;font-size:clamp(22px,2.4vw,30px);font-weight:700;letter-spacing:0}.section-helper{margin:-8px 0 18px;color:#5b6b84;font-size:15px;font-weight:500}.split{justify-content:space-between}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}label{display:grid;gap:8px;color:#5b6b84;font-size:14px;font-weight:600}input,select{min-width:0;width:100%;min-height:58px;padding:14px 18px;border:2px solid #cbd6e2;border-radius:16px;background:#fff;color:#17233c;font-weight:500;line-height:1.25;outline:none}input:focus,select:focus{border-color:#0aa99c;box-shadow:0 0 0 4px #0aa99c1f}.field.has-error input,.field.has-error select{border-color:#dc2626;background:#fff7f7}.field.has-error input:focus,.field.has-error select:focus{border-color:#dc2626;box-shadow:0 0 0 4px #dc26261f}.field-error{color:#b91c1c;font-size:12px;font-weight:600;line-height:1.35}.children-list{display:grid;gap:18px}.child-add-row{display:flex;justify-content:flex-end}.child-row{display:grid;grid-template-columns:minmax(130px,.3fr) minmax(170px,.42fr) minmax(260px,1fr) auto;gap:16px;align-items:end;padding:18px;background:#f8fafc;border:1px solid #dfe8f2;border-radius:18px}.child-row>*,.manual-child-row>*,.hero>*,.form-panel>*,.admin-layout>*,.admin-main>*,.dashboard-header>*,.class-panel-header>*,.settings-card-header>*,.modal-header>*,.special-report-table-header>*,.campaign-section-head>*{min-width:0}.wide{min-width:0}.student-autocomplete,.parent-autocomplete{position:relative}.student-autocomplete input:disabled{color:#94a3b8;background:#eef2f7;cursor:not-allowed}.suggestion-list{position:absolute;z-index:20;top:calc(100% + 6px);right:0;left:0;max-height:230px;overflow-y:auto;padding:6px;border:1px solid #cbd6e2;border-radius:12px;background:#fff;box-shadow:0 16px 34px #0f172a24}.suggestion-list button{width:100%;min-height:30px;justify-content:flex-start;padding:0 12px;border:0;border-radius:8px;color:#17233c;background:transparent;font-size:14px;font-weight:500;text-align:left}.suggestion-list button:hover{background:#eff6ff}.parent-suggestion-list{top:calc(100% + 8px)}.student-autocomplete small{display:block;margin-top:8px;color:#b45309;font-size:12px;font-weight:600}.payment-area{display:grid;gap:14px}.payment-area p{color:#5b6b84;font-weight:500;font-size:16px}.amount-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.amount-option{min-height:92px;border:2px solid #cbd6e2;border-radius:18px;background:#fff;color:#17233c;font-size:clamp(28px,4vw,44px);font-weight:800}.amount-option.selected{color:#087d73;border-color:#0aa99c;background:#effdfb}.balance-card,.editable-payment-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid #dbe4ef;border-radius:8px;background:#fff;box-shadow:0 12px 30px #0f234014}.balance-card{border-color:#bae6fd;background:#f0f9ff}.balance-card.settled{border-color:#bbf7d0;background:#f0fdf4}.balance-card span,.editable-payment-card span,.balance-after-row span{display:block;color:#5b6b84;font-size:13px;font-weight:700;text-transform:uppercase}.balance-card strong,.editable-payment-card strong,.balance-after-row strong{display:block;margin-top:5px;color:#17233c;font-size:clamp(30px,5vw,48px);line-height:1;font-weight:800}.balance-card p{color:#047857;font-size:14px;font-weight:700}.editable-payment-card.has-error{border-color:#ef4444;background:#fff7f7}.status-box{padding:14px 16px;border:1px solid #bbf7d0;border-radius:8px;color:#047857;background:#f0fdf4;font-weight:700}.compact-error{margin:0;padding:12px 14px}.public-payment-modal{width:min(100%,520px)}.public-payment-modal .manual-payment-input{display:grid;gap:10px}.manual-payment-input.has-error span{border-color:#dc2626;background:#fff7f7}.balance-after-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid #dbe4ef;border-radius:8px;background:#f8fafc}.balance-after-row strong{margin-top:0;font-size:26px}.primary-button.modal-primary-button{width:auto;min-height:54px;margin-top:0;padding:0 22px}.primary-button,.secondary-button,.ghost-button,.text-button,.icon-button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:16px;min-height:54px;padding:0 20px;font-weight:700}.primary-button{width:100%;min-height:74px;margin-top:30px;color:#fff;background:linear-gradient(135deg,#079a8f,#1d4eed);font-size:17px;box-shadow:0 18px 42px #2563eb33}.primary-button:disabled{opacity:.62}.primary-button:hover:not(:disabled),.primary-action-button:hover:not(:disabled),.campaign-primary-link:hover,.public-campaign-cta:hover{box-shadow:0 20px 42px #1d4eed3d;transform:translateY(-1px)}.secondary-button:hover:not(:disabled),.outline-button:hover:not(:disabled),.ghost-button:hover:not(:disabled),.text-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.text-inline-button:hover:not(:disabled){filter:brightness(.98);transform:translateY(-1px)}.campaign-public-shell{width:min(100% - 32px,1180px);margin:0 auto;padding:26px 0 42px}.campaign-public-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:28px}.campaign-brand,.campaign-footer button{border:0;background:transparent;color:inherit;font:inherit}.campaign-brand{display:inline-flex;align-items:center;gap:12px;min-width:0;padding:0;color:#17233c;font-size:18px;font-weight:800}.campaign-brand-mark{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#079a8f,#1d4eed);border-radius:14px;box-shadow:0 14px 28px #1d4eed2e}.campaign-header-button,.campaign-primary-link,.campaign-secondary-link,.public-campaign-cta,.campaign-whatsapp-cta a{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;border-radius:999px;text-decoration:none;font-weight:800}.campaign-header-button,.campaign-secondary-link{border:1px solid #cbd6e2;color:#12386f;background:#fff}.campaign-primary-link,.public-campaign-cta,.campaign-whatsapp-cta a{border:0;color:#fff;background:linear-gradient(135deg,#079a8f,#1d4eed);box-shadow:0 14px 30px #1d4eed2e}.campaign-hero-public{display:flex;align-items:center;min-height:clamp(210px,24vw,275px);padding:clamp(24px,3.2vw,34px);border:1px solid #dfe8f2;border-radius:10px;background:radial-gradient(circle at 90% 12%,rgba(10,169,156,.1),transparent 26%),linear-gradient(135deg,#fff,#edf5ff);box-shadow:0 20px 50px #17233c14}.campaign-hero-public>div{max-width:780px}.campaign-eyebrow{display:block;margin-bottom:10px;color:#0f766e;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.campaign-hero-public h1{max-width:720px;color:#17233c;font-size:clamp(23px,3.6vw,41px);line-height:.98;font-weight:700}.campaign-hero-public h1 span,.campaign-hero-public h1 strong{display:block}.campaign-hero-public h1 strong{color:#07111f;font-size:1.1em;font-weight:900}.campaign-hero-public p{max-width:650px;margin-top:18px;color:#5b6b84;font-size:clamp(17px,2vw,21px);font-weight:500}.campaign-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.campaign-list-section,.campaign-whatsapp-cta,.campaign-footer{border:1px solid #dfe8f2;border-radius:10px;background:#fff;box-shadow:0 8px 22px #17233c0d}.campaign-list-section{margin-top:22px;padding:clamp(20px,3vw,30px)}.campaign-section-head{min-width:0;display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px}.campaign-section-head h2,.campaign-whatsapp-cta h2{color:#17233c;font-size:clamp(24px,3vw,34px);line-height:1.15;font-weight:800}.campaign-filter-bar{display:grid;grid-template-columns:minmax(220px,1fr) 140px;gap:12px}.campaign-search{position:relative;display:flex;align-items:center;min-width:0}.campaign-search svg{position:absolute;left:16px;color:#718096}.campaign-search input{min-height:48px;padding-left:44px;border-radius:14px}.campaign-filter-bar select{min-height:48px;border-radius:14px}.campaign-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.public-campaign-card{overflow:hidden;display:grid;border:1px solid #dfe8f2;border-radius:10px;background:#fff;box-shadow:0 10px 24px #17233c0f}.public-campaign-media{position:relative;min-height:165px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#079a8fe0,#1d4eede6),radial-gradient(circle at 20% 20%,rgba(255,255,255,.22),transparent 30%)}.public-campaign-media img{width:100%;height:100%;object-fit:cover}.public-campaign-card-body{display:grid;gap:13px;padding:18px}.public-campaign-card-top,.public-campaign-meta,.public-campaign-progress-copy{display:flex;align-items:center;justify-content:space-between;gap:12px}.public-campaign-card-top{min-height:66px}.public-campaign-ring{position:relative;width:clamp(54px,5vw,62px);aspect-ratio:1;flex:0 0 auto;display:grid;place-items:center;border-radius:999px;background:conic-gradient(#079a8f var(--progress),#edf2f7 0deg);box-shadow:inset 0 0 0 1px #17233c0a}.public-campaign-ring:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:inherit;background:#fff;box-shadow:0 8px 18px #17233c14}.public-campaign-ring:after{content:"";position:absolute;top:0;left:50%;width:7px;height:7px;border-radius:999px;background:#079a8f;transform:translate(-50%)}.public-campaign-ring span{position:relative;z-index:1;color:#17233c;font-size:13px;font-weight:800}.public-campaign-card h3{overflow-wrap:anywhere;color:#17233c;font-size:21px;line-height:1.2;font-weight:800}.public-campaign-card p{color:#5b6b84;font-size:14px;font-weight:500}.public-campaign-progress-copy strong{color:#17233c;font-size:18px;font-weight:800}.public-campaign-progress-copy span,.public-campaign-meta span{color:#5b6b84;font-size:13px;font-weight:700}.public-campaign-cta{width:100%;margin-top:4px}.campaign-empty-state{padding:28px;border:1px dashed #cbd6e2;border-radius:10px;color:#5b6b84;text-align:center;font-weight:700}.campaign-whatsapp-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:22px;padding:clamp(22px,4vw,34px);border:0;color:#fff;background:linear-gradient(135deg,#0f766e,#0891b2,#2563eb);box-shadow:0 22px 45px #0f766e3d}.campaign-whatsapp-cta .campaign-eyebrow{color:#fffc}.campaign-whatsapp-cta h2{color:#fff;font-weight:800}.campaign-whatsapp-cta p{max-width:720px;margin-top:10px;color:#ffffffe0;font-weight:500}.campaign-whatsapp-cta a{gap:10px;min-height:54px;padding:0 26px;color:#fff;background:#25d366;box-shadow:0 16px 32px #25d36657;transition:background .2s ease,box-shadow .2s ease,transform .2s ease}.campaign-whatsapp-cta a:hover{background:#1ebe5d;box-shadow:0 18px 36px #1ebe5d61;transform:translateY(-1px)}.whatsapp-icon{width:22px;height:22px;flex:0 0 auto;object-fit:contain;display:block}.campaign-footer{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:22px;margin-top:22px;padding:26px}.campaign-footer div{display:grid;align-content:start;gap:8px}.campaign-footer strong{color:#17233c;font-weight:800}.campaign-footer span,.campaign-footer a,.campaign-footer button{color:#5b6b84;font-size:14px;font-weight:600;text-align:left;text-decoration:none;padding:0}@media(max-width:920px){.campaign-card-grid,.campaign-footer{grid-template-columns:1fr}.campaign-section-head,.campaign-whatsapp-cta{align-items:stretch;flex-direction:column}.campaign-filter-bar{grid-template-columns:1fr}}@media(max-width:640px){.campaign-public-shell{width:min(100% - 24px,1180px);padding-top:18px}.campaign-public-header{align-items:flex-start}.campaign-header-button{min-height:42px;padding:0 14px;font-size:13px}.campaign-hero-public{padding:24px 18px}.campaign-hero-public h1{font-size:24px}.campaign-hero-public p{font-size:16px}.campaign-whatsapp-cta a,.campaign-primary-link,.campaign-secondary-link{width:100%}.public-campaign-progress-copy,.public-campaign-meta{align-items:flex-start;flex-direction:column;gap:4px}.public-campaign-card-top{min-height:62px}.public-campaign-ring{width:56px}}.secondary-button{color:#fff;background:#079a8f}.outline-button{min-height:54px;padding:0 18px;border:1px solid #cbd6e2;border-radius:8px;color:#00386c;background:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px}.primary-action-button{min-height:54px;padding:0 18px;border:0;border-radius:8px;color:#fff;background:linear-gradient(135deg,#079a8f,#1d4eed);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap}.ghost-button,.text-button{color:#334155;background:#eaf2fa}.text-button{width:100%;margin-top:14px}.icon-button{width:58px;padding:0;background:#edf2f7;color:#334155}.icon-button.compact{width:38px;min-height:38px;border-radius:10px;color:#0f766e;background:#ecfdf5}.icon-button.compact:hover{color:#075985;background:#e0f2fe}.icon-button.danger{color:#dc2626;background:#fff1f2}.error-box,.success-box,.muted-box{padding:16px 18px;border-radius:14px;font-weight:600;margin-bottom:18px}.error-box{color:#b91c1c;background:#fff1f2;border:1px solid #fecdd3}.success-box{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.muted-box{color:#52627a;background:#eaf2fa}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-shell{max-width:720px;text-align:center}.auth-shell .logo,.success-shell .logo{margin:0 auto 24px}.login-panel{margin-top:28px;text-align:left}.login-panel label+label{margin-top:18px}.admin-layout{min-height:100vh;display:grid;grid-template-columns:288px minmax(0,1fr);background:#f7f8fd;color:#17233c}.admin-sidebar{min-height:100vh;display:flex;flex-direction:column;gap:26px;padding:28px 24px 30px;background:#eef2f8;border-right:1px solid #cfd6e2}.admin-brand{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:center}.admin-brand-icon{width:46px;height:46px;display:grid;place-items:center;color:#fff;background:#00386c;border-radius:8px}.admin-brand strong{display:block;color:#17233c;font-size:18px;line-height:1.15;font-weight:700}.admin-brand span{display:block;margin-top:4px;color:#5b6b84;font-weight:500;font-size:13px}.admin-nav{display:grid;gap:8px}.admin-nav-item{width:100%;min-height:54px;display:flex;align-items:center;justify-content:flex-start;gap:13px;padding:0 18px;border:0;border-radius:8px;color:#5b6b84;background:transparent;font-size:15px;font-weight:600}.admin-nav-item.active{color:#0b3b73;background:#d6e6fb}.admin-nav-item:hover,.admin-nav-item:focus-visible{color:#0b3b73;background:#e3eefb}.admin-nav-parent-label{justify-content:flex-start;min-height:44px;color:#5b6b84;font-size:15px;font-weight:600;cursor:default}.admin-nav-parent-label:hover{color:#5b6b84;background:transparent}.admin-nav-parent-label>span:first-of-type{flex:1;text-align:left}.admin-subnav{display:grid;gap:6px;margin:-2px 0 4px 30px;padding:0 0 0 20px;border-left:2px solid #dbe7f4}.admin-subnav-item{width:100%;min-height:38px;padding:0 14px;border:0;border-radius:8px;color:#5b6b84;background:transparent;font-size:13.5px;font-weight:600;text-align:left;cursor:pointer}.admin-subnav-item:hover{color:#0b3b73;background:#eef4fb}.admin-subnav-item.active{color:#0b3b73;background:#d6e6fb}.collect-button{width:100%;min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:auto;border:0;border-radius:8px;color:#fff;background:#00386c;font-size:15px;font-weight:700}.admin-main{min-width:0;overflow-x:hidden;padding:0 40px 48px}.admin-topbar{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 -40px 36px;padding:0 40px;background:#fff;border-bottom:1px solid #d8deea}.topbar-search{width:min(420px,100%);min-height:54px;display:flex;align-items:center;gap:12px;padding:0 18px;border-radius:14px;background:#ededf3;color:#5b6b84}.topbar-search input{min-height:50px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.topbar-search input:focus{border:0;box-shadow:none}.topbar-actions{display:flex;align-items:center;gap:14px}.topbar-icon{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:999px;color:#00386c;background:transparent}.admin-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:999px;color:#fff;background:#1a4f8b;font-weight:700}.role-badge{display:inline-flex;align-items:center;justify-content:center;min-width:86px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.role-badge.admin{color:#0b3b73;background:#dbeafe}.role-badge.treasurer{color:#047857;background:#dcfce7}.role-badge.teacher{color:#b45309;background:#fef3c7}.dashboard-shell{width:min(100% - 32px,1360px)}.settings-page{display:grid;gap:22px}.view-as-control label{min-width:280px}.view-as-control select{min-height:48px;border-radius:8px;font-size:14px}.settings-card{padding:24px;background:#fff;border:1px solid #dbe4ef;border-radius:8px;box-shadow:0 6px 18px #17233c0d}.settings-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.settings-card h2{color:#17233c;font-size:22px;line-height:1.2;font-weight:700}.special-collections-page{display:grid;gap:22px}.special-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.special-page-actions{display:flex;justify-content:flex-end}.special-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.special-card{overflow:hidden;display:grid;border:1px solid #dbe4ef;border-radius:10px;background:#fff;box-shadow:0 8px 22px #17233c0f}.special-card-image{position:relative;min-height:172px;background:linear-gradient(135deg,#e8f6f5,#e9f0ff)}.special-card-image img{width:100%;height:100%;min-height:172px;display:block;object-fit:cover}.special-card-placeholder{width:100%;min-height:172px;display:grid;place-items:center;color:#0f766e}.special-status{position:absolute;top:14px;right:14px;padding:7px 12px;border-radius:999px;font-size:12px;font-weight:800}.special-status.active{color:#047857;background:#dcfce7}.special-status.closed{color:#64748b;background:#e2e8f0}.special-card-body{display:grid;gap:18px;padding:20px}.special-card-body h2{margin:0 0 8px;overflow-wrap:anywhere;color:#17233c;font-size:20px;line-height:1.25;font-weight:700}.special-card-body p{margin:0;color:#5b6b84;font-size:14px;line-height:1.55;font-weight:500}.special-amount-row,.special-meta-row,.special-progress-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.special-amount-row span,.special-progress-top span,.special-meta-row span{color:#5b6b84;font-size:13px;font-weight:600}.special-amount-row strong{display:block;margin-top:4px;color:#17233c;font-size:21px;font-weight:800}.special-progress{display:grid;gap:8px}.special-progress-top strong{color:#0f766e;font-size:15px}.special-progress-track{overflow:hidden;height:10px;border-radius:999px;background:#e2e8f0}.special-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(135deg,#079a8f,#1d4eed)}.special-card .outline-button{width:100%}.special-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.outline-button.danger{color:#b91c1c}.outline-button.danger:hover,.outline-button.danger:focus{border-color:#fecaca;background:#fff1f2}.special-modal{width:min(100%,780px)}.special-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:16px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7}.special-danger-zone div{display:grid;gap:4px}.special-danger-zone strong{color:#991b1b;font-size:15px;font-weight:700}.special-danger-zone span{color:#7f1d1d;font-size:13px;font-weight:500}.special-report-page{display:grid;gap:18px}.special-report-toolbar{display:flex;justify-content:space-between;align-items:end;gap:16px;padding:8px 0 0;background:transparent}.special-report-toolbar label{display:grid;gap:8px;color:#5b6b84;font-size:13px;font-weight:700}.special-report-toolbar select{min-width:320px;min-height:54px;padding:0 18px;border:1px solid #cbd6e3;border-radius:8px;background:#fff;color:#17233c;font:inherit;font-weight:500}.special-report-campaign{display:grid;grid-template-columns:minmax(0,1fr) auto 320px;align-items:center;gap:28px;padding:28px;border:1px solid #cfd8e5;border-radius:8px;background:#fff}.special-status.inline{position:static;display:inline-flex;width:max-content;margin-bottom:10px}.special-report-campaign h2{margin:0 0 6px;color:#17233c;font-size:27px;line-height:1.15;font-weight:750}.special-report-campaign p{max-width:760px;margin:0;color:#5b6b84;font-size:15px;line-height:1.55}.report-progress-bar{margin-top:26px}.report-progress-bar .special-progress-track{height:18px;background:#e7e9f0}.special-report-progress-meta{display:flex;justify-content:space-between;gap:16px;margin-top:12px;color:#2f3b4f;font-size:16px;font-weight:650}.special-report-percent{display:grid;justify-items:center;gap:2px;color:#0f3a72}.special-report-percent strong{color:#123e78;font-size:32px;line-height:1;font-weight:800}.special-report-percent span{color:#17233c;font-size:11px;font-weight:800;letter-spacing:.08em}.special-report-deadline-card{position:relative;display:grid;place-items:center;min-height:134px;overflow:hidden;padding:18px;border-radius:8px;background:#e9eaf0;color:#17233c}.special-report-deadline-card span{color:#5b6b84;font-size:15px;font-weight:700}.special-report-deadline-card strong{color:#0f3a72;font-size:42px;line-height:1;font-weight:800}.special-report-deadline-card em{position:relative;z-index:1;color:#2f3b4f;font-size:11px;font-style:normal;font-weight:800;letter-spacing:.16em}.deadline-clock{position:absolute;right:-10px;bottom:-10px;color:#64748b17;stroke-width:1.4}.special-report-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.special-report-stat-card{display:grid;align-content:space-between;gap:18px;min-height:178px;padding:26px 28px;border:1px solid #cfd8e5;border-radius:8px;background:#fff}.stat-card-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.stat-icon{display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;border-radius:6px;background:#d9e8ff;color:#123e78}.stat-card-topline small{color:#123e78;font-size:12px;font-weight:800;letter-spacing:.03em}.special-report-stat-card>span{color:#2f3b4f;font-size:16px;font-weight:500}.special-report-stat-card>strong{color:#17233c;font-size:24px;line-height:1.15;font-weight:750}.special-report-table-card{overflow:hidden;border:1px solid #cfd8e5;border-radius:8px;background:#fff}.special-report-table-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:28px}.special-report-table-header h2{margin:0 0 4px;color:#17233c;font-size:22px;font-weight:750}.special-report-table-header p{margin:0;color:#2f3b4f;font-size:13px;font-weight:500}.special-report-table-tools{display:flex;align-items:center;gap:10px}.special-report-table-tools .search-box{min-width:260px}.special-report-table-tools select,.special-report-table-tools input[type=date]{min-height:48px;max-width:150px;padding:0 12px;border:1px solid #cbd6e3;border-radius:8px;background:#fff;color:#17233c;font:inherit;font-size:14px;font-weight:600}.filter-icon-button{display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;border:1px solid #cbd6e3;border-radius:8px;background:#fff;color:#17233c;cursor:pointer}.special-report-table thead th{background:#f0f2f7}.receipt-status{display:inline-flex;align-items:center;justify-content:center;min-width:86px;min-height:28px;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:750;letter-spacing:.03em}.receipt-status.dihantar{background:#dcfce7;color:#2f7d4d}.receipt-status.menunggu{background:#fef3c7;color:#a16207}.receipt-status.gagal{background:#fee2e2;color:#b91c1c}.text-link.as-button{padding:0;border:0;background:transparent;cursor:pointer}.special-report-table-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 28px;border-top:1px solid #dbe4ef;background:#fbfcff;color:#2f3b4f;font-size:13px;font-weight:650}.report-pagination{display:flex;align-items:center;gap:8px}.report-pagination button{min-width:38px;height:38px;border:1px solid #cbd6e3;border-radius:4px;background:#fff;color:#17233c;font-size:15px;font-weight:700}.report-pagination button.active{border-color:#123e78;background:#123e78;color:#fff}.report-pagination button:disabled{opacity:.45}.special-public-form .form-panel{display:grid;gap:18px}.compact-hero .ghost-button{justify-self:end}.special-public-hero-copy p{margin:0;color:#5b6b84;font-size:17px;font-weight:600}.special-public-summary{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.9fr);align-items:center;gap:28px;padding:4px 0 12px}.special-public-summary-copy{display:grid;align-content:center;gap:12px}.special-status.inline{position:static;display:inline-flex;justify-self:start}.special-public-summary h2{margin:0;color:#17233c;font-size:clamp(30px,3.8vw,46px);line-height:1.2;font-weight:800}.special-public-summary p{margin:0;color:#5b6b84;font-size:16px;line-height:1.6;font-weight:500}.special-end-date{color:#5b6b84;font-size:15px;font-weight:600;margin-top:4px}.special-public-progress-display{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-self:end;width:min(100%,430px);gap:18px;margin:0;padding:18px;border:1px solid #dbe4ef;border-radius:18px;background:#fff;box-shadow:0 12px 32px #0f234014}.special-progress-ring{--ring-size: 112px;--ring-thickness: 14px;width:var(--ring-size);height:var(--ring-size);display:grid;place-items:center;border-radius:50%;background:conic-gradient(#11a08f var(--progress),#eef2f6 0deg);position:relative}.special-progress-ring:after{content:"";position:absolute;inset:var(--ring-thickness);border-radius:50%;background:#fff}.special-progress-ring span{position:relative;z-index:1;color:#17233c;font-size:24px;font-weight:800}.special-progress-copy{min-width:0}.special-progress-copy strong{display:block;color:#17233c;font-size:clamp(19px,1.9vw,24px);line-height:1.25;font-weight:800}.special-progress-copy>span{display:block;margin-top:8px;color:#6b7280;font-size:13px;line-height:1.35;font-weight:500;text-decoration:none}.special-progress-copy p{margin-top:8px;color:#6b7280;font-size:14px;line-height:1.2;font-weight:600}.special-donation-help{margin:-8px 0 0;color:#5b6b84;font-size:15px;font-weight:500}.special-donation-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:2px}.special-donation-amounts .amount-option{min-height:64px;border-width:2px;border-radius:14px;font-size:clamp(20px,3vw,30px);box-shadow:none}.custom-donation-field{margin-bottom:8px}.donation-focus-amount{gap:10px}.donation-amount-box{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:104px;padding:0 26px;border:2px solid #cbd6e2;border-radius:22px;background:radial-gradient(circle at top right,rgba(10,169,156,.12),transparent 34%),#fff;box-shadow:0 18px 45px #0f234014}.has-error .donation-amount-box{border-color:#ef4444}.donation-amount-box span{color:#0f766e;font-size:clamp(28px,5vw,44px);font-weight:800}.donation-amount-box input{width:100%;min-height:auto;padding:0;border:0;border-radius:0;background:transparent;color:#17233c;font-size:clamp(42px,9vw,76px);font-weight:800;line-height:1}.donation-amount-box input:focus{outline:none;box-shadow:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.students-page{display:grid;gap:22px}.students-summary-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.student-count-card,.student-role-card{display:grid;gap:6px;padding:22px;border:1px solid #dbe4ef;border-radius:8px;background:#fff;box-shadow:0 6px 18px #17233c0d}.student-count-card span,.student-role-card span{color:#5b6b84;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.student-count-card strong,.student-role-card strong{color:#17233c;font-size:34px;line-height:1.1;font-weight:750}.student-count-card p,.student-role-card p{margin:0;color:#5b6b84;font-size:14px;font-weight:500}.students-card{padding:24px}.students-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.students-filter-bar{grid-template-columns:160px 190px minmax(260px,1fr)}.managed-student-table{min-width:980px}.managed-student-table th:last-child,.managed-student-table td:last-child{text-align:center}.managed-student-modal{width:min(100%,960px)}.student-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.student-form-grid>label:first-child{grid-column:1 / -1}.student-modal-actions{grid-column:1 / -1}.student-siblings-section{grid-column:1 / -1;display:grid;gap:14px;padding:16px;border:1px solid #dbe4ef;border-radius:8px;background:#f8fafc}.siblings-empty{color:#5b6b84;font-size:14px;font-weight:600}.admin-user-table{min-width:1040px}.admin-user-table select{min-height:40px;padding:0 34px 0 12px;border-radius:8px;font-size:13px}.admin-user-table .role-badge{margin-top:8px}.super-admin-note{display:block;margin-top:4px;color:#718096;font-size:11.5px;font-weight:600}.password-cell{display:grid;gap:4px}.password-cell code{display:inline-flex;width:fit-content;max-width:170px;padding:6px 8px;overflow-wrap:anywhere;border-radius:8px;background:#eff6ff;color:#0f3769;font-family:Inter,Plus Jakarta Sans,system-ui,sans-serif;font-size:13px;font-weight:700}.password-cell small{color:#718096;font-size:11.5px;font-weight:500}.password-copy-button{width:fit-content;min-height:28px;padding:0;color:#0f766e;background:transparent;font-size:11.5px;font-weight:700}.assigned-class-controls{display:grid;grid-template-columns:minmax(104px,1fr) minmax(130px,1fr);gap:8px}.settings-actions{justify-content:flex-start}.outline-button.small{min-height:36px;padding:0 12px;border-radius:8px;font-size:12.5px}.settings-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.generated-password-input{display:grid;grid-template-columns:1fr auto;gap:8px}.settings-form .primary-action-button{align-self:end;min-height:50px}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.permission-grid>div{padding:16px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0}.permission-grid p{margin-top:12px;color:#5b6b84;font-size:14px;font-weight:500}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.toolbar{display:flex;gap:12px;flex-wrap:wrap}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-bottom:28px}.stat-card{background:#fff;border:1px solid #dfe8f2;border-radius:8px;padding:22px}.stat-card span{color:#5b6b84;font-weight:600}.stat-card strong{display:block;margin-top:8px;color:#17233c;font-size:32px;font-weight:700}.metric-card{min-height:236px;padding:30px;background:#fff;border:1px solid #dbe4ef;border-radius:8px;box-shadow:0 6px 18px #17233c12}.metric-card-top{min-height:78px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.metric-icon{width:78px;height:78px;display:grid;place-items:center;border-radius:24px}.metric-card.blue .metric-icon{color:#2563eb;background:#edf5ff}.metric-card.green .metric-icon{color:#00a650;background:#eefcf3}.metric-card.teal .metric-icon{color:#009a8f;background:#effdfb}.metric-corner{color:#8aa0bb;margin-top:22px}.metric-top-text{color:#009a8f;font-size:16px;font-weight:700;margin-top:24px;white-space:nowrap}.metric-label{display:block;color:#465772;font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.035em}.metric-value{display:block;margin-top:10px;color:#17233c;font-size:clamp(32px,3.4vw,42px);line-height:1.05;font-weight:800}.metric-helper{display:block;margin-top:12px;color:#5b6b84;font-size:15px;font-weight:500}.metric-helper.positive{color:#00a650}.metric-breakdown{display:flex;flex-direction:column;gap:8px}.breakdown-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#5b6b84}.breakdown-row span{font-weight:500}.breakdown-row strong{color:#17233c;font-weight:700;min-width:40px;text-align:right}.class-panel{margin-bottom:22px;padding:24px}.class-panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.class-panel-header h2{color:#17233c;font-size:clamp(24px,2.5vw,32px);line-height:1.18;font-weight:700}.class-panel-header p{color:#5b6b84;font-size:15px;font-weight:400}.eyebrow{display:block;margin-bottom:6px;color:#718096;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.class-summary-row{display:flex;align-items:stretch;gap:12px}.class-summary-card{min-height:70px;padding:12px 18px;border-radius:8px;background:#f1f7ff;border:1px solid #cfe0f6;display:flex;align-items:center;justify-content:center;gap:8px}.class-summary-card span{color:#5b6b84;font-weight:600;font-size:15px;line-height:1.2}.class-summary-card strong{color:#17233c;font-size:32px;line-height:1;font-weight:800}.class-summary-count{min-width:300px}.class-summary-count span{font-size:18px;font-weight:500}.class-summary-rate{min-width:300px;justify-content:space-between}.class-summary-rate strong{font-size:38px}.filter-bar{display:grid;grid-template-columns:160px 190px minmax(260px,1fr) auto auto;gap:16px;align-items:end;padding:18px;margin-bottom:22px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.filter-bar input,.filter-bar select{min-height:50px;border-radius:8px;border-width:1px;font-size:15px;font-weight:500}.export-menu-wrap{position:relative;display:flex}.export-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:30;min-width:190px;padding:8px;border:1px solid #dbe4ee;border-radius:10px;background:#fff;box-shadow:0 18px 40px #0f172a29}.export-menu button{width:100%;min-height:40px;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:#17233c;font-size:14px;font-weight:650;text-align:left;cursor:pointer}.export-menu button:hover,.export-menu button:focus{background:#eef4fb;outline:none}.search-box{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 14px;border:1px solid #cbd6e2;border-radius:8px;background:#fff;color:#5b6b84}.search-box svg{color:#64748b;flex:0 0 auto}.search-box input{min-height:46px;padding:0;border:0;box-shadow:none}.search-box input:focus{border:0;box-shadow:none}.student-table{min-width:1160px}.student-table thead{background:#f1f5f9}.student-name-column{max-width:360px}.status-column{min-width:140px}.student-name{display:flex;align-items:center;gap:12px;min-width:0}.student-name strong{overflow-wrap:anywhere;color:#17233c;font-weight:650}.status-chip{display:inline-flex;min-width:max-content;justify-content:center;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.status-chip.paid{color:#047857;background:#dcfce7}.status-chip.manual{color:#1d4ed8;background:#dbeafe}.status-chip.partial{color:#b45309;background:#fef3c7}.status-chip.unpaid{color:#b91c1c;background:#fee2e2}.status-chip.unsuccessful{color:#9f1239;background:#ffe4e6}.status-chip.unregistered{color:#475569;background:#e2e8f0}.action-cell{width:112px;text-align:center}.action-cell .compact{margin:0 auto}.table-action-group{display:inline-flex;align-items:center;justify-content:center;gap:8px}.muted-action{color:#94a3b8;font-weight:600}.recent-panel h2{margin-bottom:12px;font-size:20px}.recent-panel table{min-width:980px}.recent-panel th,.recent-panel td{padding:10px 12px}.recent-panel th{font-size:11.5px}.recent-panel td{font-size:13.5px;line-height:1.35}.recent-panel .status-chip{min-width:82px;padding:4px 9px;font-size:12px}.recent-panel .icon-button.compact{width:34px;height:34px}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;color:#5b6b84;font-size:14px;font-weight:500}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-controls button{min-width:38px;height:38px;padding:0 12px;border:1px solid #cbd6e2;border-radius:8px;background:#fff;color:#17233c;font-size:16px;font-weight:700}.pagination-controls button.active{color:#fff;border-color:#2563eb;background:#2563eb}.pagination-controls button:disabled{opacity:.45;cursor:not-allowed}.pagination-controls span{padding:0 8px;color:#17233c;font-weight:700}.detail-modal{width:min(100%,980px);position:relative}.student-detail-header{align-items:flex-start}.student-detail-title{min-width:0}.student-summary-strip{width:min(100%,460px);display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(110px,1fr) minmax(110px,1fr);align-items:center;gap:0;margin-left:auto;padding:12px 16px;border:1px solid #dfe8f2;border-radius:8px;background:#f8fafc}.student-summary-item{display:grid;gap:5px;min-width:0;padding:0 16px}.student-summary-item:first-child{padding-left:0}.student-summary-item:last-child{padding-right:0}.student-summary-item+.student-summary-item{border-left:1px solid #d5e0ec}.student-summary-item>span{color:#5b6b84;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.student-summary-item>strong{min-width:0;color:#17233c;font-size:15px;font-weight:700;white-space:nowrap}.student-summary-item .status-chip{width:fit-content;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid #dfe8f2;border-radius:8px;background:#f8fafc}.student-detail-grid div{display:grid;gap:5px}.student-detail-grid span{color:#5b6b84;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.student-detail-grid strong{color:#17233c;font-size:13px;font-weight:650}.payment-history-block{align-content:start;grid-row:span 2}.payment-history-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.payment-history-list li{min-width:0;display:flex;align-items:baseline;gap:7px;color:#17233c;font-size:14px;font-weight:400;line-height:1.5}.payment-history-index{flex:0 0 auto;color:#5b6b84;font-size:14px;font-weight:800;letter-spacing:0;text-transform:none}.payment-history-date-link{min-height:0;padding:0;border:0;color:#0b5cad;background:transparent;font:inherit;font-weight:400;text-align:left;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.payment-history-date-link:hover,.payment-history-date-link:focus{color:#00386c}.payment-history-meta{color:#5b6b84;font-size:14px;font-weight:400;letter-spacing:0;text-transform:none}.parent-detail-block{grid-row:span 2}.parent-phone-line{display:grid;gap:5px;margin-top:14px}.sibling-list{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #dfe8f2}.sibling-list ol{margin:0;padding-left:18px;color:#17233c;font-size:14px;line-height:1.55}.sibling-list p{margin:0;color:#17233c;font-size:14px;font-weight:650}.empty-state{padding:26px;text-align:center;color:#718096;font-size:15px;font-weight:600}.compact-panel{padding:24px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#0f172a7a}.modal-panel{width:min(100%,1100px);max-height:min(92vh,920px);overflow:auto;display:grid;gap:18px;padding:26px;border-radius:8px;background:#fff;border:1px solid #dfe8f2;box-shadow:0 26px 70px #0f172a3d}.modal-header,.modal-actions,.manual-section-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.modal-actions{margin-top:6px}.modal-action-group{display:inline-flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.link-button{min-height:44px;padding:0;border:0;color:#00386c;background:transparent;font-size:15px;font-weight:700;text-decoration:none}.link-button:hover{text-decoration:underline}.modal-header h2{color:#17233c;font-size:28px;line-height:1.2;font-weight:700}.modal-grid{display:grid;gap:16px}.modal-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-payment-modal{width:min(100%,960px)}.link-modal{width:min(100%,760px)}.payment-link-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px;border:1px solid #dfe8f2;border-radius:8px;background:#f8fafc}.payment-link-summary div{display:grid;gap:5px}.payment-link-summary span{color:#5b6b84;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.payment-link-summary strong{color:#17233c;font-size:14px;font-weight:650}.payment-link-summary .status-chip{width:fit-content}.bill-code-line{color:#5b6b84;font-size:14px;font-weight:500}.bill-code-line strong{color:#17233c}.payment-link-field{display:grid;gap:8px}.payment-link-field input{font-size:14px}.compact-success{padding:12px 14px;font-size:14px}.edit-payment-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid #dfe8f2;border-radius:8px;background:#f8fafc}.edit-payment-summary div{display:grid;gap:4px}.edit-payment-summary div:nth-child(3){grid-column:1 / -1}.edit-payment-summary span,.amount-change-preview span{color:#5b6b84;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.edit-payment-summary strong{color:#17233c;font-size:15px;font-weight:650}.amount-change-preview{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:8px;background:#f8fafc}.amount-change-preview strong{font-size:20px;font-weight:800}.amount-change-preview .positive{color:#047857}.amount-change-preview .negative{color:#b91c1c}.edit-history-panel{display:grid;gap:8px;padding:12px 14px;border:1px solid #dfe8f2;border-radius:8px;background:#fff}.edit-history-list{display:grid;gap:4px}.edit-history-item{padding:0;border:0;background:transparent}.edit-history-item span{color:#718096;font-size:12px;font-weight:400;line-height:1.5}.history-empty{padding:0;border-radius:0;color:#718096;background:transparent;font-size:12px;font-weight:400}.wide-field{grid-column:1 / -1}.manual-section-title{margin-top:4px;color:#17233c;font-size:18px;font-weight:700}.text-inline-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;border:0;border-radius:8px;color:#00386c;background:#eaf2fa;font-size:14px;font-weight:700}.manual-children{display:grid;gap:14px}.manual-child-row{display:grid;grid-template-columns:150px 190px minmax(220px,1fr) auto;gap:14px;align-items:end;padding:16px;border:1px solid #dfe8f2;border-radius:8px;background:#f8fafc}.sibling-edit-row{grid-template-columns:160px 220px minmax(340px,1fr) 64px;column-gap:16px;row-gap:10px;align-items:end;background:#fff}.sibling-edit-row .sibling-year-field,.sibling-edit-row .sibling-class-field,.sibling-edit-row .sibling-name-field{min-width:0}.sibling-edit-row .sibling-delete-button{width:64px;justify-self:end}@media(max-width:920px){.sibling-edit-row{grid-template-columns:1fr}}.manual-amounts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.manual-amount{min-height:76px;border:2px solid #cbd6e2;border-radius:8px;background:#fff;color:#17233c;font-weight:800;font-size:24px}.manual-amount span{display:block;margin-bottom:2px;color:#718096;font-size:12px;font-weight:600;text-transform:uppercase}.manual-amount.selected{border-color:#0aa99c;background:#effdfb;color:#087d73}.manual-payment-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,5fr);gap:16px;align-items:end}.manual-payment-input span{min-height:58px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:0 16px;border:2px solid #cbd6e2;border-radius:16px;background:#fff;color:#17233c;font-size:24px;font-weight:800}.manual-payment-input input{min-height:54px;padding:0;border:0;border-radius:0;box-shadow:none;font-size:24px;font-weight:800;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.manual-payment-date,.note-field{display:grid;gap:10px}.manual-payment-date input,.note-field textarea{width:100%;min-height:58px;padding:14px 16px;border:1px solid #cbd6e2;border-radius:16px;background:#fff;font-size:15px;color:#17233c}.manual-payment-date input{min-height:58px}.note-field textarea{resize:vertical;min-height:58px;min-height:132px}.manual-attachment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}.manual-attachment-grid .receipt-picker,.manual-attachment-grid .note-field{display:grid;gap:10px}.manual-attachment-grid .receipt-picker span{min-height:58px;align-items:center}.manual-payment-input input::-webkit-outer-spin-button,.manual-payment-input input::-webkit-inner-spin-button{margin:0;-moz-appearance:none;appearance:none;-webkit-appearance:none}.manual-payment-input input:focus{border:0;box-shadow:none}.manual-success{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.manual-success.bottom{margin:0}.receipt-picker{position:relative}.receipt-picker span{min-height:58px;display:inline-flex;align-items:center;gap:10px;padding:0 18px;border:2px dashed #cbd6e2;border-radius:16px;color:#00386c;background:#f8fafc;font-weight:700}.receipt-picker input{position:absolute;inset:auto;width:1px;height:1px;opacity:0;pointer-events:none}.data-panel h2{margin-bottom:18px;color:#17233c;font-size:22px;font-weight:700}.table-wrap,.students-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:1000px}th,td{padding:15px 14px;text-align:left;border-bottom:1px solid #e5e7eb}th{color:#5b6b84;font-size:12px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}td{color:#17233c;font-size:15px;font-weight:500}.success-shell{max-width:920px;text-align:center}.success-icon{color:#06b96d;margin:0 auto 18px}.receipt-panel{margin:28px 0;text-align:left}.receipt-amount{text-align:center;padding:24px;margin-bottom:28px;color:#087d73;background:#effdfb;border:1px solid #7ce4d8;border-radius:18px}.receipt-amount span,.child-summary span{display:block;color:#5b6b84;font-weight:500}.receipt-amount strong{display:block;font-size:52px;line-height:1;font-weight:800}.receipt-panel h2{margin:24px 0 10px}.child-summary{display:flex;justify-content:space-between;gap:16px;padding:16px;margin-top:12px;border-radius:14px;background:#f0fdf4;border:1px solid #bbf7d0}@media(max-width:780px){html,body,#root{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}.landing-shell{width:100%;max-width:100%;padding:18px 14px 44px}.landing-header{align-items:flex-start;flex-direction:column;margin-bottom:34px}.landing-nav{width:100%;justify-content:flex-start}.landing-hero{grid-template-columns:1fr;min-height:auto;padding-bottom:24px}.landing-hero h1,.redirect-shell h1{font-size:44px}.landing-hero p,.redirect-shell p{font-size:17px}.landing-actions,.landing-primary-link,.landing-secondary-link{width:100%}.landing-info-panel div{align-items:flex-start;flex-direction:column;gap:6px}.page-shell,.dashboard-shell,.success-shell,.auth-shell{width:100%;max-width:100%;padding:20px 14px 44px;overflow-x:hidden}.hero .ghost-button{display:none}.hero{grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;margin-bottom:20px}.logo{width:58px;height:58px;border-radius:18px}.logo svg{width:30px;height:30px}.hero h1{max-width:100%;font-size:20px;line-height:1.1;overflow-wrap:anywhere;white-space:normal}.hero p{margin-top:4px;font-size:12px;line-height:1.35}.section-heading{gap:10px;margin:26px 0 16px}.section-heading h2{font-size:19px}input,select,textarea,.payment-link-field input{width:100%;max-width:100%;min-width:0;min-height:54px;padding:13px 16px;font-size:16px}.form-panel,.login-panel,.receipt-panel,.data-panel,.class-panel{width:100%;max-width:100%;padding:22px;overflow-x:hidden}.form-panel *,.login-panel *,.children-list,.child-row,.manual-child-row,.payment-area,.amount-grid,.manual-amounts,.manual-payment-grid,.manual-attachment-grid{max-width:100%}.manual-payment-grid,.manual-attachment-grid,.admin-layout{grid-template-columns:1fr}.admin-sidebar{min-height:auto;padding:18px;border-right:0;border-bottom:1px solid #cfd6e2}.admin-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-nav-item{min-height:48px;gap:10px;padding:0 12px;font-size:14px}.admin-nav-item span,.admin-subnav-item{overflow-wrap:anywhere}.admin-subnav{grid-column:1 / -1;margin-left:24px;padding-left:16px}.collect-button{margin-top:0}.admin-main{padding:0 16px 36px}.admin-topbar{display:grid;margin:0 -16px 24px;padding:16px}.topbar-search{width:100%}.topbar-actions{justify-content:space-between;width:100%}.dashboard-header{grid-template-columns:1fr;display:grid}.grid.two,.modal-grid.two,.child-row,.manual-child-row,.balance-card,.editable-payment-card,.balance-after-row,.student-detail-grid,.student-form-grid,.students-summary-row,.special-summary-grid,.special-card-grid,.amount-grid,.manual-amounts,.stats-grid,.metric-grid,.filter-bar,.settings-form,.permission-grid{grid-template-columns:1fr}.balance-card,.editable-payment-card,.balance-after-row{display:grid;align-items:stretch}.editable-payment-card .icon-button,.public-payment-modal .modal-actions,.public-payment-modal .modal-actions button,.export-menu-wrap,.export-menu-wrap .outline-button{width:100%}.export-menu{right:0;left:0}.view-as-control label{min-width:0}.settings-card,.students-card{padding:18px}.students-actions{justify-content:stretch}.students-actions .outline-button,.students-actions .primary-action-button,.special-page-actions .primary-action-button,.toolbar .outline-button,.toolbar .primary-action-button{width:100%}.special-page-actions{justify-content:stretch}.special-card-body{padding:18px}.special-card-actions{grid-template-columns:1fr}.special-danger-zone,.special-report-toolbar{display:grid;align-items:stretch}.special-report-toolbar select{min-width:0;width:100%}.special-report-campaign,.special-report-stat-grid{grid-template-columns:1fr}.special-report-campaign{gap:18px;padding:18px}.special-report-campaign h2{font-size:23px}.special-report-progress-meta,.special-report-table-header,.special-report-table-tools,.special-report-table-footer{display:grid;align-items:stretch}.special-report-progress-meta{gap:8px}.special-report-deadline-card{min-height:120px}.special-report-stat-card{min-height:150px;padding:20px}.special-report-table-header{padding:20px}.special-report-table-tools .search-box,.special-report-table-tools select,.special-report-table-tools input[type=date]{min-width:0;max-width:none;width:100%}.filter-icon-button{width:100%}.special-report-table-footer{padding:16px 20px}.special-donation-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}.special-public-summary{grid-template-columns:1fr;gap:18px}.special-public-summary h2{font-size:26px}.special-public-progress-display{grid-template-columns:1fr;justify-items:center;justify-self:stretch;width:100%;gap:16px;padding:18px;text-align:center}.special-progress-ring{--ring-size: 112px;--ring-thickness: 15px}.special-progress-copy strong{font-size:28px}.special-progress-copy>span{font-size:15px}.special-progress-copy p{font-size:14px}.donation-amount-box{min-height:86px;padding:0 18px}.compact-hero .ghost-button{justify-self:stretch}.student-count-card,.student-role-card{padding:18px}.student-count-card strong,.student-role-card strong{font-size:28px}.assigned-class-controls{grid-template-columns:1fr}.child-row,.manual-child-row{width:100%;gap:14px;padding:16px;overflow-x:hidden}.child-row .icon-button.danger,.manual-child-row .icon-button.danger{justify-self:end}.student-detail-header{align-items:stretch;flex-wrap:wrap;padding-right:68px}.student-detail-title{flex:1 1 calc(100% - 68px)}.student-detail-header>.icon-button{position:absolute;top:18px;right:18px;width:48px;min-height:48px;border-radius:14px}.student-summary-strip{order:3;display:grid;grid-template-columns:minmax(132px,1.5fr) minmax(82px,1fr) minmax(82px,1fr);width:100%;margin-left:0;padding:10px 12px;overflow:visible}.student-summary-item{min-width:0;padding:0 10px}.student-summary-item:first-child{min-width:0;padding-left:0}.student-summary-item:last-child{padding-right:0}.student-summary-item>span{font-size:10px}.student-summary-item>strong{font-size:14px}.student-summary-item .status-chip{width:fit-content;max-width:100%;min-width:0;padding:5px 8px;font-size:12px}.parent-detail-block,.payment-history-block{grid-row:auto}.section-heading.split .secondary-button,.manual-section-title .text-inline-button{min-width:0;white-space:normal}.section-heading.split .secondary-button{align-self:flex-end}.payment-area{gap:16px}.payment-area p{font-size:15px}.payment-area p:not(:first-child){color:#334155;font-size:18px;font-weight:700}.payment-area .amount-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.payment-area .amount-option{min-height:82px;border-radius:18px;font-size:28px}.class-panel-header,.class-summary-row{display:grid}.class-summary-card,.class-summary-count,.class-summary-rate{min-width:0}.pagination-bar{align-items:flex-start;flex-direction:column}.pagination-controls{flex-wrap:wrap}.modal-backdrop{padding:12px}.modal-panel{max-height:calc(100vh - 24px);padding:20px}.modal-actions,.modal-action-group{display:grid;justify-content:stretch}.modal-actions button,.modal-action-group button,.modal-action-group a{width:100%}.split{align-items:flex-start;flex-direction:column}.amount-option{min-height:78px}.child-summary{display:grid}}@media(max-width:420px){.student-summary-strip{grid-template-columns:1fr;padding:8px 6px}.student-summary-item{padding:8px 6px}.student-summary-item:first-child,.student-summary-item:last-child{min-width:0;padding-right:6px;padding-left:6px}.student-summary-item+.student-summary-item{border-top:1px solid #d5e0ec;border-left:0}.student-summary-item>strong{font-size:13px}.student-summary-item .status-chip{min-width:0;padding:5px 7px;font-size:11px}}
