/* Sophia school payment portal. External stylesheet supports strict CSP. */
*{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;background:#f3f6fb;color:#263751;font-family:'Segoe UI',Arial,sans-serif;font-size:15px;line-height:1.5}h1,h2,p{margin-top:0}a{color:#1354a0}.shell{max-width:1020px;margin:0 auto;padding-left:20px;padding-right:20px}.school-band{background:#102c5c;color:#fff;border-bottom:5px solid #d9aa48}.school-brand{min-height:103px;display:flex;align-items:center;gap:17px}.school-brand img{width:67px;height:67px;object-fit:contain;background:#fff;border:3px solid #fff;border-radius:13px}.school-name{font-size:22px;font-weight:700;letter-spacing:.1px;line-height:1.22;color:white}.school-place{color:#d4e2f6;font-size:13px;margin-top:3px}.header-pill{margin-left:auto;white-space:nowrap;padding:8px 11px;border:1px solid #8296b6;border-radius:6px;color:#e6eefb;font-size:11px;font-weight:700;letter-spacing:1px}.main-area{padding-top:37px}.intro{margin-bottom:25px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#b27a21;margin-bottom:7px}.intro h1{font-size:32px;font-weight:750;color:#132f60;margin-bottom:5px}.intro p{color:#667792;margin-bottom:0}.card{background:#fff;border:1px solid #dfe7f1;border-radius:13px;box-shadow:0 10px 28px rgba(29,59,102,.055);padding:27px 30px;margin-bottom:20px}.card-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:23px}.card-heading h2,.receipts-card h2,.closed-card h2{font-size:20px;font-weight:700;color:#15366c;margin:0 0 3px}.card-heading p,.closed-card p{color:#687991;font-size:14px;margin:0}.step-number{width:30px;height:30px;flex:none;border-radius:50%;background:#eaf1fb;color:#1557a2;font-weight:800;display:flex;align-items:center;justify-content:center}.lookup-fields{display:flex;gap:14px;align-items:flex-end}.field{flex:1;min-width:0}.field label{display:block;font-size:13px;font-weight:700;color:#3a4c66;margin-bottom:7px}.field-control{display:block;width:100%;height:44px;padding:9px 13px;border:1px solid #cdd9e9;border-radius:7px;background:#fff;color:#24384e;font-size:15px}.field-control:focus{border-color:#3775c1;outline:3px solid #dbe9fa}.action-button,.secondary-button{display:inline-block;min-height:44px;padding:10px 20px;border-radius:7px;font:700 14px 'Segoe UI',Arial,sans-serif;cursor:pointer;text-decoration:none}.action-button{background:#1354a0;border:1px solid #1354a0;color:#fff}.action-button:hover,.action-button:focus{background:#0d407f;color:#fff}.secondary-button{background:#fff;color:#244e83;border:1px solid #b6c9e2}.secondary-button:hover{background:#eff5fc}.message:empty{display:none}.message.alert{display:block;margin:0 0 18px;padding:12px 16px;border-radius:7px}.loading{color:#244f85;margin-top:15px}.student-profile{display:flex;gap:20px;align-items:center;background:#f7f9fd;border:1px solid #e6edf6;border-radius:10px;padding:18px}.student-photo{width:72px;height:80px;object-fit:cover;border:1px solid #e2e9f3;border-radius:7px}.student-photo[src=''],.student-photo:not([src]){display:none}.student-facts{display:grid;grid-template-columns:1fr 1fr;gap:13px 22px;flex:1}.student-facts div{min-width:0}.student-facts span{display:block;color:#718097;font-size:12px;margin-bottom:1px}.student-facts strong{display:block;color:#233e64;overflow-wrap:anywhere}.fees-card .card-heading{margin-bottom:18px}.table-scroll{width:100%;overflow-x:auto}.fee-grid,.receipt-grid{width:100%;border-collapse:collapse;background:#fff;color:#24384e}.fee-grid th,.receipt-grid th{background:#eaf1fa;color:#24476f;font-size:12px;letter-spacing:.3px;text-transform:uppercase;text-align:left;padding:12px 14px;border-bottom:1px solid #d6e2f1}.fee-grid th:last-child,.receipt-grid th:nth-child(5){text-align:right}.fee-grid td,.receipt-grid td{padding:14px;border-bottom:1px solid #e8edf4;color:#253a57;background:#fff}.fee-grid td:last-child,.receipt-grid td:nth-child(5){text-align:right;font-weight:700;color:#203b60}.fee-grid tr:hover td,.receipt-grid tr:hover td{background:#eaf3ff!important;color:#153b71!important}.fee-grid tr:hover td *,.receipt-grid tr:hover td *{color:#153b71!important}.fee-grid .selected-fee td{background:#f0f6ff;color:#173b71}.fee-grid .paid-fee td{background:#f7f8fa;color:#6f7d90}.fee-grid input[type=checkbox]{width:18px;height:18px;accent-color:#155aa8;cursor:pointer}.fee-grid input[type=checkbox]:disabled{cursor:not-allowed}.summary-panel{max-width:440px;margin:24px 0 20px auto;background:#f5f8fd;border:1px solid #dce7f5;border-radius:9px;padding:13px 19px}.summary-row{display:flex;justify-content:space-between;gap:15px;padding:8px 0;color:#53657f}.summary-row strong{color:#27476c}.summary-grand{border-top:1px solid #d4e1f0;margin-top:8px;padding-top:15px;color:#143970;font-weight:800;font-size:20px}.summary-grand strong{color:#1053a0}.payment-actions{display:flex;gap:12px;justify-content:flex-end}.small-note{text-align:right;color:#748197;font-size:12px;margin:13px 0 0}.receipts-card h2{margin-bottom:18px}.receipt-grid th,.receipt-grid td{padding:12px;font-size:13px}.receipt-grid a{white-space:nowrap}.footer-line{padding:22px 0 35px;text-align:center;color:#8290a3;font-size:12px}.closed-card{text-align:center;padding:55px 20px}.result-shell{max-width:760px;padding-top:36px}.result-card{padding:36px 43px}.status-icon{width:70px;height:70px;margin:0 auto 17px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:37px;font-weight:700}.status-icon.ok{background:#e2f5ed;color:#18754c}.status-icon.bad{background:#fbeae8;color:#bf4036}.status-icon.pending{background:#fff0d4;color:#a8730a}.title{text-align:center;color:#183a70;font-size:25px;font-weight:800;line-height:1.25}.sub{max-width:530px;text-align:center;color:#667992;margin:10px auto 26px}.details{border:1px solid #e1e9f3;border-radius:9px;overflow:hidden}.details .row{display:flex;margin:0;padding:12px 17px;border-bottom:1px solid #eaf0f6;align-items:center}.details .row:last-child{border:0}.details .row:nth-child(even){background:#f8fafd}.details .label{width:45%;color:#65768c}.details .value{width:55%;color:#203d65;text-align:right;font-weight:700;overflow-wrap:anywhere}.details .amount{color:#1356a3;font-size:23px}.actions{text-align:center;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:26px 0 0}.actions .btn{display:inline-block;padding:11px 19px;background:#1354a0;color:#fff;border-radius:7px;text-decoration:none;font-weight:700}.actions .btn:hover{background:#0c407f}.actions .btn-secondary{background:#fff;color:#244e83;border:1px solid #b6c9e2}.note{margin-top:20px;background:#f4f8fd;color:#5d7089;padding:12px 15px;border-radius:7px;font-size:13px}.diagnostic-hidden{display:none!important}
@media(max-width:700px){.school-brand{min-height:82px;gap:10px}.school-brand img{width:54px;height:54px}.school-name{font-size:17px}.header-pill{display:none}.main-area,.result-shell{padding-top:24px}.intro h1{font-size:26px}.card{padding:22px 17px}.lookup-fields{display:block}.field{margin-bottom:14px}.lookup-fields .action-button{width:100%}.student-profile{align-items:flex-start;padding:12px}.student-photo{width:57px;height:66px}.student-facts{grid-template-columns:1fr;gap:8px}.fee-grid{min-width:410px}.receipt-grid{min-width:540px}.summary-panel{max-width:none}.payment-actions{flex-direction:column}.payment-actions input{width:100%}.small-note{text-align:left}.result-card{padding:25px 17px}.title{font-size:21px}.details .row{padding:10px 12px;font-size:13px}.details .label{width:42%}.details .value{width:58%}.details .amount{font-size:19px}.actions .btn{width:100%}}
@media print{body{background:#fff}.card{box-shadow:none}.actions,.footer-line{display:none}.school-band{print-color-adjust:exact}}
