*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:#fff8e9;color:#112e89;font:16px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #f6d419;outline-offset:3px}[hidden]{display:none!important}.shell{width:min(980px,100%);margin:0 auto;padding:28px 22px 38px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px}.brand{display:inline-block;background:#ffeb00;border:4px solid #151585;border-radius:40px;color:#11137d;padding:2px 16px;font-weight:900;letter-spacing:-.6px;font-size:clamp(20px,3vw,26px)}.tag{border-radius:30px;background:#e6edfc;color:#132f8c;font-weight:850;letter-spacing:.6px;font-size:11px;padding:8px 12px}.login-screen{min-height:70vh;display:flex;justify-content:center;align-items:center;position:relative;padding:8vh 0}.login-card{width:min(540px,100%);background:#fff;border-radius:24px;padding:36px;box-shadow:0 5px 20px #1f356915;z-index:1}.eyebrow{font-size:11px;font-weight:850;letter-spacing:1.4px;color:#566685;margin:0}.login-card h1{text-align:center;font-size:34px;margin:8px 0 10px}.intro{text-align:center;color:#425573;margin:0 0 22px}.login-card label{display:block;font-size:14px;font-weight:750;margin:14px 0 6px}.login-card input{width:100%;padding:14px;border:2px solid #cdd7eb;border-radius:12px;background:#fff;color:#152d62}.button{border:0;border-radius:12px;padding:13px 18px;font-weight:800;background:#122f90;color:white}.button:disabled{opacity:.65;cursor:wait}.full{width:100%;margin-top:20px}.pale{background:#e8edf8;color:#16308a}.outline{background:#fff;color:#17378d;border:2px solid #cbd8f1}.small-button{font-size:13px;padding:9px 13px}.login-hero{position:absolute;width:126px;right:0;bottom:20%;pointer-events:none}.message{color:#ab2920;font-size:14px}.message:not(:empty){padding:10px 12px;border-radius:10px;background:#fff0eb}.hub{background:#fff;border-radius:26px;padding:28px;box-shadow:0 5px 24px #111e4c10}.hub-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.hub h1{font-size:clamp(25px,4vw,36px);margin:5px 0}.subtle{color:#596a85;margin:0}.small{font-size:13px}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.status-card{border:1px solid #d9e2f2;border-radius:16px;padding:18px;background:#fafcff}.status-title{font-size:18px;font-weight:800;color:#152b7b;margin:9px 0}.status-card p:last-child{margin-top:8px}.icon-circle{margin-right:6px}.dot{display:inline-block;width:12px;height:12px;background:#1c9956;border-radius:50%;margin-right:7px}.section-title{font-size:21px;margin:27px 0 12px}.section-title small{font-size:12px;color:#6c7b93;font-weight:600}.management-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.mgmt-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;border:1px solid #dce4f1;border-radius:14px;padding:15px;background:white}.mgmt-icon{font-size:23px}.mgmt-card strong{font-size:14px}.mgmt-card small{font-size:11px;color:#717f96}.employees-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.employee-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.employee-button{background:#fff;border:1px solid #ccd8ed;color:#17348a;text-align:left;border-radius:14px;padding:17px;display:flex;align-items:center;gap:12px;width:100%}.employee-button:hover{background:#f5f7ff}.employee-avatar{display:flex;align-items:center;justify-content:center;background:#f0f4fa;font-size:21px;width:40px;height:40px;border-radius:11px}.employee-info{display:flex;flex-direction:column;flex:1;min-width:0}.employee-info strong{font-size:15px;overflow-wrap:anywhere}.employee-info small{font-size:12px;color:#61718e}.arrow{font-size:24px}.detail .back-button{margin-top:4px}.detail-card{margin-top:18px;border:1px solid #d7e1f2;border-radius:16px;padding:23px;background:#fff}.detail-head{display:flex;gap:14px;align-items:center;margin:16px 0}.detail-head h2{margin:0;font-size:26px}.avatar{width:62px;height:62px;display:grid;place-items:center;background:#edf2fd;border-radius:15px;font-size:28px}.detail-card dl{border-top:1px solid #e3e8f2;margin-top:22px}.detail-card dl>div{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid #e3e8f2}dt{color:#63738c}dd{font-weight:750;margin:0;text-align:right}.footer-brand{margin-top:24px;padding:16px;text-align:center;background:#122d8e;color:#fff;border-radius:13px;font-weight:800}.footer{font-size:11px;color:#6c7b91;text-align:center;margin:22px 0}.empty{border:1px dashed #aabbdc;padding:24px;border-radius:12px;text-align:center;color:#63728b}@media(max-width:680px){.shell{padding:18px 12px}.hub{padding:17px}.status-grid{grid-template-columns:1fr}.management-grid{grid-template-columns:1fr 1fr}.employee-grid{grid-template-columns:1fr}.login-card{padding:28px 20px}.login-hero{width:95px;bottom:9%;right:0}.hub-heading{align-items:center}.hub-heading .button{font-size:12px;padding:10px 11px}.tag{font-size:10px}.employees-heading .section-title{margin:22px 0 12px}}
/* Read-only financial overview */
.financial-overview{padding-top:6px}
.financial-overview h3{font-size:19px;margin:22px 0 10px;color:#122e85}
.financial-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.financial-stat{background:#f4f6fd;border:1px solid #d8e3f7;border-radius:14px;padding:16px;min-width:0;display:flex;flex-direction:column;gap:5px}
.financial-label{font-size:12px;font-weight:850;letter-spacing:.35px;color:#536584}
.financial-stat strong,.awaiting-credit strong{font-size:clamp(23px,4vw,29px);font-variant-numeric:tabular-nums;color:#15338e}
.financial-stat small{font-size:12px;color:#627189}
.awaiting-credit{margin:14px 0;border:1px solid #cad7f5;border-left:6px solid #ffda00;border-radius:13px;background:#fffcef;padding:15px 17px}
.awaiting-credit>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.awaiting-credit p{margin-top:5px}
@media(max-width:540px){.financial-stat-grid{grid-template-columns:1fr 1fr;gap:9px}.financial-stat{padding:11px}.financial-stat strong{font-size:22px}.awaiting-credit>div{align-items:start;flex-direction:column;gap:0}}
/* Secure fictional deposit approval test */
.approvals-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px 0}
.approvals-header h2{font-size:26px;margin:5px 0}
.approval-list{display:grid;gap:14px}
.approval-card{border:1px solid #d3dcf0;border-radius:15px;padding:19px;background:#fff}
.approval-card h3{font-size:20px;margin:0}
.approval-meta{color:#5b6e8b;font-size:13px;margin:2px 0 13px}
.approval-summary{border-radius:11px;background:#f4f6fe;padding:15px;margin:10px 0}
.approval-summary strong{font-size:25px;color:#102e87}
.allocation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.allocation-cell{border:1px solid #dce5f3;border-radius:10px;padding:11px;text-align:center}
.allocation-cell small{display:block;color:#687a90;font-size:12px;font-weight:750}
.allocation-cell strong{font-size:19px;color:#122e85}
.approval-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.approve-btn{background:#186d42}.deny-btn{background:#a62d34}.edit-btn{background:#eef1f7;color:#102f83}
.approval-confirm{background:#fff8e4;border:1px solid #ead59b;border-radius:12px;padding:15px;margin-top:12px}
.approval-confirm strong{display:block;margin-bottom:7px}
.approval-confirm p{margin:0;color:#4a5670}
.approval-form{background:#f7f9ff;border:1px solid #d8e1f5;padding:16px;border-radius:12px;margin-top:12px}
.amount-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.amount-fields label{font-size:13px;font-weight:750;color:#405574;display:flex;flex-direction:column;gap:5px}
.amount-fields input{min-width:0;width:100%;border:2px solid #d0dbee;border-radius:9px;padding:10px;color:#17388e}
.mini-error{color:#9c292e;font-size:13px;margin:8px 0 0}
.approval-list .empty{background:#f8fcf8}
.approval-list .button{min-width:95px}
@media(max-width:540px){.allocation-grid{gap:5px}.allocation-cell{padding:9px 4px}.allocation-cell strong{font-size:16px}.amount-fields{grid-template-columns:1fr}.approvals-header{align-items:flex-start}.approvals-header h2{font-size:21px}.approval-actions .button{flex:1}}

/* Read-only current account balances, separate from lifetime statistics */
.current-balances{border:1px solid #d8e1f5;border-radius:14px;padding:15px;margin:22px 0 13px;background:#fff}
.current-balances-heading h3{margin:0 0 3px;font-size:19px;color:#122e85}
.balances-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:13px 0}
.balance-cell{border-radius:12px;padding:13px 11px;min-width:0;display:flex;flex-direction:column;gap:4px;border:1px solid #d8e3f7;background:#f7f9fe;text-align:center}
.balance-cell span{font-size:12px;font-weight:850;letter-spacing:.6px;color:#465f88}
.balance-cell strong{color:#12328b;font-size:clamp(18px,3vw,25px);font-variant-numeric:tabular-nums;white-space:nowrap}
.balance-cell small{font-size:11px;color:#5e6e88}
.balance-cell.spend{border-top:4px solid #3869d5}
.balance-cell.save{border-top:4px solid #249660}
.balance-cell.share{border-top:4px solid #cf9b17}
.balances-total{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 12px 3px;border-top:1px solid #dbe3f0;font-weight:850}
.balances-total strong{font-size:25px;color:#122e85;font-variant-numeric:tabular-nums}
@media(max-width:540px){.current-balances{padding:12px}.balances-grid{gap:6px}.balance-cell{padding:10px 4px}.balance-cell strong{font-size:17px}.balance-cell small{font-size:10px}.balance-cell span{font-size:11px}}

/* Transfer reviews: iPad-friendly controls */
.transfer-arrow{font-weight:900;color:#17338e;background:#f1f5ff;padding:12px 14px;border-radius:10px;margin:8px 0} .approval-form select{font:inherit;min-height:44px;width:100%;padding:9px;border:1px solid #c6d6f3;border-radius:8px;background:white;color:#18346f}

/* Goal editor: one item and one price, both touch friendly */
.approval-form>label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:750;color:#405574;margin-top:9px}
.approval-form>label input{min-height:44px;width:100%;padding:10px;border:2px solid #d0dbee;border-radius:9px;color:#17388e;background:white}

/* Class SHARE group goal, one active target at a time */
.class-goal-manager{border:1px solid #d2dffa;background:#fff;border-radius:18px;padding:21px;margin:20px 0}
.class-goal-header{display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.class-goal-header h2{margin:0;color:#17348d}.class-goal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}
.class-goal-stats div{background:#f3f6ff;border:1px solid #dce5f7;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:5px}
.class-goal-stats small{color:#526789}.class-goal-stats strong{color:#17348d;font-size:1.4rem}.class-goal-name{font-weight:850;color:#17348d;font-size:1.18rem}
.group-meter{height:16px;overflow:hidden;background:#e7edf8;border:1px solid #d2dffa;border-radius:999px;margin:10px 0 17px}.group-meter-fill{height:100%;width:0;background:#249963;border-radius:999px}
.class-goal-form{padding:16px;background:#f5f8ff;border:1px solid #d3ddf2;border-radius:12px;margin:17px 0}
.class-goal-form label{display:block;color:#17348d;font-weight:800;margin:11px 0 6px}.class-goal-form input{width:100%;font:inherit;border:1px solid #bac8e7;border-radius:10px;height:46px;padding:10px}
.group-confirm{background:#fff8e7;padding:13px;border:1px solid #dacc98;border-radius:10px;margin-top:14px}
@media(max-width:630px){.class-goal-stats{grid-template-columns:1fr}.class-goal-header button{width:100%}}

/* Lead-controlled class expenses: easy to review, edit, approve with separate confirmation */
.class-spending{margin-top:24px;padding-top:20px;border-top:1px solid #d7e0f3}
.class-spending-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.class-spending-heading h3{color:#17348d;font-size:20px;margin:0}
.class-expense-list-title{color:#17348d;margin:20px 0 8px}
.class-expense-item{background:#f9fbff;border:1px solid #d3ddf1;border-radius:12px;padding:15px;margin:10px 0}
.expense-summary{display:flex;justify-content:space-between;gap:16px;align-items:center}
.expense-summary>div{display:flex;flex-direction:column;gap:2px}
.expense-summary small{color:#5b6b88}
.expense-summary>strong{font-size:1.25rem;color:#17348d;white-space:nowrap}
.expense-action-box{margin-top:12px}
.class-goal-form input{font-variant-numeric:tabular-nums}
@media(max-width:600px){.class-spending-heading button{width:100%}.expense-summary{align-items:start}}

/* Payroll period/timecards — simplified teacher controls */
.mgmt-card{font:inherit;color:inherit;text-align:left}.mgmt-card:focus-visible{outline:3px solid #f8d638;outline-offset:3px}
.payroll-teacher{background:white;border:1px solid #d5dffa;border-radius:17px;padding:24px}
.payroll-teacher h2,.payroll-teacher h3{color:#15348f}
.payroll-panel{border:1px solid #d5dffa;border-radius:15px;padding:18px;margin:18px 0}
.period-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.period-fields label,.payroll-panel label{font-weight:750;display:block;margin:8px 0}
.period-fields input{font:inherit;min-height:48px;width:100%;padding:8px;border:2px solid #ced9f4;border-radius:10px}
.payroll-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.payroll-employee-card{border:1px solid #dae2f5;border-radius:12px;padding:15px;background:#fafbff;margin:10px 0}
.payroll-employee-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.payroll-employee-head strong{color:#18378f}
.payroll-hour-breakdown{font-size:.91rem;color:#50627f;margin:8px 0;line-height:1.6}
.payroll-bonus-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:9px}
.payroll-bonus-controls select{font:inherit;min-height:46px;border:2px solid #ced9f4;border-radius:10px;padding:7px;background:white}
.payroll-bonus-controls button{min-height:46px}
.payroll-bonus-controls small{color:#526686}
@media(max-width:570px){.period-fields{grid-template-columns:1fr}.payroll-teacher{padding:14px}}
.payroll-teacher .message{color:#324e80;background:#edf3ff;padding:12px 13px;border:1px solid #d2def8;border-radius:12px}

/* Payroll phase 2: large deliberate teacher controls with 2-step confirmation */
.payroll-review{margin-top:16px;padding-top:12px;border-top:1px solid #d6e0f2}
.payroll-review-buttons{display:flex;flex-wrap:wrap;gap:9px;margin:10px 0}
.payroll-review-buttons .button{min-height:48px}
.payroll-action-panel{padding:14px;margin:10px 0;background:#fff8e6;border:1px solid #edd594;border-radius:12px}
.payroll-action-panel h4{color:#18378f;margin:0 0 9px}
.payroll-action-panel textarea{font:inherit;width:100%;border:2px solid #cdd8f0;border-radius:10px;padding:10px;resize:vertical;min-height:78px;background:#fff}
.payroll-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.payroll-edit-grid label{display:block;font-size:.88rem;color:#18378f}
.payroll-edit-grid select{font:inherit;width:100%;min-height:46px;border:2px solid #cdd8f0;border-radius:10px;padding:7px;background:#fff}
.payroll-review-message{color:#9b3133;font-size:.9rem;min-height:1.1em}
.payroll-locked{color:#116b43;font-weight:800;background:#eaf8ef;border:1px solid #aedac1;padding:13px;border-radius:10px}
.payroll-awaiting{color:#65582d;background:#fff8de;padding:12px;border-radius:10px}
@media(max-width:620px){.payroll-edit-grid{grid-template-columns:1fr}.payroll-review-buttons .button{flex:1;min-width:135px}}

/* Payroll Phase 3 — compact lead-only closing review */
.payroll-close-panel{border:1px solid #b7cdf4;border-radius:14px;background:#f8fbff;margin-top:24px;padding:20px;}
.payroll-close-panel h3{margin:0 0 8px;color:#18368f;}
.payroll-close-panel .payroll-summary{font-weight:700;color:#1b3b83;}
.payroll-close-panel .close-ack-row{display:flex;gap:10px;align-items:flex-start;margin:14px 0;font-size:14px;line-height:1.5;}
.payroll-close-panel .close-ack-row input{width:20px;height:20px;flex:none;margin-top:2px;}
.payroll-close-panel .group-confirm{margin-top:16px;}


/* Administration Phase 1 — lead-only fictional employee directory */
.admin-shell{background:#fff;border:1px solid #d6e0f8;border-radius:18px;padding:24px}
.admin-shell h2,.admin-shell h3{color:#17348e;margin:0 0 6px}
.admin-title-row,.admin-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.admin-shell .eyebrow{margin-top:0}
.admin-rule{background:#edf4ff;border:1px solid #c9d9fb;padding:14px 15px;border-radius:13px;font-size:.92rem;color:#24427b;line-height:1.5;margin:15px 0}
.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 20px}
.admin-stats>div{background:#f5f7ff;border:1px solid #d5def5;border-radius:14px;padding:15px;display:flex;flex-direction:column;gap:4px}
.admin-stats span{font-size:.82rem;color:#556987;font-weight:650}.admin-stats strong{font-size:1.75rem;color:#18348c;font-variant-numeric:tabular-nums}
.admin-shell .message{min-height:0;margin:12px 0;color:#24427b;font-size:.9rem}
.admin-editor{background:#fbfcff;border:1px solid #cad6f5;border-radius:14px;padding:20px;margin:18px 0}
.admin-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.admin-fields label{display:block;font-weight:750;color:#18348c;margin:8px 0}
.admin-fields input{font:inherit;padding:10px 12px;border-radius:11px;border:2px solid #cedaf2;min-height:47px;width:100%;background:#fff}
.admin-fields input[readonly]{background:#e9edf6;color:#425675}
.admin-roster{display:grid;gap:12px;margin:17px 0}
.admin-employee{border:1px solid #d6def0;border-radius:14px;padding:15px;background:#fff}
.admin-person{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.admin-person strong{font-size:1rem;color:#13328b}.admin-person small{color:#60728e}
.admin-person .admin-name{display:flex;flex-direction:column;gap:3px}
.admin-pill{border-radius:99px;background:#e6f5ed;color:#0c6840;font-weight:800;font-size:.73rem;padding:5px 10px}
.admin-pill.inactive{background:#f1f2f5;color:#586275}
.admin-employee-meta{font-size:.87rem;color:#60708a;margin:10px 0}
.admin-employee-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.admin-employee-actions .button{min-height:43px}
.admin-employee-actions .button[disabled]{opacity:.45;cursor:not-allowed}
.admin-archive-notice{color:#74612b;background:#fff7df;border:1px solid #f0da93;border-radius:10px;margin:10px 0 0;padding:11px 12px;font-size:.87rem}
.admin-inline-confirm{padding:14px;background:#fff7df;border:1px solid #e9d399;border-radius:11px;margin-top:12px}
.admin-inline-confirm strong{color:#13328b}
.admin-inline-confirm .approval-actions{margin-top:12px}
@media(max-width:640px){.admin-shell{padding:14px}.admin-fields{grid-template-columns:1fr}.admin-stats{gap:7px}.admin-stats>div{padding:10px}.admin-stats strong{font-size:1.35rem}.admin-stats span{font-size:.73rem}}
.admin-actions .button[disabled]{opacity:.55;cursor:not-allowed}

/* Staff Access — lead-only, fictional teacher logins */
.staff-access-panel{border-top:2px solid #dce4f3;margin-top:30px;padding-top:22px}
.staff-access-panel h3{color:#15348e}
.staff-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 20px}
.staff-summary>div{background:#f3f6ff;border:1px solid #d2ddf6;padding:14px;border-radius:12px;display:flex;flex-direction:column;gap:6px}
.staff-summary small{color:#52698a}.staff-summary strong{font-size:1.55rem;color:#18388c}
.staff-directory{display:grid;gap:12px;margin:18px 0}
.staff-member{border:1px solid #d5def2;border-radius:12px;background:white;padding:16px}
.staff-member .admin-name{display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere}
.staff-preview{border:1px solid #ccdaef;border-radius:18px;background:white;padding:28px;margin:24px auto;max-width:760px}
.staff-preview h2{color:#16358b}
@media(max-width:620px){.staff-summary{gap:6px}.staff-summary>div{padding:9px}.staff-summary strong{font-size:1.18rem}.staff-summary small{font-size:.7rem}.staff-member{padding:12px}}

/* Teacher banking access phase — teacher-only queue. */
.staff-banking-enabled .status-grid{margin-top:15px}
.staff-banking-enabled .status-card{min-width:0}
.staff-preview .admin-rule{margin-bottom:16px}

.portal-home{margin:8px 0 14px}.portal-home a{font-size:14px;color:#19368f;text-decoration:none;font-weight:700;padding:8px 12px;display:inline-block;background:#eaf0ff;border-radius:10px}.portal-home a:hover,.portal-home a:focus-visible{text-decoration:underline}
