:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#17243f;background:#f1f5fa;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}header{background:#142947;color:white;display:flex;justify-content:space-between;align-items:center;padding:22px max(24px,calc((100vw - 1200px)/2));gap:20px}.brand{font-size:25px;font-weight:800;color:white;text-decoration:none;letter-spacing:1px}.brand span{display:block;font-size:13px;font-weight:400;letter-spacing:.4px;color:#b9dcff}header small{color:#b9dcff}main{max-width:1248px;margin:auto;padding:24px}h1{font-size:clamp(24px,4vw,34px);line-height:1.3;margin:28px 0}h2{font-size:20px;margin-top:0}h3{margin:0;font-size:17px}.panel{padding:26px;background:white;border:1px solid #dae3ee;border-radius:14px;margin-bottom:20px;box-shadow:0 5px 18px #14294705}.narrow{max-width:520px}label{display:block;font-weight:600;margin:16px 0}input,select{display:block;width:100%;padding:12px;font:inherit;border:1px solid #a9b9cc;border-radius:7px;margin-top:6px;background:white;color:#17243f}button{font:inherit;font-weight:600;border:0;border-radius:7px;padding:11px 19px;background:#1269ac;color:white;cursor:pointer;min-height:44px}button:hover{background:#0b4e84}a{color:#1269ac}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #54b4fa;outline-offset:3px}.quiet{background:#eaf1f9;color:#183c67}.quiet:hover{background:#d8e8f7}nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-bottom:1px solid #d2dfea;padding-bottom:18px}nav a{text-decoration:none;font-weight:600}nav span{margin-left:auto;font-size:14px}nav form{margin:0}.notice{background:#edf6ff;border-left:4px solid #2582c4;padding:14px;border-radius:5px}.hint,small{color:#526782;font-size:14px}.grid{display:grid;grid-template-columns:1fr 1.5fr;gap:22px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.badge{display:inline-block;background:#def4ed;color:#16654d;font-size:13px;font-weight:700;padding:5px 12px;border-radius:30px;margin-bottom:12px}article{border-bottom:1px solid #dce5ee;padding:18px 0}article:last-child{border-bottom:0}details{margin:14px 0}summary{cursor:pointer;color:#1269ac}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th,td{padding:12px;border-bottom:1px solid #dce5ee;vertical-align:top}th{background:#f2f6fb}footer{text-align:center;padding:24px;font-size:13px;color:#526782}@media(max-width:700px){header{padding:18px 20px}main{padding:16px}.grid,.cards{grid-template-columns:1fr}.panel{padding:20px}nav{gap:12px}nav span{margin-left:0;width:100%}header small{max-width:90px;text-align:right}}

.button{display:inline-block;border-radius:7px;padding:11px 19px;background:#1269ac;color:white;text-decoration:none;font-weight:600;min-height:44px}.button.quiet{background:#eaf1f9;color:#183c67}.actions{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0}.form-wide{max-width:720px}textarea{width:100%;min-height:110px;font:inherit;border:1px solid #a9b9cc;border-radius:7px;padding:12px}.check{display:flex;align-items:center;gap:10px}.check input{width:20px;margin:0}.search{display:flex;gap:18px;align-items:end}.search label{flex:1;margin:0}.student-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stats small,.stats strong{display:block}.stats strong{font-size:23px}dl{display:grid;grid-template-columns:160px 1fr;gap:10px}dt{color:#526782}dd{margin:0;overflow-wrap:anywhere}.panel{min-width:0;overflow-wrap:anywhere}h1{overflow-wrap:anywhere}article.panel{border:1px solid #dae3ee}details form{padding-top:10px}@media(max-width:700px){.student-list{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.search{display:block}.search button{margin-top:12px}dl{grid-template-columns:1fr;gap:4px}dd{margin-bottom:12px}.actions .button{width:100%;text-align:center}nav a{padding:6px 0;min-height:38px}nav{gap:8px 14px}}

.balance-banner{display:flex;gap:18px;align-items:center;padding:25px;border-radius:14px;margin:20px 0;border:2px solid}.balance-banner strong{font-size:clamp(20px,3vw,29px);line-height:1.35;display:block}.balance-banner p{margin:6px 0 0}.balance-banner>span{font-size:42px}.settled{background:#dcfce7;border-color:#16834c;color:#14532d}.outstanding{background:#fff7e6;border-color:#e2ad43;color:#704600}.badge.pending{background:#fff1ce;color:#7a4e00}.badge.paid{background:#dcfce7;color:#14532d}.void-payment{background:#fff1f1;border-left:4px solid #b42336;padding:18px;border-radius:8px}.quick-counts{display:flex;gap:8px;flex-wrap:wrap}.quick-counts button{background:#edf4fc;color:#184b79;min-width:48px}button:disabled{opacity:.55;cursor:wait}.grid:has(>section:only-child){grid-template-columns:1fr}.field-help{font-size:14px;color:#526782}input:invalid:not(:placeholder-shown){border-color:#a9b9cc}nav form{flex-shrink:0}@media(max-width:700px){nav span{font-size:12px}nav a{font-size:14px}.balance-banner{padding:18px}.balance-banner>span{font-size:30px}.search label{margin-bottom:12px}}

[hidden]{display:none!important}.test-record{background:#f1e8ff;color:#603596}.refund-line{border-left:3px solid #c48926;padding:8px 14px;margin:12px 0}.ledger-line{padding:8px 0;border-bottom:1px solid #e1e8f0}.status-closed{background:#f0edf6;color:#4d405d}
