1 /* ── Admin Layout ────────────────────────────────────────── */ 2 .admin-body{background:#f1f5f9;margin:0;padding:0;font-family:var(--font)} 3 .admin-wrap{display:flex;min-height:100vh} 4 .admin-sb{width:230px;background:#0f172a;flex-shrink:0;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:50} 5 .admin-sb-top{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.07)} 6 .admin-logo{display:flex;align-items:center;gap:10px;text-decoration:none} 7 .admin-logo:hover{text-decoration:none} 8 .admin-logo .logo-mark{width:36px;height:36px;font-size:18px;border-radius:9px} 9 .admin-logo-name{color:#fff;font-size:14px;font-weight:600} 10 .admin-logo-sub{color:rgba(255,255,255,.35);font-size:11px} 11 .admin-nav{padding:10px 8px} 12 .anav{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:7px;font-size:14px;font-weight:500;color:rgba(255,255,255,.5);text-decoration:none;transition:all .18s;margin-bottom:2px} 13 .anav:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none} 14 .anav.on{background:var(--blue);color:#fff} 15 .anav-div{height:1px;background:rgba(255,255,255,.07);margin:8px 10px} 16 .admin-main{flex:1;margin-left:230px;display:flex;flex-direction:column} 17 .admin-topbar{background:#fff;border-bottom:1px solid #e2e8f0;padding:15px 26px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:40;box-shadow:0 1px 3px rgba(0,0,0,.06)} 18 .admin-topbar h1{font-size:17px;font-weight:700;color:#0f172a;margin:0} 19 .admin-topbar span{font-size:13px;color:#64748b} 20 .admin-content{padding:22px 26px} 21 22 /* ── Stat cards ──────────────────────────────────────────── */ 23 .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px} 24 @media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}} 25 .stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:11px;padding:18px;display:flex;align-items:flex-start;gap:14px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:all .18s} 26 .stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)} 27 .stat-icon{width:46px;height:46px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0} 28 .stat-num{font-size:1.7rem;font-weight:700;color:#0f172a;line-height:1} 29 .stat-label{font-size:13px;color:#64748b;margin-top:3px} 30 .stat-sub{font-size:12px;color:#22c55e;margin-top:2px} 31 32 /* ── Admin Cards ─────────────────────────────────────────── */ 33 .acard{background:#fff;border:1px solid #e2e8f0;border-radius:11px;overflow:hidden;margin-bottom:18px;box-shadow:0 1px 3px rgba(0,0,0,.06)} 34 .acard-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #f8fafc} 35 .acard-head h2{font-size:14px;font-weight:600;color:#0f172a;margin:0} 36 .acard-body{padding:18px} 37 38 .admin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px} 39 @media(max-width:900px){.admin-two-col{grid-template-columns:1fr}} 40 41 /* ── Tables ──────────────────────────────────────────────── */ 42 .atable{width:100%;border-collapse:collapse;font-size:13px} 43 .atable thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0} 44 .atable th{padding:9px 15px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;white-space:nowrap} 45 .atable td{padding:11px 15px;border-bottom:1px solid #f8fafc;color:#0f172a;vertical-align:middle} 46 .atable tr:last-child td{border-bottom:none} 47 .atable tbody tr:hover{background:#fafafa} 48 .atable a{color:var(--blue);text-decoration:none;font-weight:500} 49 .atable a:hover{text-decoration:underline} 50 51 /* ── Status / role badges ────────────────────────────────── */ 52 .stag{display:inline-flex;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600} 53 .stag.active{background:#dcfce7;color:#166534} 54 .stag.suspended{background:#fee2e2;color:#991b1b} 55 .stag.silenced{background:#fef3c7;color:#92400e} 56 57 /* ── Admin toolbar ───────────────────────────────────────── */ 58 .admin-toolbar{margin-bottom:18px} 59 .at-form{display:flex;gap:10px;align-items:center} 60 .at-fi{flex:1;max-width:380px;padding:8px 13px;border:1px solid #e2e8f0;border-radius:var(--r);font-size:14px;font-family:var(--font);outline:none;transition:border-color .18s} 61 .at-fi:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}