:root{--bg-primary:#0a0e1a;--bg-secondary:#0d1321;--bg-card:#111827b3;--bg-card-hover:#111827e6;--bg-sidebar:#0a0e1af2;--accent-violet:#6c63ff;--accent-violet-dim:#6c63ff26;--accent-violet-glow:#6c63ff73;--accent-cyan:#00d4ff;--accent-cyan-dim:#00d4ff26;--accent-cyan-glow:#00d4ff66;--color-critical:#ef4444;--color-critical-dim:#ef444426;--color-high:#f97316;--color-high-dim:#f9731626;--color-medium:#eab308;--color-medium-dim:#eab30826;--color-low:#94a3b8;--color-low-dim:#94a3b826;--color-pass:#10b981;--color-pass-dim:#10b98126;--color-info:#6366f1;--color-info-dim:#6366f126;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#475569;--text-accent:#6c63ff;--border-color:#6c63ff1f;--border-hover:#6c63ff59;--font-mono:"JetBrains Mono","Courier New",monospace;--font-sans:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,sans-serif;--sidebar-width:240px;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:400ms ease;--shadow-card:0 4px 24px #0006;--shadow-glow-cyan:0 0 20px #00d4ff40;--shadow-glow-cyan-strong:0 0 40px #00d4ff66;--shadow-glow-violet:0 0 20px #6c63ff4d;--shadow-glow-violet-strong:0 0 40px #6c63ff80}[data-theme=light]{--bg-primary:#f8f9fa;--bg-card:#fff;--bg-secondary:#f0f2f5;--bg-sidebar:#f0f2f5fa;--text-primary:#1a1d2e;--text-secondary:#4a5568;--text-muted:#718096;--border-color:#6c63ff26;--border-hover:#6c63ff66;--shadow-card:0 4px 24px #00000014}[data-theme=light] body:before{background-image:linear-gradient(#6c63ff0f 1px,#0000 0),linear-gradient(90deg,#6c63ff0f 1px,#0000 0)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0e1a;background-color:var(--bg-primary);color:#e2e8f0;color:var(--text-primary);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-sans);min-height:100vh;overflow-x:hidden;transition:background-color .3s ease,color .3s ease}body:before{background-image:linear-gradient(#6c63ff0a 1px,#0000 0),linear-gradient(90deg,#6c63ff0a 1px,#0000 0);background-size:48px 48px;content:"";inset:0;pointer-events:none;position:fixed;z-index:0}#root{position:relative;z-index:1}h1,h2,h3,h4,h5,h6{color:#e2e8f0;color:var(--text-primary);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-sans);font-weight:700;line-height:1.2}p{color:#94a3b8;color:var(--text-secondary);line-height:1.6}a{color:#00d4ff;color:var(--accent-cyan);text-decoration:none}.mono,code,pre{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono)}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0d1321;background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#6c63ff40;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#6c63ff73}.card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#111827b3;background:var(--bg-card);border:1px solid #6c63ff1f;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 24px #0006;box-shadow:var(--shadow-card);transition:border-color .25s ease,box-shadow .25s ease,background .3s ease;transition:border-color var(--transition-base),box-shadow var(--transition-base),background .3s ease}.card:hover{border-color:#6c63ff59;border-color:var(--border-hover);box-shadow:0 4px 24px #0006,0 0 20px #6c63ff4d;box-shadow:var(--shadow-card),var(--shadow-glow-violet)}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-sans);font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .15s ease;transition:all var(--transition-fast)}.btn-primary{background:linear-gradient(135deg,#6c63ff,#5a52e8);box-shadow:0 0 16px #6c63ff59,inset 0 1px 0 #ffffff1a;color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#7b74ff,#6c63ff);box-shadow:0 0 28px #6c63ff8c,inset 0 1px 0 #ffffff26;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-ghost{background:#0000;border:1px solid #6c63ff1f;border:1px solid var(--border-color);color:#94a3b8;color:var(--text-secondary)}.btn-ghost:hover{border-color:#6c63ff;border-color:var(--accent-violet);box-shadow:0 0 12px #6c63ff33;color:#6c63ff;color:var(--accent-violet)}.btn-danger{background:#ef444426;background:var(--color-critical-dim);border:1px solid #ef44444d;color:#ef4444;color:var(--color-critical)}.btn-danger:hover{background:#ef444440}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-glow{0%,to{box-shadow:0 0 8px #6c63ff33}50%{box-shadow:0 0 24px #6c63ff80}}@keyframes logo-pulse{0%,to{filter:drop-shadow(0 0 12px rgba(108,99,255,.6));opacity:1;transform:scale(1)}50%{filter:drop-shadow(0 0 28px rgba(0,212,255,.7));opacity:.85;transform:scale(1.04)}}@keyframes logo-scanline{0%{opacity:0;transform:translateY(-100%)}20%{opacity:.6}80%{opacity:.6}to{opacity:0;transform:translateY(100%)}}@keyframes spin{to{transform:rotate(1turn)}}.anim-slide-up{animation:fadeSlideUp .4s ease both;animation:fadeSlideUp var(--transition-slow) both}.anim-fade-in{animation:fadeIn .25s ease both;animation:fadeIn var(--transition-base) both}.stagger-1{animation-delay:0ms}.stagger-2{animation-delay:80ms}.stagger-3{animation-delay:.16s}.stagger-4{animation-delay:.24s}.stagger-5{animation-delay:.32s}.spinner{animation:spin .8s linear infinite;border:2px solid #6c63ff33;border-radius:50%;border-top:2px solid var(--accent-violet);height:20px;width:20px}.loading-screen{align-items:center;animation:fadeIn .3s ease both;background:#0a0e1a;display:flex;flex-direction:column;gap:32px;inset:0;justify-content:center;position:fixed;z-index:9999}.loading-screen.fade-out{animation:fadeOut .4s ease both}@keyframes fadeOut{0%{opacity:1}to{opacity:0;pointer-events:none}}.loading-logo{animation:logo-pulse 1.8s ease-in-out infinite}.loading-bar-track{background:#6c63ff26;border-radius:2px;height:2px;overflow:hidden;width:160px}.loading-bar-fill{animation:loadingBar 2s ease-in-out both;background:linear-gradient(90deg,#6c63ff,#00d4ff);border-radius:2px;height:100%}@keyframes loadingBar{0%{width:0}to{width:100%}}.loading-text{color:#94a3b880;font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase}.input{background:#0f1423cc;border:1px solid #6c63ff1f;border:1px solid var(--border-color);border-radius:8px;color:#e2e8f0;color:var(--text-primary);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-sans);font-size:14px;outline:none;padding:10px 14px;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.input:focus{border-color:#6c63ff;border-color:var(--accent-violet);box-shadow:0 0 0 3px #6c63ff26}.input::placeholder{color:#475569;color:var(--text-muted)}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;font-size:14px;width:100%}thead th{background:#00d4ff0f;border-bottom:1px solid #6c63ff1f;border-bottom:1px solid var(--border-color);color:#94a3b8;color:var(--text-secondary);font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.08em;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}tbody tr{border-bottom:1px solid #ffffff0a;transition:background .15s ease;transition:background var(--transition-fast)}tbody tr:hover{background:#00d4ff0a;cursor:pointer}tbody td{padding:12px 16px;vertical-align:middle}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes bell-pulse{0%,to{box-shadow:0 0 0 0 #ef444499;transform:scale(1)}50%{box-shadow:0 0 0 6px #ef444400;transform:scale(1.2)}}.bell-badge-pulse{animation:bell-pulse 2s ease-in-out infinite}.slide-panel-overlay{animation:fadeIn .2s ease both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;inset:0;position:fixed;z-index:100}.slide-panel{animation:slideInRight .25s ease both;background:#0d1321;border-left:1px solid #6c63ff1f;border-left:1px solid var(--border-color);bottom:0;overflow-y:auto;position:fixed;right:0;top:0;width:min(520px,95vw);z-index:101}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}