*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface-hover:#22263a;--border:#2a2e3f;--text:#e8eaf0;--text-secondary:#8b92a8;--text-tertiary:#565d75;--primary:#7c6ff7;--primary-hover:#6b5ee6;--success:#4ade80;--error:#f87171;--warning:#fbbf24;--rose:#f472b6;--blue:#60a5fa}html{-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,sans-serif}body{background:var(--bg);color:var(--text);min-height:100vh}input,select,textarea,button{font-family:inherit}input,select,textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none}button{cursor:pointer;border:none;font-size:14px}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.5px;padding:10px 16px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);padding:12px 16px;font-size:14px}tr:hover td{background:var(--surface-hover)}.badge{border-radius:20px;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{color:var(--success);background:#4ade801a}.badge-warning{color:var(--warning);background:#fbbf241a}.badge-error{color:var(--error);background:#f871711a}.badge-primary{color:var(--primary);background:#7c6ff71a}.btn{border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-hover);color:var(--text)}.btn-sm{padding:6px 12px;font-size:12px}.card,.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.stat-card h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px;font-weight:500}.stat-card .value{font-size:28px;font-weight:700}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.3s forwards fadeIn}
