:root{--bg-0:#070a12;--bg-1:#0b0f1a;--bg-2:#111726;--bg-3:#18203180;--glass:#1117269e;--glass-strong:#0d121fdb;--border:#ffffff14;--border-strong:#ffffff26;--border-accent:#6d7cff73;--overlay-weak:#ffffff08;--overlay-med:#ffffff0d;--overlay-strong:#ffffff17;--hover:#ffffff0b;--track:#ffffff0f;--scrollbar-thumb:#ffffff1a;--scrollbar-thumb-hover:#fff3;--selection-bg:#6d7cff52;--selection-fg:#fff;--console-bg:#0b0f1a;--console-fg:#9ba7c0;--console-border:#ffffff14;--surface-1:#14161eeb;--bg-elev:#ffffff08;--danger:#ff4d6a;--text-0:#eceff7;--text-1:#9ba7c0;--text-2:#64718c;--text-3:#424e66;--brand:#34e5a3;--brand-dk:#12b981;--ok:var(--brand);--cyan:#22d3ee;--accent:#6d7cff;--accent-2:#a78bfa;--accent-grad:linear-gradient(135deg, #6d7cff 0%, #a78bfa 100%);--brand-grad:linear-gradient(135deg, #34e5a3 0%, #22d3ee 100%);--heat-grad:linear-gradient(135deg, #6d7cff, #a78bfa 45%, #34e5a3);--crit:#ff4d6a;--high:#ff8a3d;--med:#ffc53d;--low:#38bdf8;--info:#8593ad;--green:var(--brand);--red:var(--crit);--orange:var(--high);--amber:var(--med);--purple:var(--accent-2);--bg:var(--bg-0);--bg1:var(--bg-1);--bg2:var(--bg-2);--dim:var(--text-1);--glow:0 0 0 1px #6d7cff40, 0 8px 30px #00000080;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #00000073;--shadow-lg:0 12px 40px #0000008c;--shadow-glow:0 0 24px #6d7cff38;--shadow-glow-red:0 0 24px #ff4d6a47;--ring:0 0 0 3px #6d7cff47;--z-toast:10000;--z-cmd-palette:10001;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, "SF Mono", monospace}:root[data-theme=light]{--bg-0:#f4f6fb;--bg-1:#fff;--bg-2:#fff;--bg-3:#eef1f8;--glass:#ffffffc7;--glass-strong:#ffffffeb;--border:#0f172a1f;--border-strong:#0f172a38;--text-0:#0f172a;--text-1:#475569;--text-2:#64748b;--text-3:#7c8aa1;--brand-dk:#0e9f6e;--accent:#4f46e5;--shadow-sm:0 1px 2px #0f172a14;--shadow-md:0 4px 16px #0f172a1a;--shadow-lg:0 12px 40px #0f172a24;--glow:0 0 0 1px #4f46e52e, 0 8px 30px #0f172a1f;--overlay-weak:#0f172a09;--overlay-med:#0f172a0f;--overlay-strong:#0f172a1a;--hover:#0f172a0d;--track:#0f172a14;--scrollbar-thumb:#0f172a33;--scrollbar-thumb-hover:#0f172a57;--selection-bg:#4f46e538;--selection-fg:#0f172a;--surface-1:#ffffffeb;--bg-elev:#0f172a08;--crit:#e11d48;--high:#c2410c;--med:#b45309;--low:#0284c7;--info:#64748b;--brand:#059669;--cyan:#0e7490;--accent-2:#7c3aed;--danger:#e11d48;--heat-grad:linear-gradient(135deg, #4f46e5, #7c3aed 45%, #0e9f6e);--console-bg:#eaeef6;--console-fg:#334155;--console-border:#0f172a1f}:root[data-theme=light] body:before{opacity:.4}:root[data-theme=light] body:after{display:none}:root[data-theme=light] .skeleton{background:linear-gradient(90deg,#0f172a0d 0%,#0f172a1a 50%,#0f172a0d 100%) 0 0/200% 100%}:root[data-theme=light] .sidebar{border-right:1px solid var(--border);background:linear-gradient(#fff,#eef1f8)}:root[data-theme=light] .nav-item:hover{background:#0f172a0d}:root[data-theme=light] .nav-item.active{color:var(--accent);background:#4f46e51a;box-shadow:inset 0 0 0 1px #4f46e54d}:root[data-theme=light] .sidebar-status{color:var(--text-2)}:root[data-theme=light] .brand-title{background:linear-gradient(135deg,#0e9f6e 0%,#0e7490 100%);color:#0000;-webkit-background-clip:text;background-clip:text}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-0);color:var(--text-0);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px;line-height:1.55;overflow:hidden}body:before{content:"";z-index:-2;filter:blur(20px);pointer-events:none;background:radial-gradient(40% 40% at 18% 12%,#6d7cff29,#0000 70%),radial-gradient(38% 38% at 85% 18%,#a78bfa21,#0000 70%),radial-gradient(45% 45% at 75% 88%,#34e5a31a,#0000 70%),radial-gradient(40% 40% at 12% 85%,#22d3ee14,#0000 70%);animation:28s ease-in-out infinite alternate aurora-drift;position:fixed;inset:-20%}body:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(120% 120% at 50% 0,#0000 55%,#0000008c 100%);position:fixed;inset:0}@keyframes aurora-drift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(2%,1.5%)scale(1.06)}to{transform:translate(-2%,-1%)scale(1.02)}}@media (prefers-reduced-motion:reduce){body:before{animation:none}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}::selection{background:var(--selection-bg);color:var(--selection-fg)}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--text-0);font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2)}.app-shell{grid-template-columns:248px minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.sidebar{border-right:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0d121feb,#080b13f5);flex-direction:column;display:flex;position:relative;overflow:hidden}.brand{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:20px 20px 18px;display:flex}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-title{letter-spacing:.02em;background:var(--brand-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:17px;font-weight:700}.brand-sub{color:var(--text-2);letter-spacing:.22em;text-transform:uppercase;margin-top:3px;font-size:9.5px}.brand-logo{filter:drop-shadow(0 4px 14px #34e5a338);flex-shrink:0;display:block}.login-logo{filter:drop-shadow(0 10px 30px #6d7cff61)}.sidebar nav{flex:1;padding:12px;overflow-y:auto}.nav-group{margin-bottom:6px}.nav-group-header{letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;font-size:10px;font-family:var(--font-ui);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 12px 6px;transition:color .15s;display:flex}.nav-group-header:hover{color:var(--text-1)}.nav-group-chevron{font-size:9px;transition:transform .2s}.nav-group.collapsed .nav-group-chevron{transform:rotate(-90deg)}.nav-group.collapsed .nav-group-items{display:none}.nav-item{color:var(--text-1);border-radius:var(--radius-md);align-items:center;gap:11px;margin:2px 0;padding:9px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .16s,color .16s,transform .16s;display:flex;position:relative}.nav-item:hover{color:var(--text-0);background:var(--hover)}.nav-item.active{color:#fff;background:linear-gradient(90deg,#6d7cff33,#a78bfa14);box-shadow:inset 0 0 0 1px #6d7cff4d}.nav-item.active:before{content:"";background:var(--accent-grad);width:3px;height:18px;box-shadow:0 0 12px var(--accent);border-radius:0 3px 3px 0;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.nav-icon{text-align:center;opacity:.92;flex-shrink:0;width:20px;font-size:15px}.sidebar-status{border-top:1px solid var(--border);color:var(--text-2);padding:14px 18px;font-size:11px}.status-dot{background:var(--brand);width:7px;height:7px;box-shadow:0 0 8px var(--brand);border-radius:50%;margin-right:7px;animation:2.4s ease-in-out infinite pulse-dot;display:inline-block}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.45}}.main-pane{background:0 0;grid-template-rows:58px 1fr;grid-template-columns:minmax(0,1fr);display:grid;overflow:hidden}.header{background:var(--glass);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:16px;padding:0 24px;font-size:13px;display:flex}.header-left{flex:1;align-items:center;gap:10px;display:flex;overflow:hidden;container:headerbar/inline-size}.header-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.eng-chip{background:var(--overlay-med);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;min-width:0;max-width:100%;padding:5px 12px;display:inline-flex}.eng-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.14em;flex-shrink:0;font-size:9.5px;font-weight:600}.eng-name{color:var(--text-0);text-overflow:ellipsis;white-space:nowrap;min-width:4.5rem;font-weight:600;overflow:hidden}.eng-stats{color:var(--text-1);flex-shrink:0;font-size:12px}.eng-warn{color:var(--med);font-size:12.5px}.header-clock{color:var(--text-2);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em}@container headerbar (width<=560px){.eng-counts{display:none}}@container headerbar (width<=400px){.eng-client{display:none}}@container headerbar (width<=250px){.eng-label{display:none}}.eng-switch-list{flex-direction:column;gap:4px;display:flex}.eng-switch-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-1);align-items:stretch;gap:4px;display:flex;overflow:hidden}.eng-switch-row.is-active{border-color:var(--brand);background:#34e5a30f}.eng-switch-pick{cursor:pointer;color:var(--text-0);font-family:var(--font-ui);text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:8px 10px;font-size:12.5px;display:flex}.eng-switch-pick:hover:not(:disabled){background:var(--overlay-weak)}.eng-switch-pick:disabled{cursor:default}.eng-switch-dot{background:var(--border-strong);border-radius:50%;flex-shrink:0;width:8px;height:8px}.is-active .eng-switch-dot{background:var(--brand);box-shadow:0 0 8px #34e5a399}.eng-switch-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.eng-switch-tag{text-transform:uppercase;letter-spacing:.1em;color:var(--text-2);border:1px solid var(--border);border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:9.5px;font-weight:700}.eng-switch-count{color:var(--text-2);font-size:11px;font-family:var(--font-mono);flex-shrink:0}.eng-switch-edit{border:none;border-left:1px solid var(--border);cursor:pointer;width:34px;color:var(--text-2);background:0 0;flex-shrink:0;font-size:13px}.eng-switch-edit:hover:not(:disabled){color:var(--brand);background:#34e5a31a}.eng-switch-edit:disabled{cursor:default;opacity:.5}.eng-switch-del{border:none;border-left:1px solid var(--border);cursor:pointer;width:34px;color:var(--text-2);background:0 0;flex-shrink:0;font-size:13px}.eng-switch-del:hover:not(:disabled){color:var(--crit);background:#ff4d6a1a}.eng-switch-del:disabled{cursor:default;opacity:.5}.eng-switch-clear{cursor:pointer;color:var(--text-2);font-size:11px;font-family:var(--font-ui);background:0 0;border:none;margin-top:8px;padding:0;text-decoration:underline}.eng-switch-clear:hover:not(:disabled){color:var(--crit)}.eng-switch-clear:disabled{cursor:default;opacity:.5}.user-badge{color:var(--text-1);border:1px solid var(--border);background:var(--overlay-weak);border-radius:999px;padding:4px 11px;font-size:11.5px;font-weight:500}.user-identity{border:1px solid var(--border);background:var(--overlay-weak);border-radius:999px;align-items:center;gap:7px;padding:3px 5px 3px 11px;display:inline-flex}.user-identity .user-name{color:var(--text-0);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:11.5px;font-weight:600;overflow:hidden}.user-identity .user-role-chip{color:var(--brand);letter-spacing:.08em;text-transform:uppercase;background:#6d7cff1a;border:1px solid #6d7cff59;border-radius:999px;padding:2px 8px;font-size:9.5px;font-weight:700}.logout-btn{border:1px solid var(--border);color:var(--text-1);font-family:var(--font-ui);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:6px 13px;font-size:12px;font-weight:500;transition:all .16s}.logout-btn:hover{color:var(--crit);background:#ff4d6a0f;border-color:#ff4d6a99}.content{flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden auto}.content>.dashboard-grid{flex:1;min-height:0}.content>.page{flex:none}.page{flex-direction:column;gap:20px;width:100%;max-width:1600px;padding:24px 28px;display:flex}.page h2{letter-spacing:-.015em;margin-bottom:6px;font-size:20px;font-weight:700;line-height:1.25}.page h3{letter-spacing:-.005em;margin-bottom:4px;font-size:15px;font-weight:600}.page .card>h2:first-child,.page .card>h3:first-child{margin-top:0}.page>h2:first-child{margin-bottom:2px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-title{letter-spacing:-.02em;color:var(--text-0);align-items:center;gap:12px;font-size:22px;font-weight:700;display:flex}.page-title .page-icon{border-radius:var(--radius-md);border:1px solid var(--border-accent);background:#6d7cff24;place-items:center;width:36px;height:36px;font-size:18px;display:grid}.page-subtitle{color:var(--text-1);max-width:720px;margin-top:4px;font-size:13.5px}.page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card{border:1px solid var(--border);background:var(--bg-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 22px;transition:border-color .2s,box-shadow .2s,transform .2s;position:relative}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card-glass{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border)}.card-title{color:var(--text-1);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:16px;font-size:11px;font-weight:600;display:flex}.card-grid{gap:16px;display:grid}.findings-table,.kv-table{border-collapse:collapse;width:100%;font-size:13px}.findings-table th,.kv-table td:first-child{color:var(--text-2);letter-spacing:.06em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600}.findings-table td,.kv-table td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-0);padding:11px 12px}.findings-table tbody tr{transition:background .14s}.findings-table tbody tr:hover td{background:var(--hover)}.findings-table tbody tr:last-child td{border-bottom:none}.findings-table .ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.kv-table td{font-size:13px}.kv-table td:first-child{width:180px;color:var(--text-2);text-transform:none;letter-spacing:0;font-size:12.5px}.sev-pill,.status-pill{letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:700;font-family:var(--font-ui);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.sev-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px}.sev-critical,.sev-pill.sev-critical{color:var(--crit);background:#ff4d6a1f;box-shadow:inset 0 0 0 1px #ff4d6a4d}.sev-high,.sev-pill.sev-high{color:var(--high);background:#ff8a3d1f;box-shadow:inset 0 0 0 1px #ff8a3d4d}.sev-medium,.sev-pill.sev-medium{color:var(--med);background:#ffc53d1f;box-shadow:inset 0 0 0 1px #ffc53d4d}.sev-low,.sev-pill.sev-low{color:var(--low);background:#38bdf81f;box-shadow:inset 0 0 0 1px #38bdf84d}.sev-info,.sev-pill.sev-info{color:var(--info);background:#8593ad1f;box-shadow:inset 0 0 0 1px #8593ad47}.sev-chip{font-family:var(--font-ui);text-transform:capitalize;align-items:center;gap:4px;font-weight:600;display:inline-flex}.sev-dot{vertical-align:middle;background:currentColor;border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 6px}.status-pill{background:var(--overlay-med);box-shadow:inset 0 0 0 1px var(--border)}.status-pill.status-open{color:var(--med)}.status-pill.status-verified{color:var(--brand)}.status-pill.status-false_positive{color:var(--text-2);text-decoration:line-through}.status-pill.status-accepted_risk{color:var(--low)}.status-pill.status-fixed{color:var(--brand)}.conf-badge{letter-spacing:.01em;white-space:nowrap;cursor:help;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;display:inline-block}.conf-badge.conf-confirmed{color:var(--brand);background:#34e5a31f;box-shadow:inset 0 0 0 1px #34e5a352}.conf-badge.conf-potential{color:var(--med);background:#ffc53d1f;box-shadow:inset 0 0 0 1px #ffc53d52}.btn{background:var(--overlay-med);border:1px solid var(--border-strong);color:var(--text-0);font-family:var(--font-ui);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-size:13px;font-weight:600;transition:all .16s;display:inline-flex}.btn:hover{background:var(--overlay-strong);border-color:var(--border-strong);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent-grad);color:#fff;border:none;box-shadow:0 6px 20px #6d7cff59}.btn-primary:hover{filter:brightness(1.08);box-shadow:0 8px 28px #6d7cff80}.btn-brand{background:var(--brand-grad);color:#04130d;border:none;box-shadow:0 6px 20px #34e5a34d}.btn-brand:hover{filter:brightness(1.06);box-shadow:0 8px 28px #34e5a373}.btn-danger{color:var(--crit);background:#ff4d6a14;border-color:#ff4d6a80}.btn-danger:hover{background:#ff4d6a29}.btn-small{background:var(--overlay-med);border:1px solid var(--border);color:var(--text-1);font-family:var(--font-ui);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:500;text-decoration:none;transition:all .16s;display:inline-flex}.btn-small:hover{border-color:var(--border-accent);color:var(--text-0);background:#6d7cff1a}.filters{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.filters label,.form-group{flex-direction:column;gap:6px;display:flex}.filters label,.form-label{color:var(--text-2);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:600}.filters input,.filters select,.form-input,.form-select{background:var(--bg-1);border:1px solid var(--border);color:var(--text-0);font-family:var(--font-ui);border-radius:var(--radius-md);outline:none;width:100%;min-width:120px;padding:9px 12px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.filters input:focus,.filters select:focus,.form-input:focus,.form-select:focus{border-color:var(--border-accent);box-shadow:var(--ring)}.filters input::placeholder,.form-input::placeholder{color:var(--text-3)}.filters select option,.form-select option{background:var(--bg-2);color:var(--text-0)}.filters select,.form-select{appearance:none;text-overflow:ellipsis;white-space:nowrap;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238593AD' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;background-size:11px 8px;padding-right:36px}.form-full{grid-column:1/-1}.cve-form-row,.cve-form-row .form-input{min-width:0}@media (width<=640px){.cve-form-row{grid-template-columns:1fr!important}}.form-checkbox{cursor:pointer;color:var(--text-1);align-items:center;gap:9px;font-size:13px;display:flex}.form-checkbox input{accent-color:var(--accent);width:15px;height:15px}.scan-form{grid-template-columns:1fr 1fr;gap:18px;display:grid}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset]),textarea,select){background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-0);font-family:var(--font-ui);outline:none;padding:9px 12px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset]),textarea,select):focus{border-color:var(--border-accent);box-shadow:var(--ring)}:where(input,textarea)::placeholder{color:var(--text-3)}:where(textarea){resize:vertical;line-height:1.6}:where(select){cursor:pointer}:where(select) option{background:var(--bg-2);color:var(--text-0)}:where(input[type=checkbox],input[type=radio]){width:auto;accent-color:var(--accent);cursor:pointer}.mono-input{font-size:12.5px;font-family:var(--font-mono)!important}.consent-row{cursor:pointer;color:var(--text-1);align-items:flex-start;gap:10px;margin:12px 0;font-size:12px;line-height:1.6;display:flex}.consent-row input{accent-color:var(--accent);flex-shrink:0;margin-top:2px}.consent-row.is-ack,.consent-row strong{color:var(--text-0)}.field-hints{flex-wrap:wrap;gap:12px;margin-top:6px;font-size:11px;display:flex}.field-hint-ok{color:var(--brand)}.field-hint-warn{color:var(--med)}.tags-input{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);cursor:text;flex-wrap:wrap;align-items:center;gap:7px;width:100%;min-height:46px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.tags-input:focus-within{border-color:var(--border-accent);box-shadow:var(--ring)}.tag{max-width:100%;color:var(--text-0);font-family:var(--font-mono);background:#6d7cff1f;border:1px solid #6d7cff4d;border-radius:999px;align-items:center;gap:7px;padding:3px 5px 3px 9px;font-size:12px;display:inline-flex}.tag-kind{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);-webkit-user-select:none;user-select:none;font-size:8.5px;font-weight:700}.tag-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:42ch;color:inherit;font:inherit;cursor:pointer;-webkit-user-select:text;user-select:text;background:0 0;border:none;margin:0;padding:0;overflow:hidden}.tag-text:hover{text-underline-offset:2px;text-decoration:underline}.tag.is-invalid{background:#ffc53d1a;border-color:#ffc53d61}.tag.is-invalid .tag-kind{color:var(--med)}.tag-remove{width:16px;height:16px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;padding:0;font-size:14px;line-height:1;display:inline-grid}.tag-remove:hover{background:var(--overlay-strong);color:var(--text-0)}.tags-input-field{width:auto;min-width:140px;box-shadow:none;color:var(--text-0);font-family:var(--font-mono);background:0 0;border:none;flex:140px;padding:4px 2px;font-size:12.5px}.tags-input-field:focus{box-shadow:none;border:none}.tags-input-field::placeholder{color:var(--text-3)}.form-banner{border-radius:var(--radius-md);align-items:center;gap:8px;padding:9px 13px;font-size:12px;display:flex}.form-banner-error{color:var(--crit);background:#ff4d6a1a;border:1px solid #ff4d6a52}.form-banner-ok{color:var(--brand);background:#34e5a31a;border:1px solid #34e5a352}.mini-stat-grid{gap:var(--space-sm);display:grid}.mini-stat{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:13px 15px}.mini-stat.is-alert{background:#ff4d6a0f;border-color:#ff4d6a59}.mini-stat-label{color:var(--text-2);letter-spacing:.02em;font-size:11px}.mini-stat-value{font-size:26px;font-weight:700;line-height:1.1;font-family:var(--font-mono);margin-top:5px}.mini-stat-sub{color:var(--text-2);margin-top:4px;font-size:10.5px}.status-tile{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 15px}.status-tile.is-active{border-color:#34e5a359}.status-tile.is-inactive{border-color:#ffc53d4d}.status-tile-title{color:var(--text-0);margin-bottom:4px;font-weight:600}.data-table{border-collapse:collapse;width:100%;font-size:12.5px}.data-table th{text-align:left;color:var(--text-2);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:10.5px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);color:var(--text-0);vertical-align:top;padding:8px 10px}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.is-clickable{cursor:pointer}.data-table tbody tr.is-clickable:hover td{background:var(--hover)}.form-fieldset{border:1px solid var(--border);border-radius:var(--radius-md);margin:0;padding:14px 16px}.form-fieldset>legend{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);padding:0 6px;font-size:10.5px;font-weight:600}.form-fieldset.is-danger{border-color:#ff4d6a4d}.form-fieldset.is-danger>legend{color:var(--crit)}.page-lead{color:var(--text-1);max-width:780px;margin-bottom:14px;font-size:12.5px;line-height:1.7}.page-lead code{color:var(--text-0)}.cli-block{background:var(--console-bg);border:1px solid var(--console-border);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--console-fg);white-space:pre-wrap;padding:14px 16px;font-size:12px;line-height:1.7;overflow-x:auto}.btn-small.active{border-color:var(--border-accent);color:var(--text-0);background:#6d7cff24}.code,pre.code{background:var(--console-bg);border:1px solid var(--console-border);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--console-fg);white-space:pre;padding:14px 16px;font-size:12.5px;line-height:1.7;overflow-x:auto}.error{color:var(--crit);border-color:#ff4d6a73!important}.dim,.text-dim{color:var(--text-1)}.info-state{text-align:center;color:var(--text-1);padding:56px 24px}.info-state h3{color:var(--text-0);margin-bottom:8px;font-size:16px}@keyframes blink{50%{opacity:0}}.blink{animation:1.1s step-end infinite blink}@keyframes pulse-green{0%,to{box-shadow:0 0 6px #34e5a340}50%{box-shadow:0 0 18px #34e5a399}}.pulse{animation:2s ease-in-out infinite pulse-green}@keyframes matrix-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.3s cubic-bezier(.22,1,.36,1) forwards matrix-in}.dashboard-grid{grid-template-rows:1fr;grid-template-columns:minmax(0,1fr) 360px;min-width:0;height:calc(100vh - 58px);display:grid;overflow:hidden}.dashboard-left{grid-template-rows:1fr auto;min-width:0;min-height:0;display:grid;overflow:hidden}.dashboard-right{border-left:1px solid var(--border);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;min-width:0;display:flex;overflow:hidden}.dashboard-right-scroll{flex:auto;min-height:0;overflow:hidden auto}.dashboard-right>.terminal-pane{flex:none;height:38%;min-height:150px}.topology-container canvas{max-width:100%}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;padding:18px;display:grid}.stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;transition:transform .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.stat-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-3px)}.stat-card:after{content:"";opacity:.85;background:currentColor;height:3px;position:absolute;inset:0 0 auto}.stat-card:before{content:"";opacity:.1;background:radial-gradient(circle,currentColor,#0000 70%);width:110px;height:110px;position:absolute;top:-30px;right:-30px}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin-bottom:10px;font-size:11px;font-weight:600}.stat-value{font-size:2.6rem;font-weight:700;line-height:1;font-family:var(--font-mono);letter-spacing:-.02em}.stat-sub{color:var(--text-2);letter-spacing:.04em;margin-top:8px;font-size:10.5px}.launch-panel{min-height:0;padding:0 18px 16px}.launch-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.launch-all{color:var(--brand);cursor:pointer;font-size:11px;font-family:var(--font-ui);white-space:nowrap;background:0 0;border:none;font-weight:600}.launch-all:hover{text-decoration:underline}.launch-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.launch-tile{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-1);font-family:var(--font-ui);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;transition:transform .15s,border-color .15s,box-shadow .15s,color .15s;display:flex}.launch-tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);color:var(--text-0);transform:translateY(-2px)}.launch-tile-icon{font-size:18px;line-height:1}.launch-tile-name{letter-spacing:.02em;font-size:11px;font-weight:600}.launch-tile.is-primary{border-color:var(--accent)}.launch-tile.is-primary .launch-tile-icon,.launch-tile.is-primary .launch-tile-name{color:var(--accent)}.launch-tile.is-tool{border-style:dashed}.terminal-pane{background:var(--console-bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.terminal-header{border-bottom:1px solid var(--console-border);color:var(--text-2);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:12px 16px;font-size:10.5px;font-weight:600;display:flex}.terminal-body{font-family:var(--font-mono);color:var(--console-fg);flex:1;padding:12px 16px;font-size:12px;line-height:1.7;overflow-y:auto}.terminal-line{margin-bottom:2px}.terminal-line.info{color:var(--cyan)}.terminal-line.warn{color:var(--med)}.terminal-line.error{color:var(--crit)}.terminal-line.success{color:var(--brand)}.terminal-line .ts{color:var(--text-3);margin-right:8px}.killchain-grid{grid-template-columns:repeat(7,1fr);gap:12px;display:grid}.phase-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:18px 12px;transition:transform .18s,border-color .18s;position:relative;overflow:hidden}.phase-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.phase-card.has-findings{border-bottom:2px solid var(--brand)}.phase-card.no-findings{border-bottom:2px solid var(--border)}.phase-num{color:var(--text-3);letter-spacing:.1em;font-size:10px;font-family:var(--font-mono);margin-bottom:8px}.phase-name{color:var(--text-0);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:600}.phase-count{color:var(--brand);font-size:2rem;font-weight:700;font-family:var(--font-mono)}.phase-count.zero{color:var(--text-3)}.onboarding-banner{border:1px solid var(--border-accent);border-radius:var(--radius-lg);background:linear-gradient(135deg,#6d7cff14,#a78bfa0a);align-items:flex-start;gap:18px;padding:22px 26px;display:flex}.onboarding-icon{flex-shrink:0;font-size:26px}.onboarding-title{color:var(--text-0);margin-bottom:7px;font-size:15px;font-weight:700}.onboarding-body{color:var(--text-1);font-size:13px;line-height:1.7}.evidence-block{background:var(--console-bg);border:1px solid var(--console-border);border-radius:var(--radius-md);font-family:var(--font-mono);max-height:340px;color:var(--console-fg);white-space:pre-wrap;word-break:break-all;padding:14px 16px;font-size:12px;line-height:1.7;overflow:auto}.md-block{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);max-height:560px;padding:12px 18px;overflow:auto}.scan-status{align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:inline-flex}.scan-status:before{content:"●";font-size:9px}.scan-status.running{color:var(--brand)}.scan-status.running:before{animation:1s step-end infinite blink}.scan-status.completed{color:var(--text-1)}.scan-status.failed{color:var(--crit)}.scan-status.paused{color:var(--med)}.progress-bar{background:var(--track);border-radius:999px;width:100%;height:6px;position:relative;overflow:hidden}.progress-fill{background:var(--accent-grad);border-radius:999px;transition:width .4s;position:absolute;top:0;bottom:0;left:0}.progress-indeterminate .progress-fill{animation:1.4s ease-in-out infinite progress-slide;width:40%!important}@keyframes progress-slide{0%{left:-40%}to{left:140%}}.scan-list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.scan-list-head-right{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.scan-summary{color:var(--text-1);align-items:center;gap:12px;font-size:12px;display:flex}.scan-summary-run{color:var(--brand);font-weight:600}.scan-summary-fail{color:var(--crit);font-weight:600}.scan-list{flex-direction:column;gap:10px;display:flex}.scan-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-1);transition:border-color .16s,box-shadow .16s;overflow:hidden}.scan-row:hover{border-color:var(--border-strong)}.scan-row.is-open{border-color:var(--border-accent);box-shadow:var(--shadow-sm)}.scan-row.is-running{border-color:#34e5a359}.scan-row-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:12px 14px;display:flex}.scan-row-head:focus-visible{box-shadow:inset var(--ring);outline:none}.scan-chevron{color:var(--text-2);flex-shrink:0;width:12px;font-size:11px;transition:color .16s}.scan-row:hover .scan-chevron{color:var(--text-0)}.scan-badge{text-transform:capitalize;letter-spacing:.02em;border:1px solid var(--border);background:var(--overlay-med);color:var(--text-1);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.scan-badge-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.scan-badge-running{color:var(--brand);background:#34e5a31a;border-color:#34e5a366}.scan-badge-running .scan-badge-dot{animation:1s step-end infinite blink}.scan-badge-completed{color:var(--brand);background:#34e5a312;border-color:#34e5a34d}.scan-badge-failed{color:var(--crit);background:#ff4d6a1a;border-color:#ff4d6a66}.scan-badge-paused{color:var(--med);background:#ffc53d1a;border-color:#ffc53d66}.scan-badge-unknown{color:var(--text-2)}.scan-mode-tag{font-family:var(--font-mono);letter-spacing:.08em;color:var(--accent-2);border-radius:var(--radius-sm);background:#a78bfa1a;border:1px solid #a78bfa40;flex-shrink:0;padding:3px 7px;font-size:10px;font-weight:700}.scan-row-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.scan-row-title{align-items:center;gap:8px;min-width:0;display:flex}.scan-name{color:var(--text-0);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.scan-id-chip{font-family:var(--font-mono);color:var(--text-0);font-size:12.5px;font-weight:500}.scan-row-sub{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:7px;font-size:11px;display:flex}.scan-id-mini{font-family:var(--font-mono);color:var(--text-2);font-size:10.5px}.scan-progress-wrap{flex-shrink:0;align-items:center;gap:8px;width:172px;display:flex}.scan-progress-wrap .progress-bar{flex:1}.scan-progress-meta{flex-direction:column;align-items:flex-end;min-width:62px;line-height:1.2;display:flex}.scan-progress-pct{font-family:var(--font-mono);color:var(--brand);text-align:right;font-size:11px;font-weight:600}.scan-progress-eta{font-family:var(--font-mono);color:var(--text-3,var(--med));text-align:right;white-space:nowrap;font-size:10px}.scan-findings-chip{flex-shrink:0;justify-content:flex-end;align-items:baseline;gap:5px;min-width:78px;display:inline-flex}.scan-findings-num{font-family:var(--font-mono);color:var(--text-2);font-size:16px;font-weight:700}.scan-findings-chip.has-findings .scan-findings-num{color:var(--med)}.scan-findings-lbl{font-family:var(--font-ui);color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:500}.scan-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.scan-remove:hover{color:var(--crit)!important;background:#ff4d6a1a!important;border-color:#ff4d6a80!important}.scan-body{border-top:1px solid var(--border);background:var(--bg-0)}.scan-detail{padding:14px 16px}.scan-detail-msg{color:var(--text-1);padding:14px 16px;font-size:12.5px}.scan-detail-err{color:var(--crit)}.scan-detail-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.scan-sev-strip{flex-wrap:wrap;gap:7px;display:flex}.scan-sev-pill{background:var(--overlay-weak);text-transform:capitalize;border:1px solid;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.scan-sev-dot{border-radius:50%;width:7px;height:7px}.scan-finding-rows{flex-direction:column;gap:6px;display:flex}.scan-finding-row{text-align:left;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--text-0);font-family:var(--font-ui);align-items:center;gap:11px;padding:9px 12px;transition:border-color .14s,background .14s,transform .14s;display:flex}.scan-finding-row:hover{border-color:var(--border-accent);background:var(--bg-3);transform:translate(2px)}.scan-finding-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.scan-finding-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.scan-finding-target{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:220px;font-size:11px;overflow:hidden}.scan-finding-score{color:var(--text-1);text-align:right;flex-shrink:0;min-width:30px;font-size:12px;font-weight:600}.scan-finding-arrow{color:var(--text-3);flex-shrink:0;font-size:13px;transition:color .14s,transform .14s}.scan-finding-row:hover .scan-finding-arrow{color:var(--brand);transform:translate(2px)}@media (width<=720px){.scan-row-head{flex-wrap:wrap}.scan-progress-wrap{order:6;width:100%}.scan-actions{margin-left:auto}}.topology-container{width:100%;height:100%;position:relative}.topology-legend{color:var(--text-2);gap:14px;font-size:10.5px;display:flex;position:absolute;bottom:14px;left:14px}.legend-dot{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.toast-container{z-index:var(--z-toast);pointer-events:none;flex-direction:column;gap:10px;max-width:380px;display:flex;position:fixed;top:72px;right:20px}.toast{background:var(--glass-strong);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--radius-md);color:var(--text-0);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;padding:13px 16px;font-size:13px;animation:.24s cubic-bezier(.22,1,.36,1) forwards toast-in}.toast.toast-success{border-left-color:var(--brand)}.toast.toast-warning{border-left-color:var(--med)}.toast.toast-error{border-left-color:var(--crit);box-shadow:var(--shadow-glow-red), var(--shadow-lg)}.toast.toast-info{border-left-color:var(--cyan)}.toast-title{margin-bottom:3px;font-weight:700}.toast-body{color:var(--text-1);font-size:12px;line-height:1.5}.toast-close{float:right;color:var(--text-2);cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.toast-close:hover{color:var(--text-0)}@keyframes toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.cmd-palette-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-cmd-palette);background:#04060cb3;justify-content:center;align-items:flex-start;padding-top:13vh;animation:.14s ease-out cmd-fade-in;display:flex;position:fixed;inset:0}.cmd-palette{background:var(--glass-strong);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:660px;max-width:92vw;max-height:70vh;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;display:flex;overflow:hidden}.cmd-palette-input{color:var(--text-0);font-family:var(--font-ui);border:none;border-bottom:1px solid var(--border);background:0 0;outline:none;padding:18px 20px;font-size:15px}.cmd-palette-input::placeholder{color:var(--text-3)}.cmd-palette-list{max-height:calc(70vh - 60px);padding:6px;overflow-y:auto}.cmd-palette-group{padding:6px 0}.cmd-palette-group-label{letter-spacing:.12em;color:var(--text-3);text-transform:uppercase;padding:6px 14px;font-size:10px;font-weight:600}.cmd-palette-item{cursor:pointer;color:var(--text-1);text-align:left;width:100%;font-size:13.5px;font-family:var(--font-ui);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:12px;padding:10px 14px;display:flex}.cmd-palette-item:hover,.cmd-palette-item.active{color:var(--text-0);background:#6d7cff24}.cmd-palette-item-icon{text-align:center;flex-shrink:0;width:20px;font-size:15px}.cmd-palette-item-label{flex:1}.cmd-palette-item-hint{color:var(--text-2);font-size:11px;font-family:var(--font-mono)}.cmd-palette-empty{text-align:center;color:var(--text-2);padding:32px;font-size:13px}.cmd-palette-footer{border-top:1px solid var(--border);color:var(--text-2);justify-content:space-between;padding:10px 18px;font-size:10.5px;display:flex}kbd{background:var(--overlay-med);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:10.5px;font-family:var(--font-mono);color:var(--text-1);padding:2px 7px;display:inline-block}@keyframes cmd-fade-in{0%{opacity:0}to{opacity:1}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff0a 0%,#ffffff17 50%,#ffffff0a 100%) 0 0/200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer;display:inline-block}.skeleton-line{height:13px;margin:8px 0;display:block}.skeleton-line.lg{height:20px}.skeleton-line.sm{height:10px}.skeleton-block{border-radius:var(--radius-md);width:100%;height:88px;margin:12px 0;display:block}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;color:var(--text-1);padding:64px 24px}.empty-state-icon{opacity:.5;margin-bottom:16px;font-size:42px}.empty-state-headline{color:var(--text-0);margin-bottom:8px;font-size:16px;font-weight:700}.empty-state-body{max-width:420px;margin-bottom:20px;margin-left:auto;margin-right:auto;font-size:13px;line-height:1.6}.empty-state-cta{border-radius:var(--radius-md);background:var(--accent-grad);color:#fff;cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 6px 20px #6d7cff52}.empty-state-cta:hover{filter:brightness(1.08);color:#fff}.route-fallback{min-height:60vh;color:var(--text-2);letter-spacing:.03em;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:13px;display:flex}.topology-loading{color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:12.5px;display:flex}.route-spinner{border:2.5px solid var(--track);border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.text-xs{font-size:11px}.text-sm{font-size:12.5px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-brand{color:var(--brand)}.text-accent{color:var(--accent)}.mono{font-family:var(--font-mono)}.gradient-text{background:var(--heat-grad);color:#0000;-webkit-background-clip:text;background-clip:text}.divider{background:var(--border);height:1px;margin:var(--space-md) 0;border:none}.badge-soft{background:var(--overlay-med);border:1px solid var(--border);color:var(--text-1);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.login-shell{grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;display:grid;position:fixed;inset:0;overflow:auto}.login-grid-fx{z-index:-1;pointer-events:none;background-image:linear-gradient(#6d7cff0d 1px,#0000 1px),linear-gradient(90deg,#6d7cff0d 1px,#0000 1px);background-size:46px 46px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(80% 70% at 30% 40%,#000 30%,#0000 75%);mask-image:radial-gradient(80% 70% at 30% 40%,#000 30%,#0000 75%)}.login-hero{max-width:640px;padding:48px 0 48px 8%}.login-brand{align-items:center;gap:18px;margin-bottom:40px;display:flex}.login-wordmark{letter-spacing:-.02em;font-size:46px;font-weight:800;line-height:1}.login-tagline{color:var(--text-1);letter-spacing:.28em;text-transform:uppercase;margin-top:8px;font-size:13px}.login-headline{letter-spacing:-.02em;margin-bottom:14px;font-size:30px;font-weight:700;line-height:1.25}.login-headline .gradient-text{display:inline}.login-sub{color:var(--text-1);max-width:520px;margin-bottom:36px;font-size:15px;line-height:1.7}.login-caps{grid-template-columns:1fr 1fr;gap:16px;max-width:560px;display:grid}.login-cap{align-items:flex-start;gap:13px;display:flex}.login-cap-icon{border-radius:var(--radius-md);background:var(--overlay-med);border:1px solid var(--border);flex-shrink:0;place-items:center;width:38px;height:38px;font-size:17px;display:grid}.login-cap-title{color:var(--text-0);font-size:13.5px;font-weight:600}.login-cap-body{color:var(--text-2);margin-top:2px;font-size:12px;line-height:1.5}.login-panel{justify-content:center;align-items:center;padding:40px 8% 40px 0;display:flex}.login-card{border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);background:var(--glass-strong);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:36px 34px}.login-card-title{margin-bottom:6px;font-size:20px;font-weight:700}.login-card-sub{color:var(--text-2);margin-bottom:28px;font-size:13px}.login-field{margin-bottom:18px}.login-field label{color:var(--text-1);letter-spacing:.02em;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.login-input{width:100%}.login-error{border-radius:var(--radius-md);color:var(--crit);background:#ff4d6a1a;border:1px solid #ff4d6a52;align-items:center;gap:8px;margin-bottom:18px;padding:11px 14px;font-size:12.5px;display:flex}.login-submit{width:100%;margin-top:4px;padding:12px;font-size:14px}.login-hint{color:var(--text-2);text-align:center;margin-top:22px;font-size:11.5px;line-height:1.7}.login-hint .mono{color:var(--text-1)}@media (width<=980px){.login-shell{grid-template-columns:1fr}.login-hero{display:none}.login-panel{padding:24px}}.error-boundary{justify-content:center;align-items:center;min-height:60vh;padding:32px;display:flex}.error-boundary-card{text-align:center;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:520px;padding:32px 28px}.error-boundary-icon{margin-bottom:12px;font-size:40px}.error-boundary-title{color:var(--text-0);margin:0 0 8px;font-size:18px;font-weight:700}.error-boundary-text{color:var(--text-1);margin:0 0 16px;font-size:13px;line-height:1.6}.error-boundary-detail{text-align:left;color:var(--crit);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;background:#ff4d6a14;border:1px solid #ff4d6a40;max-height:160px;margin:0 0 18px;padding:10px 12px;font-size:11px;overflow:auto}.error-boundary-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.btn-ghost{border-radius:var(--radius-md);border:1px solid var(--border-strong);color:var(--text-1);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:8px 14px;font-size:13px;text-decoration:none;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.btn-ghost:hover{border-color:var(--border-accent);color:var(--text-0);background:var(--overlay-med)}.scan-running-badge{border:1px solid var(--brand);color:var(--brand);cursor:pointer;background:#34e5a31a;border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:11.5px;font-weight:600;transition:background .15s;display:inline-flex}.scan-running-badge:hover{background:#34e5a32e}.scan-running-dot{background:var(--brand);border-radius:50%;width:7px;height:7px;animation:1.4s infinite scanPulse}@keyframes scanPulse{0%{box-shadow:0 0 #34e5a38c}70%{box-shadow:0 0 0 7px #34e5a300}to{box-shadow:0 0 #34e5a300}}.job-running-badge{border-color:var(--accent);color:var(--accent-2);background:#6d7cff1f;max-width:260px}.job-running-badge:hover{background:#6d7cff33}.job-running-badge .scan-running-dot{background:var(--accent-2);animation:1.4s infinite jobPulse}.job-running-badge>:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes jobPulse{0%{box-shadow:0 0 #6d7cff8c}70%{box-shadow:0 0 0 7px #6d7cff00}to{box-shadow:0 0 #6d7cff00}}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}th[role=button]{outline-offset:-2px}th[aria-sort=ascending],th[aria-sort=descending]{color:var(--text-0)}@media (prefers-reduced-motion:reduce){.scan-running-dot{animation:none}}.helptip{cursor:help;vertical-align:middle;outline:none;align-items:center;display:inline-flex;position:relative}.helptip-icon{border:1px solid var(--border-strong);width:14px;height:14px;color:var(--text-2);border-radius:50%;justify-content:center;align-items:center;margin-left:5px;font-size:9.5px;font-weight:700;line-height:1;transition:color .12s,border-color .12s;display:inline-flex}.helptip:hover .helptip-icon,.helptip:focus .helptip-icon{color:var(--text-0);border-color:var(--brand)}.helptip-portal{z-index:9999;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);width:max-content;max-width:260px;color:var(--text-1);text-transform:none;letter-spacing:normal;text-align:left;white-space:normal;pointer-events:none;padding:8px 11px;font-size:11.5px;font-weight:400;line-height:1.55;animation:.12s helptip-fade;position:fixed;box-shadow:0 8px 24px #00000073}.helptip-portal--top{transform:translate(-50%,-100%)}.helptip-portal--bottom{transform:translate(-50%)}@keyframes helptip-fade{0%{opacity:0}to{opacity:1}}.theme-toggle,.nav-toggle{border-radius:var(--radius-md);border:1px solid var(--border);width:32px;height:32px;color:var(--text-1);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:15px;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.theme-toggle:hover,.nav-toggle:hover{color:var(--text-0);border-color:var(--border-strong);background:var(--bg-3)}.nav-toggle{margin-right:4px;display:none}.nav-backdrop{display:none}@media (width<=1100px){.dashboard-grid{grid-template-rows:auto;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;overflow:visible}.content>.dashboard-grid{flex:none}.dashboard-left{min-height:0;display:block;overflow:visible}.dashboard-right{border-left:none;border-top:1px solid var(--border);min-height:0;overflow:visible}.dashboard-right-scroll{min-height:0;overflow:visible}.dashboard-right>.terminal-pane{height:auto}.dashboard-topology{height:300px}.stat-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:14px}}@media (width<=860px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:1000;width:248px;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-shell.nav-open .sidebar{box-shadow:var(--shadow-lg);transform:none}.app-shell.nav-open .nav-backdrop{z-index:999;background:#00000080;display:block;position:fixed;inset:0}.nav-toggle{display:inline-flex}.header{gap:8px;padding-left:12px;padding-right:12px}.header-clock{display:none}.data-table{-webkit-overflow-scrolling:touch;white-space:nowrap;display:block;overflow-x:auto}}@media (width<=640px){.eng-stats,.eng-label,.user-badge,.user-role-chip{display:none}}@media (width<=380px){.stat-value{font-size:2.1rem}.stat-card{padding:14px 15px}}.chat-panel{flex-direction:column;min-height:0;display:flex}.chat-panel .chat-scroll{flex-direction:column;flex:auto;gap:12px;min-height:320px;max-height:62vh;padding:16px;display:flex;overflow-y:auto}.chat-panel--compact .chat-scroll{min-height:240px;max-height:46vh;padding:12px}.chat-empty{text-align:center;color:var(--text-2);max-width:460px;margin:auto}.chat-empty-icon{opacity:.7;font-size:30px}.chat-suggestions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.chat-chip{border:1px solid var(--border);background:var(--bg-2,#ffffff08);color:var(--text-1);cursor:pointer;border-radius:999px;padding:7px 12px;font-size:12.5px;transition:border-color .15s,background .15s}.chat-chip:hover{border-color:var(--accent);background:var(--glass,#ffffff0f)}.chat-msg{display:flex}.chat-msg--user{justify-content:flex-end}.chat-msg--assistant{justify-content:flex-start}.chat-bubble{word-wrap:break-word;overflow-wrap:anywhere;border-radius:14px;max-width:86%;padding:10px 13px;font-size:14px;line-height:1.5}.chat-msg--user .chat-bubble{background:var(--accent-grad,var(--accent));color:#fff;white-space:pre-wrap;border-bottom-right-radius:4px}.chat-msg--assistant .chat-bubble{background:var(--bg-2,#ffffff0a);border:1px solid var(--border);color:var(--text-0);border-bottom-left-radius:4px}.chat-msg--assistant .chat-bubble :first-child{margin-top:0}.chat-msg--assistant .chat-bubble :last-child{margin-bottom:0}.chat-dim{color:var(--text-3)}.chat-typing{align-items:center;gap:4px;height:16px;display:inline-flex}.chat-typing span{background:var(--text-3);border-radius:50%;width:6px;height:6px;animation:1.2s infinite both chat-blink}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes chat-blink{0%,80%,to{opacity:.25}40%{opacity:1}}.chat-error{border-radius:var(--radius-sm);border:1px solid var(--crit);color:var(--crit);background:#ff5a5a1a;margin:0 16px 8px;padding:8px 12px;font-size:12.5px}.chat-composer{border-top:1px solid var(--border);align-items:flex-end;gap:8px;padding:12px 16px;display:flex}.chat-input{resize:none;font:inherit;color:var(--text-0);background:var(--bg-1,#0003);border:1px solid var(--border);border-radius:var(--radius-md);flex:auto;min-height:0;padding:9px 11px;font-size:14px}.chat-input:focus{border-color:var(--accent);box-shadow:var(--ring,0 0 0 2px #5a8cff40);outline:none}.chat-send{white-space:nowrap;align-self:stretch}.chat-meta{color:var(--text-3);padding:0 16px 12px;font-size:11.5px}.chat-toggle{color:var(--text-2);cursor:pointer;align-items:center;gap:7px;font-size:13px;display:inline-flex}.chat-setup-hint{margin-bottom:12px;padding:12px 14px;font-size:13px;line-height:1.5}.chat-widget{z-index:60;position:fixed;bottom:22px;right:22px}.chat-fab{cursor:pointer;color:#fff;background:var(--accent-grad,var(--accent));width:52px;height:52px;box-shadow:var(--shadow-glow,0 6px 24px #0006);border:none;border-radius:50%;font-size:22px;transition:transform .15s}.chat-fab:hover{transform:translateY(-2px)scale(1.04)}.chat-widget-panel{width:min(400px,100vw - 44px);box-shadow:var(--shadow-lg,0 12px 40px #00000080);flex-direction:column;padding:0;display:flex;position:absolute;bottom:64px;right:0;overflow:hidden}.chat-widget-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-weight:700;display:flex}.chat-widget-title{font-size:13.5px}.chat-widget-actions{gap:6px;display:flex}.chat-widget-expand,.chat-widget-close{color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:15px;text-decoration:none}.chat-widget-expand:hover,.chat-widget-close:hover{color:var(--text-0);background:var(--glass,#ffffff0f)}@media (width<=560px){.chat-widget{bottom:14px;right:14px}.chat-widget-panel{width:calc(100vw - 28px)}}
