:root{--sev-critical:#ff8f7a;--sev-high:#ffbaa5;--sev-medium:#dfe6a0;--sev-low:#8f9a86;--sev-unknown:#5d655a}.sev-critical{--sev:var(--sev-critical)}.sev-high{--sev:var(--sev-high)}.sev-medium{--sev:var(--sev-medium)}.sev-low{--sev:var(--sev-low)}.sev-unknown{--sev:var(--sev-unknown)}.workspace.is-running{background:radial-gradient(circle at 50% 40%,#c0f66b10,transparent 42%),var(--panel)}.scan-stage{--cy:40%;position:relative;height:660px;container-type:size;overflow:hidden}.particle-field{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.file-particle{position:absolute;left:50%;top:var(--cy);display:flex;align-items:center;gap:6px;font:11px var(--mono);color:#a9b39f;white-space:nowrap;opacity:0;will-change:transform,opacity;animation:file-drift var(--duration) cubic-bezier(.22,.6,.36,1) var(--delay) infinite}.file-particle svg{width:13px;height:13px;color:var(--accent)}.file-particle.is-glyph svg{width:18px;height:18px}@keyframes file-drift{0%{transform:translate(-50%,-50%) translate(calc(var(--x) * 60px),calc(var(--y) * 60px)) scale(.7);opacity:0}20%{opacity:var(--peak)}70%{opacity:calc(var(--peak) * .65)}to{transform:translate(-50%,-50%) translate(calc(var(--x) * 52cqw),calc(var(--y) * 62cqh)) scale(1);opacity:0}}.scan-core{position:absolute;left:50%;top:var(--cy);z-index:1;width:min(480px,calc(100% - 40px));transform:translate(-50%,-120px);text-align:center}.scan-core:before{content:"";position:absolute;left:50%;top:120px;z-index:-1;width:620px;height:620px;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--panel) 28%,#10131000 58%);pointer-events:none}.progress-ring{position:relative;width:240px;height:240px;margin:0 auto}.progress-ring:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:1px solid #c0f66b26;animation:ring-pulse 2.8s ease-out infinite}.progress-ring svg{width:240px;height:240px;transform:rotate(-90deg);overflow:visible}.ring-track{fill:none;stroke:#222920;stroke-width:6}.ring-value{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.3,.7,.3,1);filter:drop-shadow(0 0 10px #c0f66b66)}.ring-ticks{fill:none;stroke:#3d4636;stroke-width:1.5;stroke-dasharray:1.5 7;transform-box:fill-box;transform-origin:center;animation:ring-spin 30s linear infinite}@keyframes ring-spin{to{transform:rotate(360deg)}}@keyframes ring-pulse{0%{transform:scale(.94);opacity:.9}to{transform:scale(1.14);opacity:0}}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.ring-center strong{font-size:58px;font-weight:400;letter-spacing:-2.5px;line-height:1;font-variant-numeric:tabular-nums}.ring-center strong span{font-size:22px;color:var(--muted);margin-left:3px;letter-spacing:0}.ring-center .mono{font-size:10px;letter-spacing:1.8px;color:#7d8775}.scan-core h3{font-size:22px;font-weight:500;letter-spacing:-.3px;margin:34px 0 8px;outline:none}.scan-detail{color:var(--muted);font-size:14px;line-height:1.5;margin:0;min-height:21px}.scan-target{font-size:11px;color:#6f7967;margin:8px 0 0;overflow-wrap:anywhere}.scan-steps{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 18px;padding:0;margin:24px 0 0}.scan-steps li{display:flex;align-items:center;gap:7px;font:11px var(--mono);letter-spacing:.8px;text-transform:uppercase;color:#6f7967}.step-dot{display:grid;place-items:center;width:15px;height:15px;border:1px solid #3a4233;border-radius:50%}.step-dot svg{width:9px;height:9px;stroke-width:3}.scan-steps .is-done{color:#a6b696}.scan-steps .is-done .step-dot{background:var(--accent);border-color:var(--accent);color:#18220d}.scan-steps .is-current{color:var(--text)}.scan-steps .is-current .step-dot{border-color:var(--accent);animation:dot-pulse 1.6s ease-in-out infinite}@keyframes dot-pulse{50%{box-shadow:0 0 0 4px #c0f66b26}}.scan-note{font-size:12px;line-height:1.5;color:#7d8775;max-width:360px;margin:16px auto 0}.scan-cancel{margin-top:8px}.scan-cancel:disabled{color:var(--muted);cursor:wait}.report-view{display:grid;gap:28px;padding:32px 30px 36px;min-width:0}.report-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px}.report-head .explainer-eyebrow{margin-bottom:10px}.report-head h3{font-size:30px;font-weight:400;letter-spacing:-1px;margin:0;overflow-wrap:anywhere;outline:none}.report-source{font-size:11px;letter-spacing:.5px;color:#858e7d;margin:10px 0 0}.report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.report-actions .plan-cta{gap:9px}.report-actions .plan-cta svg{width:15px;height:15px}.report-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}.report-tiles>div{background:#0c100a;padding:18px 18px 20px;min-width:0}.report-tiles dt{font:10px var(--mono);letter-spacing:1px;text-transform:uppercase;color:#858e7d}.report-tiles dd{margin:10px 0 0;font-size:30px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.report-tiles .is-alert dd{color:var(--sev-high)}.severity-overview{display:grid;gap:12px}.severity-bar{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden;background:#1a1f18}.severity-bar span{min-width:4px;background:var(--sev)}.severity-bar .sev-none{flex:1;background:#1a1f18}.severity-legend{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;padding:0;margin:0;font-size:13px;color:var(--muted)}.severity-legend li{display:flex;align-items:center;gap:8px}.severity-legend strong{color:var(--text);font-weight:500}.severity-legend .is-empty{opacity:.45}.legend-dot{width:8px;height:8px;border-radius:2px;background:var(--sev)}.report-block{border-top:1px solid var(--line);padding-top:24px;min-width:0}.block-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 16px;margin-bottom:16px}.block-head h4{margin:0;font-size:20px;font-weight:500;letter-spacing:-.3px}.block-head .mono{font-size:11px;letter-spacing:.6px;color:#858e7d}.priorities ol{list-style:none;display:grid;gap:8px;padding:0;margin:0}.priorities li{display:flex;align-items:baseline;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#0c100a}.priorities li p{margin:0;font-size:14px;line-height:1.6}.priorities-note{font-size:12px;line-height:1.6;color:var(--muted);margin:14px 0 0}.filter-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.filter-row button{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:13px;cursor:pointer}.filter-row button span{font:11px var(--mono);color:#6f7967}.filter-row button:hover:not(:disabled){border-color:#4a5540;color:var(--text)}.filter-row button[aria-pressed=true]{background:#242a20;border-color:#4a5540;color:var(--text)}.filter-row button[aria-pressed=true] span{color:var(--accent)}.filter-row button:disabled{opacity:.4;cursor:default}.category-summary{font-size:13px;line-height:1.6;color:var(--muted);margin:6px 0 14px;padding-left:12px;border-left:2px solid var(--accent)}.group-list{display:grid;gap:8px;margin-top:8px}.finding-group{border:1px solid var(--line);border-radius:10px;background:#0c100a;overflow:hidden}.finding-group[open]{border-color:#3c4632}.finding-group summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:16px 18px;cursor:pointer;list-style:none}.finding-group summary::-webkit-details-marker{display:none}.finding-group summary:hover{background:#11160f}.finding-group summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.finding-group summary>svg{color:#6f7967;transition:transform .2s}.finding-group[open] summary>svg{transform:rotate(180deg)}.sev-badge{min-width:76px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--sev) 45%,transparent);border-radius:4px;background:color-mix(in srgb,var(--sev) 9%,transparent);color:var(--sev);font:10px var(--mono);letter-spacing:.8px;text-transform:uppercase;text-align:center}.group-title{display:flex;flex-direction:column;gap:4px;min-width:0}.group-title strong{font-size:15px;font-weight:500;overflow-wrap:anywhere}.group-title span{font-size:12px;color:#858e7d}.group-count{font-size:11px;color:#858e7d;white-space:nowrap}.group-body{display:grid;gap:18px;padding:0 18px 20px;border-top:1px solid var(--line)}.explain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding-top:18px}.explain-grid h5,.locations h5,.coverage-card h5{margin:0 0 8px;font:10px var(--mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--accent);font-weight:400}.explain-grid p,.explain-grid li{margin:0;font-size:13px;line-height:1.65;color:#c3cbbb}.explain-grid ol{display:grid;gap:6px;margin:0;padding-left:18px}.dependency-fix{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding:14px 16px;border:1px dashed #3a4630;border-radius:8px}.dependency-fix>div{display:flex;flex-direction:column;gap:4px;min-width:0}.dependency-fix .mono{font-size:10px;letter-spacing:1px;color:#858e7d}.dependency-fix strong{font:500 14px var(--mono);overflow-wrap:anywhere}.dependency-arrow{color:var(--accent);font-size:18px}.advisory-list{flex-basis:100%}.advisory-list p{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:13px}.group-body a{display:inline-flex;align-items:center;gap:3px;color:var(--accent)}.group-body a svg{width:12px;height:12px}.group-meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0;padding-top:14px;border-top:1px dashed var(--line)}.group-meta div{display:flex;gap:8px;font-size:12px;min-width:0}.group-meta dt{color:#858e7d}.group-meta dd{margin:0;color:#c3cbbb;overflow-wrap:anywhere}.locations ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 16px;padding:0;margin:0}.locations code,.coverage-card code{font:12px var(--mono);color:#b5beaa;overflow-wrap:anywhere}.empty-state{padding:18px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:14px;text-align:center}.coverage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.coverage-card{min-width:0;padding:18px;border:1px solid var(--line);border-radius:10px;background:#0c100a}.engine-list{list-style:none;padding:0;margin:0}.engine-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}.engine-list li:last-child{border-bottom:0}.engine-list .mono{font-size:11px;color:#6f7967}.engine-ok,.engine-off{text-align:right}.engine-ok{color:var(--accent)}.engine-off{color:#b5beaa}.coverage-stat{margin:0 0 10px;font-size:13px;color:var(--muted)}.coverage-stat strong{margin-right:6px;font-size:22px;font-weight:500;color:var(--text)}.skipped summary{padding:6px 0;font-size:13px;color:#c3cbbb;cursor:pointer}.skipped ul{list-style:none;display:grid;gap:3px;max-height:220px;overflow:auto;padding:0 0 0 12px;margin:4px 0 8px}.skipped p{margin:0 0 8px 12px;font-size:12px;color:#858e7d}.coverage-commit{margin:10px 0 0;font-size:12px;color:#858e7d}.routes-card,.limitations{margin-top:12px}.routes-card summary{display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none;cursor:pointer}.routes-card summary::-webkit-details-marker{display:none}.routes-card summary h5{margin:0}.routes-card summary>span{font:11px var(--mono);color:#858e7d}.routes-card>p{margin:14px 0;font-size:13px;line-height:1.6;color:var(--muted)}.table-wrap{overflow-x:auto}.routes-card table{width:100%;border-collapse:collapse;font-size:13px}.routes-card th{padding:8px 12px 8px 0;border-bottom:1px solid var(--line);font:10px var(--mono);letter-spacing:1px;text-transform:uppercase;color:#858e7d;font-weight:400;text-align:left}.routes-card td{padding:8px 12px 8px 0;border-bottom:1px dashed var(--line);color:#c3cbbb;vertical-align:top}.limitations ul{display:grid;gap:6px;margin:0;padding-left:18px}.limitations li{font-size:13px;line-height:1.6;color:var(--muted)}@media(max-width:900px){.report-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}.report-tiles>div{grid-column:span 2}.report-tiles>div:nth-child(n+4){grid-column:span 3}.explain-grid,.coverage-grid{grid-template-columns:1fr}}@media(max-width:650px){.scan-stage{--cy:36%;height:640px}.file-particle{font-size:10px}.file-particle:nth-child(n+11){display:none}.scan-steps{gap:8px 12px}.report-view{padding:24px 20px 28px}.report-head h3{font-size:24px}.report-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.report-tiles>div,.report-tiles>div:nth-child(n+4){grid-column:auto}.report-tiles>div:last-child:nth-child(odd){grid-column:1 / -1}.report-tiles dd{font-size:24px}.finding-group summary{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:14px}.finding-group summary .sev-badge{justify-self:start}.group-title{grid-column:1 / -1;grid-row:2}.group-count{grid-row:3}.finding-group summary>svg{grid-column:2;grid-row:1}.group-body{padding:0 14px 16px}.locations ul{grid-template-columns:1fr}.dependency-arrow{display:none}}@media(prefers-reduced-motion:reduce){.file-particle{display:none}.ring-ticks,.progress-ring:after,.scan-steps .is-current .step-dot{animation:none}}.fixed-list p{margin:0;font:12px var(--mono);color:#b5beaa;overflow-wrap:anywhere}.preview-banner{margin:0;padding:12px 16px;border-left:2px solid var(--accent);background:#c0f66b08;font-size:13px;line-height:1.6;color:#c9d9b8}.locked{position:relative;min-height:230px;border:1px solid var(--line);border-radius:10px;background:#0c100a;overflow:hidden}.locked-skeleton{display:grid;gap:14px;padding:26px;filter:blur(5px);opacity:.55}.locked-skeleton span{height:14px;border-radius:4px;background:linear-gradient(90deg,#2a3326,#1c231a)}.locked-skeleton span:nth-child(1){width:72%}.locked-skeleton span:nth-child(2){width:88%}.locked-skeleton span:nth-child(3){width:54%}.locked-skeleton span:nth-child(4){width:80%}.locked-skeleton span:nth-child(5){width:40%}.locked-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;background:radial-gradient(ellipse at center,#0c100aee 35%,#0c100a99 75%)}.locked-overlay strong{font-size:18px;font-weight:500}.locked-overlay p{max-width:520px;margin:0;font-size:13px;line-height:1.6;color:var(--muted)}.locked-overlay .plan-cta{margin-top:6px}.locked-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px dashed #4a5540;border-radius:4px;font-size:10px;letter-spacing:1.2px;color:var(--accent)}.locked-badge svg{width:12px;height:12px}.locked-inline{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px dashed #3a4630;border-radius:8px;overflow:hidden}.locked-lines{display:grid;flex:1;gap:8px;filter:blur(4px);opacity:.5}.locked-lines span{height:9px;border-radius:3px;background:#2a3326}.locked-lines span:first-child{width:85%}.locked-lines span:last-child{width:55%}.advisory-list summary{cursor:pointer;font-size:13px;color:#c3cbbb}.advisory-list p,.tech-details{margin-top:10px}.tech-details summary{color:#858e7d}@media(max-width:650px){.locked{min-height:280px}.locked-inline{flex-direction:column;align-items:stretch}}.feedback-join{width:100%;margin-top:10px;min-height:48px;padding:0 18px}
