@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--bg-primary:#0a0b0f;--bg-secondary:#111318;--bg-tertiary:#181b22;--bg-card:#14161d;--bg-card-hover:#1a1d26;--bg-elevated:#1e2130;--border-primary:#1e2235;--border-secondary:#282d3e;--border-accent:#3b4263;--text-primary:#e8eaf0;--text-secondary:#9499b3;--text-muted:#5c6280;--text-accent:#7c8aff;--accent:#6366f1;--accent-hover:#818cf8;--accent-glow:#6366f126;--accent-gradient:linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a78bfa 100%);--critical:#ef4444;--critical-bg:#ef44441a;--critical-border:#ef444440;--high:#f97316;--high-bg:#f973161a;--high-border:#f9731640;--medium:#eab308;--medium-bg:#eab3081a;--medium-border:#eab30840;--low:#22c55e;--low-bg:#22c55e1a;--low-border:#22c55e40;--info:#3b82f6;--info-bg:#3b82f61a;--info-border:#3b82f640;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #6366f126;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6}a{color:var(--accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-accent);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);transition:all var(--transition-normal);padding:24px}.card:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-md)}.card-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 2px 10px #6366f140}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #6366f159}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-secondary)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--accent)}.btn-danger{color:var(--critical);border:1px solid var(--critical-border);background:#ef444426}.btn-sm{padding:6px 14px;font-size:.8125rem}.btn-lg{padding:14px 28px;font-size:1rem}.input-group{flex-direction:column;gap:6px;display:flex}.input-label{color:var(--text-secondary);font-size:.8125rem;font-weight:500}.input{color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:10px 14px;font-family:Inter,sans-serif;font-size:.875rem}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder{color:var(--text-muted)}.badge{text-transform:capitalize;border-radius:100px;align-items:center;gap:5px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-critical{background:var(--critical-bg);color:var(--critical);border:1px solid var(--critical-border)}.badge-high{background:var(--high-bg);color:var(--high);border:1px solid var(--high-border)}.badge-medium{background:var(--medium-bg);color:var(--medium);border:1px solid var(--medium-border)}.badge-low{background:var(--low-bg);color:var(--low);border:1px solid var(--low-border)}.badge-info{background:var(--info-bg);color:var(--info);border:1px solid var(--info-border)}.table-container{border-radius:var(--radius-lg);border:1px solid var(--border-primary);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;text-align:left;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);padding:12px 16px;font-size:.75rem;font-weight:600}.table td{color:var(--text-primary);border-bottom:1px solid var(--border-primary);padding:14px 16px;font-size:.875rem}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--bg-card-hover)}.table tbody tr:last-child td{border-bottom:none}.risk-gauge{justify-content:center;align-items:center;width:160px;height:160px;display:flex;position:relative}.risk-gauge-circle{transform:rotate(-90deg)}.risk-gauge-bg{fill:none;stroke:var(--border-primary);stroke-width:8px}.risk-gauge-fill{fill:none;stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset 1s ease-out}.risk-gauge-text{text-align:center;position:absolute}.risk-gauge-value{font-size:2.5rem;font-weight:800;line-height:1}.risk-gauge-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.stat-card{flex-direction:column;gap:8px;display:flex}.stat-value{font-size:2rem;font-weight:700;line-height:1}.stat-label{color:var(--text-secondary);font-size:.8125rem}.severity-bar{align-items:center;gap:16px;padding:12px 0;display:flex}.severity-item{align-items:center;gap:8px;display:flex}.severity-dot{border-radius:50%;width:10px;height:10px}.severity-dot.critical{background:var(--critical);box-shadow:0 0 8px var(--critical)}.severity-dot.high{background:var(--high);box-shadow:0 0 8px var(--high)}.severity-dot.medium{background:var(--medium)}.severity-dot.low{background:var(--low)}.severity-count{font-size:1.25rem;font-weight:700}.severity-name{color:var(--text-muted);text-transform:uppercase;font-size:.75rem}.dashboard-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-primary);z-index:100;flex-direction:column;width:260px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{border-bottom:1px solid var(--border-primary);align-items:center;gap:12px;padding:24px;display:flex}.sidebar-logo-icon{background:var(--accent-gradient);border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;font-size:1.25rem;display:flex}.sidebar-logo-text{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.125rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex}.nav-item{color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:12px;padding:10px 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{color:var(--text-primary);background:var(--bg-tertiary)}.nav-item.active{color:var(--accent-hover);background:var(--accent-glow);border:1px solid #6366f126}.nav-icon{text-align:center;width:22px;font-size:1.125rem}.main-content{flex:1;margin-left:260px;padding:32px}.page-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.page-title{font-size:1.75rem;font-weight:700}.page-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.875rem}.grid-2{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}@media (max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sidebar{display:none}.main-content{margin-left:0}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.progress-bar{background:var(--border-primary);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent-gradient);border-radius:3px;height:100%;transition:width .5s}.status-indicator{align-items:center;gap:6px;font-size:.8125rem;font-weight:500;display:inline-flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.running{background:var(--accent);animation:1.5s infinite pulse}.status-dot.completed{background:var(--success)}.status-dot.failed{background:var(--error)}.status-dot.queued{background:var(--text-muted)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.4s ease-out forwards fadeIn}.auth-container{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-container:before{content:"";background:radial-gradient(circle at 30% 40%,#6366f10f 0%,#0000 50%),radial-gradient(circle at 70% 60%,#8b5cf60a 0%,#0000 50%);width:200%;height:200%;animation:20s ease-in-out infinite bgShift;position:absolute;top:-50%;left:-50%}@keyframes bgShift{0%,to{transform:translate(0)}50%{transform:translate(-2%,-1%)}}.auth-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:40px;position:relative}.auth-logo{text-align:center;margin-bottom:32px}.auth-title{margin-bottom:8px;font-size:1.5rem;font-weight:700}.auth-subtitle{color:var(--text-secondary);font-size:.875rem}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-form .input{width:100%}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:24px;font-size:.875rem}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-state-icon{opacity:.4;margin-bottom:16px;font-size:3rem}.empty-state-title{margin-bottom:8px;font-size:1.125rem;font-weight:600}.empty-state-text{color:var(--text-secondary);max-width:400px;font-size:.875rem}.skeleton{background:linear-gradient(90deg, var(--bg-tertiary) 25%, var(--bg-elevated) 50%, var(--bg-tertiary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.mono{font-family:JetBrains Mono,monospace;font-size:.8125rem}.risk-list{flex-direction:column;gap:12px;display:flex}.risk-item{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:14px;padding:14px;display:flex}.risk-item:hover{border-color:var(--border-secondary);transform:translate(4px)}.risk-item-score{border-radius:var(--radius-md);justify-content:center;align-items:center;min-width:42px;height:42px;font-size:.875rem;font-weight:700;display:flex}.risk-item-info{flex:1}.risk-item-title{font-size:.875rem;font-weight:500}.risk-item-asset{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.75rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-xl);width:100%;max-width:500px;box-shadow:var(--shadow-lg);padding:32px}.modal-title{margin-bottom:20px;font-size:1.25rem;font-weight:600}.topbar{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 0;display:flex}.topbar-user{align-items:center;gap:10px;display:flex}.avatar{background:var(--accent-gradient);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:600;display:flex}
