:root{color:#0a1e28;background:#f4f8f7;font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--ink: #0a1e28;--muted: #60727c;--line: #dce6e9;--surface: #ffffff;--wash: #f4f8f7;--green: #009c72;--green-dark: #007d5b;--green-soft: #ddf7ee;--amber: #c47708;--amber-soft: #fff3d8;--red: #c83f4b;--red-soft: #ffe9ec;--navy: #0b2631;--shadow: 0 18px 46px rgba(20, 61, 65, .08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--wash)}button,input{font:inherit}button{cursor:pointer}code{font-family:SFMono-Regular,Consolas,monospace}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hidden{display:none!important}.topbar{height:68px;padding:0 28px;color:#fff;background:var(--navy);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-weight:780;letter-spacing:-.02em}.brand small{color:#90aaa9;font-weight:600;margin-left:3px}.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#14d7a3,#008c67);box-shadow:inset 0 0 0 1px #ffffff40}.brand-mark svg{width:20px}.top-actions{display:flex;align-items:center;gap:10px}.version{color:#b9cccb;border:1px solid #31505a;border-radius:99px;padding:6px 10px;font-size:12px}.icon-button{width:34px;height:34px;border:0;border-radius:50%;color:#cce0df;background:#254550;font-weight:800}.shell{max-width:1440px;margin:0 auto;padding:30px;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px}.main{min-width:0}.eyebrow{color:var(--green-dark);font-size:12px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}h1{margin:5px 0 4px;font-size:clamp(28px,3vw,38px);letter-spacing:-.045em;line-height:1.15}.lead{margin:0 0 22px;color:var(--muted);font-size:15px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.source-card{padding:8px}.source-tabs{display:inline-flex;gap:4px;padding:3px;background:#edf3f2;border-radius:10px}.source-tab{border:0;background:transparent;color:var(--muted);padding:8px 13px;border-radius:8px;font-weight:750}.source-tab.active{color:var(--ink);background:#fff;box-shadow:0 2px 7px #142d3214}.source-body{padding:18px 16px 16px}.form-row{display:grid;grid-template-columns:minmax(0,1fr) 132px auto;gap:10px}label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:750}input{width:100%;border:1px solid #cbd8dc;border-radius:10px;padding:11px 12px;color:var(--ink);outline:none;background:#fff}input:focus{border-color:var(--green);box-shadow:0 0 0 3px #009c721f}.primary{border:0;border-radius:10px;color:#fff;background:var(--green);font-weight:800;padding:11px 18px;align-self:end;box-shadow:0 8px 18px #009c722e}.primary:hover{background:var(--green-dark)}.primary:disabled{cursor:wait;opacity:.65}.primary.full{width:100%}.hint{margin:10px 0 0;color:var(--muted);font-size:12px}.dropzone{width:100%;border:1.5px dashed #b8cbcd;border-radius:12px;padding:27px;text-align:center;background:#fbfdfd;color:var(--ink)}.dropzone strong{display:block;margin-bottom:3px}.dropzone span{color:var(--muted);font-size:12px}.scan-progress{margin-top:12px;padding:15px 17px;display:none;align-items:center;gap:13px}.scan-progress.show{display:flex}.progress-copy{flex:1}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid #d8ebe6;border-top-color:var(--green);animation:spin .8s linear infinite}.progress-track{margin-top:7px;height:5px;overflow:hidden;border-radius:99px;background:#e4ecea}.progress-fill{height:100%;width:0;background:var(--green);transition:width .25s ease}@keyframes spin{to{transform:rotate(360deg)}}.results{margin-top:22px;scroll-margin-top:88px}.result-head{padding:22px;display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.status-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-line h2{margin:0;font-size:22px;letter-spacing:-.025em}.pill{display:inline-flex;align-items:center;border-radius:99px;padding:6px 10px;font-size:12px;font-weight:800}.pill.warning{color:#835000;background:var(--amber-soft)}.pill.pass{color:#006348;background:var(--green-soft)}.pill.neutral{color:#4d626b;background:#edf2f3}.result-meta{margin:8px 0 0;color:var(--muted)}.head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.secondary{border:1px solid #cbd8dc;border-radius:9px;color:var(--ink);background:#fff;padding:9px 12px;font-weight:750}.secondary:hover{border-color:#9fb4b8;background:#f8fbfa}.score-strip{border-top:1px solid var(--line);padding:17px 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{border-right:1px solid var(--line)}.metric:last-child{border:0}.metric strong{display:block;font-size:20px;letter-spacing:-.03em}.metric span{color:var(--muted);font-size:12px}.content-grid{margin-top:18px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px}.section{padding:20px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.section-title h3{margin:0;font-size:16px;letter-spacing:-.015em}.section-title span{color:var(--muted);font-size:12px}.component{border:1px solid var(--line);border-radius:13px;padding:15px}.component-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.component-name{display:flex;align-items:center;gap:10px}.runtime-icon{width:35px;height:35px;border-radius:9px;color:#fff;background:#2e7b5d;display:grid;place-items:center;font-weight:850;font-size:11px}.component h4{margin:0;font-size:15px}.component p{margin:3px 0 0;color:var(--muted);font-size:12px}.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.spec{min-width:0;padding:9px;border-radius:8px;background:#f4f8f7}.spec span{display:block;color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.spec code{display:block;margin-top:3px;overflow:hidden;color:var(--ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.findings-title{margin-top:20px}.finding-list{display:grid;gap:10px;scroll-margin-top:88px}.finding{overflow:hidden;border:1px solid var(--line);border-radius:12px}.finding-toggle{width:100%;border:0;padding:13px 14px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start;text-align:left;color:var(--ink);background:#fff}.finding-toggle strong{display:block;font-size:13px}.finding-toggle small{display:block;margin-top:2px;color:var(--muted);font-size:11px}.severity{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:900}.severity.blocker{color:var(--red);background:var(--red-soft)}.severity.warning{color:var(--amber);background:var(--amber-soft)}.chevron{color:#8da0a5;transition:transform .2s}.finding.open .chevron{transform:rotate(180deg)}.evidence{display:none;border-top:1px solid var(--line);padding:11px 14px 12px 52px;background:#f8fbfa;font-size:11px}.finding.open .evidence{display:block}.evidence code{color:#285b73}.side-column{display:grid;gap:18px;align-content:start}.topology{min-height:164px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.topology:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#cfdcda 1px,transparent 1px);background-size:14px 14px;opacity:.55}.topology-node{min-width:94px;padding:11px 12px;position:relative;z-index:1;border:1px solid #bdcecf;border-radius:11px;text-align:center;background:#fff;box-shadow:0 7px 18px #193e4214}.topology-node b{display:block;font-size:12px}.topology-node span{color:var(--muted);font-size:10px}.topology-node.service{border-color:#61bfa5;box-shadow:0 0 0 3px #e0f7f0}.edge{width:46px;height:1px;position:relative;background:#8bb0aa}.edge:after{content:"";position:absolute;right:-1px;top:-3px;border-left:6px solid #8bb0aa;border-top:3px solid transparent;border-bottom:3px solid transparent}.dependency-nodes{display:grid;gap:9px}.next-action p{margin:0 0 14px;color:var(--muted);font-size:12px}.aside{display:grid;gap:18px;align-content:start;position:sticky;top:92px}.aside-card{padding:18px}.aside-card h3{margin:0 0 12px;font-size:14px}.checklist{display:grid;gap:11px}.check{display:grid;grid-template-columns:20px 1fr auto;gap:8px;align-items:center}.checkmark{width:19px;height:19px;border-radius:50%;display:grid;place-items:center;color:var(--green-dark);background:var(--green-soft);font-size:11px;font-weight:900}.checkmark.wait{color:var(--amber);background:var(--amber-soft)}.check span{font-size:12px}.check small{color:var(--muted);font-size:10px}.policy{border-color:#bde3d7;background:#effaf6}.policy p{margin:0;color:#41665e;font-size:12px}.policy strong{color:#075942}.activity{display:grid;gap:11px}.activity-row{display:grid;grid-template-columns:7px 1fr;gap:10px}.dot{width:7px;height:7px;margin-top:6px;border-radius:50%;background:#b4c5c5}.activity-row.active .dot{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.activity-row p{margin:0;font-size:11px}.activity-row time{color:var(--muted);font-size:10px}.footer-note{margin-top:16px;color:#7b8b91;font-size:11px;text-align:center}.toast{position:fixed;right:24px;bottom:24px;z-index:20;padding:12px 15px;border-radius:11px;color:#fff;background:var(--navy);box-shadow:0 12px 35px #041f2a47;opacity:0;pointer-events:none;transform:translateY(20px);transition:.25s}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:1060px){.shell{grid-template-columns:1fr}.aside{position:static;grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.topbar{padding:0 18px}.brand small,.version{display:none}.shell{padding:18px}.form-row,.content-grid,.aside{grid-template-columns:1fr}.result-head{flex-direction:column}.head-actions{justify-content:flex-start}.score-strip{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border:0}.specs{grid-template-columns:1fr}}
