:root{--navy:#0f2a4a;--teal:#2a9d8f;--gold:#c9a227;--bg:#f4f6f9;--card:#fff;--mut:#64748b}
*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:#1e293b}
.topbar{background:var(--navy);color:#fff;display:flex;align-items:center;gap:14px;padding:10px 20px;position:sticky;top:0;z-index:5}
.topbar img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);background:#fff}
.topbar h1{font-size:17px;margin:0}.topbar small{color:#cbd5e1}
.topbar nav{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.topbar nav a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:8px;background:rgba(255,255,255,.08)}
.topbar nav a:hover,.topbar nav a.active{background:var(--gold);color:var(--navy);font-weight:700}
.wrap{max-width:1150px;margin:22px auto;padding:0 16px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:14px 0}
.stat{background:var(--card);border-radius:14px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.06);border-top:5px solid var(--teal)}
.stat h3{margin:0;font-size:13px;color:var(--mut);text-transform:uppercase}
.stat p{font-size:26px;margin:8px 0 0;font-weight:800;color:var(--navy)}
.card{background:var(--card);border-radius:14px;padding:18px;box-shadow:0 2px 10px rgba(0,0,0,.06);margin-bottom:16px}
table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px;border-bottom:1px solid #e2e8f0;text-align:left;font-size:14px}
th{background:var(--navy);color:#fff}tr:hover td{background:#f8fafc}
.btn{display:inline-block;background:var(--navy);color:#fff;border:0;padding:9px 14px;border-radius:9px;cursor:pointer;text-decoration:none;font-size:14px}
.btn.gold{background:var(--gold);color:var(--navy);font-weight:700}.btn.teal{background:var(--teal)}.btn.danger{background:#dc2626}.btn.small{padding:5px 9px;font-size:12px}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid #cbd5e1;border-radius:9px;margin:4px 0 10px;font-size:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media(max-width:700px){.grid2,.grid3{grid-template-columns:1fr}}
.alert{padding:10px 14px;border-radius:10px;margin-bottom:12px}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}
body.center{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:linear-gradient(135deg,#0f2a4a,#1d5c63);padding:24px 0}
.card.narrow{max-width:420px;width:92%}.logo{width:150px;height:150px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 10px;border:4px solid var(--gold);background:#fff}
.success{color:#166534}.error{color:#991b1b}.muted{color:var(--mut)}.right{text-align:right}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.badge{padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}.b-unpaid{background:#fee2e2;color:#991b1b}.b-partial{background:#fef9c3;color:#854d0e}.b-paid{background:#dcfce7;color:#166534}.b-voided{background:#e2e8f0;color:#475569}
.b-admin{background:#0f2a4a;color:#fff}.b-owner{background:#fef3c7;color:#92400e}.b-staff{background:#ccfbf1;color:#0f766e}.b-cashier{background:#ccfbf1;color:#0f766e}.b-teacher{background:#ede9fe;color:#5b21b6}.b-student{background:#e2e8f0;color:#334155}
.b-pending{background:#fef9c3;color:#854d0e}.b-active{background:#dcfce7;color:#166534}.b-suspended{background:#fee2e2;color:#991b1b}
.avatar{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:#0f2a4a;flex:none}
.avatar.a-admin{background:#0f2a4a}.avatar.a-owner{background:#b7791f}.avatar.a-staff{background:#0f766e}.avatar.a-cashier{background:#0f766e}.avatar.a-teacher{background:#6d28d9}.avatar.a-student{background:#64748b}
details.editrow{margin-top:6px}details.editrow summary{cursor:pointer;color:#0f2a4a;font-size:13px;font-weight:700}
.searchbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.searchbar>div{flex:1;min-width:150px}
footer{text-align:center;color:var(--mut);padding:20px;font-size:13px}
