:root{
  --bg: #0f1117;
  --surface: #181b24;
  --surface-2: #1f2330;
  --border: #2a2e3d;
  --text: #e5e7eb;
  --text-muted: #9199ad;
  --primary: #6366f1;
  --primary-hover: #4f52d6;
  --success: #22c55e;
  --danger: #ef4444;
  --warning: #f59e0b;
  --radius: 12px;
}
*{box-sizing:border-box}
body{
  margin:0; font-family:'Segoe UI', 'Noto Sans Bengali', sans-serif;
  background:var(--bg); color:var(--text);
}
a{color:inherit; text-decoration:none}

.layout{display:flex; min-height:100vh}
.sidebar{
  width:240px; background:var(--surface); border-right:1px solid var(--border);
  padding:24px 16px; flex-shrink:0;
}
.sidebar h1{font-size:18px; margin:0 0 24px; color:var(--primary)}
.sidebar nav a{
  display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px;
  color:var(--text-muted); margin-bottom:4px; font-size:14px; transition:.15s;
}
.sidebar nav a:hover, .sidebar nav a.active{background:var(--surface-2); color:var(--text)}

.main{flex:1; padding:28px 32px}
.topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:24px}
.topbar h2{margin:0; font-size:22px}
.topbar .admin-name{color:var(--text-muted); font-size:14px}

.grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); gap:16px; margin-bottom:28px}
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px}
.stat-card .label{color:var(--text-muted); font-size:13px; margin-bottom:6px}
.stat-card .value{font-size:26px; font-weight:700}
.stat-card.accent .value{color:var(--primary)}

table{width:100%; border-collapse:collapse; background:var(--surface); border-radius:var(--radius); overflow:hidden}
th,td{padding:12px 14px; text-align:left; font-size:14px; border-bottom:1px solid var(--border)}
th{color:var(--text-muted); font-weight:600; background:var(--surface-2)}
tr:last-child td{border-bottom:none}

.badge{padding:3px 10px; border-radius:999px; font-size:12px; font-weight:600}
.badge.pending{background:#f59e0b26; color:var(--warning)}
.badge.approved, .badge.paid, .badge.active{background:#22c55e26; color:var(--success)}
.badge.rejected, .badge.banned{background:#ef444426; color:var(--danger)}

.btn{
  display:inline-block; padding:7px 14px; border-radius:8px; border:none;
  font-size:13px; font-weight:600; cursor:pointer;
}
.btn-approve{background:var(--success); color:#fff}
.btn-reject{background:var(--danger); color:#fff}
.btn-primary{background:var(--primary); color:#fff}
.btn-primary:hover{background:var(--primary-hover)}

.form-input{
  width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--border);
  background:var(--surface-2); color:var(--text); font-size:14px; margin-bottom:14px;
}
.login-wrap{display:flex; align-items:center; justify-content:center; min-height:100vh}
.login-card{background:var(--surface); padding:36px; border-radius:var(--radius); width:340px; border:1px solid var(--border)}
.login-card h2{margin-top:0; text-align:center}
.error-msg{background:#ef444426; color:var(--danger); padding:10px; border-radius:8px; font-size:13px; margin-bottom:14px}
.empty-state{color:var(--text-muted); text-align:center; padding:40px 0}
