:root{--primary:#6366f1;--primary-hover:#4f46e5;--secondary:#10b981;--background:#0f172a;--surface:#1e293b;--surface-light:#334155;--text:#f8fafc;--text-muted:#94a3b8;--danger:#ef4444;--danger-hover:#dc2626;--border:#ffffff1a;--glass-bg:#1e293bb3;--glass-border:#ffffff14}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--text);font-weight:600}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-hover)}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;padding:24px;transition:transform .2s,box-shadow .2s;box-shadow:0 8px 32px #0000005e}.glass-panel:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000073}.btn{cursor:pointer;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;box-shadow:0 4px 12px #6366f14d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #6366f166}.btn-secondary{background:var(--surface-light);color:var(--text)}.btn-secondary:hover{background:#ffffff1a}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.input-group{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.input-group label{color:var(--text-muted);font-size:14px;font-weight:500}.input{border:1px solid var(--border);color:var(--text);background:#0f172a99;border-radius:8px;padding:12px 16px;font-family:inherit;font-size:14px;transition:all .2s}.input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #6366f133}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600}.badge-success{color:var(--secondary);background:#10b98126;border:1px solid #10b9814d}.badge-pending{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.badge-failed{color:var(--danger);background:#ef444426;border:1px solid #ef44444d}.table-container{width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid var(--border);padding:16px}th{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:12px;font-weight:600}tr:last-child td{border-bottom:none}tr{transition:background-color .2s}tbody tr:hover{background-color:#ffffff05}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:8px;width:260px;padding:24px;display:flex}.main-content{flex:1;padding:40px;overflow-y:auto}.sidebar-brand{background:linear-gradient(135deg,#fff,#94a3b8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:12px;margin-bottom:32px;font-size:20px;font-weight:700;display:flex}.nav-link{color:var(--text-muted);border-radius:8px;align-items:center;gap:12px;padding:12px 16px;font-weight:500;transition:all .2s;display:flex}.nav-link:hover{color:var(--text);background:#ffffff0d}.nav-link.active{color:var(--primary);border-left:3px solid var(--primary);background:#6366f126;border-radius:0 8px 8px 0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}.grid{gap:24px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=1024px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(1,1fr)}}@media (width<=768px){.app-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;padding:16px}.main-content{padding:16px}.grid-2,.grid-4{grid-template-columns:1fr}}.metric-card{flex-direction:column;gap:8px;display:flex}.metric-value{letter-spacing:-1px;font-size:32px;font-weight:700}.metric-label{color:var(--text-muted);font-size:14px}
