.scan{--sev-mh:#d9640a;--sev-med:#a67c00;--sev-lm:#6c8f12;--sev-low:#1f8a4c;--sev-info:#2a6fa8;background:var(--bg-alt);border:1px solid var(--border);box-shadow:var(--shadow);font-family:var(--mono);border-radius:8px;font-size:.8rem;overflow:hidden}.scan ul{margin:0;padding:0;list-style:none}.scan__titlebar{border-bottom:1px solid var(--border);color:var(--fg-dim);align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.scan__dots{gap:5px;display:inline-flex}.scan__dots i{background:var(--border);border-radius:50%;width:9px;height:9px}.scan__target{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.scan__target strong{color:var(--fg);font-weight:400}.scan__target em{opacity:.6;font-style:normal}.scan__status{color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}.scan__replay{border:1px solid var(--border);color:var(--fg-dim);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:2px;padding:.2rem .65rem;font-size:.75rem}.scan__replay:hover{color:var(--accent);border-color:var(--accent)}.swarm{border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:.6rem;padding:.9rem 1rem;display:grid;position:relative;overflow:hidden}.scan:not(.is-complete) .swarm:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#0b8a4514,#0000);width:18%;animation:3.2s linear infinite swarm-sweep;position:absolute;top:0;bottom:0;left:-20%}.swarm-agent{--c:var(--accent);border:1px solid color-mix(in srgb, var(--c) 18%, var(--border));background:#12233f06;border-radius:4px;align-items:center;gap:.6rem;min-width:0;padding:.5rem .65rem;transition:border-color .3s,background .3s;display:flex}.swarm-agent[data-status=running]{border-color:color-mix(in srgb, var(--c) 55%, var(--border));background:color-mix(in srgb, var(--c) 6%, #12233f06)}.swarm-agent__face{width:38px;height:38px;color:var(--c);opacity:.3;flex:none;transition:opacity .3s;display:block;position:relative}.swarm-agent__face svg{display:block}.swarm-agent[data-status=running] .swarm-agent__face{opacity:1;filter:drop-shadow(0 0 3px color-mix(in srgb, var(--c) 45%, transparent));animation:1.6s ease-in-out infinite swarm-bob}.swarm-agent:nth-child(3n+1) .swarm-agent__face{animation-delay:-.5s}.swarm-agent:nth-child(3n+2) .swarm-agent__face{animation-delay:-1.1s}.swarm-agent[data-status=done] .swarm-agent__face{opacity:.8}.swarm-agent .eye{transform-box:fill-box;transform-origin:50%}.swarm-agent[data-status=running] .eye{animation:3.6s infinite swarm-blink}.swarm-agent:nth-child(2n) .eye{animation-delay:-1.3s}.swarm-agent:nth-child(3n) .eye{animation-delay:-2.4s}.swarm-agent .bulb{fill:currentColor;stroke:none;opacity:.4}.swarm-agent[data-status=running] .bulb{animation:.9s ease-in-out infinite alternate swarm-pulse}.swarm-agent__badge{background:var(--bg-alt);border:1px solid var(--border);border-radius:50%;width:9px;height:9px;position:absolute;bottom:-3px;right:-3px}.swarm-agent[data-status=running] .swarm-agent__badge{background:var(--c);border-color:var(--c);animation:.9s ease-in-out infinite alternate swarm-pulse}.swarm-agent[data-status=done] .swarm-agent__badge{background:var(--accent);border-color:var(--accent);width:12px;height:12px;bottom:-4px;right:-4px}.swarm-agent[data-status=done] .swarm-agent__badge:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:8px;font-weight:700;display:flex;position:absolute;inset:0}.swarm-agent__body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.swarm-agent__top{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.swarm-agent__name{color:var(--c);white-space:nowrap;font-size:.75rem}.swarm-agent__tag{border:1px solid color-mix(in srgb, var(--c) 40%, transparent);min-height:1rem;color:var(--c);white-space:nowrap;text-overflow:ellipsis;border-radius:2px;padding:0 .35rem;font-size:.6rem;line-height:1rem;overflow:hidden}.swarm-agent__tag:empty{visibility:hidden}.swarm-agent__task{color:var(--fg-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;overflow:hidden}.swarm-agent__bar{background:var(--border);border-radius:2px;height:3px;display:block;overflow:hidden}.swarm-agent__bar span{background:var(--c);width:0;height:100%;transition:width .5s;display:block}.swarm-agent.is-alert{animation:1.6s swarm-alert}.swarm-agent.is-alert .swarm-agent__face{color:var(--sev-mh);filter:drop-shadow(0 0 4px color-mix(in srgb, var(--sev-mh) 50%, transparent));animation:.4s linear 3 swarm-shake}.scan__grid{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);display:grid}.scan__col{min-width:0;padding:.9rem 1rem}.scan__col+.scan__col{border-left:1px solid var(--border)}.scan__heading{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);justify-content:space-between;margin:0 0 .6rem;font-size:.7rem;font-weight:400;display:flex}.scan__col--stats .scan__heading:not(:first-child){margin-top:1rem}.scan__total{color:var(--accent)}.scan-log{flex-direction:column;justify-content:flex-end;min-height:21rem;display:flex}.scan-log__line{--c:var(--accent);height:1.4rem;color:var(--fg-dim);grid-template-columns:1.5ch 13ch 12ch minmax(0,1fr);align-items:center;gap:.6rem;display:grid}.scan-log__line.is-new{animation:.25s scan-in}.scan-log__who{color:var(--c);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scan-log__tag{color:var(--fg);opacity:.75;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.scan-log__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scan-log__line--clear .scan-log__glyph,.scan-log__line--human .scan-log__glyph,.scan-log__line--human .scan-log__who,.scan-log__line--system{color:var(--accent)}.scan-log__line--finding .scan-log__glyph,.scan-log__line--finding .scan-log__text{color:var(--sev-mh)}.scan-log__line--gap .scan-log__glyph,.scan-log__line--gap .scan-log__text{color:var(--sev-med)}.scan-log__line--info .scan-log__glyph{color:var(--sev-info)}.scan-cov li{color:var(--fg-dim);grid-template-columns:1fr auto;padding:.3rem 0;display:grid}.scan-cov__pct{text-align:right;font-variant-numeric:tabular-nums}.scan-cov__bar{background:var(--border);border-radius:2px;grid-column:1/-1;height:4px;margin-top:.25rem;display:block;overflow:hidden}.scan-cov__bar span{background:var(--accent);height:100%;transition:width .4s;display:block}.scan-gaps li{color:var(--sev-med);padding:.25rem 0 .25rem 2ch;font-size:.7rem;line-height:1.45;position:relative}.scan-gaps li:before{content:"?";position:absolute;left:0}.scan-gaps li.scan-empty{color:var(--fg-dim);padding-left:0}.scan-gaps li.scan-empty:before{content:none}.scan-empty{color:var(--fg-dim);opacity:.6;margin:0}.scan__lower{border-top:1px solid var(--border);grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);display:grid}.scan__lower>div{min-width:0;padding:.9rem 1rem}.scan__lower>div+div{border-left:1px solid var(--border)}.scan-findings{min-height:4rem}.scan-finding{border-bottom:1px dashed var(--border);grid-template-columns:4ch 11ch minmax(0,1fr) auto;align-items:baseline;gap:.75rem;padding:.35rem 0;display:grid}.scan-finding.is-new{animation:.3s scan-in}.scan-finding:last-child{border-bottom:none}.scan-finding__id{color:var(--fg)}.scan-finding__title{color:var(--fg-dim);min-width:0}.scan-finding__title em{border:1px solid var(--border);white-space:nowrap;border-radius:2px;margin-left:.4rem;padding:0 .3rem;font-size:.6rem;font-style:normal}.scan-finding__state{white-space:nowrap;font-size:.7rem}.scan-finding__state--candidate{color:var(--sev-med)}.scan-finding__state--verified{color:var(--accent)}.scan-sev{letter-spacing:.04em;font-size:.7rem}.scan-sev--medium-high{color:var(--sev-mh)}.scan-sev--medium{color:var(--sev-med)}.scan-sev--low-medium{color:var(--sev-lm)}.scan-sev--low{color:var(--sev-low)}.scan-output{color:var(--fg-dim);font-size:.7rem;line-height:1.5}.scan-output li{padding:.15rem 0}.scan-output.is-new li{animation:.4s scan-in}.scan-output .accent{display:block}@keyframes scan-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes swarm-bob{50%{transform:translateY(-3px)}}@keyframes swarm-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes swarm-pulse{0%{opacity:.35}to{opacity:1}}@keyframes swarm-sweep{to{left:110%}}@keyframes swarm-shake{25%{transform:translate(-2px)rotate(-6deg)}75%{transform:translate(2px)rotate(6deg)}}@keyframes swarm-alert{0%,60%{border-color:var(--sev-mh);background:#d9640a14;box-shadow:0 0 14px #d9640a4d}}@media (width<=860px){.scan__grid,.scan__lower{grid-template-columns:1fr}.scan__col+.scan__col,.scan__lower>div+div{border-left:none;border-top:1px solid var(--border)}.swarm{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.swarm-agent__task{display:none}.scan-log{min-height:0}.scan-log__line{grid-template-columns:1.5ch 10ch minmax(0,1fr)}.scan-log__tag,.scan__status{display:none}.scan-finding{grid-template-columns:4ch minmax(0,1fr)}.scan-finding__title,.scan-finding__state{grid-column:2}}@media (prefers-reduced-motion:reduce){.scan *,.scan :after{transition:none!important;animation:none!important}}
