.tool-icon.tool-warning{color:var(--color-warning)}.tool-icon.tool-accent{color:var(--color-accent)}.dashboard-page{padding:var(--space-3xl) 0 var(--space-4xl);min-height:calc(100vh - var(--page-chrome-height));min-height:calc(100dvh - var(--page-chrome-height));position:relative;overflow:hidden}.dashboard-page:before{content:"";background:var(--gradient-mesh);opacity:.2;pointer-events:none;z-index:0;position:absolute;inset:0}.dashboard-page .container{z-index:1;position:relative}.dashboard-centered-container{max-width:1400px;margin:0 auto;position:relative}.dashboard-charts-section{margin-top:var(--space-xl);content-visibility:auto;contain-intrinsic-size:auto 600px;min-height:600px}.charts-skeleton{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.charts-skeleton[hidden]{display:none}.charts-skeleton .skeleton-bar{background:linear-gradient(90deg, var(--color-bg-tertiary) 25%, var(--color-bg-secondary) 50%, var(--color-bg-tertiary) 75%);border-radius:var(--radius-lg);background-size:200% 100%;animation:1.5s cubic-bezier(.4,0,.2,1) infinite skeleton-shimmer}.charts-skeleton .skeleton-bar-tall{height:334px}.animate-in{opacity:0;animation:fadeInUp var(--animation-entrance);animation-delay:var(--delay);transform:translateY(20px)}.fade-in{animation:fadeInUp var(--animation-entrance);animation-delay:var(--delay,0s);opacity:0}@media (prefers-reduced-motion:reduce){.fade-in,.animate-in,.dashboard-content{opacity:1;animation:none}}.portfolio-hero-summary{gap:var(--space-2xl);margin-bottom:var(--space-2xl);padding:var(--space-2xl);background:linear-gradient(135deg, rgba(var(--color-bg-card-rgb), .6) 0%, rgba(var(--color-bg-card-rgb), .3) 100%);backdrop-filter:blur(var(--blur-sm));border:1px solid rgba(var(--color-accent-rgb), .15);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);grid-template-columns:1fr 2fr;display:grid}.portfolio-gauge-section{justify-content:center;align-items:center;display:flex}.portfolio-metrics-grid{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.runtime-breakdown{gap:var(--space-xl);margin-bottom:var(--space-2xl);grid-template-columns:repeat(2,1fr);display:grid}.runtime-card{padding:var(--space-xl);background:linear-gradient(135deg, rgba(var(--color-bg-card-rgb), .85) 0%, rgba(var(--color-bg-card-rgb), .75) 100%);backdrop-filter:blur(var(--blur-sm));border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);position:relative;overflow:hidden}.runtime-card:before{content:"";background:var(--runtime-color);opacity:.8;height:3px;position:absolute;top:0;left:0;right:0}.runtime-card.evm{--runtime-color:var(--color-evm)}.runtime-card.svm{--runtime-color:var(--color-svm)}.runtime-card:hover{border-color:var(--runtime-color);box-shadow:var(--shadow-xl), 0 0 30px color-mix(in srgb, var(--runtime-color) 15%, transparent);transform:translateY(-2px)}.runtime-card-header{align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.runtime-icon{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--runtime-color) 15%, transparent);width:48px;height:48px;color:var(--runtime-color);justify-content:center;align-items:center;display:flex}.runtime-badge-label{font-size:var(--text-h3);font-weight:var(--font-weight-bold);color:var(--runtime-color);letter-spacing:var(--letter-spacing-tight)}.runtime-stats{gap:var(--space-md);flex-direction:column;display:flex}.runtime-stat-main{align-items:baseline;gap:var(--space-sm);display:flex}.runtime-count{font-size:var(--text-display);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.runtime-stat-label{font-size:var(--text-body-lg);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.runtime-stat-secondary{gap:var(--space-xl);display:flex}.runtime-mini-stat{gap:var(--space-xxs);flex-direction:column;display:flex}.mini-stat-value{font-size:var(--text-h4);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.mini-stat-label{font-size:var(--text-caption);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal)}.runtime-card-link{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-md);background:color-mix(in srgb, var(--runtime-color) 10%, transparent);border:1px solid color-mix(in srgb, var(--runtime-color) 20%, transparent);border-radius:var(--radius-md);color:var(--runtime-color);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);align-items:center;text-decoration:none;display:inline-flex}.runtime-card-link:hover{background:color-mix(in srgb, var(--runtime-color) 20%, transparent);border-color:var(--runtime-color);transform:translate(4px)}.section-subtitle{margin:0}.contract-grid-panel .section-header-row{align-items:flex-start}.dashboard-content[hidden]{display:none}.dashboard-content{animation:fadeInUp var(--animation-entrance);animation-fill-mode:forwards}.portfolio-metrics-grid .card{align-items:center;gap:var(--space-md);display:flex}.card-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.card-icon.contracts{background:var(--severity-info-bg);color:var(--severity-info)}.card-icon.findings{background:var(--severity-high-bg);color:var(--severity-high)}.card-icon.risk{background:rgba(var(--color-secondary-rgb), .12);color:var(--color-secondary)}.card-icon.critical{background:var(--severity-critical-bg);color:var(--severity-critical)}.card-value{font-size:var(--text-h2);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.card-label{font-size:var(--text-body-sm);color:var(--color-text-secondary);margin-top:var(--space-xs)}.full-width{margin-bottom:var(--space-lg)}.contract-grid-panel{background:linear-gradient(135deg, rgba(var(--color-bg-card-rgb), .85) 0%, rgba(var(--color-bg-card-rgb), .7) 100%);border:1px solid rgba(var(--color-accent-rgb), .15);padding:var(--space-2xl)}.contract-grid-panel .filter-group{align-items:flex-end;gap:var(--space-sm);flex-wrap:wrap;display:flex}.contract-risk-grid{gap:var(--space-sm);min-height:100px;max-height:440px;padding:var(--space-sm);background:linear-gradient(135deg, rgba(var(--color-bg-tertiary-rgb), .8) 0%, rgba(var(--color-bg-secondary-rgb), .7) 100%);border:1px solid var(--color-border-hover);border-radius:var(--radius-md);grid-template-columns:repeat(auto-fill,minmax(48px,1fr));display:grid;overflow-y:auto}.grid-loading{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--color-text-muted);font-size:var(--text-body-sm);grid-column:1/-1;display:flex}.grid-count{margin:var(--space-xs) 0 0;font-size:var(--text-caption);color:var(--color-text-secondary)}.grid-count[hidden]{display:none}.contract-cell{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);font-size:var(--text-micro);font-weight:var(--font-weight-bold);color:var(--color-bg-primary);text-shadow:var(--shadow-xs);justify-content:center;align-items:center;min-width:40px;min-height:40px;display:flex;position:relative}.contract-cell:after{content:"";border-radius:var(--radius-full);background:var(--cell-runtime-color,var(--color-evm));width:8px;height:8px;box-shadow:0 0 4px var(--cell-runtime-color,var(--color-evm));position:absolute;top:3px;right:3px}.contract-cell[data-runtime=evm]:after{--cell-runtime-color:var(--color-evm)}.contract-cell[data-runtime=svm]:after{--cell-runtime-color:var(--color-svm)}.contract-cell:hover{z-index:10;box-shadow:var(--shadow-lg);transform:scale(1.15)}.contract-cell.critical-risk{background:linear-gradient(135deg, var(--severity-critical) 0%, var(--severity-critical-dark) 100%)}.contract-cell.high-risk{background:linear-gradient(135deg, var(--severity-high) 0%, var(--severity-high-dark) 100%)}.contract-cell.medium-risk{background:linear-gradient(135deg, var(--severity-medium) 0%, var(--severity-medium-dark) 100%)}.contract-cell.low-risk{background:linear-gradient(135deg, var(--severity-low) 0%, var(--severity-low-dark) 100%)}.contract-cell-tooltip .contract-runtime-badge{margin-bottom:var(--space-xxs)}.contract-cell-tooltip{padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-caption);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:100;box-shadow:var(--shadow-lg);color:var(--color-text-primary);text-shadow:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.contract-cell:hover .contract-cell-tooltip,.contract-cell:focus-visible .contract-cell-tooltip{opacity:1}.contract-cell-tooltip .tooltip-address{font-family:var(--font-mono);color:var(--color-accent);font-weight:var(--font-weight-semibold)}.contract-cell-tooltip .tooltip-details{margin-top:var(--space-xs);color:var(--color-text-secondary)}.grid-legend{justify-content:center;gap:var(--space-2xl);margin-top:var(--space-md);font-size:var(--text-caption);color:var(--color-text-secondary);padding:var(--space-md);background:rgba(var(--color-bg-tertiary-rgb), .3);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.legend-group{align-items:center;gap:var(--space-md);display:flex}.legend-title{font-weight:var(--font-weight-semibold);color:var(--color-text-muted);margin-right:var(--space-xs)}.legend-item{align-items:center;gap:var(--space-xs);display:flex}.legend-dot{border-radius:var(--radius-xs);width:12px;height:12px}.legend-dot.critical{background:linear-gradient(135deg, var(--severity-critical) 0%, var(--severity-critical-dark) 100%)}.legend-dot.high{background:linear-gradient(135deg, var(--severity-high) 0%, var(--severity-high-dark) 100%)}.legend-dot.medium{background:linear-gradient(135deg, var(--severity-medium) 0%, var(--severity-medium-dark) 100%)}.legend-dot.low{background:linear-gradient(135deg, var(--severity-low) 0%, var(--severity-low-dark) 100%)}.runtime-indicator{border-radius:var(--radius-full);width:12px;height:12px;box-shadow:0 0 4px}.runtime-indicator.evm{background:var(--color-evm);box-shadow:0 0 4px color-mix(in srgb, var(--color-evm) 50%, transparent)}.runtime-indicator.svm{background:var(--color-svm);box-shadow:0 0 4px color-mix(in srgb, var(--color-svm) 50%, transparent)}.vulnerability-treemap{gap:var(--space-xs);min-height:180px;padding:var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.treemap-cell{border-radius:var(--radius-md);padding:var(--space-sm);cursor:pointer;transition:transform var(--transition-base), box-shadow var(--transition-base);flex-direction:column;flex:var(--cell-flex,1);min-height:60px;min-width:var(--cell-min-width,15%);justify-content:center;align-items:center;display:flex}.treemap-cell:hover{box-shadow:var(--shadow-md);transform:scale(1.02)}.treemap-cell.critical{background:linear-gradient(135deg, color-mix(in srgb, var(--severity-critical) 90%, transparent) 0%, color-mix(in srgb, var(--severity-critical-dark) 90%, transparent) 100%);color:var(--color-bg-primary)}.treemap-cell.high{background:linear-gradient(135deg, color-mix(in srgb, var(--severity-high) 90%, transparent) 0%, color-mix(in srgb, var(--severity-high-dark) 90%, transparent) 100%);color:var(--color-bg-primary)}.treemap-cell.medium{background:linear-gradient(135deg, color-mix(in srgb, var(--severity-medium) 90%, transparent) 0%, color-mix(in srgb, var(--severity-medium-dark) 90%, transparent) 100%);color:var(--color-bg-primary)}.treemap-cell.low{background:linear-gradient(135deg, color-mix(in srgb, var(--severity-low) 90%, transparent) 0%, color-mix(in srgb, var(--severity-low-dark) 90%, transparent) 100%);color:var(--color-bg-primary)}.treemap-cell.info{background:linear-gradient(135deg, color-mix(in srgb, var(--severity-info) 90%, transparent) 0%, color-mix(in srgb, var(--severity-info-dark) 90%, transparent) 100%);color:var(--color-bg-primary)}.treemap-label{font-size:var(--text-micro);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);opacity:.9}.treemap-count{font-size:var(--text-h3);font-weight:var(--font-weight-bold);margin-top:var(--space-xs);line-height:1}.treemap-contracts{font-size:var(--text-micro);opacity:.8;margin-top:var(--space-xxs)}.risk-histogram{align-items:flex-end;gap:var(--space-xs);height:140px;padding:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);display:flex}.histogram-bar{min-width:20px;height:var(--bar-height,2%);border-radius:var(--radius-xs) var(--radius-xs) 0 0;transition:opacity var(--transition-base);cursor:pointer;flex:1;position:relative}.histogram-bar:hover{opacity:.8}.histogram-bar:after{content:attr(data-count);bottom:calc(100% + var(--space-xxs));font-size:var(--text-micro);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);opacity:0;transition:opacity var(--transition-fast);position:absolute;left:50%;transform:translate(-50%)}.histogram-bar:hover:after{opacity:1}.histogram-bar.bucket-0-10{background:linear-gradient(180deg, color-mix(in srgb, var(--color-success) 45%, transparent) 0%, color-mix(in srgb, var(--color-success) 65%, transparent) 100%)}.histogram-bar.bucket-10-20{background:linear-gradient(180deg, color-mix(in srgb, var(--color-success) 65%, transparent) 0%, var(--color-success) 100%)}.histogram-bar.bucket-20-30{background:linear-gradient(180deg, var(--color-success) 0%, color-mix(in srgb, var(--color-success) 85%, transparent) 100%)}.histogram-bar.bucket-30-40{background:linear-gradient(180deg, color-mix(in srgb, var(--color-success) 55%, var(--color-warning)) 0%, var(--color-warning) 100%)}.histogram-bar.bucket-40-50{background:linear-gradient(180deg, var(--color-warning) 0%, color-mix(in srgb, var(--color-warning) 90%, transparent) 100%)}.histogram-bar.bucket-50-60{background:linear-gradient(180deg, color-mix(in srgb, var(--color-warning) 80%, transparent) 0%, var(--color-warning) 100%)}.histogram-bar.bucket-60-70{background:linear-gradient(180deg, color-mix(in srgb, var(--color-warning) 55%, var(--color-error)) 0%, var(--color-error) 100%)}.histogram-bar.bucket-70-80{background:linear-gradient(180deg, var(--color-error) 0%, color-mix(in srgb, var(--color-error) 85%, transparent) 100%)}.histogram-bar.bucket-80-90{background:linear-gradient(180deg, var(--color-error) 0%, color-mix(in srgb, var(--color-error) 90%, var(--color-bg-primary)) 100%)}.histogram-bar.bucket-90-100{background:linear-gradient(180deg, color-mix(in srgb, var(--color-error) 90%, var(--color-bg-primary)) 0%, color-mix(in srgb, var(--color-error) 80%, var(--color-bg-primary)) 100%)}.histogram-labels{padding:0 var(--space-md);font-size:var(--text-micro);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);justify-content:space-between;display:flex}.safe-label{color:var(--color-success)}.critical-label{color:var(--color-error)}.high-risk-list{gap:var(--space-sm);flex-direction:column;display:flex}.high-risk-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg, var(--color-bg-tertiary) 0%, color-mix(in srgb, var(--color-bg-primary) 80%, transparent) 100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);cursor:pointer;color:inherit;text-decoration:none;display:flex}.high-risk-item:hover{background:var(--color-bg-card-hover);border-color:var(--color-border-hover);transform:translate(4px)}.high-risk-info{flex:1;min-width:0}.high-risk-address{font-family:var(--font-mono);font-size:var(--text-body-sm);font-weight:var(--font-weight-medium);color:var(--color-accent)}.high-risk-meta{align-items:center;gap:var(--space-md);margin-top:var(--space-xxs);font-size:var(--text-caption);color:var(--color-text-secondary);display:flex}.high-risk-network{padding:var(--space-xxs) var(--space-sm);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.high-risk-score{font-weight:var(--font-weight-bold);padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-label)}.high-risk-score.critical{background:var(--severity-critical-bg);color:var(--severity-critical)}.high-risk-score.high{background:var(--severity-high-bg);color:var(--severity-high)}.high-risk-findings{align-items:center;gap:var(--space-xs);font-size:var(--text-caption);color:var(--color-text-secondary);white-space:nowrap;display:flex}.high-risk-findings .critical-count{color:var(--severity-critical);font-weight:var(--font-weight-semibold)}.high-risk-arrow{color:var(--color-text-muted);opacity:0;transition:opacity var(--transition-fast)}.high-risk-item:hover .high-risk-arrow{opacity:1}.no-high-risk{align-items:center;gap:var(--space-sm);padding:var(--space-xl);flex-direction:column;display:flex}.no-high-risk svg{color:var(--color-success)}.no-high-risk p{color:var(--color-text-secondary);font-size:var(--text-body-sm);margin:0}.contract-runtime-badge{padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-micro);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);flex-shrink:0;display:inline-block}.contract-runtime-badge.evm{background:color-mix(in srgb, var(--color-evm) 15%, transparent);color:var(--color-evm);border:1px solid color-mix(in srgb, var(--color-evm) 30%, transparent)}.contract-runtime-badge.svm{background:color-mix(in srgb, var(--color-svm) 15%, transparent);color:var(--color-svm);border:1px solid color-mix(in srgb, var(--color-svm) 30%, transparent)}.grid-empty-message{text-align:center;padding:var(--space-xl);color:var(--color-text-muted);font-size:var(--text-body-sm);grid-column:1/-1}.dashboard-tabs{gap:var(--space-xs);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-lg);scrollbar-width:none;display:flex;overflow-x:auto}.dashboard-tabs::-webkit-scrollbar{display:none}.dashboard-tab{padding:var(--space-sm) var(--space-md);color:var(--color-text-muted);font-family:inherit;font-size:var(--text-body-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.dashboard-tab:hover{color:var(--color-text-primary)}.dashboard-tab.active{color:var(--color-text-primary);border-bottom-color:var(--color-accent)}.dashboard-tab:focus-visible{border-radius:var(--radius-sm);box-shadow:0 0 0 2px var(--color-accent);outline:none}.dashboard-tabpanel[hidden]{display:none}.dashboard-tabpanel .dashboard-panel,.dashboard-tabpanel .dashboard-charts-section{content-visibility:visible;contain-intrinsic-size:auto}.dashboard-grid{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-panel{content-visibility:auto;contain-intrinsic-size:auto 400px;background:linear-gradient(135deg, rgba(var(--color-bg-card-rgb), .85) 0%, rgba(var(--color-bg-card-rgb), .7) 100%);backdrop-filter:blur(var(--blur-sm));border:1px solid rgba(var(--color-accent-rgb), .15);border-radius:var(--radius-xl);padding:var(--space-xl);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base)}.dashboard-panel:hover{border-color:rgba(var(--color-accent-rgb), .3);box-shadow:var(--shadow-xl);transform:translateY(-2px)}.severity-bars{gap:var(--space-md);flex-direction:column;display:flex}.severity-bar-row{gap:var(--space-md);grid-template-columns:70px 1fr 50px;align-items:center;display:grid}.severity-label{font-size:var(--text-label);font-weight:var(--font-weight-medium)}.severity-label.critical{color:var(--severity-critical)}.severity-label.high{color:var(--severity-high)}.severity-label.medium{color:var(--severity-medium)}.severity-label.low{color:var(--severity-low)}.severity-label.info{color:var(--severity-info)}.severity-bar-track{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);height:24px;overflow:hidden}.severity-bar-fill{height:100%;width:var(--bar-fill-width,0%);border-radius:var(--radius-sm);transition:width var(--transition-base)}.severity-bar-fill.critical{background:linear-gradient(90deg, var(--severity-critical) 0%, var(--severity-critical-dark) 100%)}.severity-bar-fill.high{background:linear-gradient(90deg, var(--severity-high) 0%, var(--severity-high-dark) 100%)}.severity-bar-fill.medium{background:linear-gradient(90deg, var(--severity-medium) 0%, var(--severity-medium-dark) 100%)}.severity-bar-fill.low{background:linear-gradient(90deg, var(--severity-low) 0%, var(--severity-low-dark) 100%)}.severity-bar-fill.info{background:linear-gradient(90deg, var(--severity-info) 0%, var(--severity-info-dark) 100%)}.severity-count{font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:right}.network-chart{gap:var(--space-sm);flex-direction:column;display:flex}.network-item{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);transition:background var(--transition-fast), transform var(--transition-fast);cursor:pointer;display:flex}.network-item:hover{background:var(--color-bg-secondary);transform:translate(4px)}.network-dot{border-radius:var(--radius-full);flex-shrink:0;width:12px;height:12px}.network-name{font-size:var(--text-body-sm);font-weight:var(--font-weight-medium);flex:1}.network-stats{gap:var(--space-md);font-size:var(--text-caption);color:var(--color-text-secondary);display:flex}.network-stat{align-items:center;gap:var(--space-xs);display:flex}.vulnerabilities-list{gap:var(--space-sm);flex-direction:column;display:flex}.vulnerability-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg, var(--color-bg-tertiary) 0%, color-mix(in srgb, var(--color-bg-primary) 80%, transparent) 100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:background var(--transition-base), border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);cursor:pointer;display:flex}.vulnerability-item:hover{background:var(--color-bg-card-hover);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translate(4px)}.vulnerability-rank{background:linear-gradient(135deg, var(--color-accent-subtle) 0%, rgba(var(--color-accent-rgb), .2) 100%);border:1px solid rgba(var(--color-accent-rgb), .3);border-radius:var(--radius-md);width:32px;height:32px;font-size:var(--text-body-sm);font-weight:var(--font-weight-bold);color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.vulnerability-rank.top-3{background:linear-gradient(135deg, rgba(var(--color-accent-rgb), .2) 0%, rgba(var(--color-accent-rgb), .35) 100%);border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.vulnerability-info{flex:1;min-width:0}.vulnerability-name{font-size:var(--text-body);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vulnerability-meta{align-items:center;gap:var(--space-md);font-size:var(--text-caption);color:var(--color-text-secondary);display:flex}.vulnerability-severity{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);font-size:var(--text-micro);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);display:inline-flex}.vulnerability-severity.critical{background:var(--severity-critical-bg);color:var(--severity-critical)}.vulnerability-severity.high{background:var(--severity-high-bg);color:var(--severity-high)}.vulnerability-severity.medium{background:var(--severity-medium-bg);color:var(--severity-medium)}.vulnerability-severity.low{background:var(--severity-low-bg);color:var(--severity-low)}.vulnerability-severity.info{background:var(--severity-info-bg);color:var(--severity-info)}.vulnerability-stats{align-items:center;gap:var(--space-xs);display:flex}.vulnerability-stats svg{opacity:.7;width:12px;height:12px}.heatmap-container{gap:var(--space-md);flex-direction:column;display:flex}.heatmap-legend{justify-content:center;gap:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-sm);display:flex}.heatmap-legend-item{align-items:center;gap:var(--space-xs);font-size:var(--text-micro);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);display:flex}.heatmap-legend-dot{border-radius:var(--radius-xs);width:10px;height:10px}.heatmap-legend-dot.critical{background:var(--severity-critical)}.heatmap-legend-dot.high{background:var(--severity-high)}.heatmap-legend-dot.medium{background:var(--severity-medium)}.heatmap-legend-dot.low{background:var(--severity-low)}.heatmap-legend-dot.info{background:var(--severity-info)}.heatmap-grid{gap:var(--space-sm);flex-direction:column;display:flex}.heatmap-row{gap:var(--space-xs);grid-template-columns:90px repeat(5,1fr);align-items:center;display:grid}.heatmap-row.header{margin-bottom:var(--space-xs)}.heatmap-label{font-size:var(--text-label);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-align:right;padding-right:var(--space-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.heatmap-header-cell{font-size:var(--text-micro);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);text-align:center;padding:var(--space-xs) 0}.heatmap-cell{height:var(--touch-target-min);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-base);background:var(--color-bg-tertiary);border:1px solid var(--color-border);justify-content:center;align-items:center;display:flex;position:relative}.heatmap-cell:hover{z-index:1;border-color:var(--color-border-hover)}.heatmap-cell:hover .heatmap-bubble{box-shadow:var(--shadow-md);transform:scale(1.1)}.heatmap-bubble{width:var(--bubble-size,20px);height:var(--bubble-size,20px);border-radius:var(--radius-sm);font-size:var(--text-micro);font-weight:var(--font-weight-bold);color:var(--color-bg-primary);transition:transform var(--transition-base), box-shadow var(--transition-base);justify-content:center;align-items:center;min-width:20px;min-height:20px;display:flex}.heatmap-bubble.critical{background:linear-gradient(135deg, var(--severity-critical) 0%, var(--severity-critical-dark) 100%);box-shadow:0 0 8px color-mix(in srgb, var(--severity-critical) 40%, transparent)}.heatmap-bubble.high{background:linear-gradient(135deg, var(--severity-high) 0%, var(--severity-high-dark) 100%);box-shadow:0 0 8px color-mix(in srgb, var(--severity-high) 40%, transparent)}.heatmap-bubble.medium{background:linear-gradient(135deg, var(--severity-medium) 0%, var(--severity-medium-dark) 100%);box-shadow:0 0 8px color-mix(in srgb, var(--severity-medium) 30%, transparent)}.heatmap-bubble.low{background:linear-gradient(135deg, var(--severity-low) 0%, var(--severity-low-dark) 100%);box-shadow:0 0 8px color-mix(in srgb, var(--severity-low) 30%, transparent)}.heatmap-bubble.info{background:linear-gradient(135deg, var(--severity-info) 0%, var(--severity-info) 100%);box-shadow:0 0 8px color-mix(in srgb, var(--severity-info) 30%, transparent)}.heatmap-cell.empty{background:var(--color-bg-tertiary)}.heatmap-tooltip{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-micro);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:100;box-shadow:var(--shadow-lg);color:var(--color-text-primary);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.heatmap-cell:hover .heatmap-tooltip{opacity:1}.heatmap-empty-message{text-align:center;padding:var(--space-xl);color:var(--color-text-muted);font-size:var(--text-body-sm)}.detectors-list{gap:var(--space-sm);flex-direction:column;display:flex}.detector-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg, var(--color-bg-tertiary) 0%, color-mix(in srgb, var(--color-bg-primary) 80%, transparent) 100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:background var(--transition-base), border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);cursor:pointer;display:flex}.detector-item:hover{background:var(--color-bg-card-hover);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translate(4px)}.network-item:focus-visible,.vulnerability-item:focus-visible,.detector-item:focus-visible,.contract-list-item:focus-visible,.high-risk-item:focus-visible,.tool-card:focus-visible{outline:2px solid var(--color-border-accent);outline-offset:2px}.treemap-cell:focus-visible,.heatmap-cell:focus-visible{outline:2px solid var(--color-border-accent);outline-offset:-2px}.detector-rank{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);width:28px;height:28px;font-size:var(--text-caption);font-weight:var(--font-weight-bold);color:var(--color-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.detector-rank.top-3{background:linear-gradient(135deg, rgba(var(--color-secondary-rgb), .15) 0%, rgba(var(--color-secondary-rgb), .25) 100%);border-color:var(--color-secondary);color:var(--color-secondary)}.detector-info{gap:var(--space-xs);flex-direction:column;flex:1;min-width:0;display:flex}.detector-name{font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.detector-progress-container{align-items:center;gap:var(--space-sm);display:flex}.detector-progress{background:var(--color-bg-secondary);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.detector-progress-bar{height:100%;width:var(--progress-width,0%);background:linear-gradient(90deg, var(--color-secondary) 0%, var(--color-secondary-light) 100%);border-radius:var(--radius-full);transition:width var(--transition-base)}.detector-meta{align-items:center;gap:var(--space-md);font-size:var(--text-micro);color:var(--color-text-secondary);display:flex}.detector-stat{align-items:center;gap:var(--space-xxs);display:flex}.detector-stat svg{opacity:.7;width:10px;height:10px}.detector-count{text-align:right;min-width:50px;font-size:var(--text-body);font-weight:var(--font-weight-bold);color:var(--color-accent);flex-shrink:0}.detector-contracts{font-size:var(--text-micro);color:var(--color-text-muted);white-space:nowrap}.tools-section{margin-top:var(--space-xl)}.tools-grid{gap:var(--space-md);margin-top:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.tool-card{align-items:flex-start;gap:var(--space-md);padding:var(--space-lg);color:inherit;transition:border-color var(--transition-fast), transform var(--transition-fast);text-decoration:none;display:flex}.tool-card:hover{border-color:var(--color-border-accent);transform:translateY(-2px)}.tool-icon{border-radius:var(--radius-md);background:color-mix(in srgb, currentColor 10%, transparent);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tool-info{flex:1;min-width:0}.tool-name{font-size:var(--text-body);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xs)}.tool-desc{font-size:var(--text-caption);color:var(--color-text-secondary);margin:0;line-height:1.4}#empty-state[hidden],#dashboard-error-state[hidden]{display:none}.modal-overlay{background:var(--color-overlay-heavy);backdrop-filter:blur(var(--blur-xxs));z-index:1000;padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay[hidden]{display:none}.modal-container{background:linear-gradient(135deg, rgba(var(--color-bg-card-rgb), .95) 0%, rgba(var(--color-bg-card-rgb), .9) 100%);backdrop-filter:blur(var(--blur-sm));border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:480px;max-height:80vh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex}@media (prefers-reduced-motion:no-preference){.modal-container{animation:modalSlideIn var(--transition-fast)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}}.modal-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h3{font-size:var(--text-h4);font-weight:var(--font-weight-semibold);margin:0}.modal-subtitle{padding:var(--space-md) var(--space-xl) 0;font-size:var(--text-body-sm);color:var(--color-text-secondary)}.modal-content{padding:var(--space-md) var(--space-xl) var(--space-xl);flex:1;overflow-y:auto}.modal-loading{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-xl);color:var(--color-text-secondary);display:flex}.modal-loading[hidden]{display:none}.contract-list{gap:var(--space-sm);flex-direction:column;display:flex}.contract-list-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);color:inherit;text-decoration:none;display:flex}.contract-list-item:hover{background:var(--color-bg-secondary);border-color:var(--color-accent);transform:translate(4px)}.contract-address{font-family:var(--font-mono);font-size:var(--text-body-sm);font-weight:var(--font-weight-medium);color:var(--color-accent)}.contract-meta{align-items:center;gap:var(--space-md);font-size:var(--text-caption);color:var(--color-text-secondary);margin-left:auto;display:flex}.contract-network{padding:var(--space-xxs) var(--space-sm);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.contract-findings{align-items:center;gap:var(--space-xs);display:flex}.contract-name{font-size:var(--text-label);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.modal-empty{text-align:center;padding:var(--space-xl);color:var(--color-text-muted)}@media (width<=1024px){.portfolio-hero-summary{gap:var(--space-xl);grid-template-columns:1fr}.portfolio-metrics-grid{grid-template-columns:1fr 1fr}}@media (width<=768px){.runtime-breakdown,.portfolio-metrics-grid{grid-template-columns:1fr}.grid-legend{gap:var(--space-md);flex-direction:column}.legend-group{flex-wrap:wrap;justify-content:center}.severity-bar-row{grid-template-columns:60px 1fr 40px}.section-header-row{flex-direction:column;align-items:flex-start}}
