:root{--bg:#0f1117;--surface:#1a1d27;--surface-2:#22263a;--border:rgba(255,255,255,.07);--text:#e8eaf0;--muted:#8b90a0;--accent:#4f8ef7;--green:#22c55e;--green-dim:rgba(34,197,94,.15);--red:#ef4444;--red-dim:rgba(239,68,68,.15);--yellow:#f59e0b;--radius:12px;--radius-sm:8px;--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
code{background:var(--surface-2);padding:2px 7px;border-radius:4px;font-size:13px;color:var(--muted);font-family:monospace;letter-spacing:.5px;}

/* Layout */
.app{display:flex;min-height:100vh;}
.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);padding:0;flex-shrink:0;display:flex;flex-direction:column;}
.sidebar__brand{padding:24px 20px 20px;border-bottom:1px solid var(--border);}
.sidebar__brand h1{font-size:15px;font-weight:700;color:var(--text);}
.sidebar__brand p{font-size:11px;color:var(--muted);margin-top:3px;}
.sidebar__nav{padding:12px 0;flex:1;}
.sidebar__nav a{display:flex;align-items:center;gap:9px;padding:10px 20px;font-size:13px;font-weight:500;color:var(--muted);transition:.15s;}
.sidebar__nav a:hover,.sidebar__nav a.active{color:var(--text);background:rgba(255,255,255,.04);text-decoration:none;}
.sidebar__nav a.active{border-left:2px solid var(--accent);color:var(--accent);}
.sidebar__footer{padding:16px 20px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);}
.main{flex:1;padding:32px 36px;max-width:1100px;}

/* Page header */
.page-header{margin-bottom:28px;}
.page-header h2{font-size:22px;font-weight:700;}
.page-header p{color:var(--muted);font-size:13px;margin-top:4px;}

/* Stat cards */
.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:28px;}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:18px 20px;}
.stat-card__label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:6px;}
.stat-card__value{font-size:28px;font-weight:800;color:var(--text);}
.stat-card--green .stat-card__value{color:var(--green);}
.stat-card--accent .stat-card__value{color:var(--accent);}
.stat-card--red .stat-card__value{color:var(--red);}

/* Table */
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
table{width:100%;border-collapse:collapse;}
thead th{background:var(--surface-2);padding:11px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;border-bottom:1px solid var(--border);}
tbody td{padding:11px 16px;font-size:13px;border-bottom:1px solid var(--border);}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:rgba(255,255,255,.02);}

/* Badge */
.badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:20px;}
.badge-green{background:var(--green-dim);color:var(--green);border:1px solid rgba(34,197,94,.25);}
.badge-red{background:var(--red-dim);color:var(--red);border:1px solid rgba(239,68,68,.25);}
.badge-yellow{background:rgba(245,158,11,.15);color:var(--yellow);border:1px solid rgba(245,158,11,.25);}
.badge-blue{background:rgba(79,142,247,.15);color:var(--accent);border:1px solid rgba(79,142,247,.25);}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:.15s;line-height:1;}
.btn:hover{text-decoration:none;}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn-primary:hover{background:#6ba3ff;color:#fff;}
.btn-sm{padding:5px 11px;font-size:12px;}
.btn-danger{background:var(--red-dim);color:var(--red);border-color:rgba(239,68,68,.3);}
.btn-danger:hover{background:var(--red);color:#fff;}
.btn-secondary{background:var(--surface-2);color:var(--muted);border-color:var(--border);}
.btn-secondary:hover{color:var(--text);}

/* Form */
.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;}
.field input,.field select,.field textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:9px 13px;font-size:13px;width:100%;transition:border-color .15s;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);}
.field .hint{font-size:11px;color:var(--muted);}
.form-actions{margin-top:24px;display:flex;gap:10px;align-items:center;}

/* Success box */
.key-result{background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.25);border-radius:var(--radius);padding:24px;margin-bottom:24px;text-align:center;}
.key-result__label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;}
.key-result__key{font-size:26px;font-weight:800;color:var(--green);letter-spacing:3px;font-family:monospace;}
.key-result__copy{margin-top:14px;}

/* Alert */
.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px;}
.alert-error{background:var(--red-dim);border:1px solid rgba(239,68,68,.3);color:var(--red);}
.alert-success{background:var(--green-dim);border:1px solid rgba(34,197,94,.3);color:var(--green);}

/* Login page */
.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);}
.login-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:36px 40px;width:100%;max-width:380px;}
.login-box h1{font-size:20px;font-weight:700;margin-bottom:6px;}
.login-box p{font-size:13px;color:var(--muted);margin-bottom:24px;}

/* Actions column */
.actions{display:flex;gap:6px;flex-wrap:wrap;}

/* Checkbox */
.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);}
.checkbox-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);}

@media(max-width:768px){
  .sidebar{display:none;}
  .main{padding:20px;}
  .form-grid{grid-template-columns:1fr;}
}
