:root{--navy:#172635;--orange:#ea671e;--ink:#1b2935;--muted:#69747e;--border:#e8ebee;--bg:#f5f7f9}.tools-stack{gap:24px;display:grid}.tool-card{min-width:0;padding:26px}.tool-card h2{margin-bottom:14px}.tool-card h3{margin-top:22px}.tool-card label{gap:8px;margin:16px 0;display:grid}.tool-card fieldset,.modal fieldset{border:0;min-width:0;margin:0;padding:0}.tool-card summary{cursor:pointer;padding:16px 0;font-weight:600}.tool-card details+details{border-top:1px solid var(--border)}.tool-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.tool-row,.family-toolbar{justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.tool-row{border-bottom:1px solid var(--border)}.tool-row small,.guardian-access small{color:var(--muted);margin-top:5px;display:block}.tool-actions{flex-wrap:wrap;gap:8px;display:flex}.tool-card .confirm-line{align-items:flex-start;gap:10px;line-height:1.5;display:flex}.confirm-line input[type=checkbox]{flex-shrink:0;width:18px;height:18px;margin-top:3px}.guardian-access{border-bottom:1px solid var(--border);gap:14px;padding:20px 0;display:grid}.enrollment-review{border-bottom:1px solid var(--border);padding:12px 0 24px}.access-qr{border-radius:10px;max-width:100%;height:auto;margin:16px 0;display:block}.whatsapp-reply{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);font:inherit;border-radius:12px;padding:20px;line-height:1.6}.family-page{width:min(760px,100%);margin:0 auto;padding:32px 20px 60px}.family-page .brand{color:var(--ink);align-items:center;gap:12px;margin-bottom:32px;font-size:26px;display:flex}.family-page .brand img{width:44px;height:44px}.family-page .panel{margin-top:22px}.family-balance{margin:16px 0;font-size:36px;display:block}.account-number{overflow-wrap:anywhere;font-size:20px;font-weight:700}@media (max-width:600px){.tool-card{padding:20px}.tool-grid{grid-template-columns:1fr;gap:0}.family-toolbar{flex-direction:column;align-items:flex-start}.family-page h1{font-size:28px}.tool-card select{max-width:100%}}*{box-sizing:border-box}[hidden]{display:none!important}body{color:var(--ink);background:var(--bg);margin:0;font-family:DM Sans,Arial,sans-serif;font-size:16px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button{color:inherit;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;display:inline-flex}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #eb862b}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand{font-family:Manrope,Arial,sans-serif}h1{letter-spacing:-1.15px;margin-bottom:10px;font-size:32px;font-weight:800}h2{letter-spacing:-.4px;margin:0;font-size:19px}h3{font-size:17px}p{color:var(--muted);line-height:1.6}small{color:var(--muted);font-size:14px;line-height:1.6;display:block}.app{min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#c8d0d6;z-index:10;flex-direction:column;width:246px;padding:34px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;letter-spacing:-.7px;align-items:center;gap:11px;padding:0 7px;font-size:23px;font-weight:800;display:flex}.brand img{width:44px;height:44px}.brand-light{font-weight:400}.brand small{letter-spacing:2px;color:#9cabb8;margin-top:3px;font:10px DM Sans,sans-serif}.class-select{color:#fff;border:1px solid #3c4854;border-radius:9px;align-items:center;gap:10px;margin:36px 0 32px;padding:12px 10px;font-size:14px;display:flex}.class-select small{color:#96a6b4;font-size:12px}.class-select>svg{margin-left:auto}.class-icon{background:#344451;border-radius:6px;padding:9px 8px;font-weight:700}.nav-label{letter-spacing:1.6px;color:#7f909e;margin-bottom:12px;padding-left:14px;font-size:11px}nav{gap:7px;display:grid}nav button{border-radius:8px;justify-content:flex-start;width:100%;padding:14px 13px;font-size:14px;font-weight:500}nav button svg{color:#92a3b1}nav button.active{background:var(--orange);color:#fff}nav button.active svg{color:#fff}nav button:hover:not(.active){background:#283946}.nav-count{background:#fff2;border-radius:5px;margin-left:auto;padding:2px 5px;font-size:12px}.sidebar-bottom{color:#aebbc6;margin-top:auto;padding-top:45px;font-size:11px}.demo-dot,.private span{background:#73a896;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.person{color:#e7ebee;border-top:1px solid #354350;align-items:center;gap:10px;margin-top:18px;padding-top:24px;font-size:13px;display:flex}.person>span{background:#3d4c59;border-radius:50%;place-items:center;width:34px;height:34px;font-size:12px;display:grid}.person small{color:#9babb8;font-size:12px}.person button{margin-left:auto}main{flex:1;min-width:0;margin-left:246px}.topbar{border-bottom:1px solid var(--border);height:77px;color:var(--muted);background:#fff;justify-content:space-between;align-items:center;padding:0 44px;font-size:13px;display:flex}.topbar>span{align-items:center;gap:10px;display:flex}.private{font-size:12px}.content{max-width:1520px;margin:auto;padding:39px 44px 22px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:31px;display:flex}.page-heading p{margin:0;font-size:14px}.eyebrow{letter-spacing:1.7px;color:#84909b;margin-bottom:13px;font-size:11px;font-weight:700}.primary{background:var(--orange);color:#fff;white-space:nowrap;border-radius:7px;min-height:44px;padding:12px 17px;font-size:14px;font-weight:650}.primary:hover{background:#d75a13}.secondary{background:#fff;border:1px solid #dbe0e5;border-radius:7px;min-height:42px;padding:10px 14px;font-size:14px}.secondary:hover{background:#f6f8fa}.stats{grid-template-columns:1.25fr 1fr 1fr;gap:19px;margin-bottom:27px;display:grid}.stat{border:1px solid var(--border);background:#fff;border-radius:12px;padding:25px 26px}.stat>span{color:#606d79;justify-content:space-between;font-size:14px;font-weight:500;display:flex}.stat>strong{letter-spacing:-1px;margin:16px 0 11px;font-family:Manrope,sans-serif;font-size:32px;font-weight:750;display:block}.stat small{font-size:12px}.stat small b{padding:0 4px}.stat.dark{background:var(--navy);color:#fff;border-color:var(--navy)}.stat.dark>span,.stat.dark small{color:#b6c3cc}.stat.dark svg{color:#c2a07b}.panel{border:1px solid var(--border);background:#fff;border-radius:12px;overflow:hidden}.panel-title{justify-content:space-between;align-items:center;gap:14px;padding:24px 26px;display:flex}.panel-title h2{align-items:center;gap:9px;display:flex}.panel-title h2>span{color:#6c7680;background:#f1f4f6;border-radius:5px;padding:3px 7px;font-family:DM Sans,sans-serif;font-size:12px}.text-button{white-space:nowrap;font-size:13px;font-weight:600}.text-button:hover{color:var(--orange)}.dashboard-grid{grid-template-columns:2.05fr 1fr;gap:23px;margin-bottom:27px;display:grid}.goal{border-top:1px solid #f0f2f4;align-items:center;gap:15px;margin:0 26px;padding:22px 0;display:flex}.goal-icon{color:#c57034;background:#fff0e5;border-radius:10px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.color-1{color:#5480b4;background:#eaf0f8}.color-2{color:#688b64;background:#edf4ec}.color-3{color:#9980b0;background:#f4eef9}.goal-main{flex:1;min-width:0}.goal-main>div:first-child{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.goal-main>div:first-child>b{font-size:14px}.goal-main>div:first-child>span{white-space:nowrap;font-size:13px}.goal-main>div:first-child small{font-size:12px;display:inline}.progress{background:#eef1f4;border-radius:10px;height:6px;margin:13px 0 9px;overflow:hidden}.progress>i{background:var(--orange);border-radius:10px;height:100%;display:block}.goal-main>small{justify-content:space-between;font-size:12px;display:flex}.attention{background:#fcf0e5;border:1px solid #f3decc;border-radius:12px;padding:27px}.attention .eyebrow{color:#b5805b}.attention-number{letter-spacing:-2px;color:#96552e;justify-content:space-between;align-items:center;margin:24px 0 14px;font:700 58px Manrope,sans-serif;display:flex}.attention-number svg{color:#bc916e}.attention h2{margin-bottom:12px;font-size:20px}.attention p{font-size:14px;line-height:1.7}.attention button{border-top:1px solid #e9d6c6;justify-content:space-between;width:100%;margin-top:22px;padding:19px 0 0;font-size:14px;font-weight:650}.table-wrap{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}th{color:#85909a;border-top:1px solid var(--border);white-space:nowrap;background:#fbfcfd;padding:13px 24px;font-size:12px;font-weight:500}td{vertical-align:middle;border-top:1px solid #eff1f4;padding:17px 24px}td b{font-weight:550}td small{margin-top:3px;font-size:12px}td:not(:first-child){white-space:nowrap}td.description{min-width:280px;max-width:540px}td.description b{white-space:normal;overflow-wrap:anywhere;line-height:1.5;display:block}.student-cell{align-items:center;gap:12px;display:flex}.avatar{color:#708195;background:#edf1f5;border-radius:50%;flex-shrink:0;place-items:center;width:35px;height:35px;font-size:12px;font-weight:650;display:grid}.empty{text-align:center;color:#8c98a1;padding:40px 24px}.empty h3{color:#667682;margin:14px 0 8px}.empty p{margin:0;font-size:14px}.empty>svg{margin:auto}.search{color:#83919d;border:1px solid #e0e5e9;border-radius:7px;align-items:center;gap:8px;margin:0;padding:8px 12px;display:flex}.search input{background:0 0;border:0;outline:none;width:185px;padding:0;font-size:13px}.badge{color:#697985;background:#eef2f6;border-radius:5px;padding:5px 8px;font-size:12px;display:inline-block}.badge.green{color:#3e7d59;background:#eaf6ee}.badge.amber{color:#a37827;background:#fff3d9}.collection-grid{grid-template-columns:repeat(2,1fr);gap:22px;display:grid}.collection{padding:26px}.collection h2{margin:21px 0 10px;font-size:22px}.collection p{align-items:center;gap:7px;font-size:13px;display:flex}.collection strong{margin:28px 0 5px;font:750 29px Manrope,sans-serif;display:block}.collection .progress{margin:17px 0 24px}.collection .secondary{width:100%}.import-box{align-items:center;gap:20px;margin-bottom:24px;padding:26px;display:flex}.import-box>svg{color:var(--orange);flex-shrink:0}.import-box>div{flex:1;min-width:0}.import-box h2{overflow-wrap:anywhere;font-size:17px}.import-box p{margin:8px 0 0;font-size:13px}.import-history,.import-review{margin-bottom:24px}.import-history .panel-title{border-bottom:1px solid var(--border)}.import-history-item{grid-template-columns:42px minmax(0,1fr) auto;gap:16px;padding:22px 26px;display:grid}.import-history-item+.import-history-item{border-top:1px solid var(--border)}.import-file-icon{box-sizing:content-box;color:var(--muted);background:var(--bg);border-radius:10px;padding:10px}.import-file-details h3{overflow-wrap:anywhere;margin:0 0 8px;font-size:14px}.import-file-meta{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.6}.import-file-status{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.import-status{white-space:nowrap;border-radius:20px;padding:6px 11px;font-size:12px;font-weight:600;display:inline-flex}.import-status.complete{color:#277647;background:#eaf5ee}.import-status.pending{color:#945511;background:#fff3e3}.import-status.cancelled{background:var(--bg);color:var(--muted)}.import-cancel-form{border-top:1px solid var(--border);grid-column:2/-1;padding-top:16px}.import-cancel-form .actions{flex-wrap:wrap;justify-content:flex-start}.import-history>[role=alert]{margin:16px 26px}.import-review-actions{flex-wrap:wrap;align-items:center;gap:16px;padding:0 26px 20px;display:flex}.import-review-hint{color:var(--muted);margin:0;padding:0 26px 20px;font-size:12px;line-height:1.6}@media (max-width:760px){.import-history-item{grid-template-columns:32px minmax(0,1fr);gap:12px;padding:18px}.import-file-icon{width:18px;height:18px;padding:7px}.import-file-status{flex-flow:wrap;grid-column:2;align-items:center}.import-cancel-form{grid-column:1/-1}.import-review-actions,.import-review-hint{padding-left:18px;padding-right:18px}}.pagination{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:20px;padding:18px 24px;font-size:14px;display:flex}.pagination button{border:1px solid var(--border);border-radius:5px;padding:8px}.positive{color:#357454}.muted{color:var(--muted);font-size:13px}footer{color:#98a1a9;justify-content:space-between;padding:30px 0 0;font-size:12px;display:flex}footer span{font-size:11px}.alert{border-radius:8px;align-items:center;gap:10px;margin-bottom:20px;padding:14px 18px;font-size:14px;display:flex}.alert button{margin-left:auto}.error,.invalid{color:#a23929;background:#fff0eb}.success{color:#3f7556;background:#eaf6ed}.invalid{border-radius:6px;padding:10px;font-size:14px}.login{max-width:460px;margin:9vh auto;padding:38px}.login h1{margin:25px 0 12px}.login p{font-size:15px}.login small{margin-top:24px;font-size:12px}.login .primary{width:100%;margin-top:8px}.loading{text-align:center;color:var(--muted);padding:50px}.overlay{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1f3273;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:92vh;padding:33px;position:relative;overflow-y:auto;box-shadow:0 25px 90px #13263c33}.modal h2{margin:10px 24px 27px 0;font-size:24px}.modal .close{position:absolute;top:18px;right:18px}.modal .eyebrow{font-size:10px}form label{margin:17px 0;font-size:14px;font-weight:500;display:block}input,select,textarea{width:100%;color:var(--ink);outline-color:var(--orange);background:#fff;border:1px solid #d8dfe4;border-radius:6px;min-width:0;margin-top:7px;padding:11px 12px;display:block}input[type=checkbox]{width:17px;height:17px;accent-color:var(--orange);flex-shrink:0;margin:0}textarea{resize:vertical;min-height:77px}.check-label,.participants label{align-items:center;gap:10px;font-size:13px;display:flex}.actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:25px;display:flex}.danger-button{color:#fff;background:#b42318;border:1px solid #b42318;border-radius:6px;padding:11px 16px;font-weight:600}.danger-button:hover{background:#912018}.class-manager{gap:24px;display:grid}.class-reset{border-color:#e4b4af}.class-select>div{width:100%;min-width:0}.class-select select{max-width:100%;font-size:13px}.class-select label{color:var(--muted);font-size:12px}.onboarding{margin-bottom:24px;padding:24px}.onboarding h2{margin:16px 0 10px}.participants{max-height:190px;overflow-y:auto}fieldset{border:1px solid var(--border);border-radius:8px;margin:20px 0;padding:0 16px}legend{font-size:14px}.bank-info{background:#f6f8fa;border-radius:8px;padding:18px}.bank-info p{overflow-wrap:anywhere;margin:8px 0;font-size:13px}.bank-info b{font-size:23px}.bank-info small{font-size:12px}.detail-stats{background:#f6f8fa;border-radius:8px;justify-content:space-between;margin-bottom:17px;padding:20px;display:flex}.detail-stats strong{margin-top:6px;font-size:23px;display:block}.detail-stats small{font-size:12px}.detail-row{border-bottom:1px solid var(--border);padding:13px 0;font-size:14px}.modal h3{margin-top:25px}.modal>p{font-size:14px}@media (min-width:1500px){.content{padding-top:48px}.stat{padding:29px}.goal{padding:25px 0}}@media (max-width:1150px){.sidebar{width:210px;padding:28px 14px}.brand{font-size:21px}.brand img{width:36px}main{margin-left:210px}.content{padding:30px 25px}.topbar{padding:0 25px}.stats{gap:12px}.stat{padding:20px}.stat>strong{font-size:26px}.dashboard-grid{grid-template-columns:1fr}.attention{grid-template-columns:1fr 2fr;column-gap:20px;display:grid}.attention-number{grid-row:2/4;margin:0}.attention h2{grid-area:1/2}.attention p{grid-column:2}.attention button{grid-column:2;margin:0}.goal-main>div:first-child small{display:none}h1{font-size:28px}}@media (max-width:760px){.app{display:block}.sidebar{width:100%;padding:16px 18px;position:relative}.brand{font-size:22px}.brand img{width:37px;height:37px}.brand small{font-size:8px}.class-select,.nav-label,.sidebar-bottom{display:none}nav{gap:5px;margin-top:20px;display:flex;overflow-x:auto}nav button{flex-shrink:0;gap:6px;width:auto;padding:10px 11px;font-size:12px}nav button svg{width:16px}.nav-count{display:none}main{margin:0}.topbar{height:48px;padding:0 19px;font-size:12px}.private{display:none!important}.content{padding:26px 18px}.page-heading{margin-bottom:22px;display:block}.page-heading>.primary{margin-top:20px}.page-heading p{font-size:14px}.eyebrow{font-size:10px}h1{letter-spacing:-.7px;font-size:26px}.stats{grid-template-columns:1fr 1fr}.stat.dark{grid-column:1/-1}.stat{padding:21px}.stat>span{font-size:12px}.stat>strong{font-size:24px}.stat small{font-size:11px}.stat.dark>strong{font-size:34px}.dashboard-grid{gap:20px}.panel-title{flex-wrap:wrap;align-items:flex-start;padding:19px}h2{font-size:17px}.goal{gap:11px;margin:0 18px}.goal-main>div:first-child{flex-direction:column;align-items:flex-start;gap:5px}.goal-main>div:first-child small{display:inline}.goal-main>small{font-size:11px}.goal-icon{width:38px;height:38px}.collection-grid{grid-template-columns:1fr}.attention{padding:24px;display:block}.attention-number{margin:20px 0 10px}.attention button{margin-top:20px}.import-box{flex-wrap:wrap;padding:21px}.import-box>div{min-width:75%}.import-box>button{width:100%}th,td{padding:14px 18px}footer{line-height:1.8;display:block}footer span{font-size:10px;display:block}.overlay{padding:12px}.modal{max-height:94vh;padding:25px}.modal h2{font-size:21px}.detail-stats{gap:14px;padding:15px}.detail-stats strong{font-size:19px}.login{margin:20px auto;padding:26px}.search{width:100%}.search input{width:100%;margin:0}.actions{justify-content:flex-start}.table-wrap td,.alert{font-size:13px}}@media (prefers-reduced-motion:no-preference){button{transition:background .15s,color .15s}.modal{animation:.15s ease-out appear}@keyframes appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}.roster-manager{margin-bottom:24px;padding:24px}.roster-manager>.panel-title{padding:0 0 16px}.roster-manager>.actions{justify-content:flex-start;align-items:center;margin-top:0}.roster-manager .roster-grid>div{min-width:0}.roster-manager p{color:#667085;line-height:1.6}.roster-manager h3{margin:24px 0 12px}.roster-manager label{flex-direction:column;gap:7px;margin:12px 0;display:flex}.roster-manager input:not([type=checkbox]),.roster-manager select{color:#24382f;width:100%;font:inherit;background:#fff;border:1px solid #d9ded9;border-radius:10px;padding:11px}.roster-manager input[type=file]{max-width:300px;font-size:12px}.roster-manager .check-label{flex-direction:row}.roster-grid{grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:28px;margin-top:24px;display:grid}.roster-list{max-height:640px;overflow:auto}.roster-person{text-align:left;background:#f8faf8;border:1px solid #e2e8e2;border-radius:12px;flex-direction:column;align-items:flex-start;gap:5px;width:100%;margin:5px 0;padding:14px;display:flex}.roster-person.selected{background:#e6f2e9;border-color:#46765c}.roster-person small,.roster-contact small{color:#667085;display:block}.roster-contact{border:1px solid #e2e8e2;border-radius:12px;margin:12px 0;padding:16px}.roster-import{background:#f8faf8;border:1px solid #dce7df;border-radius:14px;margin:20px 0;padding:20px}.roster-import td{vertical-align:top;white-space:normal;min-width:210px}.roster-manager details{margin-top:24px}.roster-manager summary{cursor:pointer;font-weight:600}@media (max-width:760px){.roster-manager{padding:18px}.roster-grid{grid-template-columns:1fr}.roster-list{max-height:280px}.roster-manager .actions{flex-wrap:wrap}}.ocr-import{border-top:1px solid #e2e8e2;margin:20px 0;padding-top:20px}.ocr-photo{width:min(100%,600px);margin:auto;line-height:0;position:relative}.ocr-photo img{width:100%;height:auto;display:block}.ocr-photo svg{cursor:crosshair;touch-action:manipulation;width:100%;height:100%;position:absolute;inset:0}.ocr-row{border:1px solid #e2e8e2;border-radius:10px;margin:12px 0;padding:12px}.ocr-row input:not([type=checkbox]){width:100%}.ocr-comparison{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:18px;display:grid}.ocr-source{min-width:0;margin:0}.ocr-source figcaption{color:#526355;margin-bottom:8px;font-size:12px}.ocr-source img{border-radius:4px;width:100%;height:auto;display:block}@media (max-width:760px){.ocr-comparison{grid-template-columns:minmax(0,1fr);gap:8px}}
