:root{
  --gold:#c9a227;--gold-d:#a8841c;--gold-l:#e3c560;--ink:#2b2a28;--ink2:#3a3a3c;
  --mut:#6f6e6b;--line:#e9e4d8;--bg:#f5f3ee;--bg2:#faf8f3;--ok:#1f9d55;--warn:#d98a00;--bad:#c0392b;
  --grad:linear-gradient(135deg,#a8841c,#c9a227 55%,#e3c560);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Tajawal',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6}
.hidden{display:none!important}
a{cursor:pointer;text-decoration:none;color:inherit}
.btn{border:none;border-radius:10px;font-family:inherit;font-weight:800;cursor:pointer;padding:11px 20px;font-size:15px;transition:.2s}
.btn-gold{background:var(--grad);color:#fff;box-shadow:0 8px 20px -8px rgba(201,162,39,.5)}
.btn-gold:hover{transform:translateY(-2px)}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-d)}
.btn.sm{padding:8px 15px;font-size:13.5px}
.btn.danger{background:#fff;border:1px solid #f0b6ae;color:var(--bad)}
.btn.danger:hover{background:#fdecea}
.btn.okbtn{background:#eafaf0;border:1px solid #a8e6c2;color:var(--ok)}
.err{color:var(--bad);font-size:13px;margin-top:10px;min-height:16px;text-align:center}

/* login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;
  background:radial-gradient(800px 500px at 80% -10%,rgba(201,162,39,.16),transparent 60%),#fff}
.login-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:40px;width:100%;max-width:400px;
  box-shadow:0 30px 70px -34px rgba(0,0,0,.28);display:flex;flex-direction:column}
.logo-lock{font-size:30px;font-weight:900;letter-spacing:2px;text-align:center}
.logo-lock span{color:var(--gold)}
.logo-tag{font-size:10px;letter-spacing:3px;color:var(--mut);text-align:center;margin-bottom:24px}
.login-card label{font-weight:700;font-size:14px;margin:10px 0 6px}
.login-card input{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg2);font-family:inherit;font-size:15px}
.login-card input:focus{outline:none;border-color:var(--gold);background:#fff}
.login-card .btn{margin-top:20px}

/* topbar */
.topbar{background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;
  padding:0 22px;height:64px;position:sticky;top:0;z-index:30;gap:16px;flex-wrap:wrap}
.brand{font-size:20px;font-weight:900;letter-spacing:1px}
.brand span{color:var(--gold)}
.brand em{font-style:normal;font-size:12px;color:#bdb9b0;font-weight:600;margin-right:4px}
.tabs{display:flex;gap:6px}
.tabs a{padding:8px 16px;border-radius:9px;color:#cfcdc8;font-weight:700;font-size:14.5px}
.tabs a.active,.tabs a:hover{background:rgba(201,162,39,.18);color:#fff}
.topright{display:flex;gap:8px}

.wrap{max-width:1200px;margin:0 auto;padding:24px 20px 60px}
.bar{display:flex;align-items:center;justify-content:space-between;margin:22px 0 14px}
.bar h2{font-size:20px;font-weight:800}

/* stats */
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:6px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.stat .n{font-size:26px;font-weight:900}
.stat .l{color:var(--mut);font-size:13px;font-weight:600}
.stat.g .n{color:var(--gold-d)} .stat.ok .n{color:var(--ok)} .stat.bad .n{color:var(--bad)} .stat.warn .n{color:var(--warn)}

/* table */
.tablewrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{background:#faf8f3;text-align:right;padding:12px 14px;font-weight:800;color:var(--ink2);border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 14px;border-bottom:1px solid #f1ede4;white-space:nowrap}
tr:last-child td{border-bottom:none}
tr:hover td{background:#fcfbf8}
.pill{display:inline-block;padding:3px 11px;border-radius:20px;font-size:12.5px;font-weight:800}
.pill.active{background:#eafaf0;color:var(--ok)} .pill.suspended{background:#fdecea;color:var(--bad)}
.pill.grace{background:#fff4e0;color:var(--warn)} .pill.expired{background:#fdecea;color:var(--bad)}
.pill.paid{background:#eafaf0;color:var(--ok)} .pill.unpaid{background:#fff4e0;color:var(--warn)}
.days.neg{color:var(--bad);font-weight:800} .days.soon{color:var(--warn);font-weight:800}
.rowbtns{display:flex;gap:6px}
.muted{color:var(--mut)}

/* modal */
.modal{position:fixed;inset:0;background:rgba(20,18,16,.55);display:grid;place-items:center;z-index:50;padding:20px}
.modal-card{background:#fff;border-radius:18px;padding:26px;max-width:640px;width:100%;max-height:88vh;overflow:auto}
.modal-card h3{font-size:20px;font-weight:900;margin-bottom:4px}
.modal-card .sub{color:var(--mut);font-size:13px;margin-bottom:18px}
.field{margin-bottom:14px}
.field label{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
.field input,.field select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--bg2);font-family:inherit;font-size:15px}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold);background:#fff}
.modal-actions{display:flex;gap:10px;justify-content:flex-start;margin-top:18px}
.section-t{font-weight:800;margin:18px 0 8px;font-size:15px;border-top:1px solid var(--line);padding-top:14px}
.x{float:left;cursor:pointer;font-size:22px;color:var(--mut);line-height:1}

@media(max-width:900px){.stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.stats{grid-template-columns:repeat(2,1fr)}.tabs{order:3;width:100%;justify-content:center}}
