@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0;transition:background-color .2s,border-color .2s,color .2s}:root,[data-theme=dark]{--bg:#0f1117;--surface:#171c26;--surface-2:#1e2433;--surface-3:#252d3d;--border:#2a3347;--border-sub:#1e2433;--border-2:#2a3347;--text:#e2e8f0;--text-2:#94a3b8;--text-3:#64748b;--blue:#1a56db;--blue-light:#3b82f6;--blue-dim:#1a56db1f;--blue-border:#1a56db4d;--red:#e84040;--red-dim:#e840401a;--red-border:#e8404040;--orange:#f97316;--orange-dim:#f973161a;--orange-border:#f9731640;--yellow:#eab308;--yellow-dim:#eab3081a;--yellow-border:#eab30840;--green:#22c55e;--green-dim:#22c55e1a;--green-border:#22c55e40;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009;--shadow-xl:0 20px 60px #000000b3;--critical:var(--red);--critical-bg:var(--red-dim);--high:var(--orange);--high-bg:var(--orange-dim);--medium:var(--yellow);--medium-bg:var(--yellow-dim);--low:var(--green);--low-bg:var(--green-dim);--accent:var(--blue-light);--accent-dim:var(--blue-dim);--text-sub:var(--text-2);--text-muted:var(--text-3);--transition:.14s ease;--purple:#a855f7;--purple-dim:#a855f71f;--purple-border:#a855f747}[data-theme=light]{--bg:#eef2f7;--surface:#fff;--surface-2:#f4f7fb;--surface-3:#eaeff6;--border:#d4dbe8;--border-sub:#eaeff6;--border-2:#d4dbe8;--text:#0d1526;--text-2:#3a4d6b;--text-3:#7a8fa8;--blue:#1d4ed8;--blue-light:#1d4ed8;--blue-dim:#1d4ed81a;--blue-border:#1d4ed847;--red:#b91c1c;--red-dim:#b91c1c17;--red-border:#b91c1c47;--orange:#c2410c;--orange-dim:#c2410c17;--orange-border:#c2410c47;--yellow:#92400e;--yellow-dim:#92400e17;--yellow-border:#92400e47;--green:#15803d;--green-dim:#15803d17;--green-border:#15803d47;--shadow-sm:0 1px 3px #00000012;--shadow-md:0 4px 16px #00000017;--shadow-lg:0 8px 32px #0000001c;--shadow-xl:0 20px 60px #00000024;--critical:var(--red);--critical-bg:var(--red-dim);--high:var(--orange);--high-bg:var(--orange-dim);--medium:var(--yellow);--medium-bg:var(--yellow-dim);--low:var(--green);--low-bg:var(--green-dim);--accent:var(--blue);--accent-dim:var(--blue-dim);--text-sub:var(--text-2);--text-muted:var(--text-3);--transition:.14s ease;--purple:#7c3aed;--purple-dim:#7c3aed1a;--purple-border:#7c3aed47}:root{--r-sm:5px;--r:8px;--r-lg:12px;--t:.14s ease;--radius:var(--r);--radius-sm:var(--r-sm);--radius-lg:var(--r-lg)}html,body{width:100%;height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.6;overflow-x:hidden}#root{height:100%;display:flex}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:13px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.35}}.layout{width:100%;height:100%;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:20;flex-direction:column;flex-shrink:0;width:228px;display:flex;overflow:hidden}.sidebar-logo{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:16px 14px;display:flex}.sidebar-logo .logo-icon{border-radius:var(--r-sm);background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;overflow:hidden}.sidebar-logo .logo-icon img{object-fit:contain;border-radius:var(--r-sm);width:32px;height:32px;display:block}.sidebar-logo .logo-text{color:var(--text);letter-spacing:-.01em;font-size:13px;font-weight:700;line-height:1.2}.sidebar-logo .logo-sub{color:var(--text-3);margin-top:1px;font-size:10px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:1px;padding:8px;display:flex;overflow-y:auto}.nav-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:10px 8px 4px;font-size:10px;font-weight:600}.nav-item{border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;text-align:left;width:100%;transition:background var(--t), color var(--t);background:0 0;border:none;align-items:center;gap:9px;padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--blue-dim);color:var(--blue-light);font-weight:600}.nav-item svg{flex-shrink:0;width:15px;height:15px}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:1px;padding:8px;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-width:0;height:54px;padding:0 20px;display:flex;overflow:hidden}.topbar-title{color:var(--text);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.topbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar-status{color:var(--green);background:var(--green-dim);border:1px solid var(--green-border);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;display:flex}.status-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s infinite pulseDot}.theme-toggle{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);width:32px;height:32px;color:var(--text-2);cursor:pointer;transition:background var(--t), color var(--t), border-color var(--t);flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--surface-3);color:var(--text)}.page-content{flex:1;padding:24px;overflow-y:auto}.page-header{margin-bottom:20px}.page-header h1{color:var(--text);letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:3px;font-size:19px;font-weight:700;display:flex}.page-header p{color:var(--text-2);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px}.stat-grid{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px;display:grid}@media (width<=1280px){.stat-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=800px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.stat-grid{grid-template-columns:1fr}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.stat-label{color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.stat-value{color:var(--text);letter-spacing:-.02em;font-family:JetBrains Mono,monospace;font-size:26px;font-weight:700;line-height:1}.stat-sub{color:var(--text-3);font-size:11px}.health-wrap{align-items:center;gap:20px;margin-top:10px;display:flex}.sev-bar-wrap{flex-direction:column;flex:1;gap:9px;display:flex}.sev-row{align-items:center;gap:10px;font-size:12px;display:flex}.sev-label{width:52px;color:var(--text-2);font-weight:500}.sev-track{background:var(--surface-3);border-radius:99px;flex:1;height:5px;overflow:hidden}.sev-fill{border-radius:99px;height:100%;transition:width .5s}.sev-count{text-align:right;width:26px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.badge{border-radius:var(--r-sm);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}.badge-critical{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border)}.badge-high{background:var(--orange-dim);color:var(--orange);border:1px solid var(--orange-border)}.badge-medium{background:var(--yellow-dim);color:var(--yellow);border:1px solid var(--yellow-border)}.badge-low{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border)}.badge-info{background:var(--blue-dim);color:var(--blue-light);border:1px solid var(--blue-border)}.badge-neutral{background:var(--surface-3);color:var(--text-2);border:1px solid var(--border)}.badge-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);padding:10px 14px;font-size:11px;font-weight:600}tbody tr{border-bottom:1px solid var(--border-sub);transition:background var(--t)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--surface-2)}.row-link{cursor:pointer}td{color:var(--text);vertical-align:middle;padding:10px 14px}.td-mono{color:var(--text-2);font-family:JetBrains Mono,monospace;font-size:11.5px}.td-sub{color:var(--text-2);font-size:13px}.risk-score{border-radius:var(--r-sm);padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;display:inline-block}.risk-critical{background:var(--red-dim);color:var(--red)}.risk-high{background:var(--orange-dim);color:var(--orange)}.risk-medium{background:var(--yellow-dim);color:var(--yellow)}.risk-low{background:var(--green-dim);color:var(--green)}.pagination{border-top:1px solid var(--border);color:var(--text-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;font-size:12px;display:flex}.pagination-controls{align-items:center;gap:4px;display:flex}.page-btn{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);cursor:pointer;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:500}.page-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.page-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.page-btn:disabled{opacity:.4;cursor:not-allowed}.attack-btn-row{flex-wrap:wrap;gap:8px;display:flex}.attack-btn{white-space:nowrap;flex:auto;justify-content:center;min-width:160px;max-width:100%}@media (width<=640px){.attack-btn{flex:calc(50% - 4px);min-width:0}}.dash-grid{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}@media (width<=1200px){.dash-grid{grid-template-columns:1fr 1fr}}@media (width<=800px){.dash-grid{grid-template-columns:1fr}}.section-title{color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;font-size:11px;font-weight:600}.toast{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--blue);color:var(--text);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);z-index:9999;max-width:420px;padding:11px 18px;font-size:13px;font-weight:500;animation:.2s forwards fadeUp;position:fixed;bottom:20px;right:20px}.detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.detail-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.detail-id{color:var(--blue-light);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.detail-title{color:var(--text);letter-spacing:-.01em;font-size:18px;font-weight:700}.detail-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}@media (width<=700px){.detail-grid{grid-template-columns:1fr}}.kv-list{flex-direction:column;display:flex}.kv-row{border-bottom:1px solid var(--border-sub);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;font-size:13px;display:flex}.kv-row:last-child{border-bottom:none}.kv-key{color:var(--text-2);flex-shrink:0}.kv-val{color:var(--text);text-align:right;word-break:break-all;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.mitre-list,.response-list{flex-wrap:wrap;gap:6px;display:flex}.mitre-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:5px 10px;font-size:12px}.mitre-chip strong{color:var(--blue-light)}.response-item{background:var(--green-dim);border:1px solid var(--green-border);color:var(--green);border-radius:var(--r-sm);padding:5px 10px;font-size:12px;font-weight:500}.timeline-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--blue-light);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.timeline-toggle svg{transition:transform var(--t)}.timeline-toggle.open svg{transform:rotate(180deg)}.verdict-options{flex-wrap:wrap;gap:8px;display:flex}.verdict-btn{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);text-transform:capitalize;cursor:pointer;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:500}.verdict-btn:hover{background:var(--surface-3);color:var(--text)}.verdict-btn.selected{background:var(--blue-dim);border-color:var(--blue-border);color:var(--blue-light)}.feedback-textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);resize:vertical;width:100%;min-height:80px;padding:9px 12px;font-family:inherit;font-size:13px}.feedback-textarea:focus{border-color:var(--blue);outline:none}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.toggle-btn{border-radius:var(--r-sm);color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.toggle-btn:hover{background:var(--surface-3);color:var(--text)}.toggle-btn.active{background:var(--blue-dim);color:var(--blue-light);border-color:var(--blue-border)}.btn{border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background var(--t), border-color var(--t), color var(--t), opacity var(--t);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-primary:hover:not(:disabled){background:#1648c0;border-color:#1648c0}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:var(--surface-2);border-color:var(--border);color:var(--text-2)}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-danger{background:var(--red-dim);border-color:var(--red-border);color:var(--red)}.btn-danger:hover{background:#dc262626}.btn-sm{padding:4px 10px;font-size:12px}.form-group{flex-direction:column;gap:5px;display:flex}.form-label{color:var(--text-2);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:600}.form-input,.form-select,.form-textarea,.filter-input,.filter-select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);width:100%;transition:border-color var(--t);padding:8px 11px;font-family:inherit;font-size:13px}.form-input:focus,.form-select:focus,.form-textarea:focus,.filter-input:focus,.filter-select:focus{border-color:var(--blue);outline:none}.form-input::placeholder,.form-textarea::placeholder,.filter-input::placeholder{color:var(--text-3)}.form-select option,.filter-select option{background:var(--surface-2);color:var(--text)}.form-textarea{resize:vertical;min-height:80px;line-height:1.5}.alert{border-radius:var(--r-sm);align-items:center;gap:8px;padding:9px 12px;font-size:12px;font-weight:500;display:flex}.alert-error{background:var(--red-dim);border:1px solid var(--red-border);color:var(--red)}.alert-success{background:var(--green-dim);border:1px solid var(--green-border);color:var(--green)}.modal-overlay{z-index:2000;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:480px;box-shadow:var(--shadow-xl);padding:24px;animation:.2s forwards fadeUp}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{color:var(--text);font-size:15px;font-weight:700}.loading-row td,.empty-state{color:var(--text-3);text-align:center;padding:28px 16px;font-size:13px}.attacker-theme .nav-item.active{background:var(--red-dim);color:#f87171}.attacker-theme .filter-input,.attacker-theme .filter-select{background:var(--surface-2);border-color:var(--border);color:var(--text)}@media (width<=640px){.sidebar{display:none}.topbar{padding:0 14px}.page-content{padding:16px}.detail-grid{grid-template-columns:1fr}}.mobile-menu-btn{color:var(--text-sub);border:1px solid var(--border-sub);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);background:#ffffff0d;justify-content:center;align-items:center;margin-right:12px;padding:8px;display:none}.mobile-menu-btn:hover{color:#fff;border-color:var(--accent);background:#ffffff14}.sidebar-close-btn{color:var(--text-sub);border:1px solid var(--border-sub);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);background:#ffffff0d;justify-content:center;align-items:center;padding:8px;display:none;position:absolute;top:15px;right:15px}.sidebar-close-btn:hover{color:var(--critical);background:#ffffff14}.sidebar-mobile-header,.sidebar-overlay{display:none}@media (width<=1024px){.kb-layout .mobile-menu-btn{display:inline-flex}.kb-sidebar{z-index:1000;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid var(--border);width:260px;transition:transform .25s cubic-bezier(.16,1,.3,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:5px 0 25px #000c;background:#0d1117fa!important}.kb-sidebar.mobile-open{transform:translate(0)}.kb-sidebar .sidebar-close-btn{display:inline-flex}.kb-sidebar .sidebar-mobile-header{height:45px;margin-bottom:10px;display:block;position:relative}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#000000b3;display:block;position:fixed;inset:0}.kb-layout .topbar{justify-content:flex-start;padding:0 16px}.kb-layout .topbar-title{white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:13px;overflow:hidden}.kb-layout .topbar-status{padding:4px 6px}.kb-layout .topbar-status .status-text{display:none}.kb-layout .topbar-user-badge{max-width:110px;padding:4px 8px!important}.kb-layout .topbar-user-badge span{display:none}}
