:root{--navy:#16324f;--teal:#0e8a80;--bg:#f4f7fb;--ink:#243447;--muted:#64748b;--line:#dce5ee}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
header{background:var(--navy);color:#fff;padding:18px max(18px,calc((100% - 1100px)/2));display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
header a{color:#fff;text-decoration:none}.brand{font-weight:750;font-size:1.05rem}.wrap{max-width:1100px;margin:24px auto;padding:0 16px}
h1{font-size:1.7rem;margin:0 0 8px}h2{font-size:1.1rem;margin:0 0 14px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 3px 12px #16324f08}.stat{font-size:1.8rem;font-weight:750;color:var(--navy);margin-top:8px}
table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.88rem;color:var(--muted);background:#f8fafc}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}button,.btn{background:var(--teal);border:0;color:white;padding:10px 15px;border-radius:10px;font:inherit;text-decoration:none;display:inline-block;cursor:pointer}
.btn.secondary{background:#e7eef5;color:var(--navy)}input{width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:9px;font:inherit;margin:6px 0 14px}
label{font-weight:600;font-size:.93rem}.notice{background:#fff8df;border:1px solid #f0d98a;padding:14px;border-radius:12px;margin:16px 0}.status{padding:4px 8px;border-radius:999px;background:#e7eef5;font-size:.82rem;white-space:nowrap}.status.paid{background:#dcfce7;color:#166534}.status.unpaid{background:#ffedd5;color:#9a3412}
.login{max-width:430px;margin:7vh auto;padding:0 16px}.login .card{padding:28px}.foot{padding:24px;text-align:center;color:var(--muted);font-size:.85rem}
@media(max-width:600px){th,td{padding:9px;font-size:.9rem}.stat{font-size:1.5rem}}
