@preventive/triage 1.0.0-alpha.4 → 1.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/out/graph.js CHANGED
@@ -1,4 +1,4 @@
1
1
  var mt=globalThis[Symbol.for("@rray/frontend")];if(!mt)throw new Error("@rray/frontend global not installed; view.js must run before lazy bundles import this wrapper");var{LitElement:xt,html:E,nothing:Ot,unsafeCSS:Ve,render:Me,StateElement:ao,classMap:Se,repeat:vt,styleMap:$e}=mt;var yt=`*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:host{display:grid;grid-template-columns:1fr 300px;grid-template-rows:auto 1fr;grid-template-areas:"topbar right" "stage right";min-height:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--graph-canvas-bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,sans-serif;font-size:12px}.graph2-layout{display:contents}.graph2-topbar{grid-area:topbar;display:flex;flex-direction:column;gap:.5rem;padding:.6rem .75rem;font-size:.825rem;background:var(--surface);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--graph-divider)}.graph2-topbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:0}.graph2-topbar .g2-spacer{flex:1}.graph2-topbar triage-selector{margin-left:auto}.g2-icon-btn{width:28px;height:28px;border-radius:5px;background:var(--graph-hover-bg);border:1px solid var(--border);color:var(--muted);display:grid;place-items:center;font-family:inherit;&:hover{color:var(--accent);border-color:var(--accent)}& svg{display:block}}.g2-path-filter-wrap{position:relative;flex:0 0 14rem;padding-right:22px}.g2-path-filter-wrap .g2-path-filter-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:18px;height:18px;background:transparent;border:0;border-radius:50%;color:var(--muted);font:400 10px/1 inherit;font-family:inherit;&:hover{color:var(--text);background:var(--surface-active)}}.g2-path-filter:placeholder-shown~.g2-path-filter-clear{display:none}.g2-topbar-toggle{display:inline-flex;align-items:center;height:30px;box-sizing:border-box;gap:8px;padding:5px 10px;background:var(--graph-hover-bg);border:1px solid var(--border);border-radius:6px;color:var(--muted);font:500 11px/1 inherit;font-family:inherit;white-space:nowrap;&:hover{color:var(--text);border-color:var(--accent)}&.on{color:var(--text)}&.on .g2-switch{background:color-mix(in srgb,var(--accent) 22%,transparent)}&.on .g2-switch:after{transform:translate(12px);background:var(--accent)}}.g2-trash-btn.on{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:var(--accent);color:var(--accent)}.graph2-right{grid-area:right;border-left:1px solid var(--graph-divider);background:var(--surface);backdrop-filter:var(--glass-blur);display:flex;flex-direction:column;overflow:hidden;padding:14px}.g2-panel-title{font-family:inherit;font-weight:600;font-size:11px;line-height:1;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.85;margin:14px 0 8px;display:flex;align-items:baseline;gap:6px;&:first-child{margin-top:0}}.g2-count{color:var(--muted);opacity:.6;font-weight:400;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;text-transform:none;letter-spacing:0;font-size:10px}.g2-panel-title-row{justify-content:space-between;gap:8px}#g2-top-pkgs-block{margin-top:14px;flex:1 1 0;min-height:0;display:flex;flex-direction:column}.g2-mini-tabs{display:flex;gap:1px;background:var(--graph-divider);border-radius:4px;overflow:hidden}.g2-mini-tab{background:transparent;border:0;color:var(--muted);font-family:inherit;font-weight:500;font-size:11px;line-height:1.4;text-transform:none;letter-spacing:0;padding:2px 7px;&:hover{color:var(--text);background:var(--graph-hover-bg)}&.on{background:var(--surface-active);color:var(--accent)}}.g2-switch{width:26px;height:14px;background:var(--border);border-radius:8px;position:relative;transition:background .15s;flex-shrink:0;&:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}}.graph2-stage{grid-area:stage;position:relative;background:var(--graph-canvas-bg);overflow:hidden;cursor:grab;&:active{cursor:grabbing}& canvas{position:absolute;inset:0;width:100%;height:100%;display:block}}.g2-stage-overlay{position:absolute;top:12px;left:12px;z-index:3;display:flex;flex-direction:column;gap:4px;pointer-events:none;max-width:calc(100% - 60px)}.g2-stage-overlay>*{pointer-events:auto}.g2-stage-stats{position:absolute;bottom:10px;left:12px;z-index:2;display:flex;flex-wrap:wrap;gap:2px 14px;font:500 10px/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;color:var(--muted);opacity:.7;text-transform:uppercase;letter-spacing:.06em;pointer-events:none;max-width:calc(100% - 80px);& b{font-weight:600;color:var(--text);opacity:1}}.g2-stage-overlay-tr{position:absolute;top:12px;right:12px;z-index:3;pointer-events:auto}.g2-focus-pkg-btn{width:28px;height:28px;display:grid;place-items:center;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;color:var(--accent);box-shadow:var(--shadow-glass);&:hover{border-color:var(--accent);background:var(--surface-active)}& svg{display:block}}.g2-back-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 11px;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;color:var(--accent);font:500 11px/1 inherit;font-family:inherit;box-shadow:var(--shadow-glass);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:flex-start;&:hover{border-color:var(--accent);background:var(--surface-active)}}.g2-zoom-ctrl{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;overflow:hidden;z-index:3;box-shadow:var(--shadow-glass);& button{width:28px;height:28px;background:transparent;border:0;color:var(--muted);border-bottom:1px solid var(--graph-divider);display:grid;place-items:center;font-family:inherit;font-size:13px;&:last-child{border-bottom:0}&:hover{color:var(--accent);background:var(--surface-active)}}}.g2-zoom-pct{font:500 9px/1 ui-monospace,monospace;color:var(--muted);padding:5px 0;text-align:center;border-bottom:1px solid var(--graph-divider)}.g2-zoom-ctrl .g2-zoom-fit-btn{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-weight:600;font-size:9px;line-height:1;letter-spacing:-.02em;text-transform:lowercase}.g2-tooltip{position:absolute;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:7px;padding:9px 11px;pointer-events:none;min-width:170px;max-width:260px;opacity:0;transition:opacity .12s;z-index:10;box-shadow:var(--shadow-glass);&.show{opacity:1}}.g2-tt-path{font:500 11px/1.3 ui-monospace,monospace;color:var(--text);word-break:break-all;margin-bottom:4px}.g2-tt-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap}.g2-tt-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.g2-tt-pkg{font-size:10px;color:var(--muted);word-break:break-all}.g2-tt-badge{display:inline-block;font-size:8px;padding:2px 4px;background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent);border-radius:3px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.g2-tooltip .tree-count-chips{margin-top:6px}:host-context(body.theme-light) .graph2-right .tree-count-chip.medium,:host-context(body.theme-light) .g2-tooltip .tree-count-chip.medium{color:#fff}.g2-selection-card{background:var(--graph-hover-bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.g2-sel-head{padding:11px 13px;border-bottom:1px solid var(--graph-divider);display:flex;align-items:center;gap:8px}.g2-sel-file-head{padding:11px 13px;border-bottom:1px solid var(--graph-divider);display:flex;flex-direction:column;gap:6px}.g2-sel-path{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-weight:600;font-size:12px;line-height:1.3;color:var(--text);word-break:break-all}.g2-sel-pkg-row{display:flex;align-items:center;gap:6px;min-width:0}.g2-sel-pkg{font-size:11px;color:var(--muted);word-break:break-all;min-width:0}.g2-sel-fullpath{padding:7px 13px;border-bottom:1px solid var(--graph-divider);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:10px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g2-sel-size{padding:5px 13px 7px;border-bottom:1px solid var(--graph-divider);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:10px;line-height:1.3;color:var(--muted);font-variant-numeric:tabular-nums}.g2-sel-dot{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,var(--dot) 22%,transparent);flex-shrink:0}.g2-sel-id{font:600 12px/1 ui-monospace,monospace;color:var(--text);word-break:break-all;flex:1;min-width:0}.g2-sel-grp{font:500 9px/1 ui-monospace,monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0}.g2-sel-body{padding:11px 13px}.g2-sel-row{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:5px 0;border-bottom:1px solid var(--graph-divider);&:last-child{border-bottom:0}.k{color:var(--muted);flex-shrink:0}.v{color:var(--text);font-family:ui-monospace,monospace;word-break:break-all;text-align:right;min-width:0}}.g2-sel-section{padding:9px 13px;border-top:1px solid var(--graph-divider)}.g2-sel-section-label{font-family:inherit;font-weight:600;font-size:11px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);opacity:.85;margin-bottom:5px}.g2-sel-section-empty{color:var(--muted);opacity:.55;font-size:11px;font-style:italic}.g2-sel-jumps{padding:11px 13px;display:flex;gap:5px;flex-wrap:wrap;border-top:1px solid var(--graph-divider)}.g2-sel-jump{background:var(--surface-active);border:1px solid var(--border);color:var(--accent);border-radius:4px;padding:2px 8px;font-family:inherit;font-weight:500;font-size:11px;line-height:1.3;&:hover{border-color:var(--accent)}}.g2-sel-file-list{list-style:none;margin:0;padding:0;max-height:110px;overflow:hidden auto;-webkit-app-region:no-drag;app-region:no-drag;&::-webkit-scrollbar{width:4px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}& li{padding:0}}.g2-sel-file-link{display:flex;align-items:center;gap:6px;width:100%;background:transparent;border:0;border-radius:3px;padding:3px 6px;font:400 11px/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;color:var(--accent);text-align:left;&:hover{background:var(--graph-hover-bg)}.g2-sel-file-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.g2-sel-file-path{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.g2-empty-state{background:var(--graph-hover-bg);border:1px dashed var(--border);border-radius:8px;padding:18px 14px;text-align:center;color:var(--muted);font-size:11px;line-height:1.5;& strong{color:var(--text);display:block;margin-bottom:4px;font-weight:500}}.g2-dist-bar{width:100%;height:5px;border-radius:3px;overflow:hidden;display:flex;background:var(--surface-active);margin-bottom:8px;>span{display:block;height:100%}}.g2-dist-list{display:flex;flex-direction:column;gap:2px;flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.g2-dist-empty{color:var(--muted);opacity:.55;font-size:10px;font-style:italic;padding:6px 0;text-align:center}.g2-dist-item{display:grid;grid-template-columns:8px 1fr auto auto;gap:8px;align-items:center;font-size:10px;padding:4px 6px;margin:0 -6px;background:transparent;border:0;border-radius:4px;font-family:inherit;text-align:left;width:calc(100% + 12px);&:hover{background:var(--graph-hover-bg)}&.on{background:var(--surface-active);.g2-dist-name{color:var(--accent)}}.g2-dist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.g2-dist-name{color:var(--muted);font-family:ui-monospace,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g2-dist-count{font-family:ui-monospace,monospace;color:var(--text)}.g2-dist-pct{font-family:ui-monospace,monospace;color:var(--muted);width:36px;text-align:right;opacity:.85}}@media print{:host{display:none!important}}
2
2
  `;var kt=`.tree-count-chips{display:inline-flex;gap:.25rem;flex-wrap:wrap}.tree-count-chip{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .4rem;border-radius:3px;line-height:1.3;&.critical{background:var(--critical);color:#fff}&.high{background:var(--high);color:#fff}&.medium{background:var(--medium);color:#000}&.low{background:var(--low);color:#000}&.high_bug{background:var(--high-bug);color:#fff}&.bug{background:var(--bug);color:#fff}&.informational{background:var(--info);color:#fff}}
3
- `;var wt=`.toolbar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.6rem .75rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);font-size:.825rem;& label{color:var(--muted);margin-right:.15rem}& select{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;&:focus{border-color:var(--accent);outline:none}}& select.sort-select{padding:.3rem 1.7rem .3rem .55rem;min-width:8.5rem;font-weight:500;appearance:none;-webkit-appearance:none;background:transparent}:is(analyzer-select,repo-filter,findings-sort){position:relative;display:inline-block;&:after{content:"";position:absolute;right:.7rem;top:50%;width:.35rem;height:.35rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}}& range-slider{color:var(--accent);margin:0 .25rem}.conf-vals{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-variant-numeric:tabular-nums;.dash{color:var(--muted);margin:0 .15rem}}& conf-filter{display:inline-flex;align-items:center;height:30px;box-sizing:border-box;padding:0 .55rem;gap:.5rem;background:transparent;border:1px solid var(--border);border-radius:4px;.conf-range-label{color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:.04em}& range-slider{margin:0}}& input[type=text]{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;flex:1;min-width:8rem;&:focus{border-color:var(--accent);outline:none}}.sep{border-left:1px solid var(--border);height:1.2rem}.result-count{color:var(--muted);margin-left:auto}.checkbox-label{display:inline-flex;align-items:center;gap:.25rem;color:var(--muted);& input{margin:0}}}.trash-btn{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .55rem;font-size:.8rem;font-family:inherit;&:hover{border-color:var(--accent)}&.active{border-color:var(--critical);color:var(--critical)}}.toolbar .trash-btn{margin-left:auto}triage-selector,slide-triage-tabs{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.toolbar triage-selector{margin-left:auto}.triage-state-btn{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.8rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{background:var(--surface-active)}}.triage-state-btn.active.triage-state-deleted{color:var(--critical)}.triage-state-btn.active.triage-state-fixed{color:var(--green, #4ade80)}.triage-state-btn.active.triage-state-invalid{color:var(--muted)}.triage-state-btn.active.triage-state-ignored{color:var(--accent, #2563eb)}entity-search{display:contents}view-mode-buttons{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.view-mode-btn{background:transparent;border:none;color:var(--muted);padding:.28rem .5rem;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s;font-family:inherit;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}& svg{display:block}}}source-filter{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.source-chip{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.75rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}}}.toolbar-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.search-row{display:inline-flex;align-items:center;gap:.65rem;flex:1 1 14rem;min-width:12rem}toolbar-search{display:inline-flex;align-items:center;gap:.5rem;flex:1;min-width:0;height:30px;box-sizing:border-box;padding:0 .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;&:focus-within{border-color:var(--accent)}& svg{color:var(--muted);flex-shrink:0}& input[type=text]{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);font:inherit;font-size:.8rem;padding:0;&:focus{border:0}&::placeholder{color:var(--muted)}&:focus::placeholder{color:transparent}&::-webkit-search-cancel-button{display:none}}}@media(width<=1200px){.toolbar-row.sev-row .search-row{flex-basis:100%}}.findings-content.with-details .toolbar{max-width:1200px}severity-chips{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.sev-chip{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:0;padding:0 .6rem;color:var(--muted);font-family:inherit;font-size:.8rem;transition:background .12s,color .12s;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}.sd{width:8px;height:8px;border-radius:2px;flex-shrink:0;background:currentcolor}.n{align-self:flex-start;margin:1px -5px 0;color:var(--muted);font-variant-numeric:tabular-nums;font-size:8.5px;font-weight:600;background:var(--bg);border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px}&.active{color:var(--text);.n{color:var(--text)}}&.critical .sd{background:var(--critical)}&.high .sd{background:var(--high)}&.medium .sd{background:var(--medium)}&.low .sd{background:var(--low)}&.high_bug .sd{background:var(--high-bug)}&.bug .sd{background:var(--bug)}&.informational .sd{background:var(--info)}&.critical.active{background:rgb(from var(--critical) r g b / .25)}&.high.active{background:rgb(from var(--high) r g b / .25)}&.medium.active{background:rgb(from var(--medium) r g b / .25)}&.low.active{background:rgb(from var(--low) r g b / .25)}&.high_bug.active{background:rgb(from var(--high-bug) r g b / .25)}&.bug.active{background:rgb(from var(--bug) r g b / .25)}&.informational.active{background:rgb(from var(--info) r g b / .25)}}triage-filter{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px;height:30px;gap:1px;& button{width:22px;height:22px;background:transparent;border:0;border-radius:4px;padding:0;display:grid;place-items:center;position:relative;transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .06)}&.active{background:rgb(from var(--text) r g b / .08);box-shadow:0 0 0 1px var(--border)}}.td{width:12px;height:12px;border-radius:50%;border:1.5px solid currentcolor;background:transparent;transition:background .12s}& button.active .td{background:currentcolor}.td.none{border-style:dashed;color:var(--muted)}.td.r{color:#fc5855}.td.b{color:#30aff8}.td.g{color:#68c36d}.td.x{color:#6e7278}.count{position:absolute;top:-2px;right:-2px;background:var(--bg);color:var(--muted);font-size:8.5px;font-weight:600;border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px;font-variant-numeric:tabular-nums}}
3
+ `;var wt=`.toolbar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.6rem .75rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);font-size:.825rem;& label{color:var(--muted);margin-right:.15rem}& select{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;&:focus{border-color:var(--accent);outline:none}}& select.sort-select{padding:.3rem 1.7rem .3rem .55rem;min-width:8.5rem;font-weight:500;appearance:none;-webkit-appearance:none;background:transparent}:is(analyzer-select,repo-filter,findings-sort){position:relative;display:inline-block;&:after{content:"";position:absolute;right:.7rem;top:50%;width:.35rem;height:.35rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}}& range-slider{color:var(--accent);margin:0 .25rem}.conf-vals{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-variant-numeric:tabular-nums;.dash{color:var(--muted);margin:0 .15rem}}& conf-filter{display:inline-flex;align-items:center;height:30px;box-sizing:border-box;padding:0 .55rem;gap:.5rem;background:transparent;border:1px solid var(--border);border-radius:4px;.conf-range-label{color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:.04em}& range-slider{margin:0}}& input[type=text]{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;flex:1;min-width:8rem;&:focus{border-color:var(--accent);outline:none}}.sep{border-left:1px solid var(--border);height:1.2rem}.result-count{color:var(--muted);margin-left:auto}.checkbox-label{display:inline-flex;align-items:center;gap:.25rem;color:var(--muted);& input{margin:0}}}.trash-btn{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .55rem;font-size:.8rem;font-family:inherit;&:hover{border-color:var(--accent)}&.active{border-color:var(--critical);color:var(--critical)}}.toolbar .trash-btn{margin-left:auto}triage-selector,slide-triage-tabs{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.toolbar triage-selector{margin-left:auto}triage-selector.is-empty{display:none}.triage-state-btn{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.8rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{background:var(--surface-active)}}.triage-state-btn.active.triage-state-deleted{color:var(--critical)}.triage-state-btn.active.triage-state-fixed{color:var(--green, #4ade80)}.triage-state-btn.active.triage-state-invalid{color:var(--muted)}.triage-state-btn.active.triage-state-ignored{color:var(--accent, #2563eb)}entity-search{display:contents}view-mode-buttons{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.view-mode-btn{background:transparent;border:none;color:var(--muted);padding:.28rem .5rem;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s;font-family:inherit;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}& svg{display:block}}}source-filter{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.source-chip{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.75rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}}}.toolbar-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.search-row{display:inline-flex;align-items:center;gap:.65rem;flex:1 1 14rem;min-width:12rem}toolbar-search{display:inline-flex;align-items:center;gap:.5rem;flex:1;min-width:0;height:30px;box-sizing:border-box;padding:0 .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;&:focus-within{border-color:var(--accent)}& svg{color:var(--muted);flex-shrink:0}&[kind] input[type=text]{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);font:inherit;font-size:.8rem;padding:0;&:focus{border:0}&::placeholder{color:var(--muted)}&:focus::placeholder{color:transparent}&::-webkit-search-cancel-button{display:none}}}@media(width<=1200px){.toolbar-row.sev-row .search-row{flex-basis:100%}}.findings-content.with-details .toolbar{max-width:1200px}severity-chips{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.sev-chip{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:0;padding:0 .6rem;color:var(--muted);font-family:inherit;font-size:.8rem;transition:background .12s,color .12s;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}.sd{width:8px;height:8px;border-radius:2px;flex-shrink:0;background:currentcolor}.n{align-self:flex-start;margin:1px -5px 0;color:var(--muted);font-variant-numeric:tabular-nums;font-size:8.5px;font-weight:600;background:var(--bg);border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px}&.active{color:var(--text);.n{color:var(--text)}}&.critical .sd{background:var(--critical)}&.high .sd{background:var(--high)}&.medium .sd{background:var(--medium)}&.low .sd{background:var(--low)}&.high_bug .sd{background:var(--high-bug)}&.bug .sd{background:var(--bug)}&.informational .sd{background:var(--info)}&.critical.active{background:rgb(from var(--critical) r g b / .25)}&.high.active{background:rgb(from var(--high) r g b / .25)}&.medium.active{background:rgb(from var(--medium) r g b / .25)}&.low.active{background:rgb(from var(--low) r g b / .25)}&.high_bug.active{background:rgb(from var(--high-bug) r g b / .25)}&.bug.active{background:rgb(from var(--bug) r g b / .25)}&.informational.active{background:rgb(from var(--info) r g b / .25)}}triage-filter{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px;height:30px;gap:1px;& button{width:22px;height:22px;background:transparent;border:0;border-radius:4px;padding:0;display:grid;place-items:center;position:relative;transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .06)}&.active{background:rgb(from var(--text) r g b / .08);box-shadow:0 0 0 1px var(--border)}}.td{width:12px;height:12px;border-radius:50%;border:1.5px solid currentcolor;background:transparent;transition:background .12s}& button.active .td{background:currentcolor}.td.none{border-style:dashed;color:var(--muted)}.td.r{color:#fc5855}.td.b{color:#30aff8}.td.g{color:#68c36d}.td.x{color:#6e7278}.count{position:absolute;top:-2px;right:-2px;background:var(--bg);color:var(--muted);font-size:8.5px;font-weight:600;border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px;font-variant-numeric:tabular-nums}}
4
4
  `;var ce=["critical","high","medium","low","high_bug","bug","informational"],Nt="node_modules";function Ue(){return Nt}function Ye(e){return typeof e!="number"||!Number.isFinite(e)?null:`${e.toLocaleString()} B`}function Wt(){return{showAll:!1,selected:null,focusedPkg:null,topPkgsTab:"issues",edgeOpacity:.22,nodeSize:1,showLabels:!1,selectedSeverities:new Set,selectedColors:new Set,pathFilter:"",hidden:new Set,solo:null,graphState:null,layoutCache:null}}var ue=Wt(),M=new Proxy(ue,{get(e,t){return ue[t]},set(e,t,r){return ue[t]=r,!0},has(e,t){return t in ue},deleteProperty(e,t){return delete ue[t]},ownKeys(){return Reflect.ownKeys(ue)},getOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(ue,t)}});function Mt(){M.graphState?._cleanup&&M.graphState._cleanup(),M.graphState=null}function Gt(e){e&&(ue=e)}function Ke(e){if(!e)return null;let t=Ue()==="node_modules"?/^(?:.*\/)?node_modules\/(@[^/]+\/[^/]+|[^/]+)/u:/^(?:.*\/)?dependencies\/(@[^/]+\/[^/]+|[^/]+)/u,r=e.match(t);if(r)return r[1];let c=e.indexOf("/");return c>0?e.slice(0,c):"/"}var Vt=["#4e9af1","#f28e2b","#59a14f","#e15759","#76b7b2","#edc948","#b07aa1","#ff9da7","#9c755f","#5cd1e5","#f1ce63","#d37295","#a0cbe8","#86bcb6","#8cd17d","#b6992d","#499894","#e15759","#e879c7","#d4a6c8"],St=["#2f8aef","#d2691e","#2ea043","#e63946","#2e9a92","#b88817","#9560e8","#d24a9c","#8a5d40","#0891b2","#a07a14","#c14e8e","#1f7ad0","#549b94","#3fb95f","#a07a14","#2a8278","#cb2c40","#c026d3","#965f93"];function Ut(){if(typeof document>"u")return!1;let e=document.body?.classList;return!!e&&(e.contains("theme-light")||e.contains("theme-pink"))}var it=new Map;function se(e){let t=Ut()?St:Vt,c=`${t===St?"l":"d"}:${e??"__own__"}`;if(it.has(c))return it.get(c);let f=e??"__own__",x=0;for(let o of f)x=x*37+o.codePointAt(0)|0;let S=((x%t.length+t.length)%t.length*7+3)%t.length,R=t[S];return it.set(c,R),R}function $t(e){if(!e)return 0;let t=0;for(let r of ce)t+=e[r]??0;return t}function Yt(e){if(!e)return null;for(let t of ce)if((e[t]??0)>0)return t;return null}function zt(e,t,r,c,f,x,p,S={}){let R=S.pkgOf??Ke,o=new Set(t),y=new Map,b=new Map;for(let d of t){let $=(e[d].imports??[]).filter(N=>o.has(N));y.set(d,$);for(let N of $)b.has(N)||b.set(N,[]),b.get(N).push(d)}let C=t.map(d=>{let $=r.get(d),N=c?.get(d)??null,h=$t($),G=R(d)??"__own__",j=Yt($);return{id:d,file:d,pkg:G,x:0,y:0,deg:0,issue:j,totalIssues:h,own:$,subtree:N,size:typeof e[d]?.size=="number"?e[d].size:null,severitySet:f?.get(d)??null,colorSet:x?.get(d)??null,findings:p?.get(d)??null,isHub:!1,label:d.split("/").pop()??d}}),n=new Map(C.map(d=>[d.file,d])),I=new Map;for(let d of t)for(let $ of y.get(d)??[]){let[N,h]=d<$?[d,$]:[$,d],G=`${N}\0${h}`,j=I.get(G);if(!j){let D=n.get(N),A=n.get(h);if(!D||!A)continue;j={a:N,b:h,cross:D.pkg!==A.pkg,fromLo:!1,fromHi:!1},I.set(G,j),D.deg++,A.deg++}d===N?j.fromLo=!0:j.fromHi=!0}let Z=[...I.values()],u=new Map;for(let d=0;d<Z.length;d++){let $=Z[d];u.has($.a)||u.set($.a,[]),u.has($.b)||u.set($.b,[]),u.get($.a).push(d),u.get($.b).push(d)}let k=new Map;for(let d of C)k.set(d.pkg,(k.get(d.pkg)??0)+1);let L=[...k.entries()].toSorted((d,$)=>$[1]-d[1]).map(([d])=>d),P=new Map;for(let d of C)P.has(d.pkg)||P.set(d.pkg,[]),P.get(d.pkg).push(d);let _={files:t,nodes:C,nodeByFile:n,edges:Z,adj:u,importsOf:y,importedBy:b,packages:L,pkgCount:k,byPkg:P};return Kt(_),_}function Kt(e){for(let t of e.nodes)t.isHub=!1;for(let t of e.edges)t.cross&&(t.fromLo&&(e.nodeByFile.get(t.b).isHub=!0),t.fromHi&&(e.nodeByFile.get(t.a).isHub=!0));for(let t of e.nodes){let r=e.importedBy.get(t.file);(!r||r.length===0)&&(t.isHub=!0)}}function Xe(e,t){if(!t||t==="/"||t==="__own__")return e;for(let r of["node_modules","dependencies",Ue()]){let c=r+"/"+t+"/",f=e.indexOf(c);if(f>=0)return e.slice(f+c.length)}return e.startsWith(t+"/")?e.slice(t.length+1):e}function Ct(e,t){let r=t.extraTopRow,c=t.hideAllFiles??!1,f=t.triageCounts??{fixed:0,invalid:0,deleted:0},x=t.triageStates??["fixed","invalid","deleted"],p={};for(let n of ce)p[n]=0;for(let n of e.nodes)if(n.severitySet)for(let I of n.severitySet)p[I]!==void 0&&p[I]++;let S=ce.some(n=>p[n]>0||M.selectedSeverities.has(n)),R=["none","red","blue","green","gray"],o={none:0,red:0,blue:0,green:0,gray:0};for(let n of e.nodes)if(n.colorSet)for(let I of n.colorSet)o[I]!==void 0&&o[I]++;let y=R.some(n=>o[n]>0||M.selectedColors.has(n)),b=E`<triage-selector variant="graph" .counts="${f}" .states="${x}"></triage-selector>`,C=c?null:E`<button type="button" class="${Se({"g2-topbar-toggle":!0,on:M.showAll})}" data-g2-show-all aria-pressed="${String(M.showAll)}"><span>All files</span><span class="g2-switch"></span></button>`;return E`<div class="graph2-topbar">${r?E`<div class="graph2-topbar-row graph2-topbar-row-extra toolbar-row">${r} ${C}<div class="g2-spacer"></div>${b}</div>`:null}<div class="graph2-topbar-row graph2-topbar-row-main toolbar-row sev-row">${S?E`<severity-chips .counts="${p}" .selected="${[...M.selectedSeverities]}" kind="graph"></severity-chips>`:null} ${y?E`<triage-filter .counts="${o}" .selected="${[...M.selectedColors]}" kind="graph"></triage-filter>`:null}<div class="toolbar-search g2-path-filter-wrap"><svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg> <input type="text" class="g2-path-filter" id="g2-path-filter" placeholder="filter path/package…" .value="${M.pathFilter}"> <button type="button" class="g2-path-filter-clear" id="g2-path-filter-clear" title="Clear filter" aria-label="Clear filter">✕</button></div>${r?null:C}<div class="g2-spacer"></div>${r?null:b} <button type="button" class="g2-icon-btn" id="g2-fullscreen" title="Toggle fullscreen">⛶</button></div></div>`}function Xt(e,t){let r=e.split("/").filter(Boolean),c=t.split("/").filter(Boolean),f=0;for(;f<r.length&&f<c.length&&r[f]===c[f];)f++;let x=r.length-f,p=c.slice(f).join("/");return x===0?"./"+p:"../".repeat(x)+p}function Zt(e,t){if(!t&&t!=="")return e;let r=Xt(t,e);return r.length<e.length?r:e}function at(e,t,r,c){let f=r.length;if(f===0)return E`<div class="g2-sel-section"><div class="g2-sel-section-label">${t} (${f})</div><div class="g2-sel-section-empty">none</div></div>`;let x=r.map(p=>({file:p,display:Zt(p,c)}));return x.sort((p,S)=>p.display.localeCompare(S.display)),E`<div class="g2-sel-section"><div class="g2-sel-section-label">${t} (${f})</div><ul class="g2-sel-file-list">${x.map(({file:p,display:S})=>{let R=e.nodeByFile.get(p),o=R?se(R.pkg):"#666";return E`<li><button type="button" class="g2-sel-file-link" data-g2-select="${p}" title="${p}"><span class="g2-sel-file-dot" style="${$e({background:o})}"></span> <span class="g2-sel-file-path">${S}</span></button></li>`})}</ul></div>`}function Ie(e){if(!e)return E`<div class="g2-sel-section-empty">none</div>`;let r=["critical","high","medium","low","high_bug","bug","informational"].filter(c=>(e[c]??0)>0);return r.length===0?E`<div class="g2-sel-section-empty">none</div>`:E`<div class="tree-count-chips">${r.map(c=>E`<span class="${`tree-count-chip ${c}`}">${e[c]} ${c.replaceAll("_"," ")}</span>`)}</div>`}function Pt(e){let t=0;for(let p of e.edges)p.cross&&t++;let r=e.edges.length-t,c=0;for(let p of e.nodes)c+=p.totalIssues;let f=e.nodes.length===0?"0.0":(e.edges.length*2/e.nodes.length).toFixed(1),x=M.focusedPkg==="__own__"?"own source":M.focusedPkg;return E`<main class="graph2-stage"><canvas id="g2-canvas"></canvas>${M.focusedPkg?E`<div class="g2-stage-overlay"><button type="button" class="g2-back-btn" id="g2-back-to-full" title="Back to the full graph">← ${x}</button></div>`:null}<div id="g2-focus-overlay-slot" class="g2-stage-overlay-tr"></div><div class="g2-stage-stats"><span><b>${e.nodes.length}</b> files</span> <span><b>${e.packages.length}</b> packages</span> <span><b>${e.edges.length}</b> edges (${r} intra · ${t} cross)</span> <span><b>${c}</b> issues</span> <span>avg degree <b>${f}</b></span></div><div class="g2-zoom-ctrl"><button id="g2-zoom-in" title="Zoom in">+</button><div class="g2-zoom-pct" id="g2-zoom-pct">100%</div><button id="g2-zoom-out" title="Zoom out">−</button> <button id="g2-zoom-fit" class="g2-zoom-fit-btn" title="Fit to view">fit</button></div><div class="g2-tooltip" id="g2-tooltip"></div></main>`}function _t(e){let t=null;if(M.selected){let c=e.nodeByFile.get(M.selected);c&&(t=c.pkg)}else M.solo&&(t=M.solo);return!t||(e.pkgCount.get(t)??0)<=1||M.focusedPkg===t?null:E`<button type="button" class="g2-focus-pkg-btn" data-g2-focus-pkg="${t}" title="${`Focus on ${t==="__own__"?"own source":t}'s graph`}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M8 4.6 L4 11 M8 4.6 L12 11 M5 11.4 L11 11.4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/><circle cx="8" cy="3.6" r="2" fill="currentColor"/><circle cx="3.6" cy="11.4" r="2" fill="currentColor"/><circle cx="12.4" cy="11.4" r="2" fill="currentColor"/></svg></button>`}function Ft(){return E`<aside class="graph2-right"><div class="g2-panel-title">Selection</div><div id="g2-selection-area"></div><div id="g2-top-pkgs-block"></div></aside>`}function Lt(e){let t=M.showAll&&e.nodes.length>0&&e.nodes.every(f=>typeof f.size=="number"),r=e.nodes.some(f=>f.totalIssues>0),c=M.topPkgsTab;return c==="size"&&!t&&(c="files"),c==="issues"&&!r&&(c="files"),E`<div class="g2-panel-title g2-panel-title-row"><span>Packages</span><div class="g2-mini-tabs">${r?E`<button type="button" class="${Se({"g2-mini-tab":!0,on:c==="issues"})}" data-g2-top-pkgs="issues">Issues</button>`:null} <button type="button" class="${Se({"g2-mini-tab":!0,on:c==="files"})}" data-g2-top-pkgs="files">Files</button> ${t?E`<button type="button" class="${Se({"g2-mini-tab":!0,on:c==="size"})}" data-g2-top-pkgs="size">Size</button>`:null}</div></div>${eo(e,c)}`}function Rt(e,t={}){let r=M.selected;if(r){let c=e.nodeByFile.get(r);return c?Jt(e,c,r,t):E`<div class="g2-empty-state"><strong>File not in current view</strong>Adjust filters or pick another file.</div>`}return M.solo?Qt(e,M.solo):E`<div class="g2-empty-state">Click a node or a package row to inspect.</div>`}function Jt(e,t,r,c){let f=se(t.pkg),x=t.pkg==="__own__"?"own source":t.pkg,p=Xe(r,t.pkg),S=e.importedBy.get(r)??[],R=e.importsOf.get(r)??[],o=r.lastIndexOf("/"),y=o>=0?r.slice(0,o):"";return E`<div class="g2-selection-card"><div class="g2-sel-file-head"><div class="g2-sel-path">${p}</div><div class="g2-sel-pkg-row"><span class="g2-sel-dot" style="${$e({"--dot":f,background:f})}"></span> <span class="g2-sel-pkg">${x}</span></div></div><div class="g2-sel-fullpath" title="${r}">${r}</div>${Ye(t.size)?E`<div class="g2-sel-size">${Ye(t.size)}</div>`:null}<div class="g2-sel-section"><div class="g2-sel-section-label">Own findings</div>${Ie(t.own)}</div><div class="g2-sel-section"><div class="g2-sel-section-label">Subtree findings</div>${Ie(t.subtree)}</div><div class="g2-sel-jumps">${t.totalIssues>0?E`<button type="button" class="g2-sel-jump" data-g2-jump-findings="${r}">Findings →</button>`:null} ${c.isBundleContext?t.origFile?E`<button type="button" class="g2-sel-jump" data-bundle-view-source="${t.origFile}">View source →</button>`:null:E`<button type="button" class="g2-sel-jump" data-g2-jump-file="${r}">Files →</button>`}</div>${at(e,"Imported by",S,y)} ${at(e,"Imports",R,y)}</div>`}function Qt(e,t){let r=e.nodes.filter(b=>b.pkg===t),c=r.length;if(c===0)return E`<div class="g2-empty-state"><strong>Package has no files in view</strong> Toggle "All files" to widen the file set, or pick another package.</div>`;let f=se(t),x=t==="__own__"?"own source":t,p={};for(let b of ce)p[b]=0;for(let b of r)if(b.own)for(let C of ce)p[C]+=b.own[C]??0;let S=0,R=0;for(let b of e.edges){let C=e.nodeByFile.get(b.a),n=e.nodeByFile.get(b.b);!C||!n||(C.pkg===t&&n.pkg===t?R++:(C.pkg===t||n.pkg===t)&&S++)}let o=0;for(let b of r)b.isHub&&o++;let y=new Set;for(let b of r)for(let C of e.importedBy.get(b.file)??[]){let n=e.nodeByFile.get(C);n&&n.pkg!==t&&y.add(C)}return E`<div class="g2-selection-card"><div class="g2-sel-head"><span class="g2-sel-dot" style="${$e({"--dot":f,background:f})}"></span> <span class="g2-sel-id">${x}</span> <span class="g2-sel-grp">package</span></div><div class="g2-sel-body"><div class="g2-sel-row"><span class="k">Files</span><span class="v">${c}</span></div><div class="g2-sel-row"><span class="k">Hubs</span><span class="v">${o}</span></div><div class="g2-sel-row"><span class="k">Intra edges</span><span class="v">${R}</span></div><div class="g2-sel-row"><span class="k">Cross edges</span><span class="v">${S}</span></div></div><div class="g2-sel-section"><div class="g2-sel-section-label">Findings</div>${Ie(p)}</div>${at(e,"Imported by",[...y])}</div>`}function eo(e,t){let r=e.nodes.length||1,c=t??M.topPkgsTab,f=M.selectedSeverities,x=M.selectedColors,p=f.size>0,S=x.size>0,R=p||S,o=new Map,y=new Map,b=0,C=0;for(let u of e.nodes){let k;if(R){if(k=0,u.findings)for(let L of u.findings)p&&!f.has(L.severity)||S&&!x.has(L.color)||k++}else k=u.totalIssues;o.set(u.pkg,(o.get(u.pkg)??0)+k),b+=k,typeof u.size=="number"&&(y.set(u.pkg,(y.get(u.pkg)??0)+u.size),C+=u.size)}let n;c==="issues"?n=e.packages.filter(u=>(o.get(u)??0)>0).toSorted((u,k)=>{let L=o.get(u)??0,P=o.get(k)??0;return P!==L?P-L:(e.pkgCount.get(k)??0)-(e.pkgCount.get(u)??0)}):c==="size"?n=e.packages.filter(u=>(y.get(u)??0)>0).toSorted((u,k)=>{let L=y.get(u)??0,P=y.get(k)??0;return P!==L?P-L:(e.pkgCount.get(k)??0)-(e.pkgCount.get(u)??0)}):n=[...e.packages].toSorted((u,k)=>{let L=e.pkgCount.get(u)??0,P=e.pkgCount.get(k)??0;return P!==L?P-L:(o.get(k)??0)-(o.get(u)??0)});let I=u=>c==="issues"?b>0?((o.get(u)??0)/b*100).toFixed(2):"0":c==="size"?C>0?((y.get(u)??0)/C*100).toFixed(2):"0":(e.pkgCount.get(u)/r*100).toFixed(2),Z=c==="issues"?"No packages with issues":c==="size"?"No packages with size":"No packages";return E`<div class="g2-dist-bar">${e.packages.map(u=>{let k=se(u);return E`<span style="${$e({background:k,width:`${I(u)}%`})}"></span>`})}</div><div class="g2-dist-list">${n.length===0?E`<div class="g2-dist-empty">${Z}</div>`:null} ${vt(n,u=>u,u=>{let k=se(u),L=e.pkgCount.get(u)??0,P=o.get(u)??0,_=y.get(u)??0,d=c==="issues"?P:c==="size"?Ye(_):L,$=c==="issues"?b>0?(P/b*100).toFixed(1):"0.0":c==="size"?C>0?(_/C*100).toFixed(1):"0.0":(L/r*100).toFixed(1),N=u==="__own__"?"own source":u,h=M.solo===u;return E`<button type="button" class="${Se({"g2-dist-item":!0,on:h})}" data-g2-pkg="${u}" title="${N}"><span class="g2-dist-dot" style="${$e({background:k})}"></span><span class="g2-dist-name">${N}</span><span class="g2-dist-count">${d}</span><span class="g2-dist-pct">${$}%</span></button>`})}</div>`}var lt=class extends xt{static properties={graph:{attribute:!1},options:{attribute:!1}};static styles=[Ve(wt),Ve(kt),Ve(yt)];constructor(){super(),this.graph=null,this.options={}}render(){return this.graph?E`<div class="graph2-layout">${Ct(this.graph,this.options)} ${Pt(this.graph)} ${Ft()}</div>`:E``}};customElements.define("graph-layout",lt);function to(e){let t=new Map;for(let[r,c]of e.importsOf){let f=e.nodeByFile.get(r);if(f)for(let x of c){let p=e.nodeByFile.get(x);p&&f.pkg!==p.pkg&&(t.set(f.pkg,(t.get(f.pkg)??0)+1),t.set(p.pkg,(t.get(p.pkg)??0)+1))}}return t}function oo(e){if(e.packages.length===0)return null;let t=new Set;for(let[r,c]of e.importedBy){let f=e.nodeByFile.get(r);if(f)for(let x of c){let p=e.nodeByFile.get(x);if(p&&p.pkg!==f.pkg){t.add(f.pkg);break}}}for(let r of e.packages)if(!t.has(r))return r;return null}var no=5;function It(e,t){let r=new Map;for(let x of e.nodes)t.has(x.pkg)&&(r.has(x.pkg)||r.set(x.pkg,[]),r.get(x.pkg).push(x));for(let x of r.values())x.sort((p,S)=>p.isHub!==S.isHub?p.isHub?-1:1:S.deg-p.deg);let c=new Map,f=new Map;for(let[x,p]of t){let S=r.get(x);if(!S||S.length===0)continue;let R=S.length,o=0;for(let k of S)if(k.isHub)o++;else break;let y=o>0&&o<=no,b=y?o:0,C=R-b,n=p.groupR,I=Array.from({length:R}),Z=Array.from({length:R});for(let k=0;k<R;k++){let L=k*137.508*Math.PI/180,P;if(k<b)P=b<=1?0:Math.sqrt(k/(b-1))*.3*n;else{let _=k-b;P=C<=1?.4*n:(.4+Math.sqrt(_/(C-1))*.6)*n}I[k]=p.x+Math.cos(L)*P,Z[k]=p.y+Math.sin(L)*P}let u=Array.from({length:R},()=>!1);for(let k=0;k<R;k++){let L=S[k],P,_;y&&L.isHub?(_=0,P=b):y?(_=b,P=R):(_=0,P=R);let d=0,$=0,N=0,h=e.importsOf.get(L.file);if(h)for(let A of h){let q=c.get(A);q!==void 0&&(d+=q,$+=f.get(A),N++)}let G=e.importedBy.get(L.file);if(G)for(let A of G){let q=c.get(A);q!==void 0&&(d+=q,$+=f.get(A),N++)}let j=!1;if(N>0){d/=N,$/=N;let A=d-p.x,q=$-p.y;A*A+q*q>1&&(j=!0)}let D=-1;if(j){let A=1/0;for(let q=_;q<P;q++){if(u[q])continue;let l=I[q]-d,F=Z[q]-$,O=l*l+F*F;O<A&&(A=O,D=q)}}else for(let A=_;A<P;A++)if(!u[A]){D=A;break}u[D]=!0,L.x=I[D],L.y=Z[D],c.set(L.file,L.x),f.set(L.file,L.y)}}}function At(e,t,r){let c=t/2,f=r/2,x=Math.min(t,r)/2;if(e.packages.length===0)return;let S=oo(e),R=to(e),o=(S?e.packages.filter(l=>l!==S):[...e.packages]).toSorted((l,F)=>{let O=(R.get(F)??0)-(R.get(l)??0);return O!==0?O:(e.pkgCount.get(F)??0)-(e.pkgCount.get(l)??0)}),y=o.length,b;y<=0?b=0:y<=6?b=.65:y<=20?b=.82:b=.95;let C=Math.max(1,Math.sqrt(50/Math.max(1,y))),n=.22,I=.12,Z=.04,u=new Map,k;if(S){let l=e.pkgCount.get(S)??0,F=Math.min(n,(.012+Math.sqrt(l)*.004)*C);k=Math.max(y<=6?.4:y<=20?.36:.34,F+I+Z),u.set(S,{x:c,y:f,size:l,groupR:F*x})}else y<=1?k=0:y<=6?k=.4:y<=20?k=.32:k=.3;if(y===0){It(e,u);return}let L=new Map;for(let l of e.edges){if(!l.cross)continue;let F=e.nodeByFile.get(l.a)?.pkg,O=e.nodeByFile.get(l.b)?.pkg;if(!F||!O||F===O)continue;L.has(F)||L.set(F,new Map),L.has(O)||L.set(O,new Map);let ee=L.get(F),J=L.get(O);ee.set(O,(ee.get(O)??0)+1),J.set(F,(J.get(F)??0)+1)}let P=Math.max(1,Math.min(10,Math.round(Math.sqrt(y)/1.2))),_=Array.from({length:P+1});for(let l=0;l<=P;l++)_[l]=Math.floor(l*l/(P*P)*y);_[P]=y;let d=.2,$=Array.from({length:P}),N=Array.from({length:P});for(let l=0;l<P;l++){let F=_[l],O=_[l+1];$[l]=O-F;let ee=0;for(let J=F;J<O;J++)ee+=e.pkgCount.get(o[J])??0;N[l]=ee}let h=Array.from({length:P});for(let l=0;l<P;l++){let F=(_[l]+_[l+1]-1)/2/Math.max(1,y-1);h[l]=Math.sqrt(Math.max(0,F))}let G=Array.from({length:P});G[0]=h[0];for(let l=1;l<P;l++){let F=$[l-1],O=N[l-1],ee=F>0?O/F:1,J=1+d*Math.sqrt(Math.max(0,ee-1));G[l]=G[l-1]+(h[l]-h[l-1])*J}let j=Array.from({length:P});for(let l=0;l<P;l++)j[l]=G[l]-h[l];let D=Array.from({length:y}),A=Array.from({length:y}),q=0;for(let l=0;l<y;l++){for(;q<P-1&&l>=_[q+1];)q++;let F=l*137.508%360*Math.PI/180,ee=(y<=1?0:Math.sqrt(l/(y-1)))+j[q],J=y===1?S?k:0:k+ee*(b-k);D[l]=c+Math.cos(F)*J*x,A[l]=f+Math.sin(F)*J*x}for(let l=0;l<P;l++){let F=_[l],O=_[l+1],ee=O-F;if(ee===0)continue;let J=Array.from({length:ee},()=>!1);for(let Ce=F;Ce<O;Ce++){let ve=o[Ce],Ae=L.get(ve),de=0,ae=0,ie=0;if(Ae)for(let[te,oe]of Ae){let fe=u.get(te);fe&&(de+=fe.x*oe,ae+=fe.y*oe,ie+=oe)}let ye=!1;if(ie>0){de/=ie,ae/=ie;let te=de-c,oe=ae-f;te*te+oe*oe>1&&(ye=!0)}let ge=-1;if(ye){let te=1/0;for(let oe=0;oe<ee;oe++){if(J[oe])continue;let fe=F+oe,He=D[fe]-de,Ee=A[fe]-ae,Fe=He*He+Ee*Ee;Fe<te&&(te=Fe,ge=oe)}}else for(let te=0;te<ee;te++)if(!J[te]){ge=te;break}J[ge]=!0;let Pe=F+ge,_e=e.pkgCount.get(ve)??0,Be=Math.min(I,(.012+Math.sqrt(_e)*.004)*C);u.set(ve,{x:D[Pe],y:A[Pe],size:_e,groupR:Be*x})}}It(e,u)}function Bt(e,t,r){let c=t/2,f=r/2,x=Math.min(t,r)/2,p=e.nodes.length;if(p===0)return;let S=[...e.nodes].toSorted((R,o)=>o.deg-R.deg);for(let R=0;R<p;R++){let o=S[R],y=R*137.508%360*Math.PI/180,b=p<=1?0:Math.sqrt(R/(p-1));o.x=c+Math.cos(y)*b*.85*x,o.y=f+Math.sin(y)*b*.85*x}}function Ht(e,t,r,c){let f=e.length,x=c||760,p=r||1100,S=Math.sqrt(p*x/Math.max(f,1))*1.1,R=_=>{let d=0;for(let $ of _)d=d*31+$.codePointAt(0)|0;return d},o=Math.ceil(Math.sqrt(f*p/x)),y=Math.ceil(f/o),b=x/(y+1),C=p/(o+1),n=e.map((_,d)=>{let $=d%o,N=Math.floor(d/o),h=R(_);return{file:_,x:($+1)*C+(h%100-50)*C*.4,y:(N+1)*b+((h>>7)%100-50)*b*.4,dx:0,dy:0}}),I=new Map(n.map((_,d)=>[_.file,d])),Z=[];for(let _ of e)for(let d of t.get(_)??[])I.has(d)&&Z.push([I.get(_),I.get(d)]);let u=new Map;for(let _=0;_<f;_++){let d=Ke(n[_].file)??"__own__";u.has(d)||u.set(d,[]),u.get(d).push(_)}let k=Math.min(500,Math.max(180,100+f*3)),L=Math.min(p,x)/6,P=.3;for(let _=0;_<k;_++){let d=L*Math.pow(P/L,_/k);for(let h of n)h.dx=0,h.dy=0;for(let h=0;h<f;h++)for(let G=h+1;G<f;G++){let j=n[h],D=n[G],A=j.x-D.x,q=j.y-D.y,l=Math.sqrt(A*A+q*q);if(l<.01){let O=R(j.file+D.file);A=(O%100-50)*.01||.5,q=((O>>7)%100-50)*.01||.5,l=Math.sqrt(A*A+q*q)}let F=S*S/l;j.dx+=A/l*F,j.dy+=q/l*F,D.dx-=A/l*F,D.dy-=q/l*F}for(let[h,G]of Z){let j=n[h],D=n[G],A=j.x-D.x,q=j.y-D.y,l=Math.sqrt(A*A+q*q)||.01,F=l*l/S;j.dx-=A/l*F,j.dy-=q/l*F,D.dx+=A/l*F,D.dy+=q/l*F}let $=.055*Math.min(1,d/(L*.3));for(let[,h]of u){if(h.length<2)continue;let G=0,j=0;for(let D of h)G+=n[D].x,j+=n[D].y;G/=h.length,j/=h.length;for(let D of h)n[D].dx+=(G-n[D].x)*$,n[D].dy+=(j-n[D].y)*$}let N=50;for(let h of n){let G=Math.sqrt(h.dx*h.dx+h.dy*h.dy)||.01;h.x+=h.dx/G*Math.min(G,d),h.y+=h.dy/G*Math.min(G,d),h.x=Math.max(N,Math.min(p-N,h.x)),h.y=Math.max(N,Math.min(x-N,h.y))}}return n}var Et={critical:"#ff5470",high:"#ff9d4a",medium:"#f4d35e",low:"#67c2ff",high_bug:"#a06c3f",bug:"#7a6d62",informational:"#218bff"},ct={dark:{bg:"#0c0c0c",grid:"rgba(255, 255, 255, 0.022)",selectRing:"#ffffff",edgeIntra:"rgba(180, 195, 215, ALPHA)",hubRing:"rgba(255, 255, 255, ALPHA)",labelFill:"rgba(230, 233, 238, 0.78)",labelShadow:"rgba(12, 12, 12, 0.98)",labelOutline:"rgba(12, 12, 12, 0.9)",labelDefault:"rgba(200, 210, 225, 0.78)",labelHover:"rgba(230, 237, 243, 0.95)",labelSelected:"#fff"},light:{bg:"#f6f8fa",grid:"rgba(0, 0, 0, 0.04)",selectRing:"#0969da",edgeIntra:"rgba(50, 70, 100, ALPHA)",hubRing:"rgba(0, 0, 0, ALPHA)",labelFill:"rgba(40, 50, 70, 0.85)",labelShadow:"rgba(255, 255, 255, 0.95)",labelOutline:"rgba(255, 255, 255, 0.9)",labelDefault:"rgba(50, 60, 80, 0.85)",labelHover:"rgba(20, 25, 35, 0.95)",labelSelected:"#000"},pink:{bg:"#fff0f7",grid:"rgba(0, 0, 0, 0.04)",selectRing:"#0969da",edgeIntra:"rgba(50, 70, 100, ALPHA)",hubRing:"rgba(0, 0, 0, ALPHA)",labelFill:"rgba(40, 50, 70, 0.85)",labelShadow:"rgba(255, 255, 255, 0.95)",labelOutline:"rgba(255, 255, 255, 0.9)",labelDefault:"rgba(50, 60, 80, 0.85)",labelHover:"rgba(20, 25, 35, 0.95)",labelSelected:"#000"}};function ro(){let e=document.body.classList;return e.contains("theme-pink")?ct.pink:e.contains("theme-light")?ct.light:ct.dark}function ze(e){return Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,"0")}function so(e,t,r){let f=e.querySelector("graph-layout")?.shadowRoot;if(!f)return;let x=f.querySelector("#g2-canvas"),p=f.querySelector("#g2-tooltip"),S=f.querySelector(".graph2-stage"),R=f.querySelector("#g2-zoom-pct");if(!x)return;Mt();let o=x.getContext("2d"),y=window.devicePixelRatio||1,b=0,C=0,n={tx:0,ty:0,k:1},I=null,Z=0,u=0,k=!0,L=!0;function P(){if(!k)return;let i=M.layoutCache,g=M.focusedPkg;if(i&&i.files===t.files&&i.w===u&&i.h===Z&&i.focused===g)for(let v of t.nodes){let s=i.pos.get(v.file);s&&(v.x=s.x,v.y=s.y)}else{if(g)if(t.nodes.length>50)Bt(t,u,Z);else{let s=Ht(t.files,t.importsOf,u,Z),m=new Map(s.map(z=>[z.file,z]));for(let z of t.nodes){let T=m.get(z.file);T&&(z.x=T.x,z.y=T.y)}}else At(t,u,Z);let v=new Map;for(let s of t.nodes)v.set(s.file,{x:s.x,y:s.y});M.layoutCache={files:t.files,w:u,h:Z,pos:v,focused:g}}k=!1}function _(){if(t.nodes.length===0)return{k:1,tx:C/2,ty:b/2};let i=-1/0,g=-1/0,v=1/0,s=1/0;for(let a of t.nodes)a.x<v&&(v=a.x),a.y<s&&(s=a.y),a.x>i&&(i=a.x),a.y>g&&(g=a.y);let m=Math.max(20,g-s),z=Math.max(20,i-v),T=(v+i)/2,W=(s+g)/2,V=Math.min(C,b)*.1,Y=Math.min((C-V*2)/z,(b-V*2)/m,4),K=Math.max(.05,Y);return{k:K,tx:C/2-T*K,ty:b/2-W*K}}function d(){let i=_();n.k=i.k,n.tx=i.tx,n.ty=i.ty}function $(i,g){return[i*n.k+n.tx,g*n.k+n.ty]}function N(i,g){return[(i-n.tx)/n.k,(g-n.ty)/n.k]}function h(i){return!M.hidden.has(i.pkg)}function G(i){if(M.selectedSeverities.size>0){let v=i.severitySet;if(!v)return!0;let s=!1;for(let m of M.selectedSeverities)if(v.has(m)){s=!0;break}if(!s)return!0}if(M.selectedColors.size>0){let v=i.colorSet;if(!v)return!0;let s=!1;for(let m of M.selectedColors)if(v.has(m)){s=!0;break}if(!s)return!0}if(M.solo&&i.pkg!==M.solo)return!0;let g=M.pathFilter;if(g){let v=g.toLowerCase(),s=i.file.toLowerCase().includes(v),m=i.pkg&&i.pkg.toLowerCase().includes(v);if(!s&&!m)return!0}return!1}function j(i){let g=(i.isHub?4.9:3.5)*M.nodeSize,v=Math.max(.6,Math.min(1.6,n.k));return g*v}function D(){let i=S.getBoundingClientRect(),g=b,v=C;C=Math.max(80,i.width),b=Math.max(80,i.height),y=window.devicePixelRatio||1,x.width=C*y,x.height=b*y,x.style.width=C+"px",x.style.height=b+"px",o.setTransform(y,0,0,y,0,0),(u===0||Z===0)&&(u=C,Z=b,k=!0),P();let s=v>0&&(Math.abs(C-v)/v>.15||Math.abs(b-g)/g>.15);(L||s)&&(d(),L=!1),O()}let A=null,q=!0,l=!1,F=!1;function O(){q=!0,!(l||F)&&(l=!0,A=requestAnimationFrame(()=>{l=!1,q&&!F&&(q=!1,ee())}))}function ee(){let i=ro();o.fillStyle=i.bg,o.fillRect(0,0,C,b),J(i);let g=M.selected,v=g?t.nodeByFile.get(g):null;if(M.focusedPkg&&t.nodes.length<=50){Ce(i,g,v);return}for(let s of t.edges){let m=t.nodeByFile.get(s.a),z=t.nodeByFile.get(s.b);if(!m||!z||!h(m)||!h(z))continue;let T=M.edgeOpacity;g?T=s.a===g||s.b===g?.85:M.edgeOpacity*.25:I&&(s.a===I||s.b===I)&&(T=Math.min(.9,T+.5)),G(m)&&G(z)&&(T=Math.min(T,.04));let[W,V]=$(m.x,m.y),[Y,K]=$(z.x,z.y);if(s.cross){let a=o.createLinearGradient(W,V,Y,K);a.addColorStop(0,se(m.pkg)+ze(T)),a.addColorStop(1,se(z.pkg)+ze(T)),o.strokeStyle=a,o.lineWidth=.85}else o.strokeStyle=i.edgeIntra.replace("ALPHA",String(T*.7)),o.lineWidth=.55;o.beginPath(),o.moveTo(W,V),o.lineTo(Y,K),o.stroke()}for(let s of t.nodes){if(!h(s))continue;let m=s.file===I,z=s.file===g;if(!s.isHub&&!m&&!z||G(s)&&!m&&!z)continue;let[T,W]=$(s.x,s.y),Y=j(s)*(z?6:m?4.5:3),K=o.createRadialGradient(T,W,0,T,W,Y),a=se(s.pkg);K.addColorStop(0,a+"55"),K.addColorStop(1,a+"00"),o.fillStyle=K,o.beginPath(),o.arc(T,W,Y,0,Math.PI*2),o.fill()}for(let s of t.nodes){if(!h(s))continue;let[m,z]=$(s.x,s.y),T=j(s),W=1,V=g&&s.file===g;if(g&&!V&&(W=(t.adj.get(g)??[]).some(K=>{let a=t.edges[K];return a.a===s.file||a.b===s.file})?1:.25),!V&&G(s)&&(W=Math.min(W,.1)),o.fillStyle=se(s.pkg)+ze(W),o.beginPath(),o.arc(m,z,T,0,Math.PI*2),o.fill(),s.isHub&&(o.strokeStyle=i.hubRing.replace("ALPHA",String(.55*W)),o.lineWidth=.8,o.stroke()),s.issue){let Y=Et[s.issue],K=T+(s.issue==="critical"?4.2:s.issue==="high"?3.4:2.8),a=s.issue==="critical"?1.8:s.issue==="high"?1.5:s.issue==="medium"?1.3:1.1;o.strokeStyle=Y,o.globalAlpha=W,o.lineWidth=a,o.beginPath(),o.arc(m,z,K,0,Math.PI*2),o.stroke(),o.globalAlpha=1}}if(n.k>1.4){let m=0;if(n.k<9&&!M.showLabels)for(let T of t.nodes){if(!h(T))continue;let[W,V]=$(T.x,T.y);if(!(W<0||W>C||V<0||V>b)&&(m++,m>=50))break}let z=n.k>=9||m<50;if(M.showLabels||z){o.font="10px ui-monospace, SFMono-Regular, Menlo, Monaco, monospace",o.fillStyle=i.labelFill,o.textAlign="left",o.textBaseline="middle";let T=11,W=2,V=250,Y=(w,H)=>w>-V&&w<C+V&&H>-V&&H<b+V,K=[];for(let w of t.nodes){if(!h(w))continue;let[H,X]=$(w.x,w.y);if(!Y(H,X))continue;let Q=j(w);K.push({file:w.file,x0:H-Q,x1:H+Q,y0:X-Q,y1:X+Q})}let a=[];for(let w of t.nodes){if(!h(w)||!w.isHub&&n.k<2.4)continue;let[H,X]=$(w.x,w.y);if(!Y(H,X))continue;let Q=j(w),ne=H+Q+4,re=X+1,ke=o.measureText(w.label).width+W,Te=w.file===M.selected,Oe=w.file===I,qe=Te?3:Oe?2:w.isHub?1:0;a.push({file:w.file,n:w,tx:ne,ty:re,prio:qe,x0:ne-W,x1:ne+ke,y0:re-T/2,y1:re+T/2})}a.sort((w,H)=>H.prio-w.prio);let B=[],U=(w,H)=>w.x0<H.x1&&H.x0<w.x1&&w.y0<H.y1&&H.y0<w.y1;for(let w of a){let H=!1;for(let X of K)if(X.file!==w.file&&U(w,X)){H=!0;break}if(!H){for(let X of B)if(U(w,X)){H=!0;break}}H||B.push(w)}for(let w of B)o.fillText(w.n.label,w.tx,w.ty)}}if(v&&h(v)){let[s,m]=$(v.x,v.y),z=j(v);o.strokeStyle=i.selectRing,o.lineWidth=1.5,o.beginPath(),o.arc(s,m,z+5,0,Math.PI*2),o.stroke()}R&&(R.textContent=`${Math.round(n.k*100)}%`)}function J(i){if(n.k<.4)return;let g=80,v=(n.tx%g+g)%g,s=(n.ty%g+g)%g;o.strokeStyle=i.grid,o.lineWidth=1,o.beginPath();for(let m=v;m<C;m+=g)o.moveTo(m,0),o.lineTo(m,b);for(let m=s;m<b;m+=g)o.moveTo(0,m),o.lineTo(C,m);o.stroke()}function Ce(i,g,v){let s=se(M.focusedPkg),m=new Set;if(I){m.add(I);for(let a of t.adj.get(I)??[]){let B=t.edges[a];m.add(B.a),m.add(B.b)}}let z=a=>(a.isHub?6:4)*M.nodeSize;for(let a of t.edges){let B=t.nodeByFile.get(a.a),U=t.nodeByFile.get(a.b);if(!B||!U||!h(B)||!h(U))continue;let w=a.fromLo&&a.fromHi,H=!w&&a.fromHi,X=H?U:B,Q=H?B:U,ne=I&&(a.a===I||a.b===I),re=g&&(a.a===g||a.b===g),ke=(g||I)&&!ne&&!re,Te=z(X),Oe=z(Q),[qe,ft]=$(X.x,X.y),[pt,ut]=$(Q.x,Q.y),Ze=pt-qe,Je=ut-ft,Qe=Math.sqrt(Ze*Ze+Je*Je)||1,et=Ze/Qe,tt=Je/Qe,be=qe+et*(Te+1.5),he=ft+tt*(Te+1.5),me=pt-et*(Oe+3.5),xe=ut-tt*(Oe+3.5),gt=Math.min(Qe*.15,30),Le=(be+me)/2-tt*gt,Re=(he+xe)/2+et*gt;o.beginPath(),o.moveTo(be,he),o.quadraticCurveTo(Le,Re,me,xe);let we;if(re?we=.9:ne?we=.85:ke?we=.05:we=Math.min(.85,M.edgeOpacity*3),o.strokeStyle=s+ze(we),o.lineWidth=re||ne?1.5:.85,o.stroke(),ke)continue;let le=Math.max(5,7),pe=le*.42,De=.9,ot=2*(1-De)*(Le-be)+2*De*(me-Le),nt=2*(1-De)*(Re-he)+2*De*(xe-Re),bt=Math.sqrt(ot*ot+nt*nt)||1,je=ot/bt,Ne=nt/bt;if(o.beginPath(),o.moveTo(me,xe),o.lineTo(me-je*le+Ne*pe,xe-Ne*le-je*pe),o.lineTo(me-je*le-Ne*pe,xe-Ne*le+je*pe),o.closePath(),o.fillStyle=s+ze(Math.min(1,we+.15)),o.fill(),w){let rt=1.8*(Le-be)+.2*(me-Le),st=2*(1-.1)*(Re-he)+2*.1*(xe-Re),ht=Math.sqrt(rt*rt+st*st)||1,We=rt/ht,Ge=st/ht;o.beginPath(),o.moveTo(be,he),o.lineTo(be+We*le-Ge*pe,he+Ge*le+We*pe),o.lineTo(be+We*le+Ge*pe,he+Ge*le-We*pe),o.closePath(),o.fill()}}for(let a of t.nodes){if(!h(a))continue;let[B,U]=$(a.x,a.y),w=z(a),H=a.file===I,X=a.file===g,Q=(g||I)&&!m.has(a.file)&&!X?.15:1;if(o.globalAlpha=Q,X||H||a.isHub){let ne=w*(X?4:H?3:2.4),re=o.createRadialGradient(B,U,w*.6,B,U,ne);re.addColorStop(0,s+ze(X?.4:.25)),re.addColorStop(1,s+"00"),o.fillStyle=re,o.beginPath(),o.arc(B,U,ne,0,Math.PI*2),o.fill()}if(o.fillStyle=s,o.beginPath(),o.arc(B,U,w,0,Math.PI*2),o.fill(),a.isHub&&(o.strokeStyle=i.hubRing.replace("ALPHA","0.55"),o.lineWidth=.9,o.stroke()),a.issue){let ne=Et[a.issue],re=w+(a.issue==="critical"?4.2:a.issue==="high"?3.4:2.8),ke=a.issue==="critical"?1.8:a.issue==="high"?1.5:a.issue==="medium"?1.3:1.1;o.strokeStyle=ne,o.lineWidth=ke,o.beginPath(),o.arc(B,U,re,0,Math.PI*2),o.stroke()}o.globalAlpha=1}o.font="600 11px ui-monospace, SFMono-Regular, Menlo, Monaco, monospace",o.textAlign="center",o.textBaseline="top",o.lineJoin="round";let T=13,W=2,V=[];for(let a of t.nodes){if(!h(a))continue;let[B,U]=$(a.x,a.y),w=z(a),H=U+w+4,X=o.measureText(a.label).width/2+W,Q=a.file===g,ne=a.file===I,re=Q?3:ne?2:a.isHub?1:0;V.push({n:a,sx:B,ty:H,halfW:X,isSel:Q,isHov:ne,prio:re,x0:B-X,x1:B+X,y0:H,y1:H+T})}V.sort((a,B)=>B.prio-a.prio);let Y=[],K=(a,B)=>a.x0<B.x1&&B.x0<a.x1&&a.y0<B.y1&&B.y0<a.y1;for(let a of V){let B=!1;for(let U of Y)if(K(a,U)){B=!0;break}B||Y.push(a)}for(let a of Y){let{n:B,sx:U,ty:w,isSel:H,isHov:X}=a,Q=(g||I)&&!m.has(B.file)&&!H?.2:1;o.globalAlpha=Q,o.shadowColor=i.labelShadow,o.shadowBlur=4,o.strokeStyle=i.labelOutline,o.lineWidth=3,o.strokeText(B.label,U,w),o.shadowBlur=0,o.fillStyle=H?i.labelSelected:X?i.labelHover:i.labelDefault,o.fillText(B.label,U,w),o.globalAlpha=1}if(v&&h(v)){let[a,B]=$(v.x,v.y),U=z(v);o.strokeStyle=i.selectRing,o.lineWidth=1.8,o.beginPath(),o.arc(a,B,U+4,0,Math.PI*2),o.stroke()}R&&(R.textContent=`${Math.round(n.k*100)}%`)}function ve(i,g){let v=null,s=1/0,m=6;for(let z of t.nodes){if(!h(z))continue;let[T,W]=$(z.x,z.y),V=T-i,Y=W-g,K=V*V+Y*Y,a=j(z)+m;K<a*a&&K<s&&(s=K,v=z)}return v}function Ae(i,g,v){if(!p)return;let s=S.getBoundingClientRect(),m=se(i.pkg),z=i.pkg==="__own__"?"own source":i.pkg,T=Xe(i.file,i.pkg);Me(E`<div class="g2-tt-path">${T}</div><div class="g2-tt-head"><span class="g2-tt-dot" style="${`background:${m}`}"></span> <span class="g2-tt-pkg">${z}</span></div>${i.totalIssues>0?Ie(i.own):null}`,p),p.classList.add("show");let W=p.offsetWidth,V=p.offsetHeight,Y=g-s.left,K=v-s.top,a=s.width,B=s.height,U=12,w=Y+U;w+W>a-4&&(w=Y-W-U),w<4&&(w=4);let H=K+U;H+V>B-4&&(H=K-V-U),H<4&&(H=4),p.style.left=`${w}px`,p.style.top=`${H}px`}function de(){p&&p.classList.remove("show")}let ae=!1,ie=null,ye=!1,ge=i=>{i.button===0&&(i.target.closest(".g2-stage-overlay, .g2-stage-overlay-tr, .g2-zoom-ctrl")||(ae=!0,ye=!1,ie={x:i.clientX,y:i.clientY,tx:n.tx,ty:n.ty}))},Pe=i=>{let g=S.getBoundingClientRect(),v=i.clientX-g.left,s=i.clientY-g.top;if(ae){let T=i.clientX-ie.x,W=i.clientY-ie.y;Math.abs(T)+Math.abs(W)>3&&(ye=!0),n.tx=ie.tx+T,n.ty=ie.ty+W,de(),O();return}let m=ve(v,s),z=I;I=m?.file??null,x.style.cursor=m?"default":"grab",m?Ae(m,i.clientX,i.clientY):z&&de(),I!==z&&O()},_e=i=>{if(ae&&!ye){let g=S.getBoundingClientRect(),v=i.clientX-g.left,s=i.clientY-g.top,m=ve(v,s);M.selected=m?.file??null,r(),O()}ae=!1},Be=()=>{let i=I!==null;I=null,de(),i&&O()},te=i=>{i.preventDefault();let g=S.getBoundingClientRect(),v=i.clientX-g.left,s=i.clientY-g.top,m=Math.exp(-i.deltaY*.0015),z=_();if(m<1&&n.k<=z.k*1.0001){n.k=z.k;let Y=Math.min(.4,(1-m)*3);n.tx+=(z.tx-n.tx)*Y,n.ty+=(z.ty-n.ty)*Y,O();return}let[T,W]=N(v,s),V=Math.max(z.k,Math.min(9.99,n.k*m));n.k=V,n.tx=v-T*n.k,n.ty=s-W*n.k,O()};S.addEventListener("mousedown",ge),window.addEventListener("mousemove",Pe),window.addEventListener("mouseup",_e),S.addEventListener("mouseleave",Be),S.addEventListener("wheel",te,{passive:!1});function oe(i){let g=_().k;i=Math.max(g,Math.min(9.99,i));let v=C/2,s=b/2,[m,z]=N(v,s);n.k=i,n.tx=v-m*n.k,n.ty=s-z*n.k,O()}let fe=f.querySelector("#g2-zoom-in"),He=f.querySelector("#g2-zoom-out"),Ee=f.querySelector("#g2-zoom-fit");fe?.addEventListener("click",()=>oe(n.k*1.4)),He?.addEventListener("click",()=>oe(n.k/1.4)),Ee?.addEventListener("click",()=>{d(),O()}),D();let Fe=new ResizeObserver(()=>D());Fe.observe(S);let dt=new MutationObserver(i=>{for(let g of i){let v=(g.oldValue||"").includes("report-fullscreen"),s=document.body.classList.contains("report-fullscreen");if(v!==s){u=0,Z=0,k=!0,L=!0,M.layoutCache=null,setTimeout(()=>D(),80);return}O()}});dt.observe(document.body,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0}),O(),M.graphState={requestDraw:O,_cleanup:()=>{F=!0,cancelAnimationFrame(A),Fe.disconnect(),dt.disconnect(),S.removeEventListener("mousedown",ge),window.removeEventListener("mousemove",Pe),window.removeEventListener("mouseup",_e),S.removeEventListener("mouseleave",Be),S.removeEventListener("wheel",te)}}}function Xo(e,t){let r=document.querySelector("graph-layout")?.shadowRoot;if(!r)return;let c=Tt(e),f=r.querySelector("#g2-selection-area");f&&Me(Rt(c,t),f);let x=r.querySelector("#g2-focus-overlay-slot");x&&Me(_t(c),x)}function Zo(e){let t=document.querySelector("graph-layout")?.shadowRoot;if(!t)return;let r=t.querySelector("#g2-top-pkgs-block");r&&Me(Lt(Tt(e)),r)}function Tt(e){let t=zt(e.treeData,e.files,e.ownCounts,e.transitiveCounts,e.severitySets,e.colorSets,e.fileFindings,e.options);if(e.strippedToOrig)for(let r of t.nodes)r.origFile=e.strippedToOrig.get(r.file);return t}export{Gt as _swapGraph2Impl,so as attachGraph2Interaction,Tt as buildGraphFromPrep,Xo as refreshSidebar,Zo as refreshTopPkgs};
package/out/view.css CHANGED
@@ -1 +1 @@
1
- *,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #121212;--theme-bar: #1a1a1b;--surface: rgb(28 28 28 / .78);--border: #2c2c2c;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--critical: #d8413a;--high: #d57422;--medium: #d29922;--low: #8b949e;--green: #3fb950;--marker-red: oklch(.68 .2 25deg);--marker-blue: oklch(.72 .15 240deg);--marker-green: oklch(.74 .15 145deg);--marker-gray: oklch(.55 .01 260deg);--high-bug: #a06c3f;--bug: #7a6d62;--info: #218bff;--surface-active: #262626;--glass-blur: blur(10px);--gradient-stop-a: rgb(159 122 234 / .07);--gradient-stop-b: rgb(248 81 73 / .05);--gradient-stop-c: rgb(63 185 80 / .04);--shadow-glass: 0 1px 2px rgb(0 0 0 / .18);--graph-canvas-bg: #0c0c0c;--graph-hover-bg: rgb(255 255 255 / .04);--graph-divider: rgb(60 60 60 / .5);--mark-red-bg: #6b1820;--mark-red-tab-border: #6b1820;--mark-blue-bg: #1a2f5a;--mark-blue-tab-border: #1a2f5a;--mark-green-bg: #1a4a2a;--mark-green-tab-border: #1a4a2a;--mark-gray-bg: #2a2f37;--mark-gray-tab-border: #2a2f37;--badge-low-text: #000;accent-color:var(--accent);color-scheme:dark;scrollbar-color:var(--border) transparent;scrollbar-width:thin}body.theme-light{color-scheme:light;--bg: #fff;--theme-bar: #f6f6fa;--surface: rgb(246 248 250 / .72);--border: #d1d9e0;--text: #1f2328;--muted: #59636e;--accent: #0969da;--critical: #cf222e;--high: #bc4c00;--medium: #f0c040;--low: #6e7781;--green: #1a7f37;--high-bug: #a85a14;--bug: #6b5e52;--info: #218bff;--surface-active: #ddf4ff;--gradient-stop-a: rgb(124 58 237 / .1);--gradient-stop-b: rgb(207 34 46 / .06);--gradient-stop-c: rgb(26 127 55 / .05);--shadow-glass: 0 1px 2px rgb(0 0 0 / .04);--graph-canvas-bg: #f6f8fa;--graph-hover-bg: rgb(0 0 0 / .04);--graph-divider: rgb(208 215 222 / .7);--mark-red-bg: #ffc1bd;--mark-red-tab-border: #ff8182;--mark-blue-bg: #a5d6ff;--mark-blue-tab-border: #54aeff;--mark-green-bg: #aceebb;--mark-green-tab-border: #4ac26b;--mark-gray-bg: #d0d7de;--mark-gray-tab-border: #8c959f;--badge-low-text: #fff;.tree-view .tree-count-chip.low{color:#fff}}body.theme-green{color-scheme:dark;--bg: #050a05;--theme-bar: #0a140a;--surface: rgb(15 30 15 / .78);--border: #1a3a1a;--text: #41ff41;--muted: #4dac4d;--accent: #0f6;--critical: #ff5a3d;--high: #ffa030;--medium: #ffd34a;--low: #4dac4d;--green: #00ff41;--high-bug: #b58148;--bug: #6a7a6a;--info: #56c3ff;--surface-active: #15301a;--gradient-stop-a: rgb(0 255 65 / .08);--gradient-stop-b: rgb(0 255 100 / .05);--gradient-stop-c: rgb(0 200 60 / .04);--shadow-glass: 0 1px 2px rgb(0 0 0 / .35);--graph-canvas-bg: #020802;--graph-hover-bg: rgb(0 255 65 / .06);--graph-divider: rgb(65 255 65 / .25);font-family:ui-monospace,Cascadia Code,JetBrains Mono,Source Code Pro,Menlo,Consolas,monospace;text-shadow:0 0 6px rgb(0 255 65 / .25)}body.theme-pink{color-scheme:light;--bg: #ffebf4;--theme-bar: #ffe4ee;--surface: rgb(255 224 240 / .72);--border: #ffb3d6;--text: #5c0040;--muted: #a13a72;--accent: #ff1a85;--critical: #cf222e;--high: #bc4c00;--medium: #f0c040;--low: #a13a72;--green: #1d8c3c;--high-bug: #a85a14;--bug: #8c5e6c;--info: #218bff;--surface-active: #ffd1e8;--gradient-stop-a: rgb(255 105 180 / .14);--gradient-stop-b: rgb(255 20 147 / .08);--gradient-stop-c: rgb(255 192 203 / .06);--shadow-glass: 0 1px 2px rgb(0 0 0 / .04);--graph-canvas-bg: #fff0f7;--graph-hover-bg: rgb(0 0 0 / .04);--graph-divider: rgb(208 132 178 / .5);--mark-red-bg: #ffc1bd;--mark-red-tab-border: #ff8182;--mark-blue-bg: #a5d6ff;--mark-blue-tab-border: #54aeff;--mark-green-bg: #aceebb;--mark-green-tab-border: #4ac26b;--mark-gray-bg: #d0d7de;--mark-gray-tab-border: #8c959f;--badge-low-text: #fff;font-family:Comic Sans MS,Chalkboard SE,Comic Neue,cursive}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:radial-gradient(ellipse 90% 60% at 0% 0%,var(--gradient-stop-a),transparent 60%),radial-gradient(ellipse 70% 50% at 100% 0%,var(--gradient-stop-b),transparent 60%),radial-gradient(ellipse 80% 60% at 50% 110%,var(--gradient-stop-c),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);line-height:1.5;display:flex;height:100vh;margin:0;overflow:hidden;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;overscroll-behavior:none}@media(resolution>=2dppx){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}::selection{background:rgb(from var(--accent) r g b / .35)}button:not(:disabled):active,[role=button]:not([aria-disabled=true]):active,[role=tab]:active,.tab:active{opacity:.7}button,summary,select,label,[role=button],[role=tab],.tab,.tabs,.toolbar,.page-head,h1,h2,h3,h4,h5,h6,[class$=-title],[class*="-title "],[class$=-meta],[class*="-meta "],[class$=-label],[class*="-label "],[class$=-header],[class*="-header "],[class$=-section],[class*="-section "],[class$=-chip],[class*="-chip "],[class$=-chips],[class*="-chips "],[class$=-count],[class*="-count "],[class$=-bar],[class*="-bar "],[class$=-tag],[class*="-tag "],[class$=-tags],[class*="-tags "],[class$=-hint],[class*="-hint "],[class$=-stat],[class*="-stat "],[class$=-stats],[class*="-stats "],[class$=-name],[class*="-name "]{cursor:default;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable],pre,code,.mono{cursor:text;user-select:text;-webkit-user-select:text}input,textarea{caret-color:var(--accent)}a{color:var(--accent);text-decoration:none}#main-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable}:not(:defined){display:none}print-button:has(button),download-button:has(button){position:absolute;right:.5rem;z-index:1000;width:30px;height:30px;& button{display:flex;width:100%;height:100%;background:transparent;color:var(--muted);border:0;border-radius:6px;font-size:1rem;line-height:1;font-family:inherit;align-items:center;justify-content:center;transition:color .12s,background .12s;&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}& svg{display:block}}}print-button{top:calc(.85rem + 30px)}download-button{top:calc(1.2rem + 60px)}@media print{print-button,download-button{display:none!important}}@media(display-mode:standalone){#main-content{border-top:1px solid var(--border)}}@media(display-mode:window-controls-overlay){:root{--wco-right-toolbar: calc(100vw - env(titlebar-area-x, 0px) - env(titlebar-area-width, 100vw)) }body{-webkit-app-region:drag;app-region:drag}.findings-content,.tree-view,.tree-view-table,.packages-list,.packages-details,.bundles-slide-body{-webkit-app-region:no-drag;app-region:no-drag}button,canvas,code,input,pre,select,summary,textarea,a[href],dialog,bundle-terminal,finding-card,finding-row,finding-table,[role=button],[tabindex]:not([tabindex="-1"]),[draggable=true],[contenteditable],.mono,[data-select-package],[data-select-repository],[data-tree-select]{-webkit-app-region:no-drag;app-region:no-drag}theme-toggle,print-button,download-button{top:calc(env(titlebar-area-height,33px) + .35rem)}theme-toggle{right:.5rem}print-button{right:calc(.85rem + 30px)}download-button{right:calc(.5rem + 2*(30px + .35rem))}#main-content{border-top:0;position:relative;z-index:1}body:after{content:"";position:fixed;pointer-events:none;--halo-bleed-x: calc(var(--wco-right-toolbar) * 1.8);--halo-bleed-y: calc(env(titlebar-area-height, 33px)*2.2) ;top:calc(-1 * var(--halo-bleed-y));right:calc(-1 * var(--halo-bleed-x));width:calc(var(--wco-right-toolbar) + 2 * var(--halo-bleed-x));height:calc(env(titlebar-area-height,33px) + 2 * var(--halo-bleed-y));filter:blur(8px);background:radial-gradient(ellipse calc(var(--wco-right-toolbar) / 2 + var(--halo-bleed-x)) calc(env(titlebar-area-height,33px) / 2 + var(--halo-bleed-y)) at 50% 50%,var(--theme-bar) 0%,var(--theme-bar) 30%,rgb(from var(--theme-bar) r g b / .72) 46%,rgb(from var(--theme-bar) r g b / .38) 62%,rgb(from var(--theme-bar) r g b / .15) 78%,rgb(from var(--theme-bar) r g b / .04) 90%,transparent 100%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.file-icon.brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.file-icon.brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.file-icon.brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.file-icon.brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}dialog{margin-top:5rem}.origin-migration-dialog{border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:1.1rem 1.25rem 1rem;max-width:560px;width:min(94vw,560px);margin-inline:auto;box-shadow:0 20px 60px #00000059;&::backdrop{background:rgb(from var(--theme-bar) r g b / .55);backdrop-filter:blur(2px)}.om-head h3{margin:0 0 .35rem;font-size:1rem;font-weight:600}.om-head p{margin:0 0 .9rem;color:var(--muted);font-size:.82rem}.om-body p{margin:0 0 .7rem;font-size:.85rem;line-height:1.45}& code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;padding:1px .3rem;background:rgb(from var(--text) r g b / .06);border-radius:3px;word-break:break-all}.om-link{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;padding:1px .3rem;background:rgb(from var(--accent) r g b / .1);border-radius:3px;word-break:break-all;color:var(--accent);text-decoration:underline;&:hover{filter:brightness(1.15)}}.om-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--border)}.om-actions button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:5px;padding:.35rem .9rem;font:inherit;font-size:.8rem;&:hover{border-color:var(--accent);color:var(--accent)}&.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}&.primary:hover{filter:brightness(1.08)}}}#lock-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:rgb(from var(--bg) r g b / .85);backdrop-filter:blur(10px);&[hidden]{display:none}.lock-overlay-card{max-width:28rem;padding:2rem 2.5rem;text-align:center;background:var(--surface, #1a1a1a);border:1px solid var(--border, #333);border-radius:12px;box-shadow:0 12px 48px #0006}.lock-overlay-icon{color:var(--accent, #58a6ff);margin-bottom:1rem;display:flex;justify-content:center}.lock-overlay-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--text)}.lock-overlay-body{font-size:.9rem;color:var(--muted, #999);margin-bottom:1.5rem;line-height:1.5}.lock-overlay-button{padding:.6rem 1.25rem;font-size:.95rem;font-weight:500;background:var(--accent, #58a6ff);color:var(--bg, #121212);border:0;border-radius:6px;&:hover{filter:brightness(1.1)}&:focus-visible{outline:2px solid currentcolor;outline-offset:3px}&:disabled{opacity:.6;cursor:wait}}.lock-overlay-error{color:light-dark(#c33,#f87171);font-size:.85rem;margin-bottom:1rem;line-height:1.4;&[hidden]{display:none}}.lock-overlay-footer{margin-top:1.5rem;font-size:.8rem;color:var(--muted, #999);& a{color:light-dark(#888,#aaa);text-decoration:underline;&:hover{color:var(--text)}}}}#styled-tooltip{position:fixed;background:#1c1c1cf2;backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:5px;padding:3px 8px;font-size:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);pointer-events:none;white-space:pre;z-index:200;box-shadow:var(--shadow-glass);opacity:0;transition:opacity .08s;&.visible{opacity:1}}body.theme-light #styled-tooltip{background:#f6f8faf5}body.theme-pink #styled-tooltip{background:#ffe0f0f5}#drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:2rem;transition:background .12s ease-out;&.hover{background:var(--surface-active)}&.hidden{display:none}}.drop-prompt{text-align:center;color:var(--muted);max-width:600px;.drop-prompt-intro{color:var(--text);font-size:1.05rem;line-height:1.45;margin-bottom:.5rem}& p{font-size:.95rem}}.drop-prompt-action{background:transparent;border:0;padding:0;margin:0;font:inherit;color:var(--accent);cursor:inherit;&:hover{color:color-mix(in srgb,var(--accent) 80%,var(--text))}&:active{opacity:1}&:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}}.drop-supported{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.25rem 1.5rem;margin-top:1.75rem;text-align:left;pointer-events:none}.drop-supported-section{& h2{font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.55rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}& ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}& li{display:flex;align-items:center;gap:.55rem;color:var(--text);font-size:.9rem}}.drop-supported-icon{display:inline-flex;width:20px;height:20px;flex-shrink:0;.file-icon{width:20px;height:20px;color:var(--muted)}}.drop-supported-label{line-height:1}#report{display:none;padding:1rem 1.5rem;width:100%;box-sizing:border-box;&.active{display:flex;flex-direction:column;min-height:100%;flex-shrink:0;view-transition-name:report-view;&:has(.bundles-view,.packages-view,.findings-content){flex-shrink:1}}& header.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;max-width:1200px;width:100%;margin-bottom:1.125rem;.page-title{flex:1;min-width:0}.page-title h1{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.file-chip{display:inline-flex;align-items:center;gap:.375rem;min-height:24px;box-sizing:border-box;padding:.125rem .5rem .125rem .4rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:500}.file-chip svg{flex-shrink:0}.meta-row{color:var(--muted);font-size:.75rem;display:flex;gap:.625rem;align-items:center;flex-wrap:wrap}.meta-row .sep{width:3px;height:3px;background:var(--muted);opacity:.55;border-radius:50%;flex-shrink:0}.meta-row .status-bar{display:inline-flex;width:200px;height:8px;border-radius:3px;overflow:hidden;background:var(--border);vertical-align:middle}.meta-row .status-seg{display:block;height:100%;flex-basis:0;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.meta-row .tag{display:inline-flex;align-items:center;padding:1px .375rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;white-space:nowrap}.files-toggle-btn{display:inline-flex;align-items:center;min-height:24px;box-sizing:border-box;padding:.125rem .5rem;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:999px;font-family:inherit;font-size:.72rem;font-weight:500;transition:border-color .12s,color .12s,background .12s;&:hover{border-color:var(--accent);color:var(--text)}&.active{border-color:var(--accent);color:var(--accent);background:var(--surface-active)}}.report-sync-badge{display:inline-flex;align-items:center;gap:.375rem;min-height:24px;box-sizing:border-box;margin-left:auto;padding:.125rem .5rem .125rem .4rem;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:999px;font-family:inherit;font-size:.72rem;font-weight:500;cursor:default;flex-shrink:0;.sync-badge-icon{flex-shrink:0}&[data-status=cloud]{border-color:var(--accent);color:var(--accent)}.sync-badge-chunk{display:inline-flex;align-items:center;gap:.25rem;background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:inherit}.sync-badge-chunk.cloud{color:var(--accent)}.sync-badge-chunk.local{color:var(--muted)}.sync-badge-divider{width:1px;height:14px;margin:0 .125rem;background:var(--border)}&.report-sync-badge-clickable:hover[data-status=local]{border-color:var(--accent);color:var(--text)}}}}@media(width<=1530px){#report header.page-head{padding-right:56px;box-sizing:border-box}}@media(display-mode:window-controls-overlay){#report header.page-head{padding-right:min(calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw)),max(0px,calc(1508px - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw))))}}#bundles-slot,#packages-slot,#repositories-slot{display:contents}.bundles-view.bundles-slide-view,.packages-view.packages-slide-view{max-width:none;display:flex;flex-direction:column;flex:1;min-height:0}.bundles-slide-bar{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;margin-bottom:1rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);flex-shrink:0}@media(display-mode:window-controls-overlay){.bundles-slide-bar{margin-right:var(--wco-right-toolbar)}}.bundles-slide-icon{flex-shrink:0;display:inline-flex;align-items:center;color:var(--muted)}.bundles-slide-icon>svg{display:block}.bundles-slide-back{flex-shrink:0;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .55rem;font-family:inherit;font-size:.8rem;&:hover{border-color:var(--accent);color:var(--accent)}}.bundles-slide-title{flex:1;min-width:0}.bundles-slide-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-slide-integrity{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-slide-tabs{display:flex;gap:.25rem;flex-shrink:0}.bundles-slide-body{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.bundles-slide-body-overview{display:flex;flex-direction:column;font-size:.78rem;overflow:hidden}.bundles-overview{display:flex;flex-direction:column;flex:1;min-height:0}.bundles-overview-summary{padding:.75rem .75rem 0;flex-shrink:0}.bundles-overview-columns{display:flex;gap:.75rem;padding:.75rem;flex:1;min-height:0}@media(width<1200px){.bundles-overview-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.bundles-overview-col{flex:initial}.bundles-overview-col:nth-child(1){grid-column:1;grid-row:1 / 3}.bundles-overview-col:nth-child(2){grid-column:2;grid-row:1 / 3}.bundles-overview-col:nth-child(2):has(~.bundles-overview-col){grid-row:2}.bundles-overview-col:nth-child(3){grid-column:2;grid-row:1}}.bundles-overview-col{flex:1;min-width:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:6px;background:var(--bg);overflow:hidden}.bundles-overview-col-head{padding:.4rem .55rem;border-bottom:1px solid var(--border);color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--surface)}.bundles-overview-col-count{color:var(--text);font-weight:600;font-size:.72rem;letter-spacing:0;font-variant-numeric:tabular-nums}.bundles-overview-col-body{padding:.55rem;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable;flex:1;min-height:0}.bundles-overview-col-body--list{padding:.25rem .175rem}.bundles-overview-col-empty{margin:0;color:var(--muted);font-size:.78rem;font-style:italic}.bundles-slide-body>.bundle-graph-slot,.bundles-slide-body>.bundle-terminal-slot{display:flex;flex-direction:column;flex:1;min-height:0}.bundles-slide-body>.bundle-graph-slot>graph-layout{flex:1;min-height:0;border:none;border-radius:0;box-shadow:none;margin-bottom:0;background:transparent}.bundles-slide-body>.bundle-issues{padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable}.bundles-slide-body>.bundle-code-view{display:flex;flex:1;min-height:0;background:var(--bg)}.bundle-code-rail{flex-shrink:0;width:320px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.bundle-code-rail-head{display:flex;align-items:baseline;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.bundle-code-rail-label{text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;color:var(--muted);font-weight:600}.bundle-code-rail-count{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}.bundle-code-rail-prefix{padding:.25rem .75rem;font-size:.68rem;color:var(--muted);border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-code-rail-body{flex:1;min-height:0;overflow:auto;-webkit-app-region:no-drag;app-region:no-drag;padding:.35rem .25rem .5rem}bundle-code-search{margin:.35rem .5rem;padding:0 .2rem 0 .45rem;display:flex;align-items:center;background:rgb(from var(--text) r g b / .04);border:1px solid var(--border);border-radius:5px;transition:background .12s,border-color .12s;&:has(input:focus){border-color:var(--accent, #2563eb);background:rgb(from var(--text) r g b / .06)}}.bundle-code-search-icon{flex-shrink:0;color:var(--muted);pointer-events:none;margin-right:.35rem}.bundle-code-search-input{flex:1;min-width:0;padding:.3rem 0;background:transparent;color:var(--text);border:0;outline:none;font:inherit;font-size:.78rem;&::placeholder{color:var(--muted)}&:focus::placeholder{color:transparent}&::-webkit-search-cancel-button{display:none}}.bundle-code-search-clear{flex-shrink:0;width:1rem;height:1rem;display:grid;place-items:center;padding:0;background:transparent;border:0;border-radius:2px;color:var(--muted);font:inherit;font-size:.9rem;line-height:1;margin-right:.15rem}.bundle-code-search-clear:hover{color:var(--text);background:rgb(from var(--text) r g b / .08)}.bundle-code-search-modes{flex-shrink:0;display:inline-flex;align-items:center;margin-left:.25rem}.bundle-code-search-mode{flex-shrink:0;width:20px;height:20px;display:grid;place-items:center;background:transparent;color:var(--muted);border:0;border-radius:3px;padding:0;transition:background .12s,color .12s;+&{margin-left:2px}& svg{width:13px;height:13px}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .08)}&.active{color:var(--accent, #2563eb);background:rgb(from var(--text) r g b / .1)}}.bundle-code-search-empty,.bundle-code-search-hint{padding:.75rem .5rem;color:var(--muted);font-size:.75rem}.bundle-code-search-summary{padding:.25rem .5rem .5rem;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.bundle-code-search-results{padding:0 .25rem}.bundle-code-search-file{margin-bottom:.35rem;border-bottom:1px solid var(--border);padding-bottom:.25rem}.bundle-code-search-file:last-child{border-bottom:none}.bundle-code-search-file-name{display:block;width:100%;text-align:left;background:transparent;border:0;padding:.25rem .35rem;color:var(--text);font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:3px}.bundle-code-search-file-name:hover{background:var(--bg)}.bundle-code-search-file.current .bundle-code-search-file-name{background:color-mix(in oklch,var(--accent, #2563eb) 18%,var(--bg))}.bundle-code-search-hits{list-style:none;margin:0;padding:0 0 0 .25rem}.bundle-code-search-hit{padding:0}.bundle-code-search-hit-link{display:flex;align-items:baseline;gap:.35rem;width:100%;text-align:left;background:transparent;border:0;padding:.15rem .35rem;color:var(--muted);font:inherit;border-radius:3px}.bundle-code-search-hit-link:hover{background:var(--bg);color:var(--text)}.bundle-code-search-hit-ln{flex-shrink:0;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;color:var(--muted);min-width:2.5ch;text-align:right}.bundle-code-search-hit-text{flex:1;min-width:0;font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.bundle-code-search-issues{list-style:none;margin:0;padding:0}.bundle-code-search-issue{padding:0}.bundle-code-search-issue.current .bundle-code-search-issue-link{background:color-mix(in oklch,var(--accent, #2563eb) 18%,var(--bg))}.bundle-code-search-issue-link{display:flex;flex-direction:column;gap:.15rem;width:100%;text-align:left;background:transparent;border:0;padding:.35rem .4rem;border-radius:3px;font:inherit;border-bottom:1px solid var(--border)}.bundle-code-search-issue-link:hover{background:var(--bg)}.bundle-code-search-issue:last-child .bundle-code-search-issue-link{border-bottom:none}.bundle-code-search-issue-row{display:flex;align-items:center;gap:.4rem;min-width:0}.bundle-code-search-issue-sev{flex-shrink:0;text-transform:uppercase;font-size:.55rem;font-weight:700;letter-spacing:.06em;padding:1px .3rem;border-radius:3px;color:#000;white-space:nowrap;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-code-search-issue-path{flex:1;min-width:0;font-size:.68rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-code-search-issue-desc{font-size:.7rem;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.bundle-code-tree{list-style:none;margin:0;padding:0 0 0 .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.bundle-code-tree.root{padding-left:0}.bundle-code-tree-dir>details>summary{padding:.15rem 0 .15rem .25rem;color:var(--text);user-select:none;list-style:none}.bundle-code-tree-dir>details>summary::-webkit-details-marker{display:none}.bundle-code-tree-dir>details>summary:before{content:"\25b8 ";color:var(--muted)}.bundle-code-tree-dir>details[open]>summary:before{content:"\25be "}.bundle-code-tree-file{padding:0}.bundle-code-tree-link{display:flex;align-items:center;gap:.35rem;width:100%;text-align:left;background:transparent;border:0;padding:.15rem .25rem .15rem .9rem;color:var(--muted);font:inherit;border-radius:3px}.bundle-code-tree-link:hover{background:var(--bg);color:var(--text)}.bundle-code-tree-link.current{background:color-mix(in oklch,var(--accent, #2563eb) 18%,var(--bg));color:var(--text)}.bundle-code-tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-code-tree-count{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6rem;font-weight:700;font-variant-numeric:tabular-nums;padding:0 .3rem;min-width:1.25rem;text-align:center;border-radius:7px;color:#000;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-code-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.bundle-code-main-bar{flex-shrink:0;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--surface)}.bundle-code-main-path{font-size:.8rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.bundle-code-main-body{flex:1;min-height:0;display:flex;background:var(--bg)}.bundle-code-main-body>.bundle-source-code-wrap{flex:1;min-width:0;overflow:auto;-webkit-app-region:no-drag;app-region:no-drag}.bundle-code-placeholder,.bundle-code-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem;padding:2rem}.bundle-issues-summary{color:var(--muted);font-size:.72rem;margin-bottom:.5rem}.bundle-issues-empty{color:var(--muted);font-size:.78rem;padding:.5rem 0}.bundle-issues-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.bundle-issues-file-group{display:flex;flex-direction:column;gap:.25rem}.bundle-issues-file-header{display:flex;align-items:baseline;gap:.5rem;padding:.25rem .35rem;border-bottom:1px solid var(--border)}.bundle-issues-file-name{flex:1;min-width:0;background:transparent;border:0;padding:0;color:var(--text);font-size:.82rem;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-issues-file-name:hover{color:var(--accent, #60a5fa)}.bundle-issues-file-name-link{text-decoration:none;display:block}.bundle-issues-file-count{flex-shrink:0;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.bundle-issues-findings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.bundle-issues-finding{padding:0}.bundle-issues-finding-link{display:flex;flex-direction:column;gap:.2rem;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);padding:.35rem .5rem .4rem;font:inherit}.bundle-issues-finding-link:hover{background:var(--surface)}.bundle-issues-findings .bundle-issues-finding:last-child .bundle-issues-finding-link{border-bottom:0}.bundle-issues-finding-head{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.bundle-issues-finding-spacer{flex:1}.bundle-issues-finding-line{color:var(--muted);font-size:.72rem}.bundle-issues-finding-triage{text-transform:uppercase;font-size:.55rem;font-weight:700;letter-spacing:.06em;padding:1px .35rem;border-radius:3px;border:1px solid currentcolor;background:transparent;white-space:nowrap;&.triage-fixed{color:var(--green, #4ade80)}&.triage-invalid{color:var(--muted)}&.triage-deleted{color:var(--critical)}}.bundle-issues-finding-desc{color:var(--muted);font-size:.75rem;line-height:1.45;overflow-wrap:anywhere}.bundle-issue-sev{text-transform:uppercase;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:1px .4rem;border-radius:3px;color:#000;white-space:nowrap;flex-shrink:0;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-issue-reports{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .35rem}.bundle-issue-reports .report-chip{display:inline-flex;align-items:center;gap:.3rem;padding:0 .35rem;height:1.3rem;border:1px solid var(--border);border-radius:3px;background:transparent;color:var(--muted);font-size:.68rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;max-width:12rem}.bundle-issue-reports .report-chip:hover{border-color:var(--accent, #2563eb);color:var(--text)}.bundle-issue-reports .report-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.bundle-issue-reports .file-icon{flex-shrink:0}.bundle-issue-reports .brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.bundle-issue-reports .brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.bundle-issue-reports .brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.bundle-issue-reports .brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}.bundle-issue-reports-more{color:var(--muted);font-size:.68rem}.bundles-view{max-width:1200px;display:flex;flex-direction:column;flex:1;min-height:0;.bundles-issue-summary{display:flex;flex-wrap:wrap;gap:.25rem;margin:0 0 .5rem}.bundle-graph-slot,.bundle-terminal-slot{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}.bundle-graph-slot>graph-layout{flex:1;min-height:0;border:none;border-radius:0;box-shadow:none;margin-bottom:0;background:transparent}.bundles-detail-meta{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .65rem;margin:0 0 .75rem;& dt{color:var(--muted);font-size:.72rem;font-weight:600;align-self:center}& dd{margin:0;font-size:.78rem;word-break:break-all}& dd.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}}.bundles-overview-placeholder{padding:.75rem;color:var(--muted);font-size:.78rem;overflow-y:auto;min-height:0}.bundles-overview-placeholder.is-error{color:var(--critical)}.bundles-dist{margin:.5rem 0 .75rem}.bundles-dist-bar{display:flex;height:8px;border-radius:3px;overflow:hidden;background:var(--border)}.bundles-dist-seg{flex-basis:0;height:100%}.bundles-dist-list{list-style:none;padding:0;margin:.5rem 0 0;display:grid;grid-template-columns:max-content minmax(0,2fr) minmax(0,1fr) max-content max-content;gap:.25rem .5rem;align-items:center;font-size:.72rem;& li{display:contents}}.bundles-dist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.bundles-dist-pkg{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-dist-bar-row{display:block;height:6px;border-radius:2px;background:rgb(from var(--text) r g b / .06);overflow:hidden}.bundles-dist-bar-fill{display:block;height:100%;border-radius:2px}.bundles-dist-size,.bundles-dist-percent{color:var(--muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.bundles-sources-list{list-style:none;margin:0;padding:0;.bundles-source-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:0 .175rem;background:transparent;border:0;border-radius:3px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.4;text-align:left}.bundles-source-row:hover{background:var(--surface)}.bundles-source-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-source-size{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}}.bundles-reports-list{list-style:none;margin:0;padding:0;& li{padding:0}.bundles-report-chip{display:flex;align-items:center;gap:.4rem;width:100%;padding:0 .175rem;height:auto;border:0;border-radius:3px;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.4;max-width:none;text-align:left}.bundles-report-chip:hover{background:var(--surface)}.bundles-report-chip .report-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.bundles-report-count{flex-shrink:0;color:var(--muted);font-size:.68rem;font-variant-numeric:tabular-nums}.bundles-report-chip .file-icon{flex-shrink:0}.bundles-report-chip .brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.bundles-report-chip .brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.bundles-report-chip .brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.bundles-report-chip .brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}}&.bundles-view-empty{justify-content:center}.bundles-empty-hint{color:var(--muted);font-size:.85rem;text-align:center;margin:0}}.findings-content{max-width:1200px}.findings-content.with-details{max-width:2000px}.findings-content.with-graph{max-width:none;display:flex;flex-direction:column;flex:1;min-height:0}.findings-content.with-graph #findings-graph-slot{display:contents}.findings-content.with-graph graph-layout{flex:1;min-height:0;border-radius:6px;box-shadow:var(--shadow-glass);background:transparent;margin-bottom:0}.findings-content.with-kanban{max-width:none;display:flex;flex-direction:column;flex:1;min-height:0}.findings-content.with-kanban #findings-body-slot{flex:1;min-height:0;display:flex;flex-direction:column}.findings-content.with-kanban .toolbar{margin-bottom:.5rem}@media not print{.findings-content:not(.with-graph,.with-kanban){display:flex;flex-direction:column;flex:1;min-height:0}.findings-content:not(.with-graph,.with-kanban)>#findings-body-slot{flex:1;min-height:0}.findings-content>#findings-body-slot:not(:has(>.findings-table-layout,>.focus-view)){overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable}#report:has(>.findings-content:not(.with-graph,.with-kanban,.with-focus)){padding-bottom:0}}.findings-content.with-focus{max-width:none}.findings-content.with-focus #findings-body-slot{display:flex;flex-direction:column}.findings-content.with-focus .toolbar{margin-bottom:.5rem}body.report-fullscreen{& app-sidebar{display:none}#report header.page-head{display:none}#report{max-width:none;padding:.5rem}}.bundle-source-overlay{position:fixed;inset:0;z-index:50;background:rgb(from var(--theme-bar) r g b / .75);display:flex;align-items:stretch;justify-content:center;padding:2.5rem 1.5rem}.bundle-source-modal{display:flex;flex-direction:column;width:100%;max-width:1100px;background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 10px 40px #0000004d}.bundle-source-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--surface)}.bundle-source-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--text)}.bundle-source-close{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:4px;width:1.6rem;height:1.6rem;font-size:1rem;line-height:1;color:var(--muted)}.bundle-source-close:hover{border-color:var(--accent, #2563eb);color:var(--text)}.bundle-source-body{flex:1;min-height:0;display:flex;background:var(--bg)}.bundle-source-code-wrap{flex:1;min-width:0;overflow:auto;-webkit-app-region:no-drag;app-region:no-drag}.bundle-source-panel{flex-shrink:0;width:320px;border-left:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.bundle-source-panel-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.bundle-source-panel-sev{text-transform:uppercase;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:1px .4rem;border-radius:3px;color:#000;flex:1;white-space:nowrap;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-source-panel-line-row{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.35rem}.bundle-source-panel-meta{flex:1;min-width:0;color:var(--muted);font-size:.68rem;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-source-panel-triage{text-transform:uppercase;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:1px .4rem;border-radius:3px;border:1px solid currentcolor;background:transparent;white-space:nowrap;flex-shrink:0;&.triage-fixed{color:var(--green, #4ade80)}&.triage-invalid{color:var(--muted)}&.triage-deleted{color:var(--critical)}}.bundle-source-panel-close{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:4px;width:1.4rem;height:1.4rem;font-size:.9rem;line-height:1;color:var(--muted)}.bundle-source-panel-close:hover{border-color:var(--accent, #2563eb);color:var(--text)}.bundle-source-panel-body{flex:1;min-height:0;padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;font-size:.78rem;color:var(--text)}.bundle-source-panel-line{color:var(--muted);font-size:.72rem;flex-shrink:0}.bundle-source-panel-desc{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.bundle-source-panel-reports{margin-top:.9rem;display:flex;flex-direction:column;gap:.25rem}.bundle-source-panel-reports-label{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.15rem}.bundle-source-panel-report{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .4rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;text-align:left;.file-icon{flex-shrink:0}.report-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}}.bundle-source-panel-report:hover{border-color:var(--accent, #2563eb)}.bundle-source-empty{padding:1rem;color:var(--muted);font-size:.82rem}.bundle-source-lines{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.45;color:var(--text);tab-size:2;--lineno-width: 4ch;display:flex;align-items:flex-start;min-width:max-content}.bundle-source-lineno-col{flex-shrink:0;margin:0;padding:.5rem .25rem .5rem .5rem;user-select:none;position:sticky;left:0;background:var(--bg);border-right:1px solid var(--border);font:inherit;display:flex;flex-direction:column}.bundle-source-lineno-row{display:flex;align-items:center;justify-content:flex-end;gap:.35rem}.bundle-source-lineno-num{color:var(--muted);width:var(--lineno-width);text-align:right;font-variant-numeric:tabular-nums}.bundle-source-dot{flex-shrink:0;width:.65rem;height:.65rem;border-radius:50%;border:1px solid rgb(0 0 0 / .25);padding:0}.bundle-source-dot:hover{transform:scale(1.15)}.bundle-source-dot.active{box-shadow:0 0 0 2px var(--accent, #2563eb)}.bundle-source-dot.sev-critical{background:var(--critical)}.bundle-source-dot.sev-high{background:var(--high)}.bundle-source-dot.sev-medium{background:var(--medium)}.bundle-source-dot.sev-low{background:var(--low)}.bundle-source-dot.sev-high_bug{background:var(--high-bug)}.bundle-source-dot.sev-bug{background:var(--bug)}.bundle-source-dot.sev-informational{background:var(--info)}.bundle-source-dot-placeholder{flex-shrink:0;width:.65rem;height:.65rem}.bundle-source-code{flex:1;margin:0;padding:.5rem .75rem;white-space:pre;font:inherit;color:inherit;background:transparent;& code{font:inherit;background:transparent;padding:0}}.bundle-source-code .token.comment,.bundle-source-code .token.prolog,.bundle-source-code .token.cdata,.focus-code-source .token.comment,.focus-code-source .token.prolog,.focus-code-source .token.cdata{color:#6b7c93;font-style:italic}.bundle-source-code .token.punctuation,.focus-code-source .token.punctuation{color:var(--muted)}.bundle-source-code .token.string,.bundle-source-code .token.attr-value,.bundle-source-code .token.char,.bundle-source-code .token.regex,.focus-code-source .token.string,.focus-code-source .token.attr-value,.focus-code-source .token.char,.focus-code-source .token.regex{color:#98c379}.bundle-source-code .token.number,.bundle-source-code .token.boolean,.bundle-source-code .token.constant,.bundle-source-code .token.symbol,.focus-code-source .token.number,.focus-code-source .token.boolean,.focus-code-source .token.constant,.focus-code-source .token.symbol{color:#d19a66}.bundle-source-code .token.keyword,.bundle-source-code .token.builtin,.bundle-source-code .token.important,.bundle-source-code .token.atrule,.focus-code-source .token.keyword,.focus-code-source .token.builtin,.focus-code-source .token.important,.focus-code-source .token.atrule{color:#c678dd}.bundle-source-code .token.function,.bundle-source-code .token.class-name,.bundle-source-code .token.tag,.focus-code-source .token.function,.focus-code-source .token.class-name,.focus-code-source .token.tag{color:#61afef}.bundle-source-code .token.operator,.bundle-source-code .token.entity,.bundle-source-code .token.url,.bundle-source-code .token.attr-name,.bundle-source-code .token.selector,.focus-code-source .token.operator,.focus-code-source .token.entity,.focus-code-source .token.url,.focus-code-source .token.attr-name,.focus-code-source .token.selector{color:#56b6c2}.bundle-source-code .token.variable,.bundle-source-code .token.property,.bundle-source-code .token.parameter,.focus-code-source .token.variable,.focus-code-source .token.property,.focus-code-source .token.parameter{color:#e06c75}.bundle-source-code .token.deleted,.focus-code-source .token.deleted{color:#ef596f}.bundle-source-code .token.inserted,.focus-code-source .token.inserted{color:#98c379}.bundle-source-code .token.italic,.focus-code-source .token.italic{font-style:italic}.bundle-source-code .token.bold,.focus-code-source .token.bold{font-weight:700}.bundles-tabs{display:flex;gap:.25rem;padding:0 .25rem;margin:-.25rem 0 .5rem;border-bottom:1px solid var(--border);align-items:center}.bundles-tabs-spacer{flex:1}.bundles-tab{background:transparent;border:none;color:var(--muted);padding:.35rem .65rem;font:inherit;font-size:.72rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s;&:hover{color:var(--text)}&.active{color:var(--accent);border-bottom-color:var(--accent)}&.bundles-tab-action{color:var(--accent);&:hover{color:var(--text)}}}.packages-view{max-width:1200px;display:flex;flex-direction:column;flex:1;min-height:0;&.with-details{max-width:2000px}.packages-layout{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr);gap:1rem;flex:1;min-height:0;align-items:start;&.open{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.packages-list{margin-top:0;max-width:1200px;min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable;-webkit-app-region:no-drag;app-region:no-drag}&.open .packages-details{max-width:800px;align-self:stretch;max-height:100%}}.packages-details{background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);display:flex;flex-direction:column;min-height:0;overflow:hidden}.packages-details-bar{display:flex;align-items:center;justify-content:space-between;padding:.55rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.packages-details-label{color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.packages-details-close{background:transparent;color:var(--muted);border:0;border-radius:4px;width:22px;height:22px;display:grid;place-items:center;padding:0;font-size:1rem;line-height:1;&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}}.packages-details-body{padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;flex:1;min-height:0;font-size:.78rem}}.packages-view .packages-triage-selector{flex-shrink:0;align-self:flex-start}.packages-slide-view slide-triage-tabs{display:flex;gap:.25rem;flex-shrink:0;align-self:center}.packages-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;align-self:flex-start}.packages-toolbar .packages-search,.packages-toolbar .packages-sort{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;font:inherit;font-size:.78rem;&:focus{outline:none;border-color:var(--accent)}}.packages-toolbar .packages-search{padding:0 .55rem;min-width:12rem}.packages-toolbar .packages-sort{appearance:none;-webkit-appearance:none;padding:0 1.5rem 0 .55rem}.packages-toolbar entity-sort{position:relative;display:inline-block;&:after{content:"";position:absolute;right:.55rem;top:50%;width:.35rem;height:.35rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}}.packages-view .packages-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow:hidden;& li{display:flex;align-items:center;gap:.75rem;padding:.4rem .75rem;border-bottom:1px solid var(--border);color:var(--text);transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .04)}&:first-child{border-top-left-radius:6px;border-top-right-radius:6px}&:last-child{border-bottom:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px}&.selected{background:rgb(from var(--text) r g b / .06);outline:1px solid var(--accent);outline-offset:-1px}}.packages-dot{flex-shrink:0;width:.65rem;height:.65rem;border-radius:50%;border:1px solid rgb(from var(--text) r g b / .25)}.packages-row-text{flex:1;min-width:0;display:flex;flex-direction:column}.packages-name-line{display:flex;align-items:center;gap:.4rem;min-width:0}.packages-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.packages-version{color:var(--muted);font-weight:500;margin-left:.15rem}.packages-row-meta{color:var(--muted);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.packages-row-chips{flex-shrink:0;display:flex;flex-wrap:wrap;gap:.2rem;justify-content:flex-end}.packages-row-expand{flex-shrink:0;margin-left:.25rem;padding:.15rem .5rem .15rem .4rem;display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);font:inherit;font-size:.72rem;font-weight:500;white-space:nowrap;cursor:pointer;&:hover{border-color:var(--accent);color:var(--accent)}.packages-row-expand-chevron{display:inline-block;width:.35rem;height:.35rem;border-right:1.5px solid currentcolor;border-bottom:1.5px solid currentcolor;transform:translateY(-1px) rotate(45deg);transition:transform .15s}&.expanded .packages-row-expand-chevron{transform:translateY(2px) rotate(-135deg)}}.packages-row-other{padding-left:1.75rem;background:rgb(from var(--text) r g b / .015);.packages-name{font-weight:500}}.packages-row-issues{flex-shrink:0;margin-left:.25rem;padding:.15rem .55rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);font:inherit;font-size:.72rem;font-weight:500;white-space:nowrap;&:hover{border-color:var(--accent);color:var(--accent)}}}.packages-detail-meta{margin:0 0 .5rem;display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;font-size:.78rem;& dt{color:var(--muted)}& dd{margin:0;overflow-wrap:anywhere}}.packages-detail-chips{display:flex;flex-wrap:wrap;gap:.25rem;margin:0 0 .75rem}.packages-detail-section{margin:.75rem 0 .35rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.packages-detail-files,.packages-detail-reports{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:4px;overflow:hidden}.packages-detail-file{display:flex;align-items:baseline;gap:.5rem;padding:.25rem .5rem;border-bottom:1px solid var(--border);font-size:.72rem;&:last-child{border-bottom:none}}.packages-detail-file-path{flex:1;min-width:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.packages-detail-file-count{flex-shrink:0;color:var(--muted);font-variant-numeric:tabular-nums}.packages-detail-reports li{border-bottom:1px solid var(--border);&:last-child{border-bottom:none}}.packages-detail-report{display:flex;align-items:center;gap:.4rem;width:100%;padding:.3rem .5rem;background:transparent;border:0;color:var(--text);font:inherit;font-size:.72rem;text-align:left;transition:background .12s,color .12s;&:hover{background:rgb(from var(--text) r g b / .04);color:var(--accent)}.file-icon{flex-shrink:0}}.packages-detail-report-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::view-transition-old(report-view),::view-transition-new(report-view),::view-transition-old(root),::view-transition-new(root){animation-duration:90ms;animation-timing-function:linear}.bundles-slide-body>.bundle-advisories{padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable}.bundles-slide-body>.bundle-advisories-consent{flex:1;display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow-y:auto}.bundle-advisories-consent-card{max-width:32rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);text-align:center;user-select:none}.bundle-advisories-consent-card .mono{user-select:text}.bundle-advisories-consent-text{margin:0;color:var(--text);font-size:.82rem;line-height:1.5}.bundle-advisories-consent-text .mono{font-family:var(--font-mono, ui-monospace, monospace);font-size:.78rem}.bundle-advisories-consent-btn{padding:.4rem 1.25rem;border:0;border-radius:4px;background:var(--accent, #58a6ff);color:#fff;font-size:.85rem;font-weight:600}.bundle-advisories-consent-btn:hover{filter:brightness(1.08)}.bundle-advisories-consent-note{margin:0;color:var(--muted);font-size:.7rem}.bundle-advisories-summary{color:var(--muted);font-size:.72rem;margin-bottom:.5rem;user-select:none}.bundle-advisories-empty{color:var(--muted);font-size:.78rem;padding:.75rem}.bundle-advisories-empty.is-error{color:var(--critical)}.bundle-advisories-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.bundle-advisories-section{display:flex;flex-direction:column;gap:.25rem}.bundle-advisories-section-header{display:flex;align-items:baseline;gap:.5rem;padding:.25rem .35rem;border-bottom:1px solid var(--border)}.bundle-advisories-section-name{font-size:.82rem;font-weight:600;color:var(--text)}.bundle-advisories-section-versions{display:inline-flex;flex-wrap:wrap;gap:.25rem}.bundle-advisories-version-chip{font-family:var(--font-mono, ui-monospace, monospace);font-size:.68rem;padding:.05rem .35rem;border:1px solid var(--border);border-radius:3px;color:var(--muted)}.bundle-advisories-section-count{margin-left:auto;flex-shrink:0;color:var(--muted);font-size:.68rem}.bundle-advisories-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.bundle-advisory-row{display:flex;align-items:flex-start;gap:.65rem;padding:.25rem .6rem;border:1px solid var(--border);border-radius:4px;background:var(--surface)}.bundle-advisory-rail{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:4.5rem;padding-top:.1rem}.bundle-advisory-severity{text-transform:uppercase;letter-spacing:.04em;font-size:.6rem;font-weight:700;padding:.15rem .4rem;border-radius:3px;color:#000;&.sev-critical{background:var(--critical);color:#fff}&.sev-high{background:var(--high)}&.sev-moderate{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-info{background:var(--info);color:#fff}}.bundle-advisory-cvss-score{color:var(--muted);font-size:.62rem;letter-spacing:.02em}.bundle-advisory-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.bundle-advisory-header{display:flex;align-items:baseline;gap:.5rem}.bundle-advisory-title{flex:1;min-width:0;color:var(--text);font-size:.82rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-advisory-subrow{display:flex;align-items:baseline;gap:.75rem}.bundle-advisory-meta{flex:1;min-width:0;color:var(--muted);font-size:.7rem;display:flex;flex-wrap:wrap;gap:.65rem;align-items:baseline}.bundle-advisory-meta .mono{font-size:.68rem}.bundle-advisory-cwes{margin-left:1.25rem}.bundle-advisory-ghsa{flex-shrink:0;display:inline-flex;align-items:center;gap:.2rem;color:var(--muted);text-decoration:none;font-size:.7rem;font-family:var(--font-mono, ui-monospace, monospace);cursor:default;user-select:text}a.bundle-advisory-ghsa:hover{color:var(--accent, #60a5fa)}.bundle-advisory-ghsa-icon{flex-shrink:0;opacity:.75;user-select:none}a.bundle-advisory-ghsa:hover .bundle-advisory-ghsa-icon{opacity:1}.bundle-advisory-cwe{color:var(--muted);text-decoration:none;user-select:text;cursor:default}.bundle-advisory-cwe:hover{color:var(--accent, #60a5fa)}.bundle-advisory-cvss-vector{flex-shrink:1;min-width:0;text-align:right;color:var(--muted);font-size:.65rem;font-family:var(--font-mono, ui-monospace, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-slide-body>bundle-treemap{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--bg)}.bundle-treemap-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.bundle-treemap-title{text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600;color:var(--muted);white-space:nowrap}.bundle-treemap-sub{min-width:0;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}}.bundle-treemap-plot{position:relative;flex:1;min-height:0;overflow:hidden}.bundle-treemap-node{position:absolute;box-sizing:border-box;overflow:hidden;border-radius:2px}.bundle-treemap-dir{background:rgb(from var(--text) r g b / .04);border:1px solid rgb(from var(--text) r g b / .14)}.bundle-treemap-dirname{display:block;padding:0 4px;line-height:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.62rem;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.bundle-treemap-leaf{margin:0;padding:1px 3px;border:1px solid rgb(0 0 0 / .18);display:flex;align-items:flex-start;text-align:left}.bundle-treemap-file{cursor:pointer;transition:filter .1s ease}.bundle-treemap-file:hover{filter:brightness(1.14)}.bundle-treemap-file:focus-visible{outline:2px solid var(--text);outline-offset:-2px;z-index:2}.bundle-treemap-agg{cursor:default;font-style:italic}.bundle-treemap-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.64rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.bundle-treemap-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--muted);font-size:.85rem;text-align:center}.bundle-treemap-tooltip{position:absolute;left:0;top:0;z-index:10;min-width:150px;max-width:340px;padding:8px 10px;background:var(--surface);backdrop-filter:blur(5px);border:1px solid var(--border);border-radius:7px;box-shadow:var(--shadow-glass);pointer-events:none;opacity:0;transition:opacity .12s;&.show{opacity:1}}.bundle-treemap-tt-path{font:500 11px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);word-break:break-all;margin-bottom:4px}.bundle-treemap-tt-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.bundle-treemap-tt-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.bundle-treemap-tt-pkg{font-size:10px;color:var(--muted);word-break:break-all}.bundle-treemap-tt-meta{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.toolbar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.6rem .75rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);font-size:.825rem;& label{color:var(--muted);margin-right:.15rem}& select{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;&:focus{border-color:var(--accent);outline:none}}& select.sort-select{padding:.3rem 1.7rem .3rem .55rem;min-width:8.5rem;font-weight:500;appearance:none;-webkit-appearance:none;background:transparent}:is(analyzer-select,repo-filter,findings-sort){position:relative;display:inline-block;&:after{content:"";position:absolute;right:.7rem;top:50%;width:.35rem;height:.35rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}}& range-slider{color:var(--accent);margin:0 .25rem}.conf-vals{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-variant-numeric:tabular-nums;.dash{color:var(--muted);margin:0 .15rem}}& conf-filter{display:inline-flex;align-items:center;height:30px;box-sizing:border-box;padding:0 .55rem;gap:.5rem;background:transparent;border:1px solid var(--border);border-radius:4px;.conf-range-label{color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:.04em}& range-slider{margin:0}}& input[type=text]{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;flex:1;min-width:8rem;&:focus{border-color:var(--accent);outline:none}}.sep{border-left:1px solid var(--border);height:1.2rem}.result-count{color:var(--muted);margin-left:auto}.checkbox-label{display:inline-flex;align-items:center;gap:.25rem;color:var(--muted);& input{margin:0}}}.trash-btn{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .55rem;font-size:.8rem;font-family:inherit;&:hover{border-color:var(--accent)}&.active{border-color:var(--critical);color:var(--critical)}}.toolbar .trash-btn{margin-left:auto}triage-selector,slide-triage-tabs{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.toolbar triage-selector{margin-left:auto}.triage-state-btn{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.8rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{background:var(--surface-active)}}.triage-state-btn.active.triage-state-deleted{color:var(--critical)}.triage-state-btn.active.triage-state-fixed{color:var(--green, #4ade80)}.triage-state-btn.active.triage-state-invalid{color:var(--muted)}.triage-state-btn.active.triage-state-ignored{color:var(--accent, #2563eb)}entity-search{display:contents}view-mode-buttons{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.view-mode-btn{background:transparent;border:none;color:var(--muted);padding:.28rem .5rem;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s;font-family:inherit;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}& svg{display:block}}}source-filter{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.source-chip{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.75rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}}}.toolbar-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.search-row{display:inline-flex;align-items:center;gap:.65rem;flex:1 1 14rem;min-width:12rem}toolbar-search{display:inline-flex;align-items:center;gap:.5rem;flex:1;min-width:0;height:30px;box-sizing:border-box;padding:0 .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;&:focus-within{border-color:var(--accent)}& svg{color:var(--muted);flex-shrink:0}& input[type=text]{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);font:inherit;font-size:.8rem;padding:0;&:focus{border:0}&::placeholder{color:var(--muted)}&:focus::placeholder{color:transparent}&::-webkit-search-cancel-button{display:none}}}@media(width<=1200px){.toolbar-row.sev-row .search-row{flex-basis:100%}}.findings-content.with-details .toolbar{max-width:1200px}severity-chips{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.sev-chip{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:0;padding:0 .6rem;color:var(--muted);font-family:inherit;font-size:.8rem;transition:background .12s,color .12s;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}.sd{width:8px;height:8px;border-radius:2px;flex-shrink:0;background:currentcolor}.n{align-self:flex-start;margin:1px -5px 0;color:var(--muted);font-variant-numeric:tabular-nums;font-size:8.5px;font-weight:600;background:var(--bg);border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px}&.active{color:var(--text);.n{color:var(--text)}}&.critical .sd{background:var(--critical)}&.high .sd{background:var(--high)}&.medium .sd{background:var(--medium)}&.low .sd{background:var(--low)}&.high_bug .sd{background:var(--high-bug)}&.bug .sd{background:var(--bug)}&.informational .sd{background:var(--info)}&.critical.active{background:rgb(from var(--critical) r g b / .25)}&.high.active{background:rgb(from var(--high) r g b / .25)}&.medium.active{background:rgb(from var(--medium) r g b / .25)}&.low.active{background:rgb(from var(--low) r g b / .25)}&.high_bug.active{background:rgb(from var(--high-bug) r g b / .25)}&.bug.active{background:rgb(from var(--bug) r g b / .25)}&.informational.active{background:rgb(from var(--info) r g b / .25)}}triage-filter{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px;height:30px;gap:1px;& button{width:22px;height:22px;background:transparent;border:0;border-radius:4px;padding:0;display:grid;place-items:center;position:relative;transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .06)}&.active{background:rgb(from var(--text) r g b / .08);box-shadow:0 0 0 1px var(--border)}}.td{width:12px;height:12px;border-radius:50%;border:1.5px solid currentcolor;background:transparent;transition:background .12s}& button.active .td{background:currentcolor}.td.none{border-style:dashed;color:var(--muted)}.td.r{color:#fc5855}.td.b{color:#30aff8}.td.g{color:#68c36d}.td.x{color:#6e7278}.count{position:absolute;top:-2px;right:-2px;background:var(--bg);color:var(--muted);font-size:8.5px;font-weight:600;border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px;font-variant-numeric:tabular-nums}}.file-group{margin-bottom:1rem;&.hidden{display:none}}.file-header{font-size:.9rem;font-weight:600;padding:.5rem .75rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px 6px 0 0;display:flex;justify-content:space-between;align-items:center;& a{color:var(--text)}& a:hover{color:var(--accent)}.count{user-select:none;color:var(--muted);font-weight:400;font-size:.8rem}}.file-body{background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-top:none;border-radius:0 0 6px 6px;box-shadow:var(--shadow-glass)}.flat-group{margin-bottom:1rem;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-glass);.finding{border-bottom:none}}.flat-group-loc{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;padding:.4rem .7rem;font-size:.85rem;background:var(--surface);border-bottom:1px solid var(--border);.file{color:var(--text);font-weight:500}.file:hover{color:var(--accent)}.line-num,.meta{color:var(--muted);font-size:.8rem}.run-meta{color:var(--muted);font-size:.65rem;margin-left:auto}}.findings-table-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}.findings-table-layout.open{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.findings-table-list{min-width:0}@media not print{.findings-table-layout{grid-template-rows:minmax(0,1fr);height:100%}.findings-table-list{max-height:100%;min-height:0;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;padding-bottom:1rem}}.findings-table-details{position:sticky;top:1rem;max-height:calc(100vh - 2rem);max-width:800px;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden;display:flex;flex-direction:column}.findings-table-details-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .35rem .3rem .75rem;border-bottom:1px solid var(--border)}.findings-table-details-label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.findings-table-details-close{width:22px;height:22px;display:grid;place-items:center;background:transparent;border:0;border-radius:4px;color:var(--muted);font:500 16px/1 ui-monospace,monospace;&:hover{color:var(--accent);background:var(--surface-active)}}.findings-table-details-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);grid-template-rows:minmax(0,1fr);gap:.4rem;overflow-x:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{height:6px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-column{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden;transition:border-color .12s,background .12s}.kanban-column.drag-over{border-color:var(--accent);background:rgb(from var(--accent) r g b / .08)}.kanban-column-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .55rem;border-bottom:1px solid var(--border);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);.count{font-weight:500;font-size:.7rem;color:var(--muted);padding:0 .35rem;border-radius:999px;background:rgb(from var(--text) r g b / .08)}}.kanban-column-untriaged .kanban-column-header .label{color:var(--text)}.kanban-column-fixed .kanban-column-header .label{color:var(--green, #4ade80)}.kanban-column-invalid .kanban-column-header .label{color:var(--muted)}.kanban-column-deleted .kanban-column-header .label{color:var(--critical)}.kanban-column-ignored .kanban-column-header .label{color:var(--accent, #2563eb)}.kanban-column-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.3rem;display:flex;flex-direction:column;gap:.25rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-empty{color:var(--muted);font-size:.75rem;text-align:center;padding:.75rem .5rem;font-style:italic}.kanban-card{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"title badge" "meta meta";gap:.1rem .35rem;padding:.25rem .35rem;background:var(--bg, transparent);border-radius:4px;font-size:.75rem;cursor:grab;user-select:none;transition:background .12s,opacity .12s;&:hover{background:rgb(from var(--text) r g b / .05)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}&:active{cursor:grabbing}&.dragging{opacity:.45;cursor:grabbing}&.has-conflict{outline:1px dashed var(--accent);outline-offset:-1px}&.mark-red{background:var(--mark-red-bg)}&.mark-blue{background:var(--mark-blue-bg)}&.mark-green{background:var(--mark-green-bg)}&.mark-gray{background:var(--mark-gray-bg)}}.kanban-card .kanban-badge{grid-area:badge;align-self:start;margin-top:.05rem;padding:.05rem .25rem;min-width:1.1rem;border-radius:3px;text-align:center;font-size:.62rem;font-weight:700;line-height:1.25;user-select:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;&.sev-critical{background:var(--critical);color:#fff}&.sev-high{background:var(--high);color:#fff}&.sev-medium{background:var(--medium);color:#000}&.sev-low{background:var(--low);color:var(--badge-low-text)}&.sev-high_bug{background:var(--high-bug);color:#fff}&.sev-bug{background:var(--bug);color:#fff}&.sev-informational{background:var(--info);color:#fff}}.kanban-card .kanban-title{grid-area:title;font-size:1em;line-height:1.3;font-weight:500;color:var(--text);overflow-wrap:anywhere;min-width:0;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.kanban-card .kanban-meta{grid-area:meta;display:flex;align-items:baseline;justify-content:space-between;gap:.35rem;font-size:.65rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;.kanban-loc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.kanban-conf{flex-shrink:0;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}}.kanban-detail-backdrop{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:1rem;pointer-events:none}.kanban-detail-dim{position:fixed;inset:0;background:rgb(from var(--theme-bar) r g b / .75);pointer-events:none;view-transition-name:kanban-detail-dim}.kanban-detail-modal{position:relative;width:min(900px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);background:var(--bg, var(--surface));border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 14px #00000040;overflow:hidden;display:flex;flex-direction:column;view-transition-name:kanban-detail-modal;pointer-events:auto;&.has-conflict{border-color:var(--accent);border-style:dashed}&.mark-red{background:var(--mark-red-bg);border-color:var(--mark-red-tab-border)}&.mark-blue{background:var(--mark-blue-bg);border-color:var(--mark-blue-tab-border)}&.mark-green{background:var(--mark-green-bg);border-color:var(--mark-green-tab-border)}&.mark-gray{background:var(--mark-gray-bg);border-color:var(--mark-gray-tab-border)}}.kanban-detail-close{position:absolute;top:.25rem;right:.25rem;z-index:1;width:22px;height:22px;display:grid;place-items:center;background:transparent;border:0;border-radius:4px;color:var(--muted);font:500 16px/1 ui-monospace,monospace;cursor:pointer;&:hover{color:var(--accent);background:var(--surface-active)}}.kanban-detail-body{overflow-y:auto;overscroll-behavior:contain;padding:.5rem .5rem .4rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}:root{--kanban-clip-card-w: 180px;--kanban-clip-card-h: 56px}@keyframes kanban-clip-hide{0%{clip-path:inset(0)}to{clip-path:inset(max(0px,calc(50% - var(--kanban-clip-card-h) / 2)) max(0px,calc(50% - var(--kanban-clip-card-w) / 2)))}}@keyframes kanban-clip-reveal{0%{clip-path:inset(max(0px,calc(50% - var(--kanban-clip-card-h) / 2)) max(0px,calc(50% - var(--kanban-clip-card-w) / 2)))}to{clip-path:inset(0)}}@keyframes kanban-fade-in{0%{opacity:0}to{opacity:1}}@keyframes kanban-fade-out{0%{opacity:1}to{opacity:0}}::view-transition-group(kanban-detail-modal){z-index:2;animation-duration:.2s;animation-timing-function:cubic-bezier(.3,0,.2,1)}::view-transition-group(kanban-detail-dim){z-index:1}::view-transition-old(kanban-detail-modal),::view-transition-new(kanban-detail-modal){inset:50% auto auto 50%;translate:-50% -50%}::view-transition-old(kanban-detail-modal){animation:kanban-clip-hide .16s cubic-bezier(.4,0,1,1) forwards}::view-transition-new(kanban-detail-modal){animation:kanban-clip-reveal .18s cubic-bezier(0,0,.25,1) forwards}html.kanban-opening::view-transition-old(kanban-detail-modal){visibility:hidden}::view-transition-new(kanban-detail-dim){animation:kanban-fade-in .16s ease-out forwards}::view-transition-old(kanban-detail-dim){animation:kanban-fade-out .14s ease-in forwards}@media(prefers-reduced-motion:reduce){::view-transition-group(kanban-detail-modal),::view-transition-new(kanban-detail-modal),::view-transition-old(kanban-detail-modal),::view-transition-new(kanban-detail-dim),::view-transition-old(kanban-detail-dim){animation-duration:.01s}}.focus-view{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:.75rem;flex:1;min-height:0}.focus-main{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0 .75rem;min-width:0;min-height:0}.focus-main.with-code{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.focus-nav{display:inline-flex;align-items:center;gap:.25rem}.focus-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--text);&:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}&:disabled{opacity:.35}}.focus-pane{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:6px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.focus-card-wrapper{width:100%;margin-inline:auto;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.focus-main.with-code .focus-card-wrapper{max-width:1100px}.focus-pane-code{display:flex;flex-direction:column;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.focus-code-bar{flex-shrink:0;padding:.35rem .55rem;border-bottom:1px solid var(--border);font-size:.7rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;align-items:baseline;gap:.25rem;white-space:nowrap;overflow:hidden;.focus-code-file{overflow:hidden;text-overflow:ellipsis;color:var(--text)}.focus-code-line{color:var(--muted);font-variant-numeric:tabular-nums}}.focus-code-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:6px;height:6px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.focus-code-empty{flex:1;min-height:0;display:grid;place-items:center;color:var(--muted);font-size:.8rem;font-style:italic}.focus-code-lines{display:grid;grid-template-columns:calc(var(--lineno-width, 4ch) + 1.4rem) minmax(0,1fr);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;line-height:1.45}.focus-code-gutter{background:rgb(from var(--text) r g b / .03);border-right:1px solid var(--border);padding:.25rem 0;user-select:none}.focus-code-lineno{padding:0 .5rem 0 .35rem;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.focus-code-line-active{background:rgb(from var(--accent) r g b / .08);color:var(--accent);font-weight:600}.focus-code-source{margin:0;padding:.25rem .5rem;background:transparent;white-space:pre;overflow:visible;& code{font:inherit;background:transparent}}.focus-sidebar{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.focus-sidebar-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .55rem;border-bottom:1px solid var(--border);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);.count{font-weight:500;font-size:.7rem;color:var(--muted);padding:0 .35rem;border-radius:999px;background:rgb(from var(--text) r g b / .08);font-variant-numeric:tabular-nums}}.focus-sidebar-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.3rem;display:flex;flex-direction:column;gap:.25rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-card.focus-side-card{cursor:default;&:active{cursor:default}&.active{background:rgb(from var(--accent) r g b / .14);outline:1px solid var(--accent);outline-offset:-1px}&.active.mark-red{background:var(--mark-red-bg)}&.active.mark-blue{background:var(--mark-blue-bg)}&.active.mark-green{background:var(--mark-green-bg)}&.active.mark-gray{background:var(--mark-gray-bg)}}@media(width<=900px){.focus-view{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.focus-sidebar{max-height:40vh}}@media(width<=1200px){.focus-main.with-code{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}}.tree-view{display:flex;flex-direction:column;gap:.75rem}.tree-file{padding:.6rem .8rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);scroll-margin-top:1rem}.tree-file-header{font-size:.95rem;font-weight:600;margin-bottom:.25rem;word-break:break-all;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;.name{flex:1;min-width:0}}.tree-hashes{font-size:.65rem;color:var(--muted);margin-bottom:.35rem;word-break:break-all}.tree-code-btn{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.5rem;padding:.1rem .45rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);font:inherit;font-size:.65rem;font-weight:500;white-space:nowrap}.tree-code-btn:hover{border-color:var(--accent);color:var(--accent)}@media print{.tree-code-btn{display:none!important}}.tree-section{margin-top:.35rem;& ul{display:inline-block;list-style:none;margin:0;padding:0;vertical-align:top}& li{font-size:.85rem;padding:0;line-height:1.4}& a{color:var(--accent)}& a:hover{text-decoration:underline}.name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.8rem}}.tree-section-label{display:inline-block;min-width:6rem;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;vertical-align:top}.tree-toolbar{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:.75rem;.search-row{display:flex;flex:1 1 14rem;min-width:12rem;align-items:center;gap:.65rem}& toolbar-search{display:inline-flex;align-items:center;gap:.5rem;flex:1;min-width:0;height:30px;box-sizing:border-box;padding:0 .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;&:focus-within{border-color:var(--accent)}& svg{color:var(--muted);flex-shrink:0}& input[type=text]{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);font:inherit;font-size:.8rem;padding:0;&::placeholder{color:var(--muted)}&::-webkit-search-cancel-button{display:none}}}.result-count{color:var(--muted);font-size:.8rem;flex-shrink:0}}.tree-view,.tree-view-table{max-width:1200px}.tree-view-table.with-details{max-width:2000px}.tree-view-table.with-details>.tree-toolbar{max-width:1200px}.tree-view-table{display:flex;flex-direction:column;gap:.5rem}.tree-table-layout{display:grid;grid-template-columns:1fr;gap:.75rem;align-items:start;&.open{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.tree-table-list{background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.tree-table-row{display:flex;align-items:center;gap:.75rem;padding:.35rem .65rem;font-size:.8rem;border-bottom:1px solid var(--border);transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .04)}&:first-child{border-top-left-radius:6px;border-top-right-radius:6px}&:last-child{border-bottom:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px}&.selected{background:rgb(from var(--text) r g b / .06);outline:1px solid var(--accent);outline-offset:-1px}.tree-table-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.78rem}.tree-count-chips{flex-shrink:0}.tree-table-clean-marker{color:var(--muted);font-size:.75rem;min-width:1rem;text-align:center}.tree-table-size{flex-shrink:0;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.72rem;font-variant-numeric:tabular-nums}&.clean .tree-table-name{color:var(--muted)}}.tree-file-header .tree-file-size,.tree-detail-name .tree-detail-size{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.72rem;font-variant-numeric:tabular-nums;margin-left:.5rem}.tree-table-empty{color:var(--muted);padding:.85rem 1rem;font-size:.85rem}.tree-table-details{background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);display:flex;flex-direction:column;position:sticky;top:1rem;max-height:calc(100vh - 8rem);overflow:hidden}.tree-table-details-bar{display:flex;align-items:center;justify-content:space-between;padding:.45rem .65rem;border-bottom:1px solid var(--border);flex-shrink:0;.tree-table-details-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}}.tree-table-details-close{background:transparent;border:0;color:var(--muted);font-size:1rem;line-height:1;padding:.15rem .35rem;border-radius:3px;&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}}.tree-table-details-body{padding:.65rem .8rem;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable;flex:1;-webkit-app-region:no-drag;app-region:no-drag}.tree-detail-name{font-size:.9rem;font-weight:600;word-break:break-all;margin-bottom:.35rem;.name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace}}.tree-count-chips{display:inline-flex;gap:.25rem;flex-wrap:wrap}.tree-count-chip{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .4rem;border-radius:3px;line-height:1.3;&.critical{background:var(--critical);color:#fff}&.high{background:var(--high);color:#fff}&.medium{background:var(--medium);color:#000}&.low{background:var(--low);color:#000}&.high_bug{background:var(--high-bug);color:#fff}&.bug{background:var(--bug);color:#fff}&.informational{background:var(--info);color:#fff}}@media print{html{font-size:9pt}body{background:#fff;color:#000;line-height:1.35;display:block}.toolbar,.stats{display:none!important}graph-layout{display:none!important}#drop-zone,app-sidebar{display:none!important}#report{max-width:none;padding:0}header h1{font-size:1.2rem}#main-content{border-top:0!important}.page-head .report-sync-badge{display:none!important}.page-head repo-chip[empty]{display:none!important}a,.file-header a,.flat-group-loc .file,.flat-group-loc .file a{color:inherit}body,body.theme-light{--bg: #fff;--border: #888;--muted: #555;--text: #000;--accent: #0550ae;--green: #1a7f37;--surface: #fff;--surface-active: #fff}.page-head .file-chip,.page-head .meta-row .tag,.page-head .meta-row .repo-chip,.page-head .files-toggle-btn{background:transparent!important;border:0!important;padding:0!important;color:#000!important}.page-head .file-chip svg,.page-head .meta-row .repo-chip svg{color:#000!important}.page-head .meta-row{color:#000!important}.page-head .meta-row .repo-chip.empty,.page-head .meta-row .status-bar{display:none!important}.page-head{break-after:avoid}.file-header{break-after:avoid;font-size:.85rem}.flat-group-loc{break-after:avoid}.flat-group.multi-case .flat-group-loc .run-meta{display:none}}
1
+ *,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #121212;--theme-bar: #1a1a1b;--surface: rgb(28 28 28 / .78);--border: #2c2c2c;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--critical: #d8413a;--high: #d57422;--medium: #d29922;--low: #8b949e;--green: #3fb950;--marker-red: oklch(.68 .2 25deg);--marker-blue: oklch(.72 .15 240deg);--marker-green: oklch(.74 .15 145deg);--marker-gray: oklch(.55 .01 260deg);--high-bug: #a06c3f;--bug: #7a6d62;--info: #218bff;--surface-active: #262626;--glass-blur: blur(10px);--gradient-stop-a: rgb(159 122 234 / .07);--gradient-stop-b: rgb(248 81 73 / .05);--gradient-stop-c: rgb(63 185 80 / .04);--shadow-glass: 0 1px 2px rgb(0 0 0 / .18);--graph-canvas-bg: #0c0c0c;--graph-hover-bg: rgb(255 255 255 / .04);--graph-divider: rgb(60 60 60 / .5);--mark-red-bg: #6b1820;--mark-red-tab-border: #6b1820;--mark-blue-bg: #1a2f5a;--mark-blue-tab-border: #1a2f5a;--mark-green-bg: #1a4a2a;--mark-green-tab-border: #1a4a2a;--mark-gray-bg: #2a2f37;--mark-gray-tab-border: #2a2f37;--badge-low-text: #000;accent-color:var(--accent);color-scheme:dark;scrollbar-color:var(--border) transparent;scrollbar-width:thin}body.theme-light{color-scheme:light;--bg: #fff;--theme-bar: #f6f6fa;--surface: rgb(246 248 250 / .72);--border: #d1d9e0;--text: #1f2328;--muted: #59636e;--accent: #0969da;--critical: #cf222e;--high: #bc4c00;--medium: #f0c040;--low: #6e7781;--green: #1a7f37;--high-bug: #a85a14;--bug: #6b5e52;--info: #218bff;--surface-active: #ddf4ff;--gradient-stop-a: rgb(124 58 237 / .1);--gradient-stop-b: rgb(207 34 46 / .06);--gradient-stop-c: rgb(26 127 55 / .05);--shadow-glass: 0 1px 2px rgb(0 0 0 / .04);--graph-canvas-bg: #f6f8fa;--graph-hover-bg: rgb(0 0 0 / .04);--graph-divider: rgb(208 215 222 / .7);--mark-red-bg: #ffc1bd;--mark-red-tab-border: #ff8182;--mark-blue-bg: #a5d6ff;--mark-blue-tab-border: #54aeff;--mark-green-bg: #aceebb;--mark-green-tab-border: #4ac26b;--mark-gray-bg: #d0d7de;--mark-gray-tab-border: #8c959f;--badge-low-text: #fff;.tree-view .tree-count-chip.low{color:#fff}}body.theme-green{color-scheme:dark;--bg: #050a05;--theme-bar: #0a140a;--surface: rgb(15 30 15 / .78);--border: #1a3a1a;--text: #41ff41;--muted: #4dac4d;--accent: #0f6;--critical: #ff5a3d;--high: #ffa030;--medium: #ffd34a;--low: #4dac4d;--green: #00ff41;--high-bug: #b58148;--bug: #6a7a6a;--info: #56c3ff;--surface-active: #15301a;--gradient-stop-a: rgb(0 255 65 / .08);--gradient-stop-b: rgb(0 255 100 / .05);--gradient-stop-c: rgb(0 200 60 / .04);--shadow-glass: 0 1px 2px rgb(0 0 0 / .35);--graph-canvas-bg: #020802;--graph-hover-bg: rgb(0 255 65 / .06);--graph-divider: rgb(65 255 65 / .25);font-family:ui-monospace,Cascadia Code,JetBrains Mono,Source Code Pro,Menlo,Consolas,monospace;text-shadow:0 0 6px rgb(0 255 65 / .25)}body.theme-pink{color-scheme:light;--bg: #ffebf4;--theme-bar: #ffe4ee;--surface: rgb(255 224 240 / .72);--border: #ffb3d6;--text: #5c0040;--muted: #a13a72;--accent: #ff1a85;--critical: #cf222e;--high: #bc4c00;--medium: #f0c040;--low: #a13a72;--green: #1d8c3c;--high-bug: #a85a14;--bug: #8c5e6c;--info: #218bff;--surface-active: #ffd1e8;--gradient-stop-a: rgb(255 105 180 / .14);--gradient-stop-b: rgb(255 20 147 / .08);--gradient-stop-c: rgb(255 192 203 / .06);--shadow-glass: 0 1px 2px rgb(0 0 0 / .04);--graph-canvas-bg: #fff0f7;--graph-hover-bg: rgb(0 0 0 / .04);--graph-divider: rgb(208 132 178 / .5);--mark-red-bg: #ffc1bd;--mark-red-tab-border: #ff8182;--mark-blue-bg: #a5d6ff;--mark-blue-tab-border: #54aeff;--mark-green-bg: #aceebb;--mark-green-tab-border: #4ac26b;--mark-gray-bg: #d0d7de;--mark-gray-tab-border: #8c959f;--badge-low-text: #fff;font-family:Comic Sans MS,Chalkboard SE,Comic Neue,cursive}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:radial-gradient(ellipse 90% 60% at 0% 0%,var(--gradient-stop-a),transparent 60%),radial-gradient(ellipse 70% 50% at 100% 0%,var(--gradient-stop-b),transparent 60%),radial-gradient(ellipse 80% 60% at 50% 110%,var(--gradient-stop-c),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);line-height:1.5;display:flex;height:100vh;margin:0;overflow:hidden;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;overscroll-behavior:none}@media(resolution>=2dppx){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}::selection{background:rgb(from var(--accent) r g b / .35)}button:not(:disabled):active,[role=button]:not([aria-disabled=true]):active,[role=tab]:active,.tab:active{opacity:.7}button,summary,select,label,[role=button],[role=tab],.tab,.tabs,.toolbar,.page-head,h1,h2,h3,h4,h5,h6,[class$=-title],[class*="-title "],[class$=-meta],[class*="-meta "],[class$=-label],[class*="-label "],[class$=-header],[class*="-header "],[class$=-section],[class*="-section "],[class$=-chip],[class*="-chip "],[class$=-chips],[class*="-chips "],[class$=-count],[class*="-count "],[class$=-bar],[class*="-bar "],[class$=-tag],[class*="-tag "],[class$=-tags],[class*="-tags "],[class$=-hint],[class*="-hint "],[class$=-stat],[class*="-stat "],[class$=-stats],[class*="-stats "],[class$=-name],[class*="-name "]{cursor:default;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable],pre,code,.mono{cursor:text;user-select:text;-webkit-user-select:text}input,textarea{caret-color:var(--accent)}a{color:var(--accent);text-decoration:none}#main-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable}:not(:defined){display:none}print-button:has(button),download-button:has(button){position:absolute;right:.5rem;z-index:1000;width:30px;height:30px;& button{display:flex;width:100%;height:100%;background:transparent;color:var(--muted);border:0;border-radius:6px;font-size:1rem;line-height:1;font-family:inherit;align-items:center;justify-content:center;transition:color .12s,background .12s;&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}& svg{display:block}}}print-button{top:calc(.85rem + 30px)}download-button{top:calc(1.2rem + 60px)}@media print{print-button,download-button{display:none!important}}@media(display-mode:standalone){#main-content{border-top:1px solid var(--border)}}@media(display-mode:window-controls-overlay){:root{--wco-right-toolbar: calc(100vw - env(titlebar-area-x, 0px) - env(titlebar-area-width, 100vw)) }body{-webkit-app-region:drag;app-region:drag}.findings-content,.tree-view,.tree-view-table,.packages-list,.packages-details,.bundles-slide-body{-webkit-app-region:no-drag;app-region:no-drag}button,canvas,code,input,pre,select,summary,textarea,a[href],dialog,bundle-terminal,finding-card,finding-row,finding-table,[role=button],[tabindex]:not([tabindex="-1"]),[draggable=true],[contenteditable],.mono,[data-select-package],[data-select-repository],[data-tree-select]{-webkit-app-region:no-drag;app-region:no-drag}theme-toggle,print-button,download-button{top:calc(env(titlebar-area-height,33px) + .35rem)}theme-toggle{right:.5rem}print-button{right:calc(.85rem + 30px)}download-button{right:calc(.5rem + 2*(30px + .35rem))}#main-content{border-top:0;position:relative;z-index:1}body:after{content:"";position:fixed;pointer-events:none;--halo-bleed-x: calc(var(--wco-right-toolbar) * 1.8);--halo-bleed-y: calc(env(titlebar-area-height, 33px)*2.2) ;top:calc(-1 * var(--halo-bleed-y));right:calc(-1 * var(--halo-bleed-x));width:calc(var(--wco-right-toolbar) + 2 * var(--halo-bleed-x));height:calc(env(titlebar-area-height,33px) + 2 * var(--halo-bleed-y));filter:blur(8px);background:radial-gradient(ellipse calc(var(--wco-right-toolbar) / 2 + var(--halo-bleed-x)) calc(env(titlebar-area-height,33px) / 2 + var(--halo-bleed-y)) at 50% 50%,var(--theme-bar) 0%,var(--theme-bar) 30%,rgb(from var(--theme-bar) r g b / .72) 46%,rgb(from var(--theme-bar) r g b / .38) 62%,rgb(from var(--theme-bar) r g b / .15) 78%,rgb(from var(--theme-bar) r g b / .04) 90%,transparent 100%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.file-icon.brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.file-icon.brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.file-icon.brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.file-icon.brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}dialog{margin-top:5rem}.origin-migration-dialog{border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:1.1rem 1.25rem 1rem;max-width:560px;width:min(94vw,560px);margin-inline:auto;box-shadow:0 20px 60px #00000059;&::backdrop{background:rgb(from var(--theme-bar) r g b / .55);backdrop-filter:blur(2px)}.om-head h3{margin:0 0 .35rem;font-size:1rem;font-weight:600}.om-head p{margin:0 0 .9rem;color:var(--muted);font-size:.82rem}.om-body p{margin:0 0 .7rem;font-size:.85rem;line-height:1.45}& code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;padding:1px .3rem;background:rgb(from var(--text) r g b / .06);border-radius:3px;word-break:break-all}.om-link{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;padding:1px .3rem;background:rgb(from var(--accent) r g b / .1);border-radius:3px;word-break:break-all;color:var(--accent);text-decoration:underline;&:hover{filter:brightness(1.15)}}.om-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--border)}.om-actions button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:5px;padding:.35rem .9rem;font:inherit;font-size:.8rem;&:hover{border-color:var(--accent);color:var(--accent)}&.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}&.primary:hover{filter:brightness(1.08)}}}#lock-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:rgb(from var(--bg) r g b / .85);backdrop-filter:blur(10px);&[hidden]{display:none}.lock-overlay-card{max-width:28rem;padding:2rem 2.5rem;text-align:center;background:var(--surface, #1a1a1a);border:1px solid var(--border, #333);border-radius:12px;box-shadow:0 12px 48px #0006}.lock-overlay-icon{color:var(--accent, #58a6ff);margin-bottom:1rem;display:flex;justify-content:center}.lock-overlay-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--text)}.lock-overlay-body{font-size:.9rem;color:var(--muted, #999);margin-bottom:1.5rem;line-height:1.5}.lock-overlay-button{padding:.6rem 1.25rem;font-size:.95rem;font-weight:500;background:var(--accent, #58a6ff);color:var(--bg, #121212);border:0;border-radius:6px;&:hover{filter:brightness(1.1)}&:focus-visible{outline:2px solid currentcolor;outline-offset:3px}&:disabled{opacity:.6;cursor:wait}}.lock-overlay-error{color:light-dark(#c33,#f87171);font-size:.85rem;margin-bottom:1rem;line-height:1.4;&[hidden]{display:none}}.lock-overlay-footer{margin-top:1.5rem;font-size:.8rem;color:var(--muted, #999);& a{color:light-dark(#888,#aaa);text-decoration:underline;&:hover{color:var(--text)}}}}#styled-tooltip{position:fixed;background:#1c1c1cf2;backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:5px;padding:3px 8px;font-size:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);pointer-events:none;white-space:pre;z-index:200;box-shadow:var(--shadow-glass);opacity:0;transition:opacity .08s;&.visible{opacity:1}}body.theme-light #styled-tooltip{background:#f6f8faf5}body.theme-pink #styled-tooltip{background:#ffe0f0f5}#drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:2rem;transition:background .12s ease-out;&.hover{background:var(--surface-active)}&.hidden{display:none}}.drop-prompt{text-align:center;color:var(--muted);max-width:600px;.drop-prompt-intro{color:var(--text);font-size:1.05rem;line-height:1.45;margin-bottom:.5rem}& p{font-size:.95rem}}.drop-prompt-action{background:transparent;border:0;padding:0;margin:0;font:inherit;color:var(--accent);cursor:inherit;&:hover{color:color-mix(in srgb,var(--accent) 80%,var(--text))}&:active{opacity:1}&:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}}.drop-supported{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.25rem 1.5rem;margin-top:1.75rem;text-align:left;pointer-events:none}.drop-supported-section{& h2{font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.55rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}& ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}& li{display:flex;align-items:center;gap:.55rem;color:var(--text);font-size:.9rem}}.drop-supported-icon{display:inline-flex;width:20px;height:20px;flex-shrink:0;.file-icon{width:20px;height:20px;color:var(--muted)}}.drop-supported-label{line-height:1}#report{display:none;padding:1rem 1.5rem;width:100%;box-sizing:border-box;&.active{display:flex;flex-direction:column;min-height:100%;flex-shrink:0;view-transition-name:report-view;&:has(.bundles-view,.packages-view,.findings-content){flex-shrink:1}}& header.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;max-width:1200px;width:100%;margin-bottom:1.125rem;.page-title{flex:1;min-width:0}.page-title h1{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.file-chip{display:inline-flex;align-items:center;gap:.375rem;min-height:24px;box-sizing:border-box;padding:.125rem .5rem .125rem .4rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:500}.file-chip svg{flex-shrink:0}.meta-row{color:var(--muted);font-size:.75rem;display:flex;gap:.625rem;align-items:center;flex-wrap:wrap}.meta-row .sep{width:3px;height:3px;background:var(--muted);opacity:.55;border-radius:50%;flex-shrink:0}.meta-row .status-bar{display:inline-flex;width:200px;height:8px;border-radius:3px;overflow:hidden;background:var(--border);vertical-align:middle}.meta-row .status-seg{display:block;height:100%;flex-basis:0;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.meta-row .tag{display:inline-flex;align-items:center;padding:1px .375rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;white-space:nowrap}.files-toggle-btn{display:inline-flex;align-items:center;min-height:24px;box-sizing:border-box;padding:.125rem .5rem;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:999px;font-family:inherit;font-size:.72rem;font-weight:500;transition:border-color .12s,color .12s,background .12s;&:hover{border-color:var(--accent);color:var(--text)}&.active{border-color:var(--accent);color:var(--accent);background:var(--surface-active)}}.report-sync-badge{display:inline-flex;align-items:center;gap:.375rem;min-height:24px;box-sizing:border-box;margin-left:auto;padding:.125rem .5rem .125rem .4rem;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:999px;font-family:inherit;font-size:.72rem;font-weight:500;cursor:default;flex-shrink:0;.sync-badge-icon{flex-shrink:0}&[data-status=cloud]{border-color:var(--accent);color:var(--accent)}.sync-badge-chunk{display:inline-flex;align-items:center;gap:.25rem;background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:inherit}.sync-badge-chunk.cloud{color:var(--accent)}.sync-badge-chunk.local{color:var(--muted)}.sync-badge-divider{width:1px;height:14px;margin:0 .125rem;background:var(--border)}&.report-sync-badge-clickable:hover[data-status=local]{border-color:var(--accent);color:var(--text)}}}}@media(width<=1530px){#report header.page-head{padding-right:56px;box-sizing:border-box}}@media(display-mode:window-controls-overlay){#report header.page-head{padding-right:min(calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw)),max(0px,calc(1508px - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw))))}}#bundles-slot,#packages-slot,#repositories-slot{display:contents}.bundles-view.bundles-slide-view,.packages-view.packages-slide-view{max-width:none;display:flex;flex-direction:column;flex:1;min-height:0}.bundles-slide-bar{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;margin-bottom:1rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);flex-shrink:0}@media(display-mode:window-controls-overlay){.bundles-slide-bar{margin-right:var(--wco-right-toolbar)}}.bundles-slide-icon{flex-shrink:0;display:inline-flex;align-items:center;color:var(--muted)}.bundles-slide-icon>svg{display:block}.bundles-slide-back{flex-shrink:0;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .55rem;font-family:inherit;font-size:.8rem;&:hover{border-color:var(--accent);color:var(--accent)}}.bundles-slide-title{flex:1;min-width:0}.bundles-slide-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-slide-integrity{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-slide-tabs{display:flex;gap:.25rem;flex-shrink:0}.bundles-slide-body{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.bundles-slide-body-overview{display:flex;flex-direction:column;font-size:.78rem;overflow:hidden}.bundles-overview{display:flex;flex-direction:column;flex:1;min-height:0}.bundles-overview-summary{padding:.75rem .75rem 0;flex-shrink:0}.bundles-overview-columns{display:flex;gap:.75rem;padding:.75rem;flex:1;min-height:0}@media(width<1200px){.bundles-overview-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.bundles-overview-col{flex:initial}.bundles-overview-col:nth-child(1){grid-column:1;grid-row:1 / 3}.bundles-overview-col:nth-child(2){grid-column:2;grid-row:1 / 3}.bundles-overview-col:nth-child(2):has(~.bundles-overview-col){grid-row:2}.bundles-overview-col:nth-child(3){grid-column:2;grid-row:1}}.bundles-overview-col{flex:1;min-width:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:6px;background:var(--bg);overflow:hidden}.bundles-overview-col-head{padding:.4rem .55rem;border-bottom:1px solid var(--border);color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--surface)}.bundles-overview-col-count{color:var(--text);font-weight:600;font-size:.72rem;letter-spacing:0;font-variant-numeric:tabular-nums}.bundles-overview-col-body{padding:.55rem;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable;flex:1;min-height:0}.bundles-overview-col-body--list{padding:.25rem .175rem}.bundles-overview-col-empty{margin:0;color:var(--muted);font-size:.78rem;font-style:italic}.bundles-slide-body>.bundle-graph-slot,.bundles-slide-body>.bundle-terminal-slot{display:flex;flex-direction:column;flex:1;min-height:0}.bundles-slide-body>.bundle-graph-slot>graph-layout{flex:1;min-height:0;border:none;border-radius:0;box-shadow:none;margin-bottom:0;background:transparent}.bundles-slide-body>.bundle-issues{padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable}.bundles-slide-body>.bundle-code-view{display:flex;flex:1;min-height:0;background:var(--bg)}.bundle-code-rail{flex-shrink:0;width:320px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.bundle-code-rail-head{display:flex;align-items:baseline;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.bundle-code-rail-label{text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;color:var(--muted);font-weight:600}.bundle-code-rail-count{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}.bundle-code-rail-prefix{padding:.25rem .75rem;font-size:.68rem;color:var(--muted);border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-code-rail-body{flex:1;min-height:0;overflow:auto;-webkit-app-region:no-drag;app-region:no-drag;padding:.35rem .25rem .5rem}bundle-code-search{margin:.35rem .5rem;padding:0 .2rem 0 .45rem;display:flex;align-items:center;background:rgb(from var(--text) r g b / .04);border:1px solid var(--border);border-radius:5px;transition:background .12s,border-color .12s;&:has(input:focus){border-color:var(--accent, #2563eb);background:rgb(from var(--text) r g b / .06)}}.bundle-code-search-icon{flex-shrink:0;color:var(--muted);pointer-events:none;margin-right:.35rem}.bundle-code-search-input{flex:1;min-width:0;padding:.3rem 0;background:transparent;color:var(--text);border:0;outline:none;font:inherit;font-size:.78rem;&::placeholder{color:var(--muted)}&:focus::placeholder{color:transparent}&::-webkit-search-cancel-button{display:none}}.bundle-code-search-clear{flex-shrink:0;width:1rem;height:1rem;display:grid;place-items:center;padding:0;background:transparent;border:0;border-radius:2px;color:var(--muted);font:inherit;font-size:.9rem;line-height:1;margin-right:.15rem}.bundle-code-search-clear:hover{color:var(--text);background:rgb(from var(--text) r g b / .08)}.bundle-code-search-modes{flex-shrink:0;display:inline-flex;align-items:center;margin-left:.25rem}.bundle-code-search-mode{flex-shrink:0;width:20px;height:20px;display:grid;place-items:center;background:transparent;color:var(--muted);border:0;border-radius:3px;padding:0;transition:background .12s,color .12s;+&{margin-left:2px}& svg{width:13px;height:13px}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .08)}&.active{color:var(--accent, #2563eb);background:rgb(from var(--text) r g b / .1)}}.bundle-code-search-empty,.bundle-code-search-hint{padding:.75rem .5rem;color:var(--muted);font-size:.75rem}.bundle-code-search-summary{padding:.25rem .5rem .5rem;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.bundle-code-search-results{padding:0 .25rem}.bundle-code-search-file{margin-bottom:.35rem;border-bottom:1px solid var(--border);padding-bottom:.25rem}.bundle-code-search-file:last-child{border-bottom:none}.bundle-code-search-file-name{display:block;width:100%;text-align:left;background:transparent;border:0;padding:.25rem .35rem;color:var(--text);font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:3px}.bundle-code-search-file-name:hover{background:var(--bg)}.bundle-code-search-file.current .bundle-code-search-file-name{background:color-mix(in oklch,var(--accent, #2563eb) 18%,var(--bg))}.bundle-code-search-hits{list-style:none;margin:0;padding:0 0 0 .25rem}.bundle-code-search-hit{padding:0}.bundle-code-search-hit-link{display:flex;align-items:baseline;gap:.35rem;width:100%;text-align:left;background:transparent;border:0;padding:.15rem .35rem;color:var(--muted);font:inherit;border-radius:3px}.bundle-code-search-hit-link:hover{background:var(--bg);color:var(--text)}.bundle-code-search-hit-ln{flex-shrink:0;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;color:var(--muted);min-width:2.5ch;text-align:right}.bundle-code-search-hit-text{flex:1;min-width:0;font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.bundle-code-search-issues{list-style:none;margin:0;padding:0}.bundle-code-search-issue{padding:0}.bundle-code-search-issue.current .bundle-code-search-issue-link{background:color-mix(in oklch,var(--accent, #2563eb) 18%,var(--bg))}.bundle-code-search-issue-link{display:flex;flex-direction:column;gap:.15rem;width:100%;text-align:left;background:transparent;border:0;padding:.35rem .4rem;border-radius:3px;font:inherit;border-bottom:1px solid var(--border)}.bundle-code-search-issue-link:hover{background:var(--bg)}.bundle-code-search-issue:last-child .bundle-code-search-issue-link{border-bottom:none}.bundle-code-search-issue-row{display:flex;align-items:center;gap:.4rem;min-width:0}.bundle-code-search-issue-sev{flex-shrink:0;text-transform:uppercase;font-size:.55rem;font-weight:700;letter-spacing:.06em;padding:1px .3rem;border-radius:3px;color:#000;white-space:nowrap;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-code-search-issue-path{flex:1;min-width:0;font-size:.68rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-code-search-issue-desc{font-size:.7rem;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.bundle-code-tree{list-style:none;margin:0;padding:0 0 0 .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.bundle-code-tree.root{padding-left:0}.bundle-code-tree-dir>details>summary{padding:.15rem 0 .15rem .25rem;color:var(--text);user-select:none;list-style:none}.bundle-code-tree-dir>details>summary::-webkit-details-marker{display:none}.bundle-code-tree-dir>details>summary:before{content:"\25b8 ";color:var(--muted)}.bundle-code-tree-dir>details[open]>summary:before{content:"\25be "}.bundle-code-tree-file{padding:0}.bundle-code-tree-link{display:flex;align-items:center;gap:.35rem;width:100%;text-align:left;background:transparent;border:0;padding:.15rem .25rem .15rem .9rem;color:var(--muted);font:inherit;border-radius:3px}.bundle-code-tree-link:hover{background:var(--bg);color:var(--text)}.bundle-code-tree-link.current{background:color-mix(in oklch,var(--accent, #2563eb) 18%,var(--bg));color:var(--text)}.bundle-code-tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-code-tree-count{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6rem;font-weight:700;font-variant-numeric:tabular-nums;padding:0 .3rem;min-width:1.25rem;text-align:center;border-radius:7px;color:#000;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-code-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.bundle-code-main-bar{flex-shrink:0;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--surface)}.bundle-code-main-path{font-size:.8rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.bundle-code-main-body{flex:1;min-height:0;display:flex;background:var(--bg)}.bundle-code-main-body>.bundle-source-code-wrap{flex:1;min-width:0;overflow:auto;-webkit-app-region:no-drag;app-region:no-drag}.bundle-code-placeholder,.bundle-code-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem;padding:2rem}.bundle-issues-summary{color:var(--muted);font-size:.72rem;margin-bottom:.5rem}.bundle-issues-empty{color:var(--muted);font-size:.78rem;padding:.5rem 0}.bundle-issues-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.bundle-issues-file-group{display:flex;flex-direction:column;gap:.25rem}.bundle-issues-file-header{display:flex;align-items:baseline;gap:.5rem;padding:.25rem .35rem;border-bottom:1px solid var(--border)}.bundle-issues-file-name{flex:1;min-width:0;background:transparent;border:0;padding:0;color:var(--text);font-size:.82rem;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-issues-file-name:hover{color:var(--accent, #60a5fa)}.bundle-issues-file-name-link{text-decoration:none;display:block}.bundle-issues-file-count{flex-shrink:0;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.bundle-issues-findings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.bundle-issues-finding{padding:0}.bundle-issues-finding-link{display:flex;flex-direction:column;gap:.2rem;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);padding:.35rem .5rem .4rem;font:inherit}.bundle-issues-finding-link:hover{background:var(--surface)}.bundle-issues-findings .bundle-issues-finding:last-child .bundle-issues-finding-link{border-bottom:0}.bundle-issues-finding-head{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.bundle-issues-finding-spacer{flex:1}.bundle-issues-finding-line{color:var(--muted);font-size:.72rem}.bundle-issues-finding-triage{text-transform:uppercase;font-size:.55rem;font-weight:700;letter-spacing:.06em;padding:1px .35rem;border-radius:3px;border:1px solid currentcolor;background:transparent;white-space:nowrap;&.triage-fixed{color:var(--green, #4ade80)}&.triage-invalid{color:var(--muted)}&.triage-deleted{color:var(--critical)}}.bundle-issues-finding-desc{color:var(--muted);font-size:.75rem;line-height:1.45;overflow-wrap:anywhere}.bundle-issue-sev{text-transform:uppercase;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:1px .4rem;border-radius:3px;color:#000;white-space:nowrap;flex-shrink:0;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-issue-reports{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .35rem}.bundle-issue-reports .report-chip{display:inline-flex;align-items:center;gap:.3rem;padding:0 .35rem;height:1.3rem;border:1px solid var(--border);border-radius:3px;background:transparent;color:var(--muted);font-size:.68rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;max-width:12rem}.bundle-issue-reports .report-chip:hover{border-color:var(--accent, #2563eb);color:var(--text)}.bundle-issue-reports .report-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.bundle-issue-reports .file-icon{flex-shrink:0}.bundle-issue-reports .brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.bundle-issue-reports .brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.bundle-issue-reports .brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.bundle-issue-reports .brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}.bundle-issue-reports-more{color:var(--muted);font-size:.68rem}.bundles-view{max-width:1200px;display:flex;flex-direction:column;flex:1;min-height:0;.bundles-issue-summary{display:flex;flex-wrap:wrap;gap:.25rem;margin:0 0 .5rem}.bundle-graph-slot,.bundle-terminal-slot{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}.bundle-graph-slot>graph-layout{flex:1;min-height:0;border:none;border-radius:0;box-shadow:none;margin-bottom:0;background:transparent}.bundles-detail-meta{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .65rem;margin:0 0 .75rem;& dt{color:var(--muted);font-size:.72rem;font-weight:600;align-self:center}& dd{margin:0;font-size:.78rem;word-break:break-all}& dd.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}}.bundles-overview-placeholder{padding:.75rem;color:var(--muted);font-size:.78rem;overflow-y:auto;min-height:0}.bundles-overview-placeholder.is-error{color:var(--critical)}.bundles-dist{margin:.5rem 0 .75rem}.bundles-dist-bar{display:flex;height:8px;border-radius:3px;overflow:hidden;background:var(--border)}.bundles-dist-seg{flex-basis:0;height:100%}.bundles-dist-list{list-style:none;padding:0;margin:.5rem 0 0;display:grid;grid-template-columns:max-content minmax(0,2fr) minmax(0,1fr) max-content max-content;gap:.25rem .5rem;align-items:center;font-size:.72rem;& li{display:contents}}.bundles-dist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.bundles-dist-pkg{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-dist-bar-row{display:block;height:6px;border-radius:2px;background:rgb(from var(--text) r g b / .06);overflow:hidden}.bundles-dist-bar-fill{display:block;height:100%;border-radius:2px}.bundles-dist-size,.bundles-dist-percent{color:var(--muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.bundles-sources-list{list-style:none;margin:0;padding:0;.bundles-source-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:0 .175rem;background:transparent;border:0;border-radius:3px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.4;text-align:left}.bundles-source-row:hover{background:var(--surface)}.bundles-source-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-source-size{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}}.bundles-reports-list{list-style:none;margin:0;padding:0;& li{padding:0}.bundles-report-chip{display:flex;align-items:center;gap:.4rem;width:100%;padding:0 .175rem;height:auto;border:0;border-radius:3px;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.4;max-width:none;text-align:left}.bundles-report-chip:hover{background:var(--surface)}.bundles-report-chip .report-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.bundles-report-count{flex-shrink:0;color:var(--muted);font-size:.68rem;font-variant-numeric:tabular-nums}.bundles-report-chip .file-icon{flex-shrink:0}.bundles-report-chip .brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.bundles-report-chip .brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.bundles-report-chip .brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.bundles-report-chip .brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}}&.bundles-view-empty{justify-content:center}.bundles-empty-hint{color:var(--muted);font-size:.85rem;text-align:center;margin:0}}.findings-content{max-width:1200px}.findings-content.with-details{max-width:2000px}.findings-content.with-graph{max-width:none;display:flex;flex-direction:column;flex:1;min-height:0}.findings-content.with-graph #findings-graph-slot{display:contents}.findings-content.with-graph graph-layout{flex:1;min-height:0;border-radius:6px;box-shadow:var(--shadow-glass);background:transparent;margin-bottom:0}.findings-content.with-kanban{max-width:none;display:flex;flex-direction:column;flex:1;min-height:0}.findings-content.with-kanban #findings-body-slot{flex:1;min-height:0;display:flex;flex-direction:column}.findings-content.with-kanban .toolbar{margin-bottom:.5rem}@media not print{.findings-content:not(.with-graph,.with-kanban){display:flex;flex-direction:column;flex:1;min-height:0}.findings-content:not(.with-graph,.with-kanban)>#findings-body-slot{flex:1;min-height:0}.findings-content>#findings-body-slot:not(:has(>.findings-table-layout,>.focus-view)){overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable}#report:has(>.findings-content:not(.with-graph,.with-kanban,.with-focus)){padding-bottom:0}}.findings-content.with-focus{max-width:none}.findings-content.with-focus #findings-body-slot{display:flex;flex-direction:column}.findings-content.with-focus .toolbar{margin-bottom:.5rem}body.report-fullscreen{& app-sidebar{display:none}#report header.page-head{display:none}#report{max-width:none;padding:.5rem}}.bundle-source-overlay{position:fixed;inset:0;z-index:50;background:rgb(from var(--theme-bar) r g b / .75);display:flex;align-items:stretch;justify-content:center;padding:2.5rem 1.5rem}.bundle-source-modal{display:flex;flex-direction:column;width:100%;max-width:1100px;background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 10px 40px #0000004d}.bundle-source-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--surface)}.bundle-source-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--text)}.bundle-source-close{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:4px;width:1.6rem;height:1.6rem;font-size:1rem;line-height:1;color:var(--muted)}.bundle-source-close:hover{border-color:var(--accent, #2563eb);color:var(--text)}.bundle-source-body{flex:1;min-height:0;display:flex;background:var(--bg)}.bundle-source-code-wrap{flex:1;min-width:0;overflow:auto;-webkit-app-region:no-drag;app-region:no-drag}.bundle-source-panel{flex-shrink:0;width:320px;border-left:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.bundle-source-panel-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.bundle-source-panel-sev{text-transform:uppercase;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:1px .4rem;border-radius:3px;color:#000;flex:1;white-space:nowrap;&.sev-critical{background:var(--critical)}&.sev-high{background:var(--high)}&.sev-medium{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-high_bug{background:var(--high-bug)}&.sev-bug{background:var(--bug)}&.sev-informational{background:var(--info)}}.bundle-source-panel-line-row{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.35rem}.bundle-source-panel-meta{flex:1;min-width:0;color:var(--muted);font-size:.68rem;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-source-panel-triage{text-transform:uppercase;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:1px .4rem;border-radius:3px;border:1px solid currentcolor;background:transparent;white-space:nowrap;flex-shrink:0;&.triage-fixed{color:var(--green, #4ade80)}&.triage-invalid{color:var(--muted)}&.triage-deleted{color:var(--critical)}}.bundle-source-panel-close{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:4px;width:1.4rem;height:1.4rem;font-size:.9rem;line-height:1;color:var(--muted)}.bundle-source-panel-close:hover{border-color:var(--accent, #2563eb);color:var(--text)}.bundle-source-panel-body{flex:1;min-height:0;padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;font-size:.78rem;color:var(--text)}.bundle-source-panel-line{color:var(--muted);font-size:.72rem;flex-shrink:0}.bundle-source-panel-desc{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.bundle-source-panel-reports{margin-top:.9rem;display:flex;flex-direction:column;gap:.25rem}.bundle-source-panel-reports-label{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.15rem}.bundle-source-panel-report{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .4rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;text-align:left;.file-icon{flex-shrink:0}.report-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.brand-deepview{.bg{fill:#2563eb}.fg{fill:#fff}}.brand-claude{.bg{fill:#d97757}.fg{fill:#fff}}.brand-codex{.bg{fill:#fff;stroke:#000;stroke-width:.5}.fg{fill:#000}}.brand-vercel{.bg{fill:#000;stroke:#fff;stroke-width:.5}.fg{fill:#fff}}}.bundle-source-panel-report:hover{border-color:var(--accent, #2563eb)}.bundle-source-empty{padding:1rem;color:var(--muted);font-size:.82rem}.bundle-source-lines{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.45;color:var(--text);tab-size:2;--lineno-width: 4ch;display:flex;align-items:flex-start;min-width:max-content}.bundle-source-lineno-col{flex-shrink:0;margin:0;padding:.5rem .25rem .5rem .5rem;user-select:none;position:sticky;left:0;background:var(--bg);border-right:1px solid var(--border);font:inherit;display:flex;flex-direction:column}.bundle-source-lineno-row{display:flex;align-items:center;justify-content:flex-end;gap:.35rem}.bundle-source-lineno-num{color:var(--muted);width:var(--lineno-width);text-align:right;font-variant-numeric:tabular-nums}.bundle-source-dot{flex-shrink:0;width:.65rem;height:.65rem;border-radius:50%;border:1px solid rgb(0 0 0 / .25);padding:0}.bundle-source-dot:hover{transform:scale(1.15)}.bundle-source-dot.active{box-shadow:0 0 0 2px var(--accent, #2563eb)}.bundle-source-dot.sev-critical{background:var(--critical)}.bundle-source-dot.sev-high{background:var(--high)}.bundle-source-dot.sev-medium{background:var(--medium)}.bundle-source-dot.sev-low{background:var(--low)}.bundle-source-dot.sev-high_bug{background:var(--high-bug)}.bundle-source-dot.sev-bug{background:var(--bug)}.bundle-source-dot.sev-informational{background:var(--info)}.bundle-source-dot-placeholder{flex-shrink:0;width:.65rem;height:.65rem}.bundle-source-code{flex:1;margin:0;padding:.5rem .75rem;white-space:pre;font:inherit;color:inherit;background:transparent;& code{font:inherit;background:transparent;padding:0}}.bundle-source-code .token.comment,.bundle-source-code .token.prolog,.bundle-source-code .token.cdata,.focus-code-source .token.comment,.focus-code-source .token.prolog,.focus-code-source .token.cdata{color:#6b7c93;font-style:italic}.bundle-source-code .token.punctuation,.focus-code-source .token.punctuation{color:var(--muted)}.bundle-source-code .token.string,.bundle-source-code .token.attr-value,.bundle-source-code .token.char,.bundle-source-code .token.regex,.focus-code-source .token.string,.focus-code-source .token.attr-value,.focus-code-source .token.char,.focus-code-source .token.regex{color:#98c379}.bundle-source-code .token.number,.bundle-source-code .token.boolean,.bundle-source-code .token.constant,.bundle-source-code .token.symbol,.focus-code-source .token.number,.focus-code-source .token.boolean,.focus-code-source .token.constant,.focus-code-source .token.symbol{color:#d19a66}.bundle-source-code .token.keyword,.bundle-source-code .token.builtin,.bundle-source-code .token.important,.bundle-source-code .token.atrule,.focus-code-source .token.keyword,.focus-code-source .token.builtin,.focus-code-source .token.important,.focus-code-source .token.atrule{color:#c678dd}.bundle-source-code .token.function,.bundle-source-code .token.class-name,.bundle-source-code .token.tag,.focus-code-source .token.function,.focus-code-source .token.class-name,.focus-code-source .token.tag{color:#61afef}.bundle-source-code .token.operator,.bundle-source-code .token.entity,.bundle-source-code .token.url,.bundle-source-code .token.attr-name,.bundle-source-code .token.selector,.focus-code-source .token.operator,.focus-code-source .token.entity,.focus-code-source .token.url,.focus-code-source .token.attr-name,.focus-code-source .token.selector{color:#56b6c2}.bundle-source-code .token.variable,.bundle-source-code .token.property,.bundle-source-code .token.parameter,.focus-code-source .token.variable,.focus-code-source .token.property,.focus-code-source .token.parameter{color:#e06c75}.bundle-source-code .token.deleted,.focus-code-source .token.deleted{color:#ef596f}.bundle-source-code .token.inserted,.focus-code-source .token.inserted{color:#98c379}.bundle-source-code .token.italic,.focus-code-source .token.italic{font-style:italic}.bundle-source-code .token.bold,.focus-code-source .token.bold{font-weight:700}.bundles-tabs{display:flex;gap:.25rem;padding:0 .25rem;margin:-.25rem 0 .5rem;border-bottom:1px solid var(--border);align-items:center}.bundles-tabs-spacer{flex:1}.bundles-tab{background:transparent;border:none;color:var(--muted);padding:.35rem .65rem;font:inherit;font-size:.72rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s;&:hover{color:var(--text)}&.active{color:var(--accent);border-bottom-color:var(--accent)}&.bundles-tab-action{color:var(--accent);&:hover{color:var(--text)}}}.packages-view{max-width:1200px;display:flex;flex-direction:column;flex:1;min-height:0;&.with-details{max-width:2000px}.packages-layout{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr);gap:1rem;flex:1;min-height:0;align-items:start;&.open{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.packages-list{margin-top:0;max-width:1200px;min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable;-webkit-app-region:no-drag;app-region:no-drag}&.open .packages-details{max-width:800px;align-self:stretch;max-height:100%}}.packages-details{background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);display:flex;flex-direction:column;min-height:0;overflow:hidden}.packages-details-bar{display:flex;align-items:center;justify-content:space-between;padding:.55rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.packages-details-label{color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.packages-details-close{background:transparent;color:var(--muted);border:0;border-radius:4px;width:22px;height:22px;display:grid;place-items:center;padding:0;font-size:1rem;line-height:1;&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}}.packages-details-body{padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;flex:1;min-height:0;font-size:.78rem}}.packages-view .packages-triage-selector{flex-shrink:0;align-self:flex-start}.packages-slide-view slide-triage-tabs{display:flex;gap:.25rem;flex-shrink:0;align-self:center}.packages-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;align-self:flex-start}.packages-toolbar .packages-search,.packages-toolbar .packages-sort{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;font:inherit;font-size:.78rem;&:focus{outline:none;border-color:var(--accent)}}.packages-toolbar .packages-search{padding:0 .55rem;min-width:12rem}.packages-toolbar .packages-sort{appearance:none;-webkit-appearance:none;padding:0 1.5rem 0 .55rem}.packages-toolbar entity-sort{position:relative;display:inline-block;&:after{content:"";position:absolute;right:.55rem;top:50%;width:.35rem;height:.35rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}}.packages-view .packages-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow:hidden;& li{display:flex;align-items:center;gap:.75rem;padding:.4rem .75rem;border-bottom:1px solid var(--border);color:var(--text);transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .04)}&:first-child{border-top-left-radius:6px;border-top-right-radius:6px}&:last-child{border-bottom:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px}&.selected{background:rgb(from var(--text) r g b / .06);outline:1px solid var(--accent);outline-offset:-1px}}.packages-dot{flex-shrink:0;width:.65rem;height:.65rem;border-radius:50%;border:1px solid rgb(from var(--text) r g b / .25)}.packages-row-text{flex:1;min-width:0;display:flex;flex-direction:column}.packages-name-line{display:flex;align-items:center;gap:.4rem;min-width:0}.packages-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.packages-version{color:var(--muted);font-weight:500;margin-left:.15rem}.packages-row-meta{color:var(--muted);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.packages-row-chips{flex-shrink:0;display:flex;flex-wrap:wrap;gap:.2rem;justify-content:flex-end}.packages-row-expand{flex-shrink:0;margin-left:.25rem;padding:.15rem .5rem .15rem .4rem;display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);font:inherit;font-size:.72rem;font-weight:500;white-space:nowrap;cursor:pointer;&:hover{border-color:var(--accent);color:var(--accent)}.packages-row-expand-chevron{display:inline-block;width:.35rem;height:.35rem;border-right:1.5px solid currentcolor;border-bottom:1.5px solid currentcolor;transform:translateY(-1px) rotate(45deg);transition:transform .15s}&.expanded .packages-row-expand-chevron{transform:translateY(2px) rotate(-135deg)}}.packages-row-other{padding-left:1.75rem;background:rgb(from var(--text) r g b / .015);.packages-name{font-weight:500}}.packages-row-issues{flex-shrink:0;margin-left:.25rem;padding:.15rem .55rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);font:inherit;font-size:.72rem;font-weight:500;white-space:nowrap;&:hover{border-color:var(--accent);color:var(--accent)}}}.packages-detail-meta{margin:0 0 .5rem;display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;font-size:.78rem;& dt{color:var(--muted)}& dd{margin:0;overflow-wrap:anywhere}}.packages-detail-chips{display:flex;flex-wrap:wrap;gap:.25rem;margin:0 0 .75rem}.packages-detail-section{margin:.75rem 0 .35rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.packages-detail-files,.packages-detail-reports{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:4px;overflow:hidden}.packages-detail-file{display:flex;align-items:baseline;gap:.5rem;padding:.25rem .5rem;border-bottom:1px solid var(--border);font-size:.72rem;&:last-child{border-bottom:none}}.packages-detail-file-path{flex:1;min-width:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.packages-detail-file-count{flex-shrink:0;color:var(--muted);font-variant-numeric:tabular-nums}.packages-detail-reports li{border-bottom:1px solid var(--border);&:last-child{border-bottom:none}}.packages-detail-report{display:flex;align-items:center;gap:.4rem;width:100%;padding:.3rem .5rem;background:transparent;border:0;color:var(--text);font:inherit;font-size:.72rem;text-align:left;transition:background .12s,color .12s;&:hover{background:rgb(from var(--text) r g b / .04);color:var(--accent)}.file-icon{flex-shrink:0}}.packages-detail-report-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::view-transition-old(report-view),::view-transition-new(report-view),::view-transition-old(root),::view-transition-new(root){animation-duration:90ms;animation-timing-function:linear}.bundles-slide-body>.bundle-advisories{padding:.75rem;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable}.bundles-slide-body>.bundle-advisories-consent{flex:1;display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow-y:auto}.bundle-advisories-consent-card{max-width:32rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);text-align:center;user-select:none}.bundle-advisories-consent-card .mono{user-select:text}.bundle-advisories-consent-text{margin:0;color:var(--text);font-size:.82rem;line-height:1.5}.bundle-advisories-consent-text .mono{font-family:var(--font-mono, ui-monospace, monospace);font-size:.78rem}.bundle-advisories-consent-btn{padding:.4rem 1.25rem;border:0;border-radius:4px;background:var(--accent, #58a6ff);color:#fff;font-size:.85rem;font-weight:600}.bundle-advisories-consent-btn:hover{filter:brightness(1.08)}.bundle-advisories-consent-note{margin:0;color:var(--muted);font-size:.7rem}.bundle-advisories-summary{color:var(--muted);font-size:.72rem;margin-bottom:.5rem;user-select:none}.bundle-advisories-empty{color:var(--muted);font-size:.78rem;padding:.75rem}.bundle-advisories-empty.is-error{color:var(--critical)}.bundle-advisories-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.bundle-advisories-section{display:flex;flex-direction:column;gap:.25rem}.bundle-advisories-section-header{display:flex;align-items:baseline;gap:.5rem;padding:.25rem .35rem;border-bottom:1px solid var(--border)}.bundle-advisories-section-name{font-size:.82rem;font-weight:600;color:var(--text)}.bundle-advisories-section-versions{display:inline-flex;flex-wrap:wrap;gap:.25rem}.bundle-advisories-version-chip{font-family:var(--font-mono, ui-monospace, monospace);font-size:.68rem;padding:.05rem .35rem;border:1px solid var(--border);border-radius:3px;color:var(--muted)}.bundle-advisories-section-count{margin-left:auto;flex-shrink:0;color:var(--muted);font-size:.68rem}.bundle-advisories-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.bundle-advisory-row{display:flex;align-items:flex-start;gap:.65rem;padding:.25rem .6rem;border:1px solid var(--border);border-radius:4px;background:var(--surface)}.bundle-advisory-rail{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:4.5rem;padding-top:.1rem}.bundle-advisory-severity{text-transform:uppercase;letter-spacing:.04em;font-size:.6rem;font-weight:700;padding:.15rem .4rem;border-radius:3px;color:#000;&.sev-critical{background:var(--critical);color:#fff}&.sev-high{background:var(--high)}&.sev-moderate{background:var(--medium)}&.sev-low{background:var(--low)}&.sev-info{background:var(--info);color:#fff}}.bundle-advisory-cvss-score{color:var(--muted);font-size:.62rem;letter-spacing:.02em}.bundle-advisory-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.bundle-advisory-header{display:flex;align-items:baseline;gap:.5rem}.bundle-advisory-title{flex:1;min-width:0;color:var(--text);font-size:.82rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundle-advisory-subrow{display:flex;align-items:baseline;gap:.75rem}.bundle-advisory-meta{flex:1;min-width:0;color:var(--muted);font-size:.7rem;display:flex;flex-wrap:wrap;gap:.65rem;align-items:baseline}.bundle-advisory-meta .mono{font-size:.68rem}.bundle-advisory-cwes{margin-left:1.25rem}.bundle-advisory-ghsa{flex-shrink:0;display:inline-flex;align-items:center;gap:.2rem;color:var(--muted);text-decoration:none;font-size:.7rem;font-family:var(--font-mono, ui-monospace, monospace);cursor:default;user-select:text}a.bundle-advisory-ghsa:hover{color:var(--accent, #60a5fa)}.bundle-advisory-ghsa-icon{flex-shrink:0;opacity:.75;user-select:none}a.bundle-advisory-ghsa:hover .bundle-advisory-ghsa-icon{opacity:1}.bundle-advisory-cwe{color:var(--muted);text-decoration:none;user-select:text;cursor:default}.bundle-advisory-cwe:hover{color:var(--accent, #60a5fa)}.bundle-advisory-cvss-vector{flex-shrink:1;min-width:0;text-align:right;color:var(--muted);font-size:.65rem;font-family:var(--font-mono, ui-monospace, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bundles-slide-body>bundle-treemap{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--bg)}.bundle-treemap-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.bundle-treemap-title{text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600;color:var(--muted);white-space:nowrap}.bundle-treemap-sub{min-width:0;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}}.bundle-treemap-plot{position:relative;flex:1;min-height:0;overflow:hidden}.bundle-treemap-node{position:absolute;box-sizing:border-box;overflow:hidden;border-radius:2px}.bundle-treemap-dir{background:rgb(from var(--text) r g b / .04);border:1px solid rgb(from var(--text) r g b / .14)}.bundle-treemap-dirname{display:block;padding:0 4px;line-height:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.62rem;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.bundle-treemap-leaf{margin:0;padding:1px 3px;border:1px solid rgb(0 0 0 / .18);display:flex;align-items:flex-start;text-align:left}.bundle-treemap-file{cursor:pointer;transition:filter .1s ease}.bundle-treemap-file:hover{filter:brightness(1.14)}.bundle-treemap-file:focus-visible{outline:2px solid var(--text);outline-offset:-2px;z-index:2}.bundle-treemap-agg{cursor:default;font-style:italic}.bundle-treemap-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.64rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.bundle-treemap-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--muted);font-size:.85rem;text-align:center}.bundle-treemap-tooltip{position:absolute;left:0;top:0;z-index:10;min-width:150px;max-width:340px;padding:8px 10px;background:var(--surface);backdrop-filter:blur(5px);border:1px solid var(--border);border-radius:7px;box-shadow:var(--shadow-glass);pointer-events:none;opacity:0;transition:opacity .12s;&.show{opacity:1}}.bundle-treemap-tt-path{font:500 11px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);word-break:break-all;margin-bottom:4px}.bundle-treemap-tt-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.bundle-treemap-tt-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.bundle-treemap-tt-pkg{font-size:10px;color:var(--muted);word-break:break-all}.bundle-treemap-tt-meta{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.toolbar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.6rem .75rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);font-size:.825rem;& label{color:var(--muted);margin-right:.15rem}& select{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;&:focus{border-color:var(--accent);outline:none}}& select.sort-select{padding:.3rem 1.7rem .3rem .55rem;min-width:8.5rem;font-weight:500;appearance:none;-webkit-appearance:none;background:transparent}:is(analyzer-select,repo-filter,findings-sort){position:relative;display:inline-block;&:after{content:"";position:absolute;right:.7rem;top:50%;width:.35rem;height:.35rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}}& range-slider{color:var(--accent);margin:0 .25rem}.conf-vals{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-variant-numeric:tabular-nums;.dash{color:var(--muted);margin:0 .15rem}}& conf-filter{display:inline-flex;align-items:center;height:30px;box-sizing:border-box;padding:0 .55rem;gap:.5rem;background:transparent;border:1px solid var(--border);border-radius:4px;.conf-range-label{color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:.04em}& range-slider{margin:0}}& input[type=text]{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;font-size:.8rem;flex:1;min-width:8rem;&:focus{border-color:var(--accent);outline:none}}.sep{border-left:1px solid var(--border);height:1.2rem}.result-count{color:var(--muted);margin-left:auto}.checkbox-label{display:inline-flex;align-items:center;gap:.25rem;color:var(--muted);& input{margin:0}}}.trash-btn{height:30px;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .55rem;font-size:.8rem;font-family:inherit;&:hover{border-color:var(--accent)}&.active{border-color:var(--critical);color:var(--critical)}}.toolbar .trash-btn{margin-left:auto}triage-selector,slide-triage-tabs{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.toolbar triage-selector{margin-left:auto}triage-selector.is-empty{display:none}.triage-state-btn{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.8rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{background:var(--surface-active)}}.triage-state-btn.active.triage-state-deleted{color:var(--critical)}.triage-state-btn.active.triage-state-fixed{color:var(--green, #4ade80)}.triage-state-btn.active.triage-state-invalid{color:var(--muted)}.triage-state-btn.active.triage-state-ignored{color:var(--accent, #2563eb)}entity-search{display:contents}view-mode-buttons{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.view-mode-btn{background:transparent;border:none;color:var(--muted);padding:.28rem .5rem;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s;font-family:inherit;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}& svg{display:block}}}source-filter{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden;.source-chip{background:transparent;border:none;color:var(--muted);padding:0 .55rem;display:inline-flex;align-items:center;transition:background .12s,color .12s;font-family:inherit;font-size:.75rem;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}&.active{color:var(--accent);background:var(--surface-active)}}}.toolbar-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.search-row{display:inline-flex;align-items:center;gap:.65rem;flex:1 1 14rem;min-width:12rem}toolbar-search{display:inline-flex;align-items:center;gap:.5rem;flex:1;min-width:0;height:30px;box-sizing:border-box;padding:0 .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;&:focus-within{border-color:var(--accent)}& svg{color:var(--muted);flex-shrink:0}&[kind] input[type=text]{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);font:inherit;font-size:.8rem;padding:0;&:focus{border:0}&::placeholder{color:var(--muted)}&:focus::placeholder{color:transparent}&::-webkit-search-cancel-button{display:none}}}@media(width<=1200px){.toolbar-row.sev-row .search-row{flex-basis:100%}}.findings-content.with-details .toolbar{max-width:1200px}severity-chips{display:inline-flex;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:4px;overflow:hidden}.sev-chip{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:0;padding:0 .6rem;color:var(--muted);font-family:inherit;font-size:.8rem;transition:background .12s,color .12s;&:not(:last-child){border-right:1px solid var(--border)}&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}.sd{width:8px;height:8px;border-radius:2px;flex-shrink:0;background:currentcolor}.n{align-self:flex-start;margin:1px -5px 0;color:var(--muted);font-variant-numeric:tabular-nums;font-size:8.5px;font-weight:600;background:var(--bg);border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px}&.active{color:var(--text);.n{color:var(--text)}}&.critical .sd{background:var(--critical)}&.high .sd{background:var(--high)}&.medium .sd{background:var(--medium)}&.low .sd{background:var(--low)}&.high_bug .sd{background:var(--high-bug)}&.bug .sd{background:var(--bug)}&.informational .sd{background:var(--info)}&.critical.active{background:rgb(from var(--critical) r g b / .25)}&.high.active{background:rgb(from var(--high) r g b / .25)}&.medium.active{background:rgb(from var(--medium) r g b / .25)}&.low.active{background:rgb(from var(--low) r g b / .25)}&.high_bug.active{background:rgb(from var(--high-bug) r g b / .25)}&.bug.active{background:rgb(from var(--bug) r g b / .25)}&.informational.active{background:rgb(from var(--info) r g b / .25)}}triage-filter{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px;height:30px;gap:1px;& button{width:22px;height:22px;background:transparent;border:0;border-radius:4px;padding:0;display:grid;place-items:center;position:relative;transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .06)}&.active{background:rgb(from var(--text) r g b / .08);box-shadow:0 0 0 1px var(--border)}}.td{width:12px;height:12px;border-radius:50%;border:1.5px solid currentcolor;background:transparent;transition:background .12s}& button.active .td{background:currentcolor}.td.none{border-style:dashed;color:var(--muted)}.td.r{color:#fc5855}.td.b{color:#30aff8}.td.g{color:#68c36d}.td.x{color:#6e7278}.count{position:absolute;top:-2px;right:-2px;background:var(--bg);color:var(--muted);font-size:8.5px;font-weight:600;border-radius:999px;padding:0 3px;min-width:11px;text-align:center;line-height:11px;font-variant-numeric:tabular-nums}}.file-group{margin-bottom:1rem;&.hidden{display:none}}.file-header{font-size:.9rem;font-weight:600;padding:.5rem .75rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px 6px 0 0;display:flex;justify-content:space-between;align-items:center;& a{color:var(--text)}& a:hover{color:var(--accent)}.count{user-select:none;color:var(--muted);font-weight:400;font-size:.8rem}}.file-body{background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-top:none;border-radius:0 0 6px 6px;box-shadow:var(--shadow-glass)}.flat-group{margin-bottom:1rem;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-glass);.finding{border-bottom:none}}.flat-group-loc{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;padding:.4rem .7rem;font-size:.85rem;background:var(--surface);border-bottom:1px solid var(--border);.file{color:var(--text);font-weight:500}.file:hover{color:var(--accent)}.line-num,.meta{color:var(--muted);font-size:.8rem}.run-meta{color:var(--muted);font-size:.65rem;margin-left:auto}}.findings-table-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}.findings-table-layout.open{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.findings-table-list{min-width:0}@media not print{.findings-table-layout{grid-template-rows:minmax(0,1fr);height:100%}.findings-table-list{max-height:100%;min-height:0;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;padding-bottom:1rem}}.findings-table-details{position:sticky;top:1rem;max-height:calc(100vh - 2rem);max-width:800px;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden;display:flex;flex-direction:column}.findings-table-details-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .35rem .3rem .75rem;border-bottom:1px solid var(--border)}.findings-table-details-label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.findings-table-details-close{width:22px;height:22px;display:grid;place-items:center;background:transparent;border:0;border-radius:4px;color:var(--muted);font:500 16px/1 ui-monospace,monospace;&:hover{color:var(--accent);background:var(--surface-active)}}.findings-table-details-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:none;-webkit-app-region:no-drag;app-region:no-drag;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);grid-template-rows:minmax(0,1fr);gap:.4rem;overflow-x:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{height:6px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-column{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden;transition:border-color .12s,background .12s}.kanban-column.drag-over{border-color:var(--accent);background:rgb(from var(--accent) r g b / .08)}.kanban-column-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .55rem;border-bottom:1px solid var(--border);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);.count{font-weight:500;font-size:.7rem;color:var(--muted);padding:0 .35rem;border-radius:999px;background:rgb(from var(--text) r g b / .08)}}.kanban-column-untriaged .kanban-column-header .label{color:var(--text)}.kanban-column-fixed .kanban-column-header .label{color:var(--green, #4ade80)}.kanban-column-invalid .kanban-column-header .label{color:var(--muted)}.kanban-column-deleted .kanban-column-header .label{color:var(--critical)}.kanban-column-ignored .kanban-column-header .label{color:var(--accent, #2563eb)}.kanban-column-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.3rem;display:flex;flex-direction:column;gap:.25rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-empty{color:var(--muted);font-size:.75rem;text-align:center;padding:.75rem .5rem;font-style:italic}.kanban-card{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"title badge" "meta meta";gap:.1rem .35rem;padding:.25rem .35rem;background:var(--bg, transparent);border-radius:4px;font-size:.75rem;cursor:grab;user-select:none;transition:background .12s,opacity .12s;&:hover{background:rgb(from var(--text) r g b / .05)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}&:active{cursor:grabbing}&.dragging{opacity:.45;cursor:grabbing}&.has-conflict{outline:1px dashed var(--accent);outline-offset:-1px}&.mark-red{background:var(--mark-red-bg)}&.mark-blue{background:var(--mark-blue-bg)}&.mark-green{background:var(--mark-green-bg)}&.mark-gray{background:var(--mark-gray-bg)}}.kanban-card .kanban-badge{grid-area:badge;align-self:start;margin-top:.05rem;padding:.05rem .25rem;min-width:1.1rem;border-radius:3px;text-align:center;font-size:.62rem;font-weight:700;line-height:1.25;user-select:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;&.sev-critical{background:var(--critical);color:#fff}&.sev-high{background:var(--high);color:#fff}&.sev-medium{background:var(--medium);color:#000}&.sev-low{background:var(--low);color:var(--badge-low-text)}&.sev-high_bug{background:var(--high-bug);color:#fff}&.sev-bug{background:var(--bug);color:#fff}&.sev-informational{background:var(--info);color:#fff}}.kanban-card .kanban-title{grid-area:title;font-size:1em;line-height:1.3;font-weight:500;color:var(--text);overflow-wrap:anywhere;min-width:0;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.kanban-card .kanban-meta{grid-area:meta;display:flex;align-items:baseline;justify-content:space-between;gap:.35rem;font-size:.65rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;.kanban-loc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.kanban-conf{flex-shrink:0;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}}.kanban-detail-backdrop{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:1rem;pointer-events:none}.kanban-detail-dim{position:fixed;inset:0;background:rgb(from var(--theme-bar) r g b / .75);pointer-events:none;view-transition-name:kanban-detail-dim}.kanban-detail-modal{position:relative;width:min(900px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);background:var(--bg, var(--surface));border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 14px #00000040;overflow:hidden;display:flex;flex-direction:column;view-transition-name:kanban-detail-modal;pointer-events:auto;&.has-conflict{border-color:var(--accent);border-style:dashed}&.mark-red{background:var(--mark-red-bg);border-color:var(--mark-red-tab-border)}&.mark-blue{background:var(--mark-blue-bg);border-color:var(--mark-blue-tab-border)}&.mark-green{background:var(--mark-green-bg);border-color:var(--mark-green-tab-border)}&.mark-gray{background:var(--mark-gray-bg);border-color:var(--mark-gray-tab-border)}}.kanban-detail-close{position:absolute;top:.25rem;right:.25rem;z-index:1;width:22px;height:22px;display:grid;place-items:center;background:transparent;border:0;border-radius:4px;color:var(--muted);font:500 16px/1 ui-monospace,monospace;cursor:pointer;&:hover{color:var(--accent);background:var(--surface-active)}}.kanban-detail-body{overflow-y:auto;overscroll-behavior:contain;padding:.5rem .5rem .4rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}:root{--kanban-clip-card-w: 180px;--kanban-clip-card-h: 56px}@keyframes kanban-clip-hide{0%{clip-path:inset(0)}to{clip-path:inset(max(0px,calc(50% - var(--kanban-clip-card-h) / 2)) max(0px,calc(50% - var(--kanban-clip-card-w) / 2)))}}@keyframes kanban-clip-reveal{0%{clip-path:inset(max(0px,calc(50% - var(--kanban-clip-card-h) / 2)) max(0px,calc(50% - var(--kanban-clip-card-w) / 2)))}to{clip-path:inset(0)}}@keyframes kanban-fade-in{0%{opacity:0}to{opacity:1}}@keyframes kanban-fade-out{0%{opacity:1}to{opacity:0}}::view-transition-group(kanban-detail-modal){z-index:2;animation-duration:.2s;animation-timing-function:cubic-bezier(.3,0,.2,1)}::view-transition-group(kanban-detail-dim){z-index:1}::view-transition-old(kanban-detail-modal),::view-transition-new(kanban-detail-modal){inset:50% auto auto 50%;translate:-50% -50%}::view-transition-old(kanban-detail-modal){animation:kanban-clip-hide .16s cubic-bezier(.4,0,1,1) forwards}::view-transition-new(kanban-detail-modal){animation:kanban-clip-reveal .18s cubic-bezier(0,0,.25,1) forwards}html.kanban-opening::view-transition-old(kanban-detail-modal){visibility:hidden}::view-transition-new(kanban-detail-dim){animation:kanban-fade-in .16s ease-out forwards}::view-transition-old(kanban-detail-dim){animation:kanban-fade-out .14s ease-in forwards}@media(prefers-reduced-motion:reduce){::view-transition-group(kanban-detail-modal),::view-transition-new(kanban-detail-modal),::view-transition-old(kanban-detail-modal),::view-transition-new(kanban-detail-dim),::view-transition-old(kanban-detail-dim){animation-duration:.01s}}.focus-view{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:.75rem;flex:1;min-height:0}.focus-main{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0 .75rem;min-width:0;min-height:0}.focus-main.with-code{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.focus-nav{display:inline-flex;align-items:center;gap:.25rem}.focus-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--text);&:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}&:disabled{opacity:.35}}.focus-pane{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:6px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.focus-card-wrapper{width:100%;margin-inline:auto;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.focus-main.with-code .focus-card-wrapper{max-width:1100px}.focus-pane-code{display:flex;flex-direction:column;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.focus-code-bar{flex-shrink:0;padding:.35rem .55rem;border-bottom:1px solid var(--border);font-size:.7rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;align-items:baseline;gap:.25rem;white-space:nowrap;overflow:hidden;.focus-code-file{overflow:hidden;text-overflow:ellipsis;color:var(--text)}.focus-code-line{color:var(--muted);font-variant-numeric:tabular-nums}}.focus-code-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:6px;height:6px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.focus-code-empty{flex:1;min-height:0;display:grid;place-items:center;color:var(--muted);font-size:.8rem;font-style:italic}.focus-code-lines{display:grid;grid-template-columns:calc(var(--lineno-width, 4ch) + 1.4rem) minmax(0,1fr);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;line-height:1.45}.focus-code-gutter{background:rgb(from var(--text) r g b / .03);border-right:1px solid var(--border);padding:.25rem 0;user-select:none}.focus-code-lineno{padding:0 .5rem 0 .35rem;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.focus-code-line-active{background:rgb(from var(--accent) r g b / .08);color:var(--accent);font-weight:600}.focus-code-source{margin:0;padding:.25rem .5rem;background:transparent;white-space:pre;overflow:visible;& code{font:inherit;background:transparent}}.focus-sidebar{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.focus-sidebar-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .55rem;border-bottom:1px solid var(--border);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);.count{font-weight:500;font-size:.7rem;color:var(--muted);padding:0 .35rem;border-radius:999px;background:rgb(from var(--text) r g b / .08);font-variant-numeric:tabular-nums}}.focus-sidebar-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.3rem;display:flex;flex-direction:column;gap:.25rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent;&::-webkit-scrollbar{width:5px}&::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}.kanban-card.focus-side-card{cursor:default;&:active{cursor:default}&.active{background:rgb(from var(--accent) r g b / .14);outline:1px solid var(--accent);outline-offset:-1px}&.active.mark-red{background:var(--mark-red-bg)}&.active.mark-blue{background:var(--mark-blue-bg)}&.active.mark-green{background:var(--mark-green-bg)}&.active.mark-gray{background:var(--mark-gray-bg)}}@media(width<=900px){.focus-view{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.focus-sidebar{max-height:40vh}}@media(width<=1200px){.focus-main.with-code{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}}.tree-view{display:flex;flex-direction:column;gap:.75rem}.tree-file{padding:.6rem .8rem;background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);scroll-margin-top:1rem}.tree-file-header{font-size:.95rem;font-weight:600;margin-bottom:.25rem;word-break:break-all;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;.name{flex:1;min-width:0}}.tree-hashes{font-size:.65rem;color:var(--muted);margin-bottom:.35rem;word-break:break-all}.tree-code-btn{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.5rem;padding:.1rem .45rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);font:inherit;font-size:.65rem;font-weight:500;white-space:nowrap}.tree-code-btn:hover{border-color:var(--accent);color:var(--accent)}@media print{.tree-code-btn{display:none!important}}.tree-section{margin-top:.35rem;& ul{display:inline-block;list-style:none;margin:0;padding:0;vertical-align:top}& li{font-size:.85rem;padding:0;line-height:1.4}& a{color:var(--accent)}& a:hover{text-decoration:underline}.name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.8rem}}.tree-section-label{display:inline-block;min-width:6rem;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;vertical-align:top}.tree-toolbar{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:.75rem;.search-row{display:flex;flex:1 1 14rem;min-width:12rem;align-items:center;gap:.65rem}& toolbar-search{display:inline-flex;align-items:center;gap:.5rem;flex:1;min-width:0;height:30px;box-sizing:border-box;padding:0 .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;&:focus-within{border-color:var(--accent)}& svg{color:var(--muted);flex-shrink:0}& input[type=text]{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);font:inherit;font-size:.8rem;padding:0;&::placeholder{color:var(--muted)}&::-webkit-search-cancel-button{display:none}}}.result-count{color:var(--muted);font-size:.8rem;flex-shrink:0}}.tree-view,.tree-view-table{max-width:1200px}.tree-view-table.with-details{max-width:2000px}.tree-view-table.with-details>.tree-toolbar{max-width:1200px}.tree-view-table{display:flex;flex-direction:column;gap:.5rem}.tree-table-layout{display:grid;grid-template-columns:1fr;gap:.75rem;align-items:start;&.open{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.tree-table-list{background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);overflow:hidden}.tree-table-row{display:flex;align-items:center;gap:.75rem;padding:.35rem .65rem;font-size:.8rem;border-bottom:1px solid var(--border);transition:background .12s;&:hover{background:rgb(from var(--text) r g b / .04)}&:first-child{border-top-left-radius:6px;border-top-right-radius:6px}&:last-child{border-bottom:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px}&.selected{background:rgb(from var(--text) r g b / .06);outline:1px solid var(--accent);outline-offset:-1px}.tree-table-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.78rem}.tree-count-chips{flex-shrink:0}.tree-table-clean-marker{color:var(--muted);font-size:.75rem;min-width:1rem;text-align:center}.tree-table-size{flex-shrink:0;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.72rem;font-variant-numeric:tabular-nums}&.clean .tree-table-name{color:var(--muted)}}.tree-file-header .tree-file-size,.tree-detail-name .tree-detail-size{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.72rem;font-variant-numeric:tabular-nums;margin-left:.5rem}.tree-table-empty{color:var(--muted);padding:.85rem 1rem;font-size:.85rem}.tree-table-details{background:var(--surface);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-glass);display:flex;flex-direction:column;position:sticky;top:1rem;max-height:calc(100vh - 8rem);overflow:hidden}.tree-table-details-bar{display:flex;align-items:center;justify-content:space-between;padding:.45rem .65rem;border-bottom:1px solid var(--border);flex-shrink:0;.tree-table-details-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}}.tree-table-details-close{background:transparent;border:0;color:var(--muted);font-size:1rem;line-height:1;padding:.15rem .35rem;border-radius:3px;&:hover{color:var(--text);background:rgb(from var(--text) r g b / .06)}}.tree-table-details-body{padding:.65rem .8rem;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable;flex:1;-webkit-app-region:no-drag;app-region:no-drag}.tree-detail-name{font-size:.9rem;font-weight:600;word-break:break-all;margin-bottom:.35rem;.name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace}}.tree-count-chips{display:inline-flex;gap:.25rem;flex-wrap:wrap}.tree-count-chip{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .4rem;border-radius:3px;line-height:1.3;&.critical{background:var(--critical);color:#fff}&.high{background:var(--high);color:#fff}&.medium{background:var(--medium);color:#000}&.low{background:var(--low);color:#000}&.high_bug{background:var(--high-bug);color:#fff}&.bug{background:var(--bug);color:#fff}&.informational{background:var(--info);color:#fff}}@media print{html{font-size:9pt}body{background:#fff;color:#000;line-height:1.35;display:block}.toolbar,.stats{display:none!important}graph-layout{display:none!important}#drop-zone,app-sidebar{display:none!important}#report{max-width:none;padding:0}header h1{font-size:1.2rem}#main-content{border-top:0!important}.page-head .report-sync-badge{display:none!important}.page-head repo-chip[empty]{display:none!important}a,.file-header a,.flat-group-loc .file,.flat-group-loc .file a{color:inherit}body,body.theme-light{--bg: #fff;--border: #888;--muted: #555;--text: #000;--accent: #0550ae;--green: #1a7f37;--surface: #fff;--surface-active: #fff}.page-head .file-chip,.page-head .meta-row .tag,.page-head .meta-row .repo-chip,.page-head .files-toggle-btn{background:transparent!important;border:0!important;padding:0!important;color:#000!important}.page-head .file-chip svg,.page-head .meta-row .repo-chip svg{color:#000!important}.page-head .meta-row{color:#000!important}.page-head .meta-row .repo-chip.empty,.page-head .meta-row .status-bar{display:none!important}.page-head{break-after:avoid}.file-header{break-after:avoid;font-size:.85rem}.flat-group-loc{break-after:avoid}.flat-group.multi-case .flat-group-loc .run-meta{display:none}}