:root{--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--bg:#f3f5f8;--bg-soft:#edf1f5;--surface:#fff;--surface-2:#f7f9fb;--surface-3:#eef2f6;--border:#dce2ea;--border-strong:#c4ced9;--text:#151d26;--text-muted:#586675;--text-soft:#768493;--accent:#1166c2;--accent-hover:#0c549f;--accent-soft:#e5effa;--on-accent:#fff;--info:#1166c2;--success:#1a7a4a;--warning:#a86200;--danger:#bd2c2c;--danger-solid:#bd2c2c;--danger-soft:#fbeceb;--success-soft:#e7f5ee;--warning-soft:#fdf2e2;--info-soft:#e7f0fb;--sev-critical:#b3261e;--sev-high:#c25100;--sev-medium:#96700a;--sev-low:#28648f;--sev-none:#66707b;--focus:#2f86e0;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px #121c280d, 0 1px 3px #121c2812;--shadow-lg:0 18px 44px #121c2833}[data-theme=dark]{--bg:#0d1319;--bg-soft:#111922;--surface:#151e27;--surface-2:#1a2530;--surface-3:#202d39;--border:#293746;--border-strong:#3c4d5e;--text:#e5edf4;--text-muted:#9aa9b7;--text-soft:#7d8c9b;--accent:#63a9ff;--accent-hover:#8bbfff;--accent-soft:#142d45;--on-accent:#07131f;--info:#63a9ff;--success:#54cf92;--warning:#e7a950;--danger:#ff8a84;--danger-solid:#b5322c;--danger-soft:#341b1b;--success-soft:#122b20;--warning-soft:#33270f;--info-soft:#142b41;--sev-critical:#ff8f88;--sev-high:#ffb066;--sev-medium:#e8c25a;--sev-low:#7fc5f0;--sev-none:#9aa9b7;--focus:#7cb8ff;--shadow:0 1px 2px #0006;--shadow-lg:0 20px 50px #0009}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}#root{min-height:100vh}h1,h2,h3,p,dl,dd{margin:0}ul,ol{margin:0;padding:0}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}button{font:inherit}svg{flex:none;display:block}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:300;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);padding:10px 14px;text-decoration:none;transition:top .15s;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.94em}.nowrap{white-space:nowrap}.text-muted{color:var(--text-muted)}.text-danger{color:var(--danger)}.text-sm{font-size:12.5px}.btn{border-radius:var(--radius-sm);color:var(--text);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;line-height:20px;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-3)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-danger{background:var(--danger-solid);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-sm{border-radius:7px;padding:5px 10px;font-size:13px}.btn-block{width:100%}.btn>span{align-items:center;gap:6px;display:inline-flex}.icon-button{width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.icon-button:hover{background:var(--surface-3);color:var(--text)}.spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;flex:none;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--text);font-size:13px;font-weight:600}.field-required{color:var(--danger)}.field-hint{color:var(--text-muted);font-size:12px;line-height:1.4}.field-error{color:var(--danger);font-size:12px;font-weight:500}.input,.textarea,.select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:0;color:var(--text);padding:8px 10px;font-family:inherit;font-size:14px;line-height:1.4;transition:border-color .15s,box-shadow .15s}.input{height:38px}.textarea{resize:vertical;min-height:66px}.select{cursor:pointer;height:38px;padding-right:8px}.input::placeholder,.textarea::placeholder{color:var(--text-soft);opacity:1}.input:hover:not(:disabled),.textarea:hover:not(:disabled),.select:hover:not(:disabled){border-color:var(--text-soft)}.input:focus-visible,.textarea:focus-visible,.select:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 22%, transparent);outline:none}.input:disabled,.textarea:disabled,.select:disabled{opacity:.6;cursor:not-allowed}.input-row{align-items:center;gap:8px;display:flex}.input-row .input{flex:1}.search-field{flex:260px;min-width:190px;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.input-with-icon{padding-left:34px}.form{flex-direction:column;gap:16px;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;display:grid}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.form-actions-start{justify-content:flex-start}.fieldset{border:0;flex-direction:column;gap:10px;margin:0;padding:0;display:flex}.fieldset>.field-label{padding:0}.checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13.5px;display:inline-flex}.checkbox-label{line-height:1.4}.checkbox input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.checkbox-grid{flex-wrap:wrap;gap:10px 22px;display:flex}.switch{border:1px solid var(--border-strong);background:var(--surface-3);cursor:pointer;border-radius:999px;flex:none;width:40px;height:22px;padding:0;transition:background-color .15s,border-color .15s;position:relative}.switch-thumb{background:var(--surface);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch-on{background:var(--accent);border-color:var(--accent)}.switch-on .switch-thumb{background:var(--on-accent);transform:translate(18px)}.switch:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);flex-direction:column;display:flex}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:15px 18px;display:flex}.card-heading{flex-direction:column;gap:2px;min-width:0;display:flex}.card-title{letter-spacing:-.005em;font-size:15px;font-weight:650}.card-subtitle{color:var(--text-muted);font-size:12.5px}.card-actions{flex:none;align-items:center;gap:6px;display:flex}.card-actions a:not(.btn){font-size:13px;font-weight:600;text-decoration:none}.card-actions a:not(.btn):hover{text-decoration:underline}.card-body{flex-direction:column;gap:14px;padding:18px;display:flex}.card-body-flush{gap:0;padding:0}.card-inline-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:8px;display:flex}.badge{border:1px solid color-mix(in srgb, var(--badge-color,var(--text-muted)) 32%, transparent);background:color-mix(in srgb, var(--badge-color,var(--text-muted)) 12%, transparent);max-width:100%;color:var(--badge-color,var(--text-muted));white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:650;line-height:18px;display:inline-flex}.badge-neutral{--badge-color:var(--text-muted)}.badge-info{--badge-color:var(--info)}.badge-success{--badge-color:var(--success)}.badge-warning{--badge-color:var(--warning)}.badge-danger,.badge-critical{--badge-color:var(--danger)}.badge-high{--badge-color:var(--sev-high)}.badge-medium{--badge-color:var(--sev-medium)}.badge-low{--badge-color:var(--sev-low)}.badge-kev{--badge-color:var(--warning);letter-spacing:.04em;font-size:10.5px}.inline-badges{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.chip-list{flex-wrap:wrap;align-items:center;gap:6px;list-style:none;display:inline-flex}.chip{border:1px solid var(--border);background:var(--surface-3);max-width:220px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;align-items:center;padding:1px 8px;font-size:12px;line-height:19px;display:inline-flex;overflow:hidden}.chip-more{font-weight:600}.chip-success{border-color:color-mix(in srgb, var(--success) 30%, transparent);background:var(--success-soft);color:var(--success)}.severity-cell,.threshold-cell{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.cvss-value{color:var(--text-muted);font-size:13px;font-weight:700}.alert{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:10px;align-items:flex-start;gap:10px;padding:11px 14px;font-size:13.5px;line-height:1.45;display:flex}.alert-icon{flex:none;margin-top:1px;display:flex}.alert-content{overflow-wrap:anywhere;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.alert-title{font-size:13px}.alert-error{border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:var(--danger-soft);color:var(--danger)}.alert-warning{border-color:color-mix(in srgb, var(--warning) 35%, transparent);background:var(--warning-soft);color:var(--warning)}.alert-info{border-color:color-mix(in srgb, var(--info) 30%, transparent);background:var(--info-soft);color:var(--info)}.alert-success{border-color:color-mix(in srgb, var(--success) 32%, transparent);background:var(--success-soft);color:var(--success)}.alert .btn{color:inherit}.success-text{color:var(--success)}.app-shell{grid-template-columns:256px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{z-index:40;height:100vh;border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:18px;height:100dvh;padding:18px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:2px 6px 16px;display:flex}.brand-mark{width:38px;height:38px;color:var(--accent);background:#0b1024;border-radius:11px;flex:none;place-items:center;display:grid;overflow:hidden;box-shadow:0 3px 10px #060a1c38}.brand-mark-img{object-fit:cover;background:#0b1024;border-radius:8px;flex:none;display:block}.brand-mark .brand-mark-img{border-radius:inherit;width:100%;height:100%}.topbar-brand .brand-mark-img{border-radius:6px}.brand-text{flex-direction:column;min-width:0;display:flex}.brand-name{color:var(--text);letter-spacing:-.02em;font-size:16px;font-weight:750}.brand-sub{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-link{color:var(--text-muted);border-radius:9px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.nav-link:hover{background:var(--surface-3);color:var(--text)}.nav-link-active{background:var(--accent-soft);color:var(--accent);font-weight:650}.nav-icon{color:currentColor;display:flex}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.user-block{align-items:center;gap:9px;min-width:0;display:flex}.user-avatar{background:var(--surface-3);width:32px;height:32px;color:var(--text);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.user-text{flex-direction:column;min-width:0;display:flex}.user-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.user-role{color:var(--text-muted);font-size:11px}.main{flex-direction:column;min-width:0;min-height:100vh;display:flex}.topbar{z-index:30;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:16px;height:62px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-left,.topbar-actions{align-items:center;gap:8px;min-width:0;display:flex}.topbar-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:650;overflow:hidden}.topbar-brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:7px;font-size:15px;font-weight:750;text-decoration:none;display:none}.menu-button{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;padding:0;display:none}.live-indicator{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:flex}.live-dot{background:var(--text-soft);border-radius:50%;width:7px;height:7px}.live-connected .live-dot{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 20%, transparent)}.live-connecting .live-dot,.live-reconnecting .live-dot{background:var(--warning);animation:1.3s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.content{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:24px}.app-footer{color:var(--text-soft);justify-content:center;gap:8px;padding:14px 24px 26px;font-size:11.5px;display:flex}.app-footer-sep{opacity:.6}.nav-overlay{z-index:35;background:#060a0f85;animation:.15s fade-in;position:fixed;inset:0}.page{flex-direction:column;gap:20px;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.page-heading{flex-direction:column;gap:3px;min-width:0;display:flex}.page-title{letter-spacing:-.025em;font-size:26px;font-weight:750;line-height:1.15}.page-subtitle{color:var(--text-muted);font-size:13.5px}.page-actions,.page-actions-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table-wrap{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13.5px}.data-table th{border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);letter-spacing:.045em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--surface-2)}.row-clickable{cursor:pointer}.cell-right{text-align:right!important}.cell-actions{text-align:right;white-space:nowrap}.cell-actions .icon-button{width:32px;height:32px}.cell-link{color:inherit;flex-direction:column;gap:2px;text-decoration:none;display:flex}.cell-link:hover .cell-main{color:var(--accent)}.user-cell{align-items:center;gap:10px;display:flex}.user-cell .user-avatar{flex:none}.cell-main{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.cell-sub{max-width:520px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:400;display:block;overflow:hidden}.cell-limit{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.cell-clamp{text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;max-width:240px;display:inline-block;overflow:hidden}.event-cell{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.event-cell-summary{max-width:420px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skeleton{background:linear-gradient(90deg, var(--surface-3) 25%, var(--surface-2) 50%, var(--surface-3) 75%);background-size:200% 100%;border-radius:6px;flex:1;height:14px;animation:1.4s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.table-skeleton{flex-direction:column;gap:14px;padding:18px;display:flex}.skeleton-row{gap:14px;display:flex}.skeleton-wide{flex:2.6}.skeleton-line{flex:none;width:55%;height:11px}.skeleton-short{flex:none;width:42%;height:10px}.skeleton-value{flex:none;width:46%;height:26px;margin-top:12px}.dashboard-skeleton{flex-direction:column;gap:20px;display:flex}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:42px 20px;display:flex}.empty-icon{background:var(--surface-3);width:48px;height:48px;color:var(--text-muted);border-radius:14px;place-items:center;margin-bottom:2px;display:grid}.empty-title{font-size:15px;font-weight:650}.empty-text{max-width:460px;color:var(--text-muted);font-size:13px;line-height:1.5}.empty-action{margin-top:8px}.loading-block{color:var(--text-muted);justify-content:center;align-items:center;gap:10px;padding:34px 20px;font-size:13.5px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filters-card .card-body{gap:12px}.row-table .cell-sub{max-width:380px}@media (min-width:821px){.vuln-table{min-width:760px}}.filters .select{flex:0 auto;width:auto;min-width:150px}.filters-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:4px;display:flex}.filters-status{color:var(--text-muted);font-size:12.5px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,178px),1fr));gap:14px;display:grid}.stat-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--text);flex-direction:column;gap:4px;padding:15px 16px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex;position:relative;overflow:hidden}.stat-card:before{background:var(--stat-color,transparent);content:"";height:3px;position:absolute;inset:0 0 auto}.stat-card-link:hover{border-color:var(--border-strong);transform:translateY(-1px)}.stat-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.stat-label{color:var(--text-muted);letter-spacing:.035em;text-transform:uppercase;font-size:11.5px;font-weight:650}.stat-icon{color:var(--text-soft);display:flex}.stat-value{letter-spacing:-.03em;font-size:30px;font-weight:750;line-height:1.1}.stat-hint{color:var(--text-muted);font-size:11.5px}.stat-accent{--stat-color:var(--accent)}.stat-danger{--stat-color:var(--danger)}.stat-warning{--stat-color:var(--warning)}.stat-success{--stat-color:var(--success)}.stat-neutral{--stat-color:var(--border-strong)}.dashboard-columns{grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr));align-items:start;gap:20px;display:grid}.event-list{flex-direction:column;list-style:none;display:flex}.event-item{border-bottom:1px solid var(--border);color:inherit;justify-content:space-between;align-items:center;gap:12px;padding:11px 18px;text-decoration:none;display:flex}.event-list li:last-child .event-item{border-bottom:0}.event-item:hover{background:var(--surface-2)}.event-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.event-item-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.event-item-meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:2px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--text-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:9px 14px;font-size:14px;font-weight:600;display:inline-flex}.tab:hover{color:var(--text)}.tab-active{border-bottom-color:var(--accent);color:var(--accent)}.tab-count{background:var(--surface-3);min-width:20px;height:20px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.tab-active .tab-count{background:var(--accent-soft);color:var(--accent)}.subfilters{border-bottom:1px solid var(--border);padding:12px 14px}.subfilters .tabs{border-bottom:0}.subfilters .tab{border:1px solid var(--border);border-radius:999px;margin:0;padding:4px 12px;font-size:12.5px}.subfilters .tab-active{border-color:var(--accent);background:var(--accent-soft)}.pagination{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.pagination-info{color:var(--text-muted);font-size:12.5px}.pagination-controls{gap:8px;display:flex}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#060a0f8c;justify-content:center;align-items:center;padding:20px;animation:.12s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{width:min(560px,100%);max-height:min(88vh,900px);border:1px solid var(--border);background:var(--surface);max-height:min(88dvh,900px);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;animation:.15s modal-in;display:flex}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:none}}.modal-wide{width:min(760px,100%)}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:17px 20px;display:flex}.modal-heading{flex-direction:column;gap:3px;min-width:0;display:flex}.modal-title{letter-spacing:-.01em;font-size:17px;font-weight:700}.modal-description{color:var(--text-muted);font-size:12.5px}.modal-body{padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 14px 14px;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.confirm-message{font-size:14px;line-height:1.55}.toast-stack{z-index:200;pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}.toast-stack-empty{pointer-events:none}.toast{border:1px solid var(--border);border-left:3px solid var(--toast-color,var(--accent));background:var(--surface);box-shadow:var(--shadow-lg);color:var(--text);pointer-events:auto;border-radius:10px;align-items:flex-start;gap:10px;padding:11px 11px 11px 13px;animation:.18s toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-info{--toast-color:var(--info)}.toast-success{--toast-color:var(--success)}.toast-warning{--toast-color:var(--warning)}.toast-error{--toast-color:var(--danger)}.toast-icon{color:var(--toast-color);flex:none;margin-top:1px;display:flex}.toast-message{overflow-wrap:anywhere;flex:1;font-size:13px;line-height:1.4}.toast-close{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.toast-close:hover{background:var(--surface-3);color:var(--text)}.auth-page{background:radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 42%), radial-gradient(circle at 88% 92%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 48%), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:54px 18px 28px;display:flex;position:relative}.auth-theme{position:absolute;top:16px;right:16px}.auth-card{border:1px solid var(--border);background:var(--surface);width:min(430px,100%);box-shadow:var(--shadow-lg);border-radius:18px;flex-direction:column;gap:13px;padding:30px;display:flex}.auth-brand{justify-content:center;align-items:center;margin:-4px 0 2px;display:flex}.auth-brand-logo{background:#0b1024;border-radius:26px;width:min(220px,62vw);height:auto;display:block;box-shadow:0 18px 42px #060a1c4d,inset 0 0 0 1px #ffffff14}.auth-title{letter-spacing:-.02em;margin-top:4px;font-size:23px;font-weight:750}.auth-subtitle{color:var(--text-muted);font-size:13.5px;line-height:1.5}.auth-form{flex-direction:column;gap:14px;margin-top:4px;display:flex}.auth-footer{border-top:1px solid var(--border);color:var(--text-muted);padding-top:12px;font-size:12px;line-height:1.5}.auth-copyright{color:var(--text-soft);font-size:11.5px}.boot-screen{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;display:flex}.boot-brand{width:78px;height:78px;color:var(--accent);background:#0b1024;border-radius:22px;place-items:center;display:grid;overflow:hidden;box-shadow:0 14px 34px #060a1c4d}.boot-brand .brand-mark-img{border-radius:inherit}.boot-title{letter-spacing:-.02em;font-size:20px;font-weight:800}.boot-text{color:var(--text-muted);font-size:13px}.fatal-error{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;align-items:flex-start;gap:14px;max-width:640px;margin:10vh auto;padding:28px;display:flex}.fatal-error h1{font-size:20px}.fatal-error pre{border-radius:var(--radius-sm);background:var(--surface-3);width:100%;margin:0;padding:12px;font-size:12px;overflow-x:auto}.fatal-error .btn{align-self:flex-start}.detail-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.detail-topbar-actions{align-items:center;gap:10px;display:flex}.back-link{color:var(--text-muted);align-items:center;gap:6px;font-size:13.5px;font-weight:550;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--accent)}.detail-hero{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:22px;display:flex}.detail-badges{flex-wrap:wrap;gap:6px;display:flex}.detail-title{letter-spacing:-.02em;font-size:26px;font-weight:750;line-height:1.25}.detail-cve{color:var(--text-muted);font-size:14px}.detail-meta{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px 22px;margin-top:6px;padding-top:15px;display:grid}.meta-item{flex-direction:column;gap:3px;min-width:0;display:flex}.meta-item-wide{grid-column:1/-1}.meta-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:10.5px;font-weight:700}.meta-value{overflow-wrap:anywhere;margin:0;font-size:13.5px}.vector{overflow-wrap:anywhere;border:1px solid var(--border);background:var(--surface-2);font-family:var(--font-mono);border-radius:6px;padding:4px 8px;font-size:12px;display:inline-block}.detail-actions{flex-wrap:wrap;gap:8px;padding-top:8px;display:flex}.detail-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.detail-main,.detail-side{flex-direction:column;gap:20px;min-width:0;display:flex}.detail-loading{flex-direction:column;gap:20px;display:flex}.prose{overflow-wrap:anywhere;white-space:pre-wrap;font-size:14px;line-height:1.6}.affected-products{flex-direction:column;gap:12px;display:flex}.affected-product{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.affected-product-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.affected-product-name{font-size:14px;font-weight:700}.affected-product-vendor{color:var(--text-muted);font-size:12px}.affected-product-reason{color:var(--text-muted);font-size:12.5px}.affected-product-details{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.range-list{flex-direction:column;gap:4px;margin-top:6px;list-style:none;display:flex}.range-item{font-size:12.5px}.affected-product-footer{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;gap:14px;padding-top:8px;font-size:11.5px;display:flex}.source-entries{flex-direction:column;gap:14px;display:flex}.source-entry{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:14px;display:flex}.source-entry-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.source-entry-title{font-size:14px;font-weight:650}.source-entry-title a{color:var(--text);text-decoration:none}.source-entry-title a:hover{color:var(--accent);text-decoration:underline}.source-entry-meta{color:var(--text-muted);flex-wrap:wrap;gap:2px;margin-top:2px;font-size:11.5px;display:flex}.source-entry-description{max-height:130px;color:var(--text-muted);white-space:pre-wrap;font-size:12.5px;line-height:1.55;overflow:auto}.timeline{flex-direction:column;list-style:none;display:flex;position:relative}.timeline-item{border-left:1px solid var(--border);margin-left:6px;padding:0 0 16px 22px;position:relative}.timeline-item:last-child{border-left-color:#0000;padding-bottom:0}.timeline-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 3px var(--surface);border-radius:50%;position:absolute;top:5px;left:-4px}.timeline-content{flex-direction:column;gap:3px;display:flex}.timeline-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.timeline-summary{font-size:13.5px;font-weight:600}.timeline-meta{color:var(--text-muted);font-size:11.5px}.identifier-list{flex-direction:column;gap:8px;list-style:none;display:flex}.identifier{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;flex-direction:column;gap:1px;padding:8px 10px;display:flex}.identifier-type{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:700}.identifier-value{overflow-wrap:anywhere;font-size:12.5px}.reference-list{flex-direction:column;gap:8px;list-style:none;display:flex}.reference-link{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:1px;padding:8px 10px;text-decoration:none;display:flex}.reference-link:hover{border-color:var(--border-strong);background:var(--surface-2)}.reference-url{overflow-wrap:anywhere;font-size:12px}.reference-source{color:var(--text-muted);font-size:11px}.source-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));align-items:start;gap:20px;display:grid}.source-card{gap:14px;padding:18px}.source-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.source-heading{min-width:0}.source-name{letter-spacing:-.01em;font-size:16px;font-weight:700}.source-id{color:var(--text-muted);font-size:12px}.source-toggle{flex:none;align-items:center;gap:8px;display:flex}.source-status{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.source-facts{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px 16px;padding:12px;display:grid}.source-facts>div{flex-direction:column;gap:2px;min-width:0;display:flex}.source-facts dt{color:var(--text-muted);letter-spacing:.045em;text-transform:uppercase;font-size:10px;font-weight:700}.source-facts dd{overflow-wrap:anywhere;margin:0;font-size:12.5px}.source-form{flex-direction:column;gap:14px;display:flex}.source-form-fields{border:0;min-width:0;margin:0;padding:0}.source-actions{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.notification-settings{flex-direction:column;gap:20px;display:flex}.settings-grid,.settings-page-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:20px;display:grid}.settings-actions{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px;padding:13px 16px;display:flex}.theme-options{flex-direction:column;gap:8px;display:flex}.theme-option{border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px;transition:border-color .15s,background-color .15s;display:flex;position:relative}.theme-option:hover{background:var(--surface-2)}.theme-option:focus-within{outline:2px solid var(--focus);outline-offset:2px}.theme-option-selected{border-color:var(--accent);background:var(--accent-soft)}.theme-radio{opacity:0;width:1px;height:1px;position:absolute}.theme-option-icon{background:var(--surface-3);width:36px;height:36px;color:var(--text-muted);border-radius:9px;flex:none;place-items:center;display:grid}.theme-option-selected .theme-option-icon{background:var(--surface);color:var(--accent)}.theme-option-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.theme-option-label{font-size:14px;font-weight:650}.theme-option-description{color:var(--text-muted);font-size:12px}.theme-option-check{color:var(--accent);flex:none;display:flex}.app-identity{align-items:center;gap:12px;display:flex}.app-identity-mark{width:50px;height:50px;color:var(--accent);background:#0b1024;border-radius:14px;flex:none;place-items:center;display:grid;overflow:hidden}.app-identity-mark .brand-mark-img{border-radius:inherit;width:100%;height:100%}.app-identity-name{letter-spacing:-.015em;font-size:16px;font-weight:750}.app-identity-sub{color:var(--text-muted);font-size:12px}.info-list{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding:14px;display:grid}.info-list>div{flex-direction:column;gap:2px;min-width:0;display:flex}.info-list dt{color:var(--text-muted);letter-spacing:.045em;text-transform:uppercase;font-size:10.5px;font-weight:700}.info-list dd{overflow-wrap:anywhere;margin:0;font-size:13.5px}@media (max-width:1180px){.detail-layout{grid-template-columns:minmax(0,1fr)}.detail-side{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start;display:grid}}@media (max-width:900px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:45;border-right:1px solid var(--border);width:min(86vw,300px);height:100dvh;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.sidebar-open{transform:translate(0)}.menu-button,.topbar-brand{display:inline-flex}.topbar-title{display:none}.topbar{padding:0 14px}.content{padding:18px 16px}.page-title{font-size:23px}.detail-title{font-size:22px}.live-label{display:none}.live-indicator{background:0 0;border-color:#0000;padding:6px}.app-footer{padding-bottom:18px}}@media (max-width:820px){.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{width:100%;display:block}.responsive-table tr{border-bottom:1px solid var(--border);padding:8px 14px}.responsive-table tr:last-child{border-bottom:0}.responsive-table td{border:0;justify-content:space-between;align-items:flex-start;gap:14px;padding:5px 0;display:flex;text-align:left!important}.responsive-table td:before{color:var(--text-muted);content:attr(data-label);letter-spacing:.045em;text-transform:uppercase;flex:none;padding-top:2px;font-size:10.5px;font-weight:700}.responsive-table td.cell-primary{flex-direction:column;gap:3px}.responsive-table td.cell-primary:before,.responsive-table td.cell-actions:before{display:none}.responsive-table td.cell-actions{justify-content:flex-end;padding-top:8px}.responsive-table .cell-limit,.responsive-table .cell-sub,.responsive-table .event-cell-summary{max-width:58vw}}@media (max-width:640px){.page-header{flex-direction:column;align-items:flex-start}.page-actions{width:100%}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-value{font-size:25px}.info-list{grid-template-columns:minmax(0,1fr)}.auth-card{padding:22px}.auth-brand-logo{border-radius:22px;width:min(178px,56vw)}.modal-backdrop{align-items:flex-end;padding:10px}.modal{border-radius:14px;max-height:92dvh}.modal-body{padding:16px}.modal-header,.modal-footer{padding:14px 16px}.source-card{padding:15px}.source-header{flex-wrap:wrap}.toast-stack{width:calc(100vw - 24px);bottom:12px;right:12px}.filters .select{flex:140px;min-width:0}.search-field{flex-basis:100%}.pagination{padding:12px}}@media (max-width:400px){.stat-grid{grid-template-columns:minmax(0,1fr)}.card-header{flex-direction:column;gap:8px}.card-actions{justify-content:flex-start;width:100%}}@media (max-width:520px){.topbar-logout{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
