.notifications-container[data-v-eaf4dbed]{position:relative;display:inline-block}.notifications-toggle[data-v-eaf4dbed]{position:relative;padding:.5rem}.notification-icon[data-v-eaf4dbed]{position:relative;font-size:1.2rem}.badge[data-v-eaf4dbed]{position:absolute;top:-5px;right:-5px;background:#ff4757;color:#fff;border-radius:50%;width:18px;height:18px;font-size:.7rem;display:flex;align-items:center;justify-content:center;font-weight:700}.notifications-panel[data-v-eaf4dbed]{position:absolute;top:100%;right:0;width:350px;max-height:500px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;margin-top:.5rem;overflow:hidden}.panel-header[data-v-eaf4dbed]{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border);background:var(--surface-2)}.panel-header h3[data-v-eaf4dbed]{margin:0;font-size:1rem;font-weight:600}.panel-actions[data-v-eaf4dbed]{display:flex;gap:.5rem;align-items:center}.empty-state[data-v-eaf4dbed]{padding:2rem 1rem;text-align:center;color:var(--text-muted)}.empty-icon[data-v-eaf4dbed]{font-size:2rem;margin-bottom:.5rem;opacity:.5}.notifications-list[data-v-eaf4dbed]{max-height:400px;overflow-y:auto}.notification-item[data-v-eaf4dbed]{padding:1rem;border-bottom:1px solid var(--border);transition:background-color .2s}.notification-item[data-v-eaf4dbed]:hover{background-color:var(--surface-2)}.notification-item.unread[data-v-eaf4dbed]{background-color:#2e6f400d}.notification-item.level-success[data-v-eaf4dbed]{border-left:3px solid #2e6f40}.notification-item.level-info[data-v-eaf4dbed]{border-left:3px solid #3498db}.notification-item.level-warning[data-v-eaf4dbed]{border-left:3px solid #f39c12}.notification-item.level-error[data-v-eaf4dbed]{border-left:3px solid #e74c3c}.notification-header[data-v-eaf4dbed]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.notification-level-icon[data-v-eaf4dbed]{font-weight:700;font-size:1rem}.notification-title[data-v-eaf4dbed]{flex:1;font-weight:600;font-size:.95rem}.notification-close[data-v-eaf4dbed]{padding:0;width:20px;height:20px;font-size:1.2rem;line-height:1}.notification-body[data-v-eaf4dbed]{margin-bottom:.5rem;font-size:.9rem;line-height:1.4;color:var(--text)}.notification-footer[data-v-eaf4dbed]{display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.notification-time[data-v-eaf4dbed]{color:var(--text-muted)}.btn.xs.text[data-v-eaf4dbed]{padding:.2rem .5rem;font-size:.75rem;color:var(--text-muted)}.btn.xs.text[data-v-eaf4dbed]:hover{color:var(--text)}.dark{background-color:#2e6f4033}.dark{background:var(--surface);border-color:var(--border-dark)}.search-overlay[data-v-eca6981e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh}.search-modal[data-v-eca6981e]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg, 12px);box-shadow:0 20px 60px #0000004d;width:600px;max-width:95vw;overflow:hidden}.search-input-row[data-v-eca6981e]{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border);gap:.5rem}.search-icon[data-v-eca6981e]{font-size:1.2rem;color:var(--text-muted)}.search-input[data-v-eca6981e]{flex:1;background:none;border:none;outline:none;font-size:1rem;color:var(--text)}.search-hint[data-v-eca6981e]{font-size:.7rem;padding:.2rem .4rem;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--text-muted)}.search-status[data-v-eca6981e]{padding:.75rem 1rem;font-size:.9rem}.search-results[data-v-eca6981e]{list-style:none;margin:0;padding:.25rem 0;max-height:400px;overflow-y:auto}.search-result[data-v-eca6981e]{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;cursor:pointer}.search-result.selected[data-v-eca6981e],.search-result[data-v-eca6981e]:hover{background:var(--surface-2)}.result-icon[data-v-eca6981e]{font-size:1rem;width:1.2rem;text-align:center;flex-shrink:0}.result-body[data-v-eca6981e]{flex:1;display:flex;flex-direction:column;min-width:0}.result-title[data-v-eca6981e]{font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-subtitle[data-v-eca6981e]{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-type[data-v-eca6981e]{font-size:.72rem;flex-shrink:0}.search-hints[data-v-eca6981e]{display:flex;gap:1.5rem;padding:.5rem 1rem;font-size:.78rem;border-top:1px solid var(--border)}.search-trigger[data-v-eca6981e]{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.search-trigger-text[data-v-eca6981e]{color:var(--text-muted);white-space:nowrap}@media (max-width: 720px){.search-trigger-text[data-v-eca6981e]{display:none}}.topbar-actions[data-v-2b7b0e0e]{display:flex;align-items:center;gap:.6rem}.user-chip[data-v-2b7b0e0e]{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem}.user-avatar[data-v-2b7b0e0e]{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:50%;background:#2e6f40;color:#fff;font-weight:700;font-size:.85rem}@media (max-width: 640px){.user-name[data-v-2b7b0e0e]{display:none}}:root{--brand: #2e6f40;--brand-600: #285f37;--brand-700: #21512f;--brand-soft: rgba(46, 111, 64, .12);--sev-error: #d64545;--sev-warning: #e0922f;--sev-info: #3b82c4;--ok: #2e6f40;--bad: #d64545;--pending: #9a7b1f}:root[data-theme=light]{--bg: #f5f7f6;--surface: #ffffff;--surface-2: #f0f3f1;--border: #e1e6e3;--text: #1c2520;--text-muted: #6a7570;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--sidebar-bg: #1c2a22;--sidebar-text: #cdd8d1;--sidebar-active: var(--brand)}:root[data-theme=dark]{--bg: #11161300;--bg: #0f1411;--surface: #171e1a;--surface-2: #1d2620;--border: #2a342d;--text: #e6ece8;--text-muted: #93a09a;--shadow: 0 1px 3px rgba(0, 0, 0, .4);--sidebar-bg: #0b0f0c;--sidebar-text: #b9c5be;--sidebar-active: var(--brand)}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem;color:var(--text)}.layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:230px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;padding:1rem 0}.sidebar .brand{display:flex;align-items:center;gap:.6rem;padding:0 1.25rem 1rem;font-weight:700;font-size:1.1rem;color:#fff}.sidebar .brand .logo{width:28px;height:28px;border-radius:7px;background:var(--brand);display:grid;place-items:center;color:#fff}.sidebar nav{flex:1;min-height:0;overflow-y:auto}.nav-group{margin-bottom:.35rem}.nav-section{display:flex;align-items:center;gap:.4rem;width:100%;padding:.5rem 1.25rem .2rem;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffff61;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit}.nav-section:hover{color:#ffffffb3}.nav-caret{display:inline-block;font-size:.6rem;transition:transform .15s ease}.nav-caret.collapsed{transform:rotate(-90deg)}.nav-link{display:flex;align-items:center;gap:.65rem;padding:.4rem 1.25rem;color:var(--sidebar-text);font-weight:500;font-size:.875rem;border-left:3px solid transparent}.nav-link:hover{background:#ffffff0d;text-decoration:none}.nav-link.router-link-active{background:#2e6f402e;border-left-color:var(--brand);color:#fff}.nav-icon{width:18px;text-align:center}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:56px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem}.topbar .crumb{font-weight:600}.content{flex:1;overflow-y:auto;padding:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:1.25rem}.card+.card{margin-top:1rem}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:1rem}.grid{display:grid;gap:1rem}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (max-width: 900px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr 1fr}}.stat{display:flex;flex-direction:column;gap:.25rem}.stat .value{font-size:1.9rem;font-weight:700;color:var(--brand)}.stat .label{color:var(--text-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:.45rem .85rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:filter .15s,background .15s}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}.btn.ghost{background:transparent}.btn.sm{padding:.3rem .55rem;font-size:.78rem}label.field{display:block;margin-bottom:1rem}label.field>span{display:block;font-weight:600;margin-bottom:.35rem;font-size:.85rem}input[type=text],input[type=password],input[type=email],input[type=search],input[type=url],input[type=number],select,textarea{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font-size:.88rem;font-family:inherit}textarea{resize:vertical}textarea.code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;line-height:1.5}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.checkbox{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer}.checkbox input{width:auto}.segmented{display:inline-flex;padding:.25rem;gap:.25rem;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.segmented-opt{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.45rem .85rem;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.segmented-opt:hover{color:var(--text)}.segmented-opt.active{background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:var(--shadow)}.segmented-opt.active .segmented-label{color:var(--brand)}.segmented-hint{font-size:.72rem;font-weight:500;color:var(--text-muted)}.segmented.block{display:flex}.segmented.block .segmented-opt{flex:1}.field>.segmented{margin-top:.35rem;margin-bottom:.4rem}.stepper{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.stepper-step{display:flex;align-items:center;gap:.55rem;cursor:pointer;background:none;border:none;padding:0;font-family:inherit}.stepper-step:disabled{cursor:default}.stepper-num{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;font-weight:600;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.stepper-step.active .stepper-num{background:var(--brand);border-color:var(--brand);color:#fff}.stepper-step.done .stepper-num{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.stepper-label{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.stepper-label small{color:var(--text-muted);font-size:.72rem;font-weight:500}.stepper-title{font-weight:600;font-size:.9rem;color:var(--text-muted)}.stepper-step.active .stepper-title,.stepper-step.done .stepper-title{color:var(--text)}.stepper-line{flex:1;height:1px;background:var(--border);min-width:1.5rem}table.tbl{width:100%;border-collapse:collapse;font-size:.86rem}table.tbl th{text-align:left;padding:.6rem .75rem;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap}table.tbl td{padding:.6rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}table.tbl tbody tr:hover{background:var(--surface-2)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.badge.status-completed{background:#2e6f4026;color:var(--ok)}.badge.status-failed{background:#d6454526;color:var(--bad)}.badge.status-cancelled{background:var(--surface-2);color:var(--text-muted)}.badge.status-pending,.badge.status-downloading,.badge.status-scanning,.badge.status-analyzing,.badge.status-uploading{background:#9a7b1f26;color:var(--pending)}.badge.sev-error{background:#d6454526;color:var(--sev-error)}.badge.sev-warning{background:#e0922f26;color:var(--sev-warning)}.badge.sev-info{background:#3b82c426;color:var(--sev-info)}.badge.muted{background:var(--surface-2);color:var(--text-muted)}.badge.baseline-badge{background:#e0b22f26;color:var(--pending, #9a7b1f);margin-left:.4rem;vertical-align:middle}.badge.status-new{background:#d6454526;color:var(--bad)}.badge.status-unchanged{background:var(--surface-2);color:var(--text-muted)}.badge.status-resolved{background:#2e6f4026;color:var(--ok)}.pill-fp{background:#9a7b1f26;color:var(--pending)}.state{text-align:center;padding:2.5rem 1rem;color:var(--text-muted)}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.error-box{border:1px solid var(--bad);background:#d6454514;color:var(--bad);padding:.75rem 1rem;border-radius:8px}pre.snippet{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-x:auto;font-family:JetBrains Mono,monospace;font-size:.8rem;margin:.5rem 0 0;white-space:pre}.toast-wrap{position:fixed;bottom:1.25rem;right:1.25rem;display:flex;flex-direction:column;gap:.6rem;z-index:1000}.toast{min-width:260px;max-width:380px;padding:.7rem 1rem;border-radius:10px;color:#fff;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:1rem;align-items:center;font-weight:500}.toast.success{background:var(--brand)}.toast.error{background:var(--bad)}.toast.info{background:#3b6ea5}.toast button{background:transparent;border:none;color:inherit;cursor:pointer;font-size:1rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.spacer{flex:1}.muted{color:var(--text-muted)}.mono{font-family:JetBrains Mono,monospace;font-size:.82rem}.toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.toolbar select,.toolbar input{width:auto}.toggle-theme{font-size:1.1rem;padding:.4rem .6rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:900;padding:1rem}.modal{background:var(--surface);border-radius:12px;border:1px solid var(--border);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;padding:1.5rem;box-shadow:var(--shadow)}.truncate{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}th.draggable-header{cursor:grab;-webkit-user-select:none;user-select:none}th.draggable-header:active{cursor:grabbing}th.draggable-header .th-inner{display:inline-flex;align-items:center;gap:.35rem}th.draggable-header .drag-handle{opacity:0;color:var(--text-muted);flex-shrink:0;transition:opacity .15s}th.draggable-header:hover .drag-handle{opacity:.7}th.sortable{cursor:pointer}th .sort-caret{color:var(--brand);font-size:.7rem}.list-controls{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.results-count{font-size:.8rem;color:var(--text-muted)}.search-box{display:flex;align-items:center;gap:.5rem;padding:0 .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);min-width:220px}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{border:none;background:none;padding:.45rem 0;width:100%}.search-box input:focus{outline:none;box-shadow:none}.badge.source-gerrit_bot{background:#3b82c426;color:var(--sev-info)}.badge.source-manual{background:var(--surface-2);color:var(--text-muted)}tr.fp-row td{opacity:.55}tr.fp-row td .vuln-title{text-decoration:line-through}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-to-main{position:absolute;top:-100%;left:0;z-index:99999;background:var(--brand);color:#fff;padding:.5rem 1rem;font-weight:600;text-decoration:none;border-radius:0 0 6px}.skip-to-main:focus{top:0}
