:root{--color-primary:#3b82f6;--color-primary-dark:#2563eb;--color-secondary:#64748b;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-critical:#7c2d12;--severity-critical:#dc2626;--severity-critical-bg:#fef2f2;--severity-high:#ea580c;--severity-high-bg:#fff7ed;--severity-medium:#d97706;--severity-medium-bg:#fef3c7;--severity-low:#16a34a;--severity-low-bg:#f0fdf4;--severity-unknown:#6b7280;--severity-unknown-bg:#f3f4f6;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--border-color:#e2e8f0;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--transition:all 0.2s ease}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--bg-secondary);color:#0f172a;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:#3b82f6;color:var(--color-primary);text-decoration:none;transition:all .2s ease;transition:var(--transition)}a:hover{color:#2563eb;color:var(--color-primary-dark)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f8fafc;background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#64748b;background:var(--color-secondary);border-radius:.5rem;border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:#475569;background:var(--text-secondary)}.container{margin:0 auto;max-width:1400px;padding:0 1.5rem;padding:0 var(--spacing-lg)}.text-center{text-align:center}.text-right{text-align:right}.mt-sm{margin-top:.5rem;margin-top:var(--spacing-sm)}.mt-md{margin-top:1rem;margin-top:var(--spacing-md)}.mt-lg{margin-top:1.5rem;margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:1rem;margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.p-sm{padding:.5rem;padding:var(--spacing-sm)}.p-md{padding:1rem;padding:var(--spacing-md)}.p-lg{padding:1.5rem;padding:var(--spacing-lg)}.app,.loading{display:flex;flex-direction:column;min-height:100vh}.loading{align-items:center;gap:var(--spacing-lg);justify-content:center}.spinner{animation:spin 1s linear infinite;border:4px solid var(--bg-tertiary);border-radius:50%;border-top-color:var(--color-primary);height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.loading-progress{background-color:var(--bg-secondary);border-radius:var(--radius-md);margin-top:var(--spacing-lg);min-width:300px;padding:var(--spacing-lg);text-align:center}.loading-progress p{color:var(--text-secondary);font-size:.95rem;margin:var(--spacing-sm) 0}.loading-progress p:first-child{color:var(--color-primary);font-size:1.1rem;font-weight:600}.app-header{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);box-shadow:var(--shadow-lg);color:#fff;padding:var(--spacing-2xl) var(--spacing-xl);text-align:center}.header-content h1{font-size:2.5rem;font-weight:700;margin-bottom:var(--spacing-sm)}.subtitle{font-size:1.1rem;opacity:.9}.last-update{font-size:.9rem;margin-top:var(--spacing-md);opacity:.8}.error-banner{align-items:center;background-color:var(--severity-critical-bg);border:1px solid var(--severity-critical);border-radius:var(--radius-md);color:var(--severity-critical);display:flex;gap:var(--spacing-sm);justify-content:center;margin:var(--spacing-lg);padding:var(--spacing-md)}.error-icon{font-size:1.2rem}.statistics-section{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1400px;padding:var(--spacing-2xl) var(--spacing-xl);width:100%}.app-container{display:flex;flex:1 1;gap:var(--spacing-xl);margin:0 auto;max-width:1600px;padding:var(--spacing-xl);width:100%}.sidebar{flex-shrink:0;width:300px}.main-content{flex:1 1;min-width:0}.content-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md)}.content-header h2{align-items:center;color:var(--text-primary);display:flex;font-size:1.8rem;gap:var(--spacing-md)}.badge{align-items:center;background-color:var(--color-primary);border-radius:var(--radius-xl);color:#fff;display:inline-flex;font-size:.9rem;font-weight:600;padding:var(--spacing-xs) var(--spacing-md)}.action-buttons{display:flex;gap:var(--spacing-md)}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);transition:var(--transition);white-space:nowrap}.btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--border-color)}.btn-export{background-color:var(--color-success);color:#fff}.btn-export:hover{background-color:#059669}.btn-export:disabled{background-color:var(--color-secondary);cursor:not-allowed;opacity:.6}.btn-link{background:none;padding:0}.no-data{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-2xl);text-align:center}.no-data-icon{font-size:4rem;opacity:.5}.no-data p,.no-data-icon{margin-bottom:var(--spacing-lg)}.no-data p{font-size:1.1rem}.app-footer{background-color:var(--bg-tertiary);border-top:1px solid var(--border-color);margin-top:var(--spacing-2xl);padding:var(--spacing-xl);text-align:center}.footer-content p{color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.footer-links a{color:var(--color-primary);margin:0 var(--spacing-sm)}.footer-links a:hover{text-decoration:underline}@media (max-width:1024px){.app-container{flex-direction:column}.sidebar{width:100%}.statistics-section{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width:768px){.header-content h1{font-size:1.8rem}.content-header{align-items:flex-start;flex-direction:column;gap:var(--spacing-md)}.action-buttons{width:100%}.btn{flex:1 1;justify-content:center}.statistics-section{grid-template-columns:1fr;padding:var(--spacing-lg)}}.vulnerability-table-container{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow-x:auto}.vulnerability-table{border-collapse:collapse;font-size:.95rem;width:100%}.vulnerability-table thead{background-color:var(--bg-tertiary);position:-webkit-sticky;position:sticky;top:0;z-index:10}.vulnerability-table th{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-weight:600;padding:var(--spacing-md);text-align:left}.vulnerability-table th .sort-button{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-size:inherit;font-weight:inherit;gap:var(--spacing-sm);padding:0;width:100%}.vulnerability-table th .sort-button:hover{color:var(--color-primary)}.sort-icon{font-size:.8rem;opacity:.5}.sort-icon.active{color:var(--color-primary);opacity:1}.vulnerability-table tbody tr{border-bottom:1px solid var(--border-color);transition:var(--transition)}.vulnerability-table tbody tr.expanded,.vulnerability-table tbody tr:hover{background-color:var(--bg-secondary)}.vulnerability-table td{padding:var(--spacing-md);vertical-align:middle}.cve-id{font-family:Courier New,monospace}.cve-id code{background-color:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--color-primary);font-size:.9rem;font-weight:600;padding:var(--spacing-xs) var(--spacing-sm)}.expand-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;margin-right:var(--spacing-sm);padding:var(--spacing-xs);transition:var(--transition)}.expand-button:hover{color:var(--color-primary)}.product-badge{background-color:var(--bg-tertiary);border-radius:var(--radius-md);display:inline-block;font-size:.9rem;font-weight:500;padding:var(--spacing-xs) var(--spacing-sm)}.date{color:var(--text-secondary);font-size:.9rem}.severity{border-radius:var(--radius-md);display:inline-block;font-size:.85rem;font-weight:600;padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase}.severity-critical{background-color:var(--severity-critical-bg);color:var(--severity-critical)}.severity-high{background-color:var(--severity-high-bg);color:var(--severity-high)}.severity-medium{background-color:var(--severity-medium-bg);color:var(--severity-medium)}.severity-low{background-color:var(--severity-low-bg);color:var(--severity-low)}.severity-unknown{background-color:var(--severity-unknown-bg);color:var(--severity-unknown)}.cvss-score{border-radius:var(--radius-sm);display:inline-block;font-size:.9rem;font-weight:600;padding:var(--spacing-xs) var(--spacing-sm)}.cvss-critical{background-color:var(--severity-critical);color:#fff}.cvss-high{background-color:var(--severity-high);color:#fff}.cvss-medium{background-color:var(--severity-medium);color:#fff}.cvss-low{background-color:var(--severity-low);color:#fff}.cvss-neutral{background-color:var(--severity-unknown-bg);color:var(--severity-unknown)}.cvss-na{color:var(--text-tertiary);font-style:italic}.version-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.version-badge{background-color:var(--bg-tertiary);border-radius:var(--radius-sm);display:inline-block;font-family:Courier New,monospace;font-size:.85rem;padding:var(--spacing-xs) var(--spacing-sm)}.version-badge.more{background-color:var(--color-primary);color:#fff}.no-info{color:var(--text-tertiary);font-style:italic}.actions{text-align:right}.btn-link{color:var(--color-primary);font-weight:500;transition:var(--transition)}.btn-link:hover{color:var(--color-primary-dark);text-decoration:underline}.detail-row{background-color:var(--bg-secondary)}.detail-row td{border-bottom:none;padding:0}.detail-content{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));padding:var(--spacing-lg)}.detail-section{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md)}.detail-section h4{color:var(--text-primary);font-size:.95rem;font-weight:600;letter-spacing:.5px;margin-bottom:var(--spacing-sm);text-transform:uppercase}.detail-section p{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.version-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.version-item{background-color:var(--severity-high-bg);border-radius:var(--radius-sm);color:var(--severity-high);display:inline-block;font-family:Courier New,monospace;font-size:.85rem;padding:var(--spacing-xs) var(--spacing-sm)}.version-item.fixed{background-color:var(--severity-low-bg);color:var(--severity-low)}.detail-section.meta{display:flex;flex-direction:column;gap:var(--spacing-sm)}.meta-item{border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.meta-item:last-child{border-bottom:none}.meta-item .label{color:var(--text-primary);font-weight:600}.meta-item .value{color:var(--text-secondary)}.references-list{list-style:none;margin:0;padding:0}.references-list li{margin-bottom:var(--spacing-xs)}.reference-link{color:var(--color-primary);font-size:.85rem;word-break:break-all}.reference-link:hover{text-decoration:underline}.tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.tag{background-color:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--color-primary);display:inline-block;font-size:.8rem;font-weight:500;padding:var(--spacing-xs) var(--spacing-sm)}@media (max-width:768px){.vulnerability-table{font-size:.85rem}.vulnerability-table td,.vulnerability-table th{padding:var(--spacing-sm)}.detail-content{grid-template-columns:1fr}}.pagination-container{background-color:var(--bg-primary);border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;padding:var(--spacing-md)}.pagination-container,.pagination-info{align-items:center;display:flex;gap:var(--spacing-md)}.pagination-info{color:var(--text-secondary);font-size:.9rem}.items-per-page-select{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);transition:var(--transition)}.items-per-page-select:hover{border-color:var(--color-primary)}.pagination-controls{align-items:center;display:flex;gap:var(--spacing-xs)}.pagination-button{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:.9rem;min-width:40px;padding:var(--spacing-xs) var(--spacing-md);transition:var(--transition)}.pagination-button.active,.pagination-button:hover:not(:disabled){background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-button.active{font-weight:600}.pagination-button:disabled{cursor:not-allowed;opacity:.5}.pagination-ellipsis{color:var(--text-secondary);padding:var(--spacing-xs) var(--spacing-sm)}@media (max-width:768px){.pagination-container{align-items:stretch;flex-direction:column}.pagination-info{justify-content:space-between}.pagination-controls{flex-wrap:wrap;justify-content:center}}.filter-panel{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-height:calc(100vh - var(--spacing-2xl));overflow-y:auto;padding:var(--spacing-lg);position:-webkit-sticky;position:sticky;top:var(--spacing-lg)}.filter-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md)}.filter-header h3{color:var(--text-primary);font-size:1.2rem}.reset-btn{background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:1.2rem;padding:var(--spacing-xs);transition:var(--transition)}.reset-btn:hover{background-color:var(--severity-critical-bg);color:var(--color-danger)}.filter-stats{background-color:var(--bg-secondary);border-radius:var(--radius-md);display:flex;gap:var(--spacing-md);justify-content:space-between;margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.stat-item{align-items:center;display:flex;flex:1 1;flex-direction:column}.stat-label{color:var(--text-secondary);font-size:.8rem;margin-bottom:var(--spacing-xs)}.stat-value{color:var(--color-primary);font-size:1.5rem;font-weight:700}.filter-group{margin-bottom:var(--spacing-lg)}.filter-group label{color:var(--text-primary);display:block;font-size:.9rem;font-weight:600;margin-bottom:var(--spacing-sm)}.filter-input,.filter-select{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.95rem;padding:var(--spacing-sm) var(--spacing-md);transition:var(--transition);width:100%}.filter-input:focus,.filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.filter-input::placeholder{color:var(--text-tertiary)}.filter-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%2364748b' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right var(--spacing-md) center;background-repeat:no-repeat;cursor:pointer;padding-right:var(--spacing-xl)}.active-filters{border-top:1px solid var(--border-color);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.active-filters h4{color:var(--text-primary);font-size:.9rem;font-weight:600;margin-bottom:var(--spacing-md)}.filter-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.filter-tag{align-items:center;background-color:var(--color-primary);border-radius:var(--radius-md);color:#fff;display:inline-flex;font-size:.85rem;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.filter-tag button{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:16px;justify-content:center;padding:0;transition:var(--transition);width:16px}.filter-tag button:hover{background-color:#fff3}@media (max-width:1024px){.filter-panel{max-height:none;position:static}}.statistics-card{align-items:center;background:var(--bg-primary);border:2px solid #0000;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);transition:var(--transition)}.statistics-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-icon{align-items:center;background-color:var(--bg-secondary);border-radius:var(--radius-lg);display:flex;font-size:2.5rem;height:60px;justify-content:center;width:60px}.card-content{flex:1 1}.card-title{color:var(--text-secondary);font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:var(--spacing-xs);text-transform:uppercase}.card-value{color:var(--text-primary);font-size:2rem;font-weight:700;line-height:1}.card-critical{border-color:var(--severity-critical)}.card-critical .card-value{color:var(--severity-critical)}.card-high{border-color:var(--severity-high)}.card-high .card-value{color:var(--severity-high)}.card-primary .card-value{color:var(--color-primary)}.card-trend{margin-top:var(--spacing-xs)}.trend-icon{font-size:.9rem;font-weight:600}.trend-up{color:var(--color-success)}.trend-down{color:var(--color-danger)}@media (max-width:768px){.statistics-card{padding:var(--spacing-md)}.card-icon{font-size:2rem;height:50px;width:50px}.card-value{font-size:1.5rem}}.btn-export{overflow:hidden;position:relative}.btn-export:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s;width:0}.btn-export:active:before{height:200px;width:200px}.btn-export:disabled:before{display:none}
/*# sourceMappingURL=main.6cbb28ba.css.map*/