:root { --navy:#111827; --blue:#2563eb; --blue2:#1d4ed8; --muted:#64748b; --surface:#fff; --bg:#f4f7fb; --line:#e5e7eb; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:#172033; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
.sidebar { position:fixed; inset:0 auto 0 0; width:250px; background:var(--navy); color:#fff; padding:28px 18px; display:flex; flex-direction:column; }
.brand { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-weight:800; font-size:18px; margin:0 8px 32px; }
.brand span { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:linear-gradient(135deg,#60a5fa,#2563eb); font-size:13px; }
.sidebar nav { display:grid; gap:6px; }
.sidebar nav a,.logout { border:0; background:transparent; color:#aeb9cb; text-decoration:none; padding:12px 14px; border-radius:10px; text-align:left; }
.sidebar nav a:hover,.sidebar nav a:focus,.logout:hover { background:#1f2937; color:#fff; }
.sidebar i { margin-right:10px; }
.sidebar form { margin-top:auto; }
.logout { width:100%; }
.main-shell { margin-left:250px; padding:32px; min-height:100vh; }
.topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.topbar h1 { font-size:28px; margin:0; }
.topbar p,.section-heading p { color:var(--muted); margin:6px 0 0; }
.admin-chip { padding:9px 14px; background:#fff; border:1px solid var(--line); border-radius:999px; }
.card-panel,.metric-card { background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:0 8px 25px rgba(15,23,42,.04); padding:20px; margin-bottom:20px; }
.toolbar,.section-heading,.filter-row { display:flex; justify-content:space-between; gap:16px; }
.section-heading { align-items:center; margin-bottom:12px; }
.section-heading h2 { font-size:19px; margin:0; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.metric-card { display:flex; align-items:center; gap:16px; }
.metric-card i { display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:#dbeafe; color:#1d4ed8; font-size:21px; }
.metric-card span { display:block; color:var(--muted); font-size:13px; }
.metric-card strong { font-size:25px; }
.metric-card.warning i { background:#fef3c7; color:#92400e; }
.search-form { display:flex; align-items:center; gap:10px; min-width:300px; border:1px solid var(--line); border-radius:10px; padding:0 12px; }
.search-form input { border:0; outline:0; width:100%; padding:10px; background:transparent; }
.btn-primary { background:var(--blue); border-color:var(--blue); }
.btn-primary:hover { background:var(--blue2); }
.table th { font-size:12px; text-transform:uppercase; color:var(--muted); letter-spacing:.04em; }
.table td { padding-top:15px; padding-bottom:15px; }
.table td small,label small { display:block; color:var(--muted); margin-top:3px; }
.status-pill { display:inline-block; padding:5px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.status-active { background:#dcfce7; color:#166534; }
.status-suspended { background:#fef3c7; color:#92400e; }
.status-revoked { background:#fee2e2; color:#991b1b; }
.empty-state { text-align:center; color:var(--muted); padding:50px!important; }
.secret-box { display:flex; align-items:center; gap:10px; padding:16px; background:#f1f5f9; border-radius:12px; }
.secret-box code { word-break:break-all; flex:1; color:#0f172a; }
.toast-area { position:fixed; top:20px; right:20px; z-index:1100; }
.app-toast { background:#111827; color:#fff; padding:13px 16px; border-radius:10px; margin-bottom:8px; box-shadow:0 12px 30px rgba(0,0,0,.2); }
.settings-card { max-width:850px; }
.settings-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.settings-grid label { font-weight:700; }
.settings-grid .form-control { margin-top:7px; }
.filter-row { justify-content:flex-start; margin-bottom:18px; }
.filter-row input { max-width:360px; }
.login-page { min-height:100vh; display:grid; place-items:center; background:radial-gradient(circle at top,#dbeafe,#f8fafc 55%); }
.login-card { width:min(420px,calc(100% - 32px)); background:#fff; border:1px solid var(--line); border-radius:20px; padding:34px; box-shadow:0 24px 70px rgba(30,64,175,.13); }
.brand-dark { color:var(--navy); margin-left:0; }
.login-card h1 { font-size:27px; }
.login-card p { color:var(--muted); }
.login-card label { display:block; font-weight:600; font-size:14px; margin-top:16px; }
.login-card input:not([type=checkbox]) { display:block; width:100%; margin-top:7px; padding:11px 12px; border:1px solid var(--line); border-radius:10px; }
.login-card .remember { display:flex; align-items:center; gap:8px; font-weight:400; margin-bottom:18px; }
@media(max-width:1100px) { .metric-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:900px) { .sidebar{position:static;width:auto;height:auto}.sidebar nav{display:flex;overflow:auto}.sidebar form{display:none}.main-shell{margin-left:0;padding:20px}.toolbar{align-items:stretch;flex-direction:column}.search-form{min-width:0} }
@media(max-width:600px) { .metric-grid,.settings-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:12px}.admin-chip{display:none} }
