*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#0d1117;--color-surface:#161b22;--color-surface-2:#21262d;--color-border:#30363d;--color-border-muted:#21262d;--color-text-primary:#e6edf3;--color-text-secondary:#8b949e;--color-text-muted:#484f58;--color-critical:#da3633;--color-high:#e09d3a;--color-moderate:#3fb950;--color-low:#388bfd;--color-accent:#58a6ff;--shadow-overlay:#000000b3;--shadow-card:0 4px 12px #0006;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080}[data-theme=light]{--color-bg:#f6f8fa;--color-surface:#fff;--color-surface-2:#eaeef2;--color-border:#d0d7de;--color-border-muted:#eaeef2;--color-text-primary:#1f2328;--color-text-secondary:#636c76;--color-text-muted:#818b98;--color-accent:#0969da;--shadow-overlay:#0006;--shadow-card:0 4px 12px #0000001a}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text-primary);min-height:100vh;line-height:1.5;overflow-x:hidden}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:600;line-height:1.3}p{color:var(--color-text-secondary);line-height:1.6}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea,button{font-family:var(--font-sans)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border:2px solid var(--color-bg);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::-webkit-scrollbar-corner{background:var(--color-bg)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-bg)}@keyframes scan-pulse{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(2.2)}}@keyframes countdown{0%{width:100%}to{width:0%}}.scan-ring{border:2px solid var(--color-accent);border-radius:50%;animation:2.1s ease-out infinite scan-pulse;position:absolute;inset:0}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.spin{animation:1s linear infinite spin;display:inline-block}.pulse-dot{background:#58a6ff;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse-opacity;display:inline-block}.chart-skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--color-surface) 0%, var(--color-surface-2) 50%, var(--color-surface) 100%);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-pulse}main>*{animation:.2s ease-out fade-in}.recharts-wrapper,.recharts-surface,.recharts-tooltip-wrapper{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}::selection{color:var(--color-text-primary);background:#58a6ff33}
