.upload-btn{align-items:center;gap:var(--space-sm);background:var(--color-accent-bg);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-accent);cursor:pointer;transition:all var(--transition-fast);padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.upload-btn:hover{background:var(--color-accent);color:#fff;box-shadow:0 0 15px #2962ff6b}.loading-overlay{-webkit-backdrop-filter:blur(12px);z-index:3000;min-height:100vh;padding:var(--space-xl);background:linear-gradient(#02040ae0,#02040af5),url(/banner.png) 50%/cover no-repeat;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader-container{justify-content:center;align-items:center;gap:var(--space-xl);text-align:center;flex-direction:column;width:100%;max-width:400px;display:flex}.brand-loader{filter:drop-shadow(0 0 22px #00c8ff47);place-items:center;width:132px;height:132px;display:grid;position:relative}.loader-logo{object-fit:cover;object-position:center 22%;background:#000000b3;border-radius:16px;width:72px;height:72px;box-shadow:0 0 0 1px #00c8ff47,0 0 24px #7a5cff57}.loader-ring{pointer-events:none;border:2px solid #0000;border-radius:50%;position:absolute;inset:0}.loader-ring-outer{border-top-color:var(--color-user);border-right-color:var(--color-accent);border-bottom-color:#df1dff59;animation:1.1s linear infinite spin}.loader-ring-inner{border-left-color:var(--color-kernel);border-bottom-color:#7a5cffbf;animation:1.35s linear infinite spin-reverse;inset:18px}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}#loading-text{color:var(--text-primary);font-size:18px;font-weight:600;font-family:var(--font-mono);letter-spacing:-.02em}.progress-bar{background:var(--border-strong);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--color-user), var(--color-accent), var(--color-kernel));width:0%;height:100%;transition:width .1s linear;box-shadow:0 0 14px #00c8ff8c}#dashboard-content{background:var(--bg-primary);flex:1;display:flex;overflow:hidden}#dash-sidebar{border-right:1px solid var(--border-subtle);background:var(--bg-secondary);flex-direction:column;width:300px;display:flex;overflow:hidden auto}.back-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);width:24px;height:24px;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.back-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.dedup-section{justify-content:space-between;align-items:center;display:flex;padding:var(--space-md) var(--space-lg)!important}.dedup-label{color:var(--text-secondary);font-size:12px;font-weight:600}.exclude-pid-section{padding:var(--space-sm) var(--space-lg) var(--space-md)!important}.exclude-pid-list{flex-wrap:wrap;gap:4px;min-height:0;margin-bottom:6px;display:flex}.exclude-pid-tag{color:#f87171;font-size:10px;font-weight:600;font-family:var(--font-mono);background:#ef44441f;border:1px solid #ef444433;border-radius:3px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.exclude-pid-tag .remove-pid{cursor:pointer;opacity:.7;color:inherit;background:0 0;border:none;margin-left:2px;padding:0;font-size:12px;line-height:1}.exclude-pid-tag .remove-pid:hover{opacity:1}.exclude-pid-input-row{gap:4px;display:flex}.exclude-pid-input-row input{border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);background:#0003;outline:none;flex:1;padding:4px 8px;font-size:11px}.exclude-pid-input-row input:focus{border-color:var(--color-accent)}.exclude-pid-input-row input::placeholder{color:var(--text-muted)}.filter-section{border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-md)}.filter-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--space-sm) var(--space-lg) var(--space-xs);font-size:11px;font-weight:600}.filter-title-row{padding:var(--space-sm) var(--space-lg) var(--space-xs);justify-content:space-between;align-items:center;display:flex}.filter-toggle-row{padding:0 var(--space-lg) var(--space-xs);justify-content:space-between;align-items:center;display:flex}.filter-toggle-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px;font-weight:600}.bulk-btns{gap:4px;display:flex}.bulk-btn{border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0f;padding:2px 8px;font-size:10px;font-weight:600}.bulk-btn:hover{background:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent)}.filter-list{padding:0 var(--space-sm)}.filter-item{padding:4px var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;margin-bottom:1px;display:flex}.filter-item:hover{background:var(--bg-glass-hover)}.filter-item.active{background:#00c8ff14}.filter-checkbox{border:1px solid var(--border-strong);width:13px;height:13px;margin-right:var(--space-sm);transition:all var(--transition-fast);background:0 0;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.filter-item.active .filter-checkbox{background:var(--color-user);border-color:var(--color-user)}.filter-item.active .filter-checkbox:after{content:"";border:1.5px solid #000;border-width:0 1.5px 1.5px 0;width:4px;height:7px;margin-bottom:2px;transform:rotate(45deg)}.filter-label{font-size:11.5px;font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.filter-count{color:var(--text-muted);font-size:10px;font-family:var(--font-mono);background:#ffffff0d;border-radius:10px;padding:1px 6px}.filter-item-ph-options{align-items:center;gap:4px;padding:2px 0 4px 22px;display:flex}.ph-option{font-size:10px;font-family:var(--font-mono);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border-subtle);color:var(--text-muted);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;background:0 0;padding:2px 8px}.ph-option:hover{border-color:var(--color-accent);color:var(--color-accent)}.ph-option.active{background:var(--color-accent-bg);border-color:var(--color-accent);color:var(--color-accent);font-weight:600}.ph-self-count{color:var(--text-dim);margin-left:2px;font-size:9px}#dash-main{background:var(--bg-primary);padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.dash-stats{gap:var(--space-md);grid-template-columns:repeat(5,1fr);display:grid}.stat-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);flex-direction:column;gap:2px;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--color-accent);width:3px;height:100%;position:absolute;top:0;left:0}.written-data-stat-card{cursor:pointer;transition:all var(--transition-fast)}.written-data-stat-card:hover{border-color:#a78bfa;box-shadow:0 0 12px #a78bfa33}.written-data-sidebar-btn{border-radius:var(--radius-sm);color:#a78bfa;width:100%;font-size:11.5px;font-weight:600;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-fast);background:#a78bfa14;border:1px solid #a78bfa33;align-items:center;gap:6px;padding:7px 12px;display:flex}.written-data-sidebar-btn:hover{background:#a78bfa2e;border-color:#a78bfa;box-shadow:0 0 10px #a78bfa26}.network-streams-sidebar-btn{border-radius:var(--radius-sm);color:#60a5fa;width:100%;font-size:11.5px;font-weight:600;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-fast);background:#3b82f614;border:1px solid #3b82f633;align-items:center;gap:6px;margin-top:8px;padding:7px 12px;display:flex}.network-streams-sidebar-btn:hover{background:#3b82f629;border-color:#60a5fa;box-shadow:0 0 10px #3b82f633}.stat-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:10px;font-weight:600}.stat-value{font-size:22px;font-weight:700;font-family:var(--font-mono);color:var(--text-primary)}#dash-middle-container{margin-bottom:0}.chart-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);flex-direction:column;display:flex}.card-header-flex{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.clear-btn{color:inherit;cursor:pointer;background:0 0;border:none;margin-left:4px;font-size:14px;font-weight:700}.chart-card h3{color:var(--text-secondary);font-size:12px;font-weight:600}.dash-tabs{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:stretch;gap:0;padding-bottom:0;display:flex}.dash-tabs-left{scrollbar-width:none;-ms-overflow-style:none;flex:1;gap:2px;min-width:0;display:flex;overflow-x:auto}.dash-tabs-left::-webkit-scrollbar{display:none}.dash-tabs-right{border-left:1px solid var(--border-subtle);flex-shrink:0;gap:2px;margin-left:6px;padding-left:6px;display:flex}.dash-tab{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:600;display:inline-flex}.dash-tab:hover{color:var(--text-primary)}.cat-tab{white-space:nowrap;padding:7px 10px;font-size:11px;position:relative}.cat-tab .cat-tab-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.table-filter-row th{border-bottom:1px solid var(--border-strong)!important;padding:2px 4px 4px!important}.col-filter-input{background:var(--bg-primary);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);font-size:10px;font-family:var(--font-mono);transition:border-color var(--transition-fast);border-radius:3px;outline:none;padding:3px 6px}.col-filter-input:focus{border-color:var(--color-accent)}.col-filter-input::placeholder{color:var(--text-muted);opacity:.6}.cell-actions{width:50px;text-align:center!important}.row-detail-btn{border:1px solid var(--border-subtle);color:var(--text-muted);font-size:9px;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:3px;padding:2px 6px}.row-detail-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.filter-section.disabled{opacity:.35;pointer-events:none}.dash-table-container,.dash-graph-container{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;flex:none;height:90vh;display:flex;overflow:hidden}.table-header{padding:10px var(--space-lg);border-bottom:1px solid var(--border-subtle);background:#00000026;justify-content:space-between;align-items:center;display:flex}.table-header h3{color:var(--text-primary);font-size:13px;font-weight:600}.table-count-badge{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.table-header-actions{align-items:center;gap:10px;display:flex}.export-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);font-size:11px;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-fast);background:0 0;align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.export-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:#00c8ff0f}.export-btn svg{width:12px;height:12px}.col-filter-regex{border-left:2px solid var(--color-accent)!important;padding-left:4px!important}.regex-guide{color:var(--text-primary);font-size:13px;line-height:1.6}.regex-guide h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);margin:0 0 10px;padding-bottom:6px;font-size:12px;font-weight:700}.regex-guide-section{margin-bottom:22px}.regex-guide-section:last-of-type{margin-bottom:10px}.regex-guide-row{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#0003;margin-bottom:12px;padding:8px 12px}.regex-guide-mode{align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.regex-guide-mode-label{color:var(--color-accent);flex-shrink:0;min-width:70px;font-size:12px;font-weight:700}.regex-guide-mode-desc{color:var(--text-secondary)}.regex-guide-mode-desc code{font-family:var(--font-mono);color:var(--color-accent);background:#00c8ff14;border-radius:3px;padding:1px 5px;font-size:11px}.regex-guide-example{color:var(--text-muted);padding-left:80px;font-size:12px;line-height:1.8}.regex-guide-example code{font-family:var(--font-mono);color:var(--text-primary);background:#00c8ff14;border-radius:3px;padding:1px 5px;font-size:11px}.regex-guide-flags{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#0003;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.regex-guide-flag{color:var(--text-secondary);font-size:12px}.regex-guide-flag code{font-family:var(--font-mono);color:var(--text-primary);background:#00c8ff14;border-radius:3px;padding:1px 5px;font-size:11px}.regex-guide-table{border-collapse:collapse;width:100%;font-size:12px}.regex-guide-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);padding:6px 12px;font-size:11px;font-weight:600}.regex-guide-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:5px 12px}.regex-guide-table td:first-child code{font-family:var(--font-mono);color:var(--text-primary);background:#00c8ff14;border-radius:3px;padding:1px 5px;font-size:11px}.regex-guide-tip{border-radius:var(--radius-sm);color:var(--text-secondary);background:#00c8ff0d;border:1px solid #00c8ff26;margin-top:10px;padding:10px 14px;font-size:12px}.regex-guide-tip code{font-family:var(--font-mono);color:var(--color-accent);background:#00c8ff14;border-radius:3px;padding:1px 5px;font-size:11px}.table-wrapper{flex:1;overflow:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.data-table th{background:var(--bg-elevated);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:8px var(--space-md);border-bottom:1px solid var(--border-strong);z-index:10;font-size:10px;font-weight:600;position:sticky;top:0}.data-table td{padding:6px var(--space-md);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;font-size:11.5px}.data-table tbody tr{cursor:pointer;transition:background var(--transition-fast)}.cell-ts{color:var(--text-muted)!important;font-size:11px!important}.cell-event{font-weight:500;color:var(--text-primary)!important}.status-badge{color:#10b981;background:#10b9811a;border:1px solid #10b98126;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.status-badge.success{color:#10b981;background:#10b9811a;border-color:#10b98126}.status-badge.error{color:#ef4444;background:#ef44441a;border-color:#ef444426}.cat-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:700}.cat-badge.KERNEL{color:#60a5fa;background:#3b82f61f;border:1px solid #3b82f626}.cat-badge.REGISTRY{color:#34d399;background:#10b9811f;border:1px solid #10b98126}.cat-badge.FILE_SYSTEM{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b26}.cat-badge.NETWORK{color:#c084fc;background:#a855f71f;border:1px solid #a855f726}.cat-badge.PROCESS{color:#f87171;background:#ef44441f;border:1px solid #ef444426}.cat-badge.THREAD{color:#fbbf24;background:#fbbf241f;border:1px solid #fbbf2426}.scope-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:700}.scope-badge.local{color:var(--color-user);background:#00c8ff1f;border:1px solid #00c8ff2e}.scope-badge.remote{color:#f87171;background:#ef44441f;border:1px solid #ef444426}.net-proto-badge{color:#c084fc;vertical-align:middle;background:#a855f71f;border:1px solid #a855f733;border-radius:3px;margin-left:4px;padding:1px 5px;font-size:9px;font-weight:700}.proto-stack-layer{padding:4px var(--space-md);border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-size:11px;display:flex}.proto-stack-layer:last-child{border-bottom:none}.proto-stack-name{text-align:center;color:#60a5fa;background:#3b82f61f;border:1px solid #3b82f633;border-radius:3px;min-width:40px;padding:1px 5px;font-size:9px;font-weight:700}.proto-stack-arrow{color:var(--text-muted);font-size:10px}.proto-stack-detail{color:var(--text-muted);white-space:nowrap;font-size:10px}.dns-decoded{margin-top:4px}.dns-type-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700}.dns-type-badge.query{color:#22d3ee;background:#00c8ff1f;border:1px solid #00c8ff38}.dns-type-badge.response{color:#34d399;background:#10b9811f;border:1px solid #10b98133}.dns-query,.dns-answer{font-family:var(--font-mono);flex-wrap:wrap;gap:8px;padding:3px 0;font-size:11px;display:flex}.dns-domain{color:var(--text-primary);font-weight:600}.dns-qtype{color:var(--color-accent);background:#2962ff1a;border-radius:3px;padding:1px 5px;font-size:10px}.dns-qclass{color:var(--text-muted);font-size:10px}.dns-ttl{color:var(--text-dim,#666);font-size:10px}.dns-rdata{color:#fbbf24;word-break:break-all;font-size:10px}.modal-action-btn{color:#c084fc;border-radius:var(--radius-sm);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-mono);background:#a855f71f;border:1px solid #a855f733;margin-right:8px;padding:4px 10px;transition:background .15s}.modal-action-btn:hover{background:#a855f740}.filter-builder-desc{color:var(--text-secondary);margin:0 0 12px;font-size:12px}.filter-builder-table{border-collapse:collapse;width:100%;font-size:11px}.filter-builder-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border-medium);padding:4px 8px;font-size:10px;font-weight:600}.filter-builder-table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:3px 8px}.filter-builder-field{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-weight:500}.filter-builder-value{border:1px solid var(--border-medium);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-mono);background:#0003;outline:none;padding:3px 6px;font-size:11px}.filter-builder-value:focus{border-color:var(--color-accent)}.filter-builder-table input[type=checkbox]{accent-color:var(--color-accent);cursor:pointer;width:14px;height:14px}.filter-builder-footer{flex-direction:column;gap:10px;margin-top:16px;display:flex}.filter-builder-row{align-items:center;gap:10px;display:flex}.filter-builder-label{color:var(--text-secondary);min-width:50px;font-size:11px;font-weight:600}.filter-builder-name-input{border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);background:#0003;outline:none;flex:1;padding:4px 8px;font-size:11px}.filter-builder-name-input:focus{border-color:var(--color-accent)}.filter-mode-toggle{gap:4px;display:flex}.filter-mode-btn{font-size:11px;font-weight:600;font-family:var(--font-mono);cursor:pointer;border:1px solid var(--border-medium);color:var(--text-secondary);background:#00000026;border-radius:3px;padding:4px 12px;transition:all .15s}.filter-mode-btn.include.active{color:#34d399;background:#10b98126;border-color:#10b9814d}.filter-mode-btn.exclude.active{color:#f87171;background:#ef444426;border-color:#ef44444d}.filter-builder-actions{gap:8px;margin-top:4px;display:flex}.filter-builder-save-btn{color:#c084fc;border-radius:var(--radius-sm);font-size:11px;font-weight:600;font-family:var(--font-mono);cursor:pointer;background:#a855f726;border:1px solid #a855f740;padding:6px 16px;transition:background .15s}.filter-builder-save-btn:hover{background:#a855f740}.filter-builder-cancel-btn{color:var(--text-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:11px;font-weight:600;font-family:var(--font-mono);cursor:pointer;background:#00000026;padding:6px 16px;transition:background .15s}.filter-builder-cancel-btn:hover{background:#00000040}.saved-filters-section{padding:var(--space-sm) var(--space-lg) var(--space-md);border-bottom:1px solid var(--border-subtle)}.saved-filters-list{flex-wrap:wrap;gap:4px;min-height:0;display:flex}.saved-filter-chip{font-size:10px;font-weight:600;font-family:var(--font-mono);cursor:pointer;border-radius:3px;align-items:center;gap:4px;padding:2px 8px;transition:opacity .15s;display:inline-flex}.saved-filter-chip.include{color:#34d399;background:#10b9811f;border:1px solid #10b98133}.saved-filter-chip.exclude{color:#f87171;background:#ef44441f;border:1px solid #ef444433}.saved-filter-chip.inactive{opacity:.4;text-decoration:line-through}.saved-filter-chip .delete-filter{cursor:pointer;opacity:.7;color:inherit;background:0 0;border:none;margin-left:2px;padding:0;font-size:12px;line-height:1}.saved-filter-chip .delete-filter:hover{opacity:1}.dedup-badge{color:var(--color-user);vertical-align:middle;background:#00c8ff26;border-radius:3px;margin-left:4px;padding:1px 5px;font-size:9px;font-weight:700;display:inline-block}.switch{width:32px;height:18px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#ffffff14;transition:all .3s;position:absolute;inset:0}.slider:before{content:"";background-color:var(--text-secondary);width:12px;height:12px;transition:all .3s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background-color:var(--color-user)}input:checked+.slider:before{background-color:#000;transform:translate(14px)}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:2000;padding:var(--space-xl);background:#02040ae6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-elevated);border:1px solid var(--border-medium);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:calc(100vh - (var(--space-xl) * 2));box-shadow:var(--shadow-lg);flex-direction:column;animation:.2s cubic-bezier(.4,0,.2,1) modal-pop;display:flex;overflow:hidden}#written-data-modal-overlay .modal-content{width:min(1280px, calc(100vw - (var(--space-xl) * 2)));max-width:none}@keyframes modal-pop{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border-subtle);background:#0003;flex-shrink:0;justify-content:space-between;align-items:center;min-height:56px;display:flex}.modal-header h2{color:var(--text-primary);font-size:14px;font-weight:600;font-family:var(--font-mono);flex:1}.modal-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;flex:1;align-items:stretch;min-height:0;display:flex;overflow:auto}.modal-action-row{flex:none;align-items:center;min-height:34px;display:flex}.detail-group{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#0000001f;flex:none;min-height:0;overflow:hidden}.detail-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:6px var(--space-md);border-bottom:1px solid var(--border-subtle);background:#ffffff05;min-height:28px;font-size:10px;font-weight:700;line-height:1.4}.detail-group>div:not(.detail-group-title){min-height:0}.detail-group-body{padding:8px var(--space-md);min-height:0;overflow:visible}.write-event-heading{color:var(--text-muted);font-size:11px;font-family:var(--font-mono);margin-bottom:6px;line-height:1.4}.detail-row{min-height:36px;padding:8px var(--space-md);border-bottom:1px solid var(--border-subtle);align-items:flex-start;display:flex}.detail-row:last-child{border-bottom:none}.detail-key{width:150px;color:var(--text-secondary);flex-shrink:0;font-size:11px;font-weight:500}.detail-val{font-size:11.5px;font-family:var(--font-mono);color:var(--text-primary);word-break:break-all;min-width:0;line-height:1.45}.inline-loader{height:100%;min-height:120px;color:var(--text-muted);font-size:13px;font-family:var(--font-mono);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.inline-spinner{border:2px solid #00c8ff2e;border-top-color:var(--color-user);border-right-color:var(--color-kernel);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin;position:relative}.inline-spinner:after{content:"";background:url(/logo.png) 50% 24%/cover no-repeat;border-radius:10px;animation:.8s linear infinite spin-reverse;position:absolute;inset:9px;box-shadow:0 0 12px #7a5cff52}#process-network{height:55vh;min-height:400px;position:relative;overflow:hidden}.dag-node-exclude-btn{color:#ffd3d0;text-align:center;cursor:pointer;z-index:20;-webkit-user-select:none;user-select:none;background:#f0625c2e;border:1px solid #f0625cb3;border-radius:999px;width:18px;height:18px;font-size:11px;line-height:16px;transition:background .15s,border-color .15s,color .15s;position:absolute;box-shadow:0 1px 6px #00000059}.dag-node-exclude-btn:hover{color:#fff5f5;background:#f0625c4d;border-color:#f0625cf2}.dag-toggle-group{align-items:center;gap:14px;display:flex}.dag-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}.dag-toggle-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.dag-legend{z-index:10;pointer-events:auto;background:#060914e6;border:1px solid #00c8ff29;border-radius:6px;min-width:24px;font-size:11px;transition:min-width .2s;position:absolute;top:8px;left:8px}.dag-legend.collapsed{min-width:auto}.dag-legend-header{color:var(--text-primary);align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:flex}.dag-legend-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:10px;line-height:1;transition:color .15s}.dag-legend-toggle-btn:hover{color:var(--text-primary)}.dag-legend-body{padding:0 10px 8px}.dag-legend-row{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:5px;display:flex}.dag-legend-row svg{flex-shrink:0}.dag-legend-section{letter-spacing:.05em;text-transform:uppercase;color:#cfd8ff8c;margin-top:8px;font-size:10px;font-weight:600}.dag-legend-hops{gap:4px}.dag-hop-swatch{border-radius:2px;width:14px;height:8px;display:inline-block}.dag-hop-range{color:#cfd8ff8c;margin-left:4px;font-size:10px}.dag-legend-hint{color:#cfd8ff73;margin-top:8px;font-size:10px;font-style:italic}.dag-tooltip{z-index:30;max-width:320px;color:var(--text-primary);font-family:var(--font-mono);white-space:pre-line;pointer-events:none;background:#02040af0;border:1px solid #00c8ff47;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.45;position:absolute;transform:translate(-50%,-100%);box-shadow:0 0 0 1px #7a5cff24,0 10px 30px #00000061,0 0 18px #00c8ff24}.vis-tooltip{color:var(--text-primary)!important;font-family:var(--font-mono)!important;white-space:pre-line!important;background:#02040af0!important;border:1px solid #00c8ff47!important;border-radius:6px!important;font-size:12px!important;line-height:1.45!important;box-shadow:0 10px 30px #00000061!important}.written-data-payload-row{padding:8px var(--space-md);border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:var(--space-sm);display:flex}.written-data-payload-row:hover{background:var(--bg-glass-hover)}.written-data-payload-row:last-child{border-bottom:none}.written-data-path{font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11.5px;overflow:hidden}.written-data-meta{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:10px}.written-data-arrow{color:var(--text-muted);font-size:14px}.wd-event-name{font-family:var(--font-mono);color:#22d3ee;white-space:nowrap;background:#00c8ff1f;border:1px solid #00c8ff38;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.written-data-back-btn{background:var(--color-accent-bg);color:var(--color-accent);cursor:pointer;font-size:12px;font-family:var(--font-mono);border-radius:var(--radius-sm);transition:background var(--transition-fast);border:1px solid #2962ff2e;padding:7px 12px}.written-data-back-btn:hover{background:#2962ff2e;border-color:#2962ff52}.written-data-event-item{align-items:flex-start;gap:var(--space-md);padding:9px var(--space-md);border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:11px;display:flex}.written-data-event-item:last-child{border-bottom:none}.written-data-event-ts{color:var(--text-muted);min-width:60px}.written-data-event-info{color:var(--text-secondary);word-break:break-word;flex:1;min-width:0}.written-data-event-size{color:#a78bfa;text-align:right;white-space:nowrap;min-width:160px;font-weight:600}.network-stream-host{font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11.5px;overflow:hidden}.network-stream-meta{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:10px}.net-dir-badge{font-family:var(--font-mono);white-space:nowrap;border:1px solid #0000;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700}.net-dir-badge.in{color:#34d399;background:#10b9811f;border-color:#10b98133}.net-dir-badge.out{color:#60a5fa;background:#3b82f61f;border-color:#3b82f633}.network-stream-combined{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-md);max-height:280px;font-family:var(--font-mono);color:var(--text-primary);white-space:pre-wrap;word-break:break-word;background:#00000040;font-size:11px;line-height:1.45;overflow:auto}.network-stream-chunks{flex-direction:column;gap:8px;display:flex}.network-stream-chunk{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#00000024;overflow:hidden}.network-stream-chunk-head{padding:5px var(--space-md);border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);color:var(--text-muted);background:#ffffff05;align-items:center;gap:8px;font-size:10px;display:flex}.network-stream-chunk-body{font-family:var(--font-mono);color:var(--text-primary);padding:8px var(--space-md);white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.4}.hex-dump-container{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#00000040;max-height:min(460px,46vh);overflow:auto}.hex-dump{font-family:var(--font-mono);padding:var(--space-md);color:var(--text-primary);white-space:pre;min-width:max-content;margin:0;font-size:11px;line-height:1.6}.hd-offset{color:var(--text-dim,#555);-webkit-user-select:none;user-select:none}.hd-hex{color:#60a5fa}.hd-ascii{color:#fbbf24}.hd-separator{color:var(--text-dim,#555)}.written-data-link{color:#a78bfa;cursor:pointer;font-family:var(--font-mono);text-underline-offset:2px;font-size:11px;text-decoration:underline}.written-data-link:hover{color:#c4b5fd}.wd-preview-notice{font-family:var(--font-mono);color:#fbbf24;border-radius:var(--radius-sm);background:#fbbf240f;border:1px solid #fbbf2426;margin-bottom:8px;padding:5px 10px;font-size:10.5px;line-height:1.5}.wd-dump-path{color:#60a5fa;word-break:break-all}.wd-dump-link{font-family:var(--font-mono);color:#60a5fa;cursor:default;white-space:nowrap;background:#60a5fa1f;border:1px solid #60a5fa33;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700}.net-content-type-badge{font-family:var(--font-mono);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;border:1px solid #0000;border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:9px;font-weight:700}.net-content-type-badge.http{color:#60a5fa;background:#3b82f61f;border-color:#3b82f633}.net-content-type-badge.text{color:#34d399;background:#10b9811f;border-color:#10b98133}.net-content-type-badge.image{color:#fbbf24;background:#f59e0b1f;border-color:#f59e0b33}.net-content-type-badge.binary{color:#f87171;background:#ef44441f;border-color:#ef444433}.net-content-type-badge.unknown,.net-content-type-badge.empty{color:var(--text-muted);background:#ffffff0a;border-color:#ffffff0f}.net-http-summary{padding:8px var(--space-md);border-bottom:1px solid var(--border-subtle);background:#ffffff05;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.net-http-method{font-family:var(--font-mono);color:#60a5fa;background:#60a5fa26;border:1px solid #60a5fa40;border-radius:3px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.net-http-url{font-family:var(--font-mono);color:var(--text-primary);word-break:break-all;font-size:11px}.net-http-status{font-family:var(--font-mono);border-radius:3px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.net-http-status.success{color:#34d399;background:#10b98126;border:1px solid #10b98140}.net-http-status.error{color:#f87171;background:#ef444426;border:1px solid #ef444440}.net-http-headers{padding:4px 0}.net-http-header-row{padding:2px var(--space-md);font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;line-height:1.5;overflow:hidden}.net-http-header-row:hover{white-space:normal;background:#ffffff08;overflow:visible}.net-http-header-key{color:#c084fc;font-weight:600}.net-http-header-val{color:var(--text-secondary)}.net-http-body-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:6px var(--space-md) 2px;font-size:10px;font-weight:700}.network-stream-chunk-body details{margin:0}.network-stream-chunk-body details summary{-webkit-user-select:none;user-select:none;padding:4px 0}.network-stream-chunk-body .hex-dump-container{max-height:300px;margin-top:4px}.net-dump-btn{font-family:var(--font-mono);color:#60a5fa;cursor:pointer;white-space:nowrap;background:#3b82f61a;border:1px solid #60a5fa4d;border-radius:4px;padding:5px 12px;font-size:10px;font-weight:600;transition:background .15s,border-color .15s}.net-dump-btn:hover{color:#93c5fd;background:#3b82f633;border-color:#60a5fa80}.net-dump-section{background:#3b82f60a;border-left:2px solid #60a5fa4d}.analytics-panel{background:#10183466;border:1px solid #304a9a66;border-radius:6px;margin:0 0 16px;padding:0}.analytics-header{border-bottom:1px solid #304a9a59;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.analytics-header h3{letter-spacing:.04em;color:#cfd8ff;text-transform:uppercase;margin:0;font-size:13px;font-weight:600}.analytics-toggle-btn{color:#cfd8ff;cursor:pointer;background:0 0;border:1px solid #304a9a66;border-radius:4px;padding:2px 8px;font-size:12px}.analytics-toggle-btn:hover{background:#304a9a40}.analytics-body{padding:10px 12px}.analytics-row{grid-template-columns:1.4fr 1.4fr 1fr;gap:10px;margin-bottom:10px;display:grid}.analytics-row-wide{grid-template-columns:1fr}.analytics-row:last-child{margin-bottom:0}.analytics-card{background:#080c1e8c;border:1px solid #304a9a52;border-radius:5px;flex-direction:column;min-width:0;min-height:200px;padding:8px 10px;display:flex;overflow:hidden}.analytics-card.analytics-timeline{min-height:140px}.analytics-card.analytics-donut{min-height:220px}.analytics-card-title{letter-spacing:.05em;color:#a8b3d6;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:600}.analytics-chart-host{flex:1;width:100%;min-width:0;position:relative;overflow:hidden}.analytics-chart-host svg{max-width:100%}.chart-empty{color:#cfd8ff66;justify-content:center;align-items:center;height:100%;font-size:11px;font-style:italic;display:flex}.chart-label{fill:#cfd8ff;font-family:Segoe UI,sans-serif;font-size:11px}.chart-value{fill:#a8b3d6;font-family:Segoe UI,sans-serif;font-size:11px}.chart-axis-label{fill:#cfd8ff80;font-size:10px}.chart-bar,.chart-bar-seg{cursor:pointer;transition:opacity .1s}.chart-bar:hover,.chart-bar-seg:hover{opacity:.85}.chart-bar-hover{cursor:pointer}.chart-bar-hover:hover{fill:#ffffff0d}.chart-slice{cursor:pointer;transition:opacity .1s}.chart-slice:hover{opacity:.85}.chart-tooltip{z-index:5000;color:#eff7ff;pointer-events:none;background:#080c1ef5;border:1px solid #7a5cff80;border-radius:4px;max-width:320px;padding:6px 9px;font-size:11px;line-height:1.4;position:fixed;box-shadow:0 4px 16px #0009}.donut-wrap{flex-flow:wrap;justify-content:center;align-items:center;gap:12px;width:100%;min-width:0;height:100%;display:flex}.donut-center-value{fill:#eff7ff;font-family:Segoe UI,sans-serif;font-size:18px;font-weight:700}.donut-center-label{fill:#cfd8ff99;text-transform:uppercase;letter-spacing:.06em;font-size:9px}.donut-legend{flex-direction:column;flex:auto;gap:3px;min-width:0;max-height:200px;display:flex;overflow:hidden auto}.donut-legend-item{color:#cfd8ff;align-items:center;gap:6px;font-size:10.5px;display:flex}.donut-swatch{border-radius:2px;flex-shrink:0;width:9px;height:9px;display:inline-block}.donut-key{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.donut-val{color:#cfd8ffa6;font-size:10px}.row-filter-badge{color:#f4eaff;background:#df1dff14;border:1px solid #df1dff73;border-radius:5px;align-items:center;gap:8px;margin:0 0 12px;padding:6px 12px;font-size:12px;display:flex}.row-filter-label{color:#df1dff;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:600}.row-filter-text{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.row-filter-clear{color:#df1dff;cursor:pointer;background:0 0;border:1px solid #df1dff80;border-radius:3px;width:22px;height:22px;font-size:14px;font-weight:700;line-height:1}.row-filter-clear:hover{background:#df1dff2e}.fileops-shell{flex-direction:column;gap:10px;display:flex}.fileops-stats{flex-wrap:wrap;gap:8px;display:flex}.fileops-stat{background:#080c1e99;border:1px solid #304a9a59;border-radius:4px;flex-direction:column;align-items:center;min-width:70px;padding:6px 12px;display:flex}.fileops-stat-val{color:#eff7ff;font-family:Consolas,monospace;font-size:16px;font-weight:700}.fileops-stat-lbl{color:#cfd8ff99;text-transform:uppercase;letter-spacing:.05em;font-size:9.5px}.fileops-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fileops-search{color:#eff7ff;background:#080c1e99;border:1px solid #304a9a73;border-radius:4px;flex:1;min-width:200px;padding:6px 10px;font-family:inherit;font-size:12px}.fileops-search:focus{border-color:#7a5cffb3;outline:none}.fileops-group-by{align-items:center;gap:6px;display:flex}.fileops-group-lbl{color:#cfd8ff99;text-transform:uppercase;font-size:11px}.fileops-group-btn,.fileops-chip{color:#cfd8ff;cursor:pointer;background:#080c1e80;border:1px solid #304a9a66;border-radius:3px;padding:4px 9px;font-family:inherit;font-size:11px}.fileops-group-btn.active,.fileops-chip.active{color:#fff;background:#7a5cff38;border-color:#7a5cffcc}.fileops-group-btn:hover,.fileops-chip:hover{border-color:#7a5cff80}.fileops-chips{flex-wrap:wrap;gap:5px;display:flex}.fileops-layout{grid-template-columns:1fr 1.4fr;gap:10px;min-height:460px;display:grid}.fileops-list{background:#080c1e8c;border:1px solid #304a9a4d;border-radius:4px;max-height:560px;overflow-y:auto}.fileops-row{cursor:pointer;border-bottom:1px solid #304a9a2e;grid-template-columns:100px 1fr 120px;align-items:center;gap:8px;padding:6px 10px;display:grid}.fileops-row:hover{background:#7a5cff14}.fileops-row.selected{background:#7a5cff29;border-left:2px solid #7a5cff;padding-left:8px}.fileops-row-flags{flex-wrap:wrap;gap:3px;display:flex}.fileops-flag{text-transform:uppercase;letter-spacing:.04em;border-radius:2px;padding:1px 4px;font-size:9px;font-weight:700;display:inline-block}.fileops-flag.write{color:#df1dff;background:#df1dff38}.fileops-flag.read{color:#1de9b6;background:#1de9b62e}.fileops-flag.recursive{color:#ffb74d;background:#ffb74d2e}.fileops-flag.notfound{color:#ff5252;background:#ff52522e}.fileops-flag.exec{color:#b39dff;background:#7a5cff2e}.fileops-row-path{color:#eff7ff;white-space:nowrap;text-overflow:ellipsis;font-family:Consolas,monospace;font-size:11px;overflow:hidden}.fileops-row-meta{text-align:right;color:#cfd8ff99;font-size:10.5px}.fileops-empty,.fileops-detail-empty{text-align:center;color:#cfd8ff66;padding:24px;font-style:italic}.fileops-overflow{text-align:center;color:#cfd8ff80;padding:8px 12px;font-size:11px;font-style:italic}.fileops-detail{background:#080c1e8c;border:1px solid #304a9a4d;border-radius:4px;max-height:560px;padding:10px;overflow-y:auto}.fileops-detail-header{border-bottom:1px solid #304a9a4d;margin-bottom:8px;padding-bottom:8px}.fileops-detail-path{color:#eff7ff;word-break:break-all;margin-bottom:6px;font-family:Consolas,monospace;font-size:12px}.fileops-detail-summary{color:#cfd8ffb3;flex-wrap:wrap;gap:12px;font-size:11px;display:flex}.fileops-detail-summary .warn{color:#ff8a80;font-weight:600}.fileops-detail-actions{margin-top:6px}.fileops-action-btn{color:#b39dff;cursor:pointer;background:#7a5cff33;border:1px solid #7a5cff99;border-radius:3px;padding:4px 10px;font-family:inherit;font-size:11px}.fileops-action-btn:hover{color:#fff;background:#7a5cff52}.fileops-detail-timeline{min-height:0;margin-bottom:8px}.fileops-detail-timeline:empty{display:none}.fileops-detail-table{background:#080c1e66;border:1px solid #304a9a2e;border-radius:3px}.fileops-detail-thead{color:#cfd8ff99;text-transform:uppercase;border-bottom:1px solid #304a9a4d;grid-template-columns:60px 130px 150px 60px 60px 110px 1fr;gap:6px;padding:4px 8px;font-size:10px;font-weight:600;display:grid}.fileops-detail-thead.reg{grid-template-columns:60px 180px 160px 50px 1fr 110px}.fileops-detail-row{color:#cfd8ff;border-bottom:1px solid #304a9a1a;grid-template-columns:60px 130px 150px 60px 60px 110px 1fr;align-items:center;gap:6px;padding:3px 8px;font-family:Consolas,monospace;font-size:11px;display:grid}.fileops-detail-row.reg{grid-template-columns:60px 180px 160px 50px 1fr 110px}.fileops-detail-row>span,.fileops-detail-thead>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.fileops-detail-row.notfound .status{color:#ff8a80}.fileops-detail-row.ok .status{color:#1de9b6}.fileops-detail-row .ts{color:#cfd8ff8c}.fileops-detail-row .pid em{color:#cfd8ff8c;font-style:normal}.fileops-detail-row .access{color:#cfd8ff99}.attack-shell{flex-direction:column;gap:10px;display:flex}.attack-intro{color:#cfd8ffb3;padding:4px 0 8px;font-size:12px}.attack-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.attack-card{cursor:pointer;background:#080c1e8c;border:1px solid #304a9a66;border-left-width:4px;border-radius:5px;padding:10px 12px;transition:transform .1s,border-color .1s,background .1s}.attack-card:hover{background:#7a5cff14;transform:translateY(-1px)}.attack-card.dim{opacity:.55}.attack-card.sev-high{border-left-color:#ff5252}.attack-card.sev-med{border-left-color:#ffb74d}.attack-card.sev-low{border-left-color:#29b6f6}.attack-card-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.attack-card-title{color:#eff7ff;font-size:12.5px;font-weight:600}.attack-card-count{color:#cfd8ff;text-align:center;background:#080c1e99;border-radius:12px;min-width:28px;padding:1px 8px;font-family:Consolas,monospace;font-size:16px;font-weight:700}.attack-card.sev-high .attack-card-count{color:#ff8a80}.attack-card.sev-med .attack-card-count{color:#ffb74d}.attack-card.sev-low .attack-card-count{color:#81d4fa}.attack-card.dim .attack-card-count{color:#cfd8ff66}.attack-card-desc{color:#cfd8ffa6;margin-bottom:6px;font-size:11px;line-height:1.4}.attack-card-preview{border-top:1px solid #304a9a40;margin-top:6px;padding-top:6px}.attack-card-pv-row{color:#cfd8ffb3;white-space:nowrap;text-overflow:ellipsis;padding:1px 0;font-family:Consolas,monospace;font-size:10.5px;overflow:hidden}.attack-card-pv-more{color:#cfd8ff80;margin-top:3px;font-size:10px;font-style:italic}.attack-back-row{margin-bottom:6px}.attack-detail-header{background:#080c1e8c;border:1px solid #304a9a4d;border-radius:5px;margin-bottom:10px;padding:10px 14px}.attack-detail-title{color:#eff7ff;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.attack-sev{border-radius:50%;width:10px;height:10px;display:inline-block}.attack-sev.sev-high{background:#ff5252;box-shadow:0 0 6px #ff5252}.attack-sev.sev-med{background:#ffb74d;box-shadow:0 0 6px #ffb74d}.attack-sev.sev-low{background:#29b6f6;box-shadow:0 0 6px #29b6f6}.attack-detail-desc{color:#cfd8ffbf;margin-top:4px;font-size:11.5px;line-height:1.4}.attack-detail-count{color:#cfd8ff8c;text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:11px}.attack-findings{flex-direction:column;gap:6px;display:flex}.attack-finding-row{background:#080c1e80;border:1px solid #304a9a40;border-radius:4px;grid-template-columns:16px 1fr 90px 110px;align-items:center;gap:8px;padding:8px 10px;display:grid}.attack-finding-row:hover{background:#7a5cff14}.attack-finding-sev{border-radius:50%;width:10px;height:10px}.attack-finding-sev.sev-high{background:#ff5252}.attack-finding-sev.sev-med{background:#ffb74d}.attack-finding-sev.sev-low{background:#29b6f6}.attack-finding-summary{color:#eff7ff;white-space:nowrap;text-overflow:ellipsis;font-family:Consolas,monospace;font-size:11px;overflow:hidden}.attack-finding-meta{color:#cfd8ff8c;text-align:right;font-size:10.5px}.attack-finding-view{color:#b39dff;cursor:pointer;background:#7a5cff33;border:1px solid #7a5cff99;border-radius:3px;padding:4px 8px;font-family:inherit;font-size:10.5px}.attack-finding-view:hover{color:#fff;background:#7a5cff52}.attack-empty{text-align:center;color:#cfd8ff80;padding:16px;font-style:italic}:root{--bg-primary:#050506;--bg-secondary:#09090b;--bg-tertiary:#0d0d11;--bg-elevated:#111115;--bg-glass:#09090bd1;--bg-glass-hover:#16161deb;--border-subtle:#ffffff13;--border-medium:#ffffff21;--border-strong:#6366f16b;--text-primary:#f4f2ed;--text-secondary:#c3c1bd;--text-muted:#85838a;--text-dim:#55545b;--color-user:#6472ff;--color-user-bg:#6472ff1a;--color-user-border:#6472ff52;--color-kernel:#9b70ff;--color-kernel-bg:#9b70ff1a;--color-kernel-border:#9b70ff4d;--color-syscall:#7c68ff;--color-syscall-bg:#7c68ff1f;--color-accent:#5865f2;--color-accent-bg:#5865f21f;--cat-security:#a377ff;--cat-security-bg:#a377ff1a;--cat-core:#5865f2;--cat-core-bg:#5865f21f;--cat-ui:#8290ff;--cat-ui-bg:#8290ff1a;--cat-networking:#7067e8;--cat-networking-bg:#7067e81f;--font-display:"Oxanium", "Inter", sans-serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "Cascadia Code", "Fira Code", monospace;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--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);--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow-user:0 0 22px #6472ff2e;--shadow-glow-kernel:0 0 24px #9b70ff33;--header-height:68px;--sidebar-width:240px;--funclist-width:300px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-sans);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#000}#app{isolation:isolate;background:radial-gradient(ellipse at 18% 6%, #5865f217 0%, transparent 36%), radial-gradient(ellipse at 68% 15%, #6472ff14 0%, transparent 42%), radial-gradient(ellipse at 76% 80%, #9b70ff0e 0%, transparent 42%), var(--bg-primary);flex-direction:column;height:100vh;display:flex;position:relative}#app:before{content:"";z-index:0;pointer-events:none;opacity:.11;mix-blend-mode:luminosity;background:linear-gradient(90deg,#050506d1,#050506f0),url(/banner.png) top/cover no-repeat;position:absolute;inset:0}#app>:not(.loading-overlay):not(.modal-overlay){z-index:1;position:relative}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}#app-header{height:var(--header-height);padding:0 var(--space-xl);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-medium);z-index:100;background:#050506e0;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header-left{align-items:center;gap:var(--space-lg);display:flex}.logo{align-items:center;gap:var(--space-md);display:flex}.logo-icon{object-fit:cover;object-position:center 23%;filter:drop-shadow(0 0 10px #6472ff38);border-radius:4px;flex-shrink:0;width:38px;height:38px}.logo-text h1{font-family:var(--font-display);letter-spacing:.18em;color:var(--text-primary);font-size:18px;font-weight:600;line-height:1.2}.logo-subtitle{color:var(--text-muted);letter-spacing:.02em;font-size:11px;font-weight:400}.header-right{align-items:center;gap:var(--space-lg);display:flex}.mode-badge{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);background:var(--color-user-bg);border:1px solid var(--color-user-border);color:var(--color-user);transition:all var(--transition-normal);padding:5px 12px;font-size:12px;font-weight:500;display:flex}.mode-badge.kernel{background:var(--color-kernel-bg);border-color:var(--color-kernel-border);color:var(--color-kernel)}.mode-dot{background:var(--color-user);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse-dot}.mode-dot.kernel{background:var(--color-kernel)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.header-stats{color:var(--text-muted);font-size:12px;font-weight:400}#main-content{flex:1;display:flex;overflow:hidden}.panel{border-right:1px solid var(--border-subtle);background:0 0;flex-direction:column;display:flex;overflow:hidden}.panel:last-child{border-right:none}.panel-header{padding:var(--space-lg) var(--space-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;min-height:48px;display:flex}.panel-header h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--text-primary);font-size:12px;font-weight:600}.panel-count{color:var(--text-muted);background:#ffffff0d;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}#dll-sidebar{width:var(--sidebar-width);flex-shrink:0}.dll-list{padding:var(--space-sm);flex:1;overflow-y:auto}.browse-container{padding:0 var(--space-sm) var(--space-sm)}.browse-btn{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:1px dashed var(--border-medium);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:12px;font-weight:500;font-family:var(--font-sans);background:#ffffff0d;display:flex}.browse-btn:hover{border-color:var(--color-accent);color:var(--text-primary);background:#ffffff14}.browse-btn.loading{opacity:.7;cursor:not-allowed}.browse-icon{width:16px;height:16px}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dll-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);margin-bottom:2px;display:flex;position:relative}.dll-item:hover{background:var(--bg-glass-hover)}.dll-item.active{background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.dll-item.active:before{content:"";background:var(--color-user);border-radius:0 2px 2px 0;width:3px;position:absolute;top:4px;bottom:4px;left:0}.dll-item.active.kernel-dll:before{background:var(--color-kernel)}.dll-icon{border-radius:var(--radius-sm);width:32px;height:32px;font-size:14px;font-weight:700;font-family:var(--font-mono);letter-spacing:-.03em;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dll-icon.security{background:var(--cat-security-bg);color:var(--cat-security)}.dll-icon.core{background:var(--cat-core-bg);color:var(--cat-core)}.dll-icon.ui{background:var(--cat-ui-bg);color:var(--cat-ui)}.dll-icon.networking{background:var(--cat-networking-bg);color:var(--cat-networking)}.dll-icon.custom{color:#a855f7;background:#a855f71a}.dll-info{flex:1;min-width:0}.dll-name{color:var(--text-primary);font-size:13px;font-weight:600;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dll-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;overflow:hidden}.dll-mode-tag{text-transform:uppercase;letter-spacing:.06em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:600}.dll-mode-tag.user{background:var(--color-user-bg);color:var(--color-user);border:1px solid var(--color-user-border)}.dll-mode-tag.kernel{background:var(--color-kernel-bg);color:var(--color-kernel);border:1px solid var(--color-kernel-border)}#function-panel{width:var(--funclist-width);flex-shrink:0}.search-box{margin:var(--space-sm) var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast);background:#ffffff0a;align-items:center;display:flex}.search-icon{width:14px;height:14px;color:var(--text-muted);margin-right:var(--space-sm);flex-shrink:0}.search-box input{color:var(--text-primary);font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;font-size:13px}.search-box input::placeholder{color:var(--text-dim)}.function-list{padding:var(--space-xs) var(--space-sm);flex:1;overflow-y:auto}.func-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);padding:var(--space-md) var(--space-md) var(--space-xs);align-items:center;gap:var(--space-sm);font-size:10px;font-weight:600;display:flex}.func-group-label:after{content:"";background:var(--border-subtle);flex:1;height:1px}.func-item{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:var(--space-sm);margin-bottom:1px;display:flex}.func-item:hover{background:var(--bg-glass-hover)}.func-item.active{background:#00c8ff14;border:1px solid #00c8ff2e}.func-item-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.func-item-dot.documented{background:var(--color-user)}.func-item-dot.undocumented{background:var(--color-kernel)}.func-item-name{font-size:12.5px;font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.func-item-arrow{color:var(--text-dim);opacity:0;transition:opacity var(--transition-fast);margin-left:auto;font-size:10px}.func-item:hover .func-item-arrow,.func-item.active .func-item-arrow{opacity:1}#detail-panel{flex:1;min-width:0}.detail-content{padding:var(--space-xl);flex:1;overflow-y:auto}.empty-state{text-align:center;justify-content:center;align-items:center;gap:var(--space-lg);flex-direction:column;height:100%;display:flex}.empty-icon{opacity:.5;width:100px;height:100px}.empty-state h3{color:var(--text-secondary);font-size:16px;font-weight:600}.empty-state p{color:var(--text-muted);max-width:320px;font-size:13px;line-height:1.6}.detail-card{animation:.3s ease-out fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.detail-header{margin-bottom:var(--space-xl)}.detail-dll-badge{align-items:center;gap:var(--space-xs);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md);border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.detail-dll-badge.security{background:var(--cat-security-bg);color:var(--cat-security)}.detail-dll-badge.core{background:var(--cat-core-bg);color:var(--cat-core)}.detail-dll-badge.ui{background:var(--cat-ui-bg);color:var(--cat-ui)}.detail-dll-badge.networking{background:var(--cat-networking-bg);color:var(--cat-networking)}.detail-dll-badge.custom{color:#a855f7;background:#a855f71a}.detail-func-name{font-size:24px;font-weight:700;font-family:var(--font-mono);letter-spacing:-.03em;color:var(--text-primary);margin-bottom:var(--space-sm);line-height:1.2}.detail-return-type{font-size:13px;font-family:var(--font-mono);color:var(--color-accent);margin-bottom:var(--space-md)}.detail-description{color:var(--text-secondary);max-width:680px;font-size:14px;line-height:1.7}.undocumented-badge{text-transform:uppercase;letter-spacing:.06em;background:var(--color-kernel-bg);color:var(--color-kernel);border:1px solid var(--color-kernel-border);margin-left:var(--space-sm);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.detail-section{margin-top:var(--space-2xl)}.detail-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-lg);align-items:center;gap:var(--space-sm);font-size:12px;font-weight:600;display:flex}.detail-section-title:after{content:"";background:var(--border-subtle);flex:1;height:1px}.param-table{border-collapse:collapse;width:100%;font-size:13px}.param-table thead{position:sticky;top:0}.param-table th{text-align:left;padding:var(--space-sm) var(--space-md);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border-bottom:1px solid var(--border-medium);background:var(--bg-primary);font-size:11px;font-weight:600}.param-table td{padding:var(--space-md) var(--space-md);border-bottom:1px solid var(--border-subtle);vertical-align:top}.param-table tr:last-child td{border-bottom:none}.param-table tr{transition:background var(--transition-fast)}.param-table tr:hover{background:#ffffff05}.param-name{font-family:var(--font-mono);color:var(--text-primary);font-size:12.5px;font-weight:500}.param-type{font-family:var(--font-mono);color:var(--color-accent);font-size:12px;font-weight:400}.param-dir{text-transform:uppercase;letter-spacing:.05em;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.param-dir.in{color:var(--color-user);background:#00c8ff1a}.param-dir.out{color:#f59e0b;background:#f59e0b1a}.param-dir.inout{color:var(--cat-security);background:#a855f71a}.param-desc{color:var(--text-secondary);font-size:12.5px;line-height:1.5}.chain-container{margin-top:var(--space-2xl);padding:var(--space-xl);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#ffffff05;overflow-x:auto}.chain-flow{min-width:max-content;padding:var(--space-md) 0;align-items:stretch;gap:0;display:flex}.chain-node{min-width:180px;animation:chainNodeAppear var(--transition-slow) ease-out;flex-direction:column;align-items:center;animation-fill-mode:backwards;display:flex;position:relative}.chain-node:first-child{animation-delay:0s}.chain-node:nth-child(2){animation-delay:80ms}.chain-node:nth-child(3){animation-delay:.16s}.chain-node:nth-child(4){animation-delay:.24s}.chain-node:nth-child(5){animation-delay:.32s}.chain-node:nth-child(6){animation-delay:.4s}.chain-node:nth-child(7){animation-delay:.48s}.chain-node:nth-child(8){animation-delay:.56s}@keyframes chainNodeAppear{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.chain-node-box{background:var(--bg-elevated);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);text-align:center;transition:all var(--transition-fast);cursor:default;min-width:160px;position:relative}.chain-node-box:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.chain-node-box.user-mode:hover{box-shadow:var(--shadow-glow-user)}.chain-node-box.kernel-mode{border-color:var(--color-kernel-border);background:linear-gradient(135deg, #df1dff14, var(--bg-elevated))}.chain-node-box.kernel-mode:hover{box-shadow:var(--shadow-glow-kernel)}.chain-node-box.syscall-boundary{border-color:var(--color-syscall);background:var(--color-syscall-bg);border-style:dashed}.chain-node-dll{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:600}.chain-node-func{font-size:13px;font-weight:600;font-family:var(--font-mono);color:var(--text-primary);word-break:break-all}.chain-node-mode{text-transform:uppercase;letter-spacing:.08em;border-radius:3px;margin-top:6px;padding:2px 8px;font-size:9px;font-weight:600;display:inline-block}.chain-node-mode.user{background:var(--color-user-bg);color:var(--color-user)}.chain-node-mode.kernel{background:var(--color-kernel-bg);color:var(--color-kernel)}.chain-node-note{color:var(--text-dim);margin-top:var(--space-sm);max-width:160px;font-size:10px;font-style:italic;line-height:1.4}.chain-arrow{justify-content:center;align-items:center;min-width:60px;display:flex;position:relative}.chain-arrow-line{background:linear-gradient(90deg, var(--color-user), var(--color-accent));width:100%;height:2px;position:relative}.chain-arrow-line:after{content:"";border:5px solid #0000;border-left:7px solid var(--color-accent);position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.chain-arrow.syscall .chain-arrow-line{background:linear-gradient(90deg, var(--color-user), var(--color-syscall));height:3px}.chain-arrow.syscall .chain-arrow-line:after{border-left-color:var(--color-syscall)}.chain-arrow-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:9px;font-weight:600;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.chain-syscall-divider{flex-direction:column;justify-content:center;align-items:center;min-width:80px;display:flex;position:relative}.chain-syscall-divider:before{content:"";background:repeating-linear-gradient(to bottom, var(--color-syscall) 0, var(--color-syscall) 4px, transparent 4px, transparent 8px);opacity:.4;width:2px;position:absolute;top:-20px;bottom:-20px;left:50%}.chain-syscall-label{background:var(--color-syscall-bg);color:var(--color-syscall);text-transform:uppercase;letter-spacing:.1em;z-index:1;white-space:nowrap;border:1px solid #ef444433;border-radius:4px;padding:4px 10px;font-size:9px;font-weight:700}@keyframes flowDots{0%{opacity:0;transform:translate(-10px)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(50px)}}.chain-arrow-line:before{content:"";background:var(--color-user);border-radius:50%;width:4px;height:4px;animation:2s linear infinite flowDots;position:absolute;top:-1px;left:0}.func-signature{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-lg);font-family:var(--font-mono);color:var(--text-secondary);margin-top:var(--space-lg);background:#0000004d;font-size:13px;line-height:1.6;overflow-x:auto}.sig-return{color:var(--color-accent)}.sig-func{color:var(--text-primary);font-weight:600}.sig-type{color:var(--cat-security)}.sig-param{color:var(--color-user)}.sig-punct{color:var(--text-dim)}.forwards-list{gap:var(--space-sm);flex-direction:column;display:flex}.forward-item{align-items:flex-start;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast);background:#ffffff05;flex-wrap:wrap;display:flex}.forward-item:hover{border-color:var(--border-medium);background:#ffffff0a}.forward-dll{font-family:var(--font-mono);color:var(--color-accent);font-size:12px;font-weight:600}.forward-arrow{color:var(--text-dim);font-size:12px}.forward-func{font-family:var(--font-mono);color:var(--text-primary);font-size:12px;font-weight:500}.forward-note{width:100%;color:var(--text-muted);margin-top:2px;font-size:11px;font-style:italic;line-height:1.4}.forward-item.clickable{cursor:pointer;border-color:#00c8ff4d}.forward-item.clickable:hover{border-color:var(--color-user);background:#00c8ff14}.chain-node-box.clickable{cursor:pointer;border-color:#00c8ff4d}.chain-node-box.clickable:hover{border-color:var(--color-user);box-shadow:var(--shadow-glow-user);background:#00c8ff14;transform:translateY(-2px)}.chain-node-box.current{box-shadow:0 0 0 2px var(--color-accent)}.chain-click-hint{color:var(--color-user);opacity:.8;margin-top:6px;font-size:9px;font-style:italic}.notification{background:var(--bg-elevated);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-primary);box-shadow:var(--shadow-lg);opacity:0;transition:all var(--transition-normal);z-index:1000;align-items:center;gap:10px;padding:12px 20px;font-size:13px;font-weight:500;display:flex;position:fixed;bottom:20px;right:20px;transform:translateY(100px)}.notification.show{opacity:1;transform:translateY(0)}.notification.success{border-left:3px solid var(--color-user)}.notification.error{border-left:3px solid var(--color-syscall)}@media (width<=1200px){:root{--sidebar-width:200px;--funclist-width:260px}}@media (width<=900px){#main-content{flex-direction:column}#dll-sidebar,#function-panel{border-right:none;border-bottom:1px solid var(--border-subtle);width:100%;max-height:200px}.dll-list,.function-list{gap:var(--space-sm);flex-flow:row;display:flex;overflow-x:auto}.dll-item{flex-shrink:0}}button,input,label{font-family:inherit}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-user);outline-offset:2px}::-webkit-scrollbar-thumb{background:#ffffff24}#app-header{padding:0 clamp(16px,2.5vw,36px)}.header-left,.header-right{gap:18px}.logo{gap:14px}.logo-subtitle{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.035em;font-size:10px}.upload-btn{color:var(--text-primary);border-color:var(--border-medium);font-family:var(--font-display);letter-spacing:.04em;background:0 0;border-radius:999px;padding:8px 16px;font-size:11px;font-weight:500}.upload-btn:hover{color:#fff;background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 22px #5865f238}.mode-badge{font-family:var(--font-mono);letter-spacing:.02em;border-radius:999px}.header-stats{color:var(--text-muted);font-family:var(--font-mono)}.panel{border-color:var(--border-subtle);background:#05050657}.panel-header{min-height:54px;padding:16px 18px}.panel-header h2,.filter-title,.stat-title,.chart-card h3,.table-header h3,.analytics-header h3,.analytics-card-title,.detail-section-title{font-family:var(--font-display)}.panel-count,.filter-count,.table-count-badge{color:var(--text-muted);font-family:var(--font-mono);background:#ffffff0b}.search-box,.exclude-pid-input-row input,.col-filter-input,.fileops-search{border-color:var(--border-medium);border-radius:var(--radius-sm);background:#ffffff06}.search-box:focus-within{border-color:var(--color-user);background:#6472ff0b;box-shadow:0 0 0 3px #6472ff14}.search-box input{font-family:var(--font-mono);font-size:12px}.func-group-label,.filter-title,.filter-toggle-label{color:var(--text-muted);font-family:var(--font-display);letter-spacing:.1em}.dll-item,.func-item,.filter-item{border:1px solid #0000}.dll-item:hover,.func-item:hover,.filter-item:hover{border-color:var(--border-subtle);background:#ffffff09}.dll-item.active,.func-item.active,.filter-item.active{box-shadow:none;background:#6472ff14;border-color:#6472ff38}.dll-item.active:before{background:var(--color-user);width:2px}.dll-icon{border:1px solid;font-size:12px;background:0 0!important}.dll-name,.func-item-name{font-weight:500}.dll-mode-tag,.detail-dll-badge,.undocumented-badge,.cat-badge,.status-badge{font-family:var(--font-mono);border-radius:3px}.detail-content{padding:clamp(20px,3vw,40px)}.detail-func-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(24px,3vw,34px);font-weight:600}.detail-return-type,.param-type,.sig-return,.forward-dll{color:#8290ff}.detail-description,.param-desc{color:var(--text-secondary)}.chain-container,.func-signature,.forward-item{border-color:var(--border-medium);background:#ffffff05}.chain-node-box{border-color:var(--border-medium);background:#0d0d11}.chain-node-box.user-mode{border-color:#6472ff6b}.chain-node-box.kernel-mode{background:linear-gradient(145deg,#9b70ff14,#0d0d11 65%);border-color:#9b70ff6b}.chain-node-func{font-weight:500}.chain-arrow-line,.progress-fill{background:linear-gradient(90deg,#5865f2,#9b70ff)}.chain-arrow-line:after{border-left-color:#9b70ff}.chain-arrow-line:before{background:#8290ff}#dashboard-content,#dash-main{background:var(--bg-primary)}#dash-sidebar{background:#09090bf0}#dash-main{gap:16px;padding:clamp(12px,1.5vw,22px)}.stat-card,.chart-card,.dash-table-container,.dash-graph-container,.analytics-panel,.analytics-card,.modal-content,.fileops-list,.fileops-detail,.attack-card,.attack-detail-header{border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:none;background:#0d0d10}.stat-card{justify-content:center;min-height:82px;padding:14px 18px}.stat-card:before{background:var(--color-accent);width:2px}.stat-card:nth-child(2):before{background:#6472ff}.stat-card:nth-child(3):before{background:#f2b84b}.stat-card:nth-child(4):before{background:#9b70ff}.stat-card:nth-child(5):before{background:#8290ff}.stat-value{color:var(--text-primary);font-size:25px;font-weight:500}.written-data-sidebar-btn,.network-streams-sidebar-btn,.export-btn,.bulk-btn,.modal-action-btn,.fileops-group-btn,.fileops-chip,.fileops-action-btn,.attack-finding-view{color:var(--text-secondary);border-color:var(--border-medium);border-radius:var(--radius-sm);background:0 0}.written-data-sidebar-btn:hover,.network-streams-sidebar-btn:hover,.export-btn:hover,.bulk-btn:hover,.modal-action-btn:hover,.fileops-group-btn:hover,.fileops-chip:hover,.fileops-action-btn:hover,.attack-finding-view:hover{color:#fff;border-color:var(--color-user);box-shadow:none;background:#6472ff1f}.written-data-sidebar-btn+.written-data-sidebar-btn,.network-streams-sidebar-btn+.written-data-sidebar-btn{margin-top:8px}.analytics-panel{background:#0d0d10d1}.analytics-header,.table-header,.modal-header{border-color:var(--border-subtle);background:#ffffff05}.analytics-card{background:#09090b}.chart-label,.chart-value,.donut-legend-item{fill:var(--text-secondary);color:var(--text-secondary);font-family:var(--font-mono)}.fileops-stat-val,.fileops-row-path,.fileops-detail-path,.fileops-detail-row,.attack-card-count,.attack-card-pv-row,.attack-finding-summary{font-family:var(--font-mono)}.chart-tooltip{color:var(--text-primary);border-radius:var(--radius-sm);background:#09090bf7;border-color:#6472ff80}.dag-toggle-label,.dash-tab,.table-header h3{font-family:var(--font-display);letter-spacing:.035em}.dag-legend{border-color:var(--border-medium);border-radius:var(--radius-sm);background:#09090bf0}.slider{border:1px solid var(--border-medium);background:#ffffff0d!important}input:checked+.slider{border-color:var(--color-user);background:var(--color-user)!important}input:checked+.slider:before{background:#fff}.dash-tabs{border-color:var(--border-medium)}.dash-tab{color:var(--text-muted)}.dash-tab.active{color:#8290ff;border-bottom-color:#6472ff}.data-table th{color:var(--text-muted);font-family:var(--font-display);background:#0d0d10}.data-table td{border-color:var(--border-subtle)}.data-table tbody tr:hover td{background:#6472ff0b}.modal-overlay{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#000000d6}.modal-content{background:#0d0d10;box-shadow:0 28px 80px #0009}.modal-header h2{font-family:var(--font-display);letter-spacing:.025em;font-weight:600}.loading-overlay{background:linear-gradient(#050506db,#050506f7),url(/banner.png) 50%/cover no-repeat}.brand-loader{filter:drop-shadow(0 0 20px #6472ff33)}.loader-logo{border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--border-medium), 0 0 28px #6472ff38}.loader-ring-outer{border-top-color:#6472ff;border-bottom-color:#9b70ff4d;border-right-color:#8290ff}.loader-ring-inner{border-bottom-color:#6472ffb3;border-left-color:#9b70ff}#loading-text{font-family:var(--font-display);letter-spacing:.06em}@media (width<=1200px){.dash-stats{grid-template-columns:repeat(3,1fr)}.analytics-row{grid-template-columns:1fr 1fr}.analytics-row .analytics-card:last-child{grid-column:1/-1}.card-header-flex{align-items:flex-start;gap:12px}.dag-toggle-group{flex-wrap:wrap;justify-content:flex-end}}@media (width<=900px){html,body{overflow:auto}#app{height:auto;min-height:100vh}#app-header{height:auto;min-height:var(--header-height);flex-wrap:wrap;gap:10px;padding-block:12px}.header-right{flex-wrap:wrap;justify-content:flex-end}#main-content,#dashboard-content{min-height:calc(100vh - var(--header-height));width:100%;max-width:100vw}#dll-sidebar,#function-panel,#detail-panel{width:100%;min-width:0;max-width:100vw}.empty-state p{width:min(320px,100vw - 40px)}#dashboard-content{flex-direction:column;overflow:visible}#dash-sidebar{border-right:none;border-bottom:1px solid var(--border-medium);width:100%;max-height:360px}#dash-main{overflow:visible}.dash-stats{grid-template-columns:repeat(2,1fr)}.analytics-row,.fileops-layout{grid-template-columns:1fr}.analytics-row .analytics-card:last-child{grid-column:auto}.card-header-flex{flex-direction:column}.dag-toggle-group{justify-content:flex-start}}@media (width<=620px){.logo-subtitle,.header-stats,.mode-badge{display:none}.header-right{justify-content:stretch;width:100%;min-width:0}.upload-btn{flex:1;justify-content:center;min-width:0}.dash-stats,.analytics-row{grid-template-columns:1fr}.detail-content{padding:18px}.dag-toggle-group{gap:8px 12px}.dash-tabs{flex-direction:column}.dash-tabs-right{border-left:0;border-top:1px solid var(--border-subtle);margin:0;padding:0}.modal-overlay{padding:8px}}
