@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{color:#172033;font-synthesis:none;background:#fff;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}.app-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{color:#fff;background:#0d4db3;flex-direction:column;min-height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #ffffff2b;align-items:center;gap:12px;height:88px;padding:0 24px;font-weight:700;line-height:1.35;display:flex}.brand-icon{border:1px solid #ffffff80;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.sidebar nav{gap:6px;padding:22px 12px;display:grid}.sidebar button{color:#ffffffc2;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:13px;padding:13px 14px;display:flex}.sidebar button svg{width:19px}.sidebar button:hover,.sidebar button.selected{color:#fff;background:#ffffff21}.logout{margin:auto 12px 20px!important}.topbar{border-bottom:1px solid #e3e8f0;justify-content:space-between;align-items:center;gap:24px;min-height:88px;padding:16px 32px;display:flex}.topbar h1{margin:0 0 4px;font-size:24px}.topbar p{color:#687386;margin:0;font-size:13px}.admin-badge{align-items:center;gap:10px;display:flex}.admin-badge>span{color:#0d4db3;background:#e8f0ff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.admin-badge div{display:grid}.admin-badge small{color:#7b8495;margin-top:2px}.menu-button{background:0 0;border:0;padding:6px;display:none}.content{max-width:1500px;padding:0 32px 36px}.tabs{border-bottom:1px solid #e3e8f0;gap:34px;margin-bottom:24px;display:flex}.tabs button{color:#667085;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:9px;padding:20px 4px 16px;font-weight:600;display:flex}.tabs button svg{width:20px}.tabs button.active{color:#0d4db3;border-color:#0d4db3}.form-panel{border:1px solid #dfe5ed;border-radius:10px;margin-bottom:24px;padding:24px}.section-heading h2{margin:0 0 5px;font-size:18px}.section-heading p{color:#697386;margin:0 0 22px;font-size:13px}.form-grid{gap:18px;display:grid}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:1.25fr repeat(3,minmax(0,1fr))}.field{gap:8px;font-size:13px;font-weight:600;display:grid}.field input,.field select{color:#172033;background:#fff;border:1px solid #cfd6e2;border-radius:7px;outline:none;height:44px;padding:0 12px}.field input:focus,.field select:focus{border-color:#0d4db3;box-shadow:0 0 0 3px #0d4db31f}.form-action{justify-content:flex-end;align-items:end;display:flex}.form-action.align-left{justify-content:flex-start}.primary{color:#fff;cursor:pointer;background:#0d4db3;border:0;border-radius:7px;height:44px;padding:0 22px;font-weight:600}.primary:hover{background:#0a3f94}.notice{color:#176b31;background:#edf8f0;border:1px solid #b8dfc0;border-radius:7px;margin-bottom:16px;padding:11px 14px;font-size:13px}.table-wrap{border:1px solid #dfe5ed;border-radius:10px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid #e5e9ef;padding:16px 18px;font-size:13px}th{color:#4c5668;background:#f7f9fc;font-weight:600}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}.status{color:#9a5a16}.status.active{color:#17813b}.actions{gap:8px;display:flex}.actions button{color:#0d4db3;cursor:pointer;background:#fff;border:1px solid #cfd8e7;border-radius:6px;place-items:center;width:32px;height:32px;display:grid}.scrim{display:none}@media (width<=980px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:20;width:248px;transition:left .2s;position:fixed;left:-260px}.sidebar.open{left:0}.scrim{z-index:10;background:#11182759;border:0;display:block;position:fixed;inset:0}.menu-button{display:block}.topbar{justify-content:flex-start}.admin-badge{margin-left:auto}.form-grid.three,.form-grid.four{grid-template-columns:1fr 1fr}.content{padding-inline:20px}}@media (width<=620px){.topbar{padding:14px 16px}.topbar p,.admin-badge div{display:none}.content{padding-inline:16px}.tabs{justify-content:space-between;gap:12px}.tabs button{font-size:12px}.form-panel{padding:18px}.form-grid.three,.form-grid.four{grid-template-columns:1fr}.form-action,.form-action.align-left{justify-content:stretch}.primary{width:100%}}.import-panel{background:#f7faff;border:1px solid #cbd9ed;border-radius:10px;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:20px;padding:20px 22px;display:flex}.import-copy{flex:1;align-items:center;gap:14px;min-width:280px;display:flex}.import-copy h2{margin:0 0 5px;font-size:16px}.import-copy p{color:#667085;margin:0;font-size:13px}.import-icon{color:#0d4db3;background:#e4edfc;border-radius:9px;place-items:center;width:42px;height:42px;display:grid}.import-icon svg{width:20px}.import-actions{align-items:center;gap:10px;display:flex}.secondary-button,.file-button{cursor:pointer;border-radius:7px;align-items:center;gap:8px;height:42px;padding:0 15px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.secondary-button{color:#0d4db3;background:#fff;border:1px solid #bfcbe0}.secondary-button:hover{background:#f2f6fc}.file-button svg,.secondary-button svg{width:16px}.file-button input{display:none}.import-result{color:#176b31;border-top:1px solid #d7e1f0;width:100%;padding-top:12px;font-size:13px}.import-result.error{color:#b42318}.import-result span{color:#667085;margin-left:5px}@media (width<=620px){.import-panel{padding:17px}.import-actions{grid-template-columns:1fr;width:100%;display:grid}.secondary-button,.file-button{justify-content:center}}.brand{padding-inline:20px}.brand img{background:#fff;border-radius:5px;width:94px;height:auto;padding:4px}.content{padding-top:28px}.form-panel,.entry-panel{border:1px solid #dfe5ed;border-radius:10px;margin-bottom:24px;padding:24px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.primary{justify-content:center;align-items:center;gap:8px;display:inline-flex}.primary:disabled{opacity:.65;cursor:wait}.notice.error,.form-error{color:#b42318;background:#fff1f0;border:1px solid #f5b9b5;border-radius:7px;padding:11px 14px;font-size:13px}.empty-cell{text-align:center;color:#687386;padding:34px}.amount-cell{color:#0d4db3;font-weight:700}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.metric-grid article{background:#fff;border:1px solid #dfe5ed;border-radius:10px;padding:20px}.metric-grid span{color:#697386;margin-bottom:10px;font-size:13px;display:block}.metric-grid strong{color:#172033;font-size:24px}.login-page{background:linear-gradient(135deg,#edf4ff,#fff 55%,#fff5f5);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #dfe5ed;border-radius:16px;width:min(100%,430px);padding:34px;box-shadow:0 20px 50px #21355c1f}.login-logo{width:205px;max-width:100%;margin:0 auto 30px;display:block}.login-title{color:#0d4db3;align-items:flex-start;gap:12px;margin-bottom:25px;display:flex}.login-title h1{color:#172033;margin:0 0 5px;font-size:20px}.login-title p{color:#687386;margin:0;font-size:13px}.login-form{gap:17px;display:grid}.loading-screen{color:#506079;place-items:center;min-height:100vh;font-weight:600;display:grid}@media (width<=980px){.form-grid.two{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.form-panel,.entry-panel{padding:18px}.form-grid.two{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-grid article{padding:15px}.metric-grid strong{font-size:19px}.brand img{width:82px}}.school-search{position:relative}.school-search input{width:100%}.search-results{z-index:5;background:#fff;border:1px solid #cfd6e2;border-radius:8px;max-height:280px;margin-top:6px;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 14px 30px #12284e26}.search-results button{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #edf0f4;gap:3px;width:100%;padding:12px 14px;display:grid}.search-results button:last-child{border-bottom:0}.search-results button:hover{background:#f4f8ff}.search-results strong{color:#172033;font-size:13px}.search-results span,.search-state,.search-hint,.selected-school{color:#697386;font-size:12px}.search-state{padding:13px 14px}.selected-school{color:#176b31;font-weight:600}.metric-grid small{color:#697386;margin-top:7px;font-size:11px;font-weight:500;display:block}.dashboard-filters{background:#fbfcfe;border:1px solid #dfe5ed;border-radius:10px;margin-bottom:24px;padding:22px 24px}.dashboard-filters .section-heading p{margin-bottom:18px}.filter-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.filter-actions{align-items:end;gap:9px;display:flex}.filter-actions .primary,.filter-actions .secondary-button{flex:1;justify-content:center;padding-inline:12px}.filter-error{margin-top:16px}.filter-limit{color:#697386;margin-top:12px;font-size:11px;display:block}.field-hint{color:#697386;font-size:11px;font-weight:500}.error-text{color:#b42318}.branch-metrics .metric-purchase{background:#eff6ff;border-color:#bfdbfe}.branch-metrics .metric-purchase strong{color:#1d4ed8}.branch-metrics .metric-transactions{background:#f0fdf4;border-color:#bbf7d0}.branch-metrics .metric-transactions strong{color:#15803d}.branch-metrics .metric-schools{background:#fffbeb;border-color:#fde68a}.branch-metrics .metric-schools strong{color:#b45309}.school-lookup-panel{background:#fff;border:1px solid #dfe5ed;border-radius:10px;margin-bottom:24px;padding:22px 24px}.school-lookup-panel .section-heading p{margin-bottom:16px}.school-lookup-row{align-items:end;gap:12px;max-width:680px;display:flex}.school-lookup-row .school-search{flex:1}.clear-school-button{white-space:nowrap}.selected-school-filter{color:#1e40af;background:#eff6ff;border-radius:7px;margin-top:14px;padding:10px 12px;font-size:13px}.actions{flex-wrap:nowrap;gap:9px;min-width:132px;display:flex}.actions button{color:#0d4db3;cursor:pointer;background:#fff;border:1px solid #cfd8e7;border-radius:7px;justify-content:center;align-items:center;width:36px;height:34px;padding:0;font-size:0;display:inline-flex}.actions button:hover{background:#edf4ff}.actions .danger-action{color:#b42318;border-color:#f3c5c2}.actions svg{width:16px}.modal-backdrop{z-index:50;background:#10182873;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:12px;width:min(100%,650px);padding:24px;box-shadow:0 24px 70px #10182840}.modal-heading{justify-content:space-between;gap:20px;margin-bottom:22px;display:flex}.modal-heading h2{margin:0 0 5px;font-size:19px}.modal-heading p{color:#697386;margin:0;font-size:13px}.icon-close{color:#667085;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:34px;height:34px;display:grid}.icon-close:hover{background:#f1f4f8}.icon-close svg{width:19px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.modal-actions .primary{width:auto}.modal-actions .secondary-button{justify-content:center;align-items:center;display:inline-flex}@media (width<=1100px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=620px){.dashboard-filters{padding:18px}.filter-grid{grid-template-columns:1fr}.filter-actions .primary,.filter-actions .secondary-button{width:100%}.modal-card{padding:19px}.modal-actions{grid-template-columns:1fr;display:grid}.modal-actions .primary{width:100%}}.actions .danger-action{color:#fff;background:#d92d20;border-color:#c81e1e}.actions .danger-action:hover{background:#b42318}.date-picker-field{position:relative}.date-picker-button{color:#172033;text-align:left;cursor:pointer;background:#fff;border:1px solid #cfd6e2;border-radius:7px;justify-content:space-between;align-items:center;height:44px;padding:0 12px;font-weight:600;display:flex}.date-picker-button:hover,.date-picker-button:focus{border-color:#0d4db3;outline:0;box-shadow:0 0 0 3px #0d4db31f}.date-picker-button svg{color:#172033;width:18px}.native-date-picker{pointer-events:none;bottom:0;left:0;opacity:0!important;width:1px!important;height:1px!important;position:absolute!important}.sidebar .logout{margin:4px 12px 20px!important}.report-heading{margin:2px 0 14px}.report-heading h2{margin:0 0 5px;font-size:18px}.report-heading p{color:#697386;margin:0;font-size:13px}.report-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-filter-panel{margin-bottom:18px}.report-metrics{margin-bottom:22px}.monthly-summary{gap:14px;display:grid}.month-group{background:#fff;border:1px solid #dfe5ed;border-radius:10px;overflow:hidden}.month-toggle{color:#172033;cursor:pointer;text-align:left;background:#f7f9fc;border:0;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:17px 20px;font-size:14px;display:flex}.month-toggle:hover{background:#f0f5ff}.month-title{align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.month-title b{color:#0d4db3;width:14px;font-size:12px}.month-toggle>span:last-child{color:#596579;font-size:13px}.month-toggle strong{color:#0d4db3}.transaction-link{color:#0d4db3;cursor:pointer;background:#eaf1ff;border:0;border-radius:6px;min-width:38px;padding:6px 10px;font-weight:700}.transaction-link:hover{background:#d9e7ff}.empty-summary{color:#687386}.summary-detail-modal{width:min(100%,760px)}.summary-detail-modal .modal-heading p+p{color:#172033;margin-top:7px}@media (width<=620px){.month-toggle{flex-direction:column;align-items:flex-start;padding:15px}.month-toggle>span:last-child{padding-left:24px}.summary-detail-modal{padding:18px}}.ranking-heading{justify-content:space-between;align-items:end;gap:18px;display:flex}.ranking-heading>div{flex:1}.ranking-heading .field{width:220px}.similar-warning{color:#7a4b00;background:#fff9e8;border:1px solid #f0c36a;border-radius:8px;margin-top:16px;padding:14px}.similar-warning>strong{margin-bottom:4px;display:block}.similar-warning p{color:#7a5a20;margin:0 0 10px;font-size:12px}.similar-school-list{flex-wrap:wrap;gap:8px;display:flex}.similar-school-list button{color:#172033;text-align:left;cursor:pointer;background:#fff;border:1px solid #e2b557;border-radius:7px;gap:2px;padding:8px 10px;display:grid}.similar-school-list button:hover{background:#fff2c9}.similar-school-list span{font-size:12px;font-weight:700}.similar-school-list small{color:#795a23;font-size:11px}@media (width<=620px){.ranking-heading{flex-direction:column;align-items:stretch}.ranking-heading .field{width:100%}.similar-school-list{display:grid}.similar-school-list button{width:100%}}.account-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.account-grid .form-action{grid-column:1/-1;justify-content:flex-start}.account-section{margin:0 0 24px}.account-section .section-heading p{margin-bottom:14px}.current-account{color:#0d4db3;margin-top:4px;font-size:11px;font-weight:600;display:block}.password-modal{width:min(100%,580px)}@media (width<=1200px){.account-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.account-grid{grid-template-columns:1fr 1fr}}@media (width<=620px){.account-grid{grid-template-columns:1fr}.account-grid .form-action{grid-column:auto}}.modal-backdrop:has(.summary-detail-modal){overscroll-behavior:contain}.summary-detail-modal{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 40px);overflow-y:auto}.today-purchases{background:#fff;border:1px solid #dfe5ed;border-radius:10px;margin-bottom:24px;padding:24px}.today-purchases .section-heading p{margin-bottom:16px}.today-purchases-summary{background:#f7f9fc;border:1px solid #dfe5ed;border-radius:8px 8px 0 0;justify-content:space-between;gap:12px;padding:12px 16px;font-size:13px;display:flex}.today-purchases-list{border:1px solid #dfe5ed;border-top:0;border-radius:0 0 8px 8px}.today-purchase-row{border-top:1px solid #e5e9ef;grid-template-columns:minmax(0,1fr) 110px 120px;align-items:center;gap:16px;padding:15px 16px;font-size:13px;display:grid}.today-purchase-row:first-child{border-top:0}.today-purchase-row>div{gap:4px;min-width:0;display:grid}.today-purchase-row>div strong{overflow-wrap:anywhere}.today-purchase-row small,.today-purchase-row time{color:#697386}.today-purchase-row>.amount-cell{text-align:right}.today-purchases-empty{color:#697386;margin:0;font-size:13px}@media (width<=620px){.today-purchases{padding:18px}.today-purchase-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.today-purchase-row>div{grid-column:1/-1}.today-purchase-row>.amount-cell{text-align:right}}
