:root{--color-page: #f7f9fc;--color-surface: #ffffff;--color-surface-subtle: #f8fafd;--color-surface-muted: #f1f3f4;--color-text: #202124;--color-text-soft: #344054;--color-muted: #5f6368;--color-muted-strong: #80868b;--color-border: #dadce0;--color-border-subtle: #e8eaed;--color-border-accent: #d2e3fc;--color-primary: #1a73e8;--color-primary-hover: #1558b0;--color-primary-soft: #e8f0fe;--color-primary-wash: #f4f8ff;--color-success: #188038;--color-success-soft: #e6f4ea;--color-warning: #e37400;--color-warning-soft: #fef7e0;--color-warning-strong: #b06000;--color-warning-strong-soft: #feefc3;--color-danger: #d93025;--color-danger-soft: #fce8e6;--color-focus: #fbbc04;--color-on-primary: #ffffff;--shadow-sm: 0 8px 24px rgb(60 64 67 / 8%);--shadow-md: 0 8px 24px rgb(60 64 67 / 10%);--shadow-lg: 0 14px 36px rgb(60 64 67 / 16%);--shadow-toast: 0 16px 48px rgb(60 64 67 / 18%);--shadow-primary: 0 8px 24px rgb(66 133 244 / 18%);--shadow-primary-soft: 0 8px 24px rgb(26 115 232 / 10%);--interactive-hover: rgb(95 99 104 / 8%);--interactive-hover-strong: rgb(95 99 104 / 28%);--gradient-brand: linear-gradient(110deg, #4285f4, #ea4335, var(--color-focus), #34a853, #4285f4);--gradient-title: linear-gradient(90deg, #4285f4, #ea4335, var(--color-focus), var(--color-surface), #34a853, #4285f4);--gradient-roadmap-empty: linear-gradient(135deg, rgb(26 115 232 / 7%), rgb(52 168 83 / 6%));color:var(--color-text);background:var(--color-page);font-family:Nunito,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}html[data-theme=dark]{--color-page: #101418;--color-surface: #171c22;--color-surface-subtle: #1d242d;--color-surface-muted: #252d36;--color-text: #f4f7fb;--color-text-soft: #d8dee7;--color-muted: #a7b0bd;--color-muted-strong: #8893a1;--color-border: #34404d;--color-border-subtle: #29333f;--color-border-accent: #29527e;--color-primary: #8ab4f8;--color-primary-hover: #aecbfa;--color-primary-soft: #162d4b;--color-primary-wash: #13263f;--color-success: #81c995;--color-success-soft: #16351f;--color-warning: #fdd663;--color-warning-soft: #392b10;--color-warning-strong: #fbbc04;--color-warning-strong-soft: #332a0e;--color-danger: #f28b82;--color-danger-soft: #3f1f1d;--color-focus: #fdd663;--color-on-primary: #08111f;--shadow-sm: 0 10px 30px rgb(0 0 0 / 22%);--shadow-md: 0 12px 34px rgb(0 0 0 / 26%);--shadow-lg: 0 18px 46px rgb(0 0 0 / 34%);--shadow-toast: 0 20px 56px rgb(0 0 0 / 44%);--shadow-primary: 0 8px 28px rgb(138 180 248 / 16%);--shadow-primary-soft: 0 8px 28px rgb(138 180 248 / 10%);--interactive-hover: rgb(232 240 254 / 9%);--interactive-hover-strong: rgb(232 240 254 / 28%);--gradient-title: linear-gradient(90deg, #8ab4f8, #f28b82, #fdd663, var(--color-surface), #81c995, #8ab4f8);--gradient-roadmap-empty: linear-gradient(135deg, rgb(138 180 248 / 12%), rgb(129 201 149 / 10%))}*{box-sizing:border-box}body{margin:0;background:var(--color-page)}button,input,select{font:inherit}.app-shell{min-height:100vh;width:90%;margin:0 auto;padding:28px 0}.top-menu{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid transparent;border-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--color-border) 72%,transparent) 14%,color-mix(in srgb,var(--color-primary) 30%,var(--color-border)) 50%,color-mix(in srgb,var(--color-border) 72%,transparent) 86%,transparent) 1}.top-menu-brand{display:inline-flex;min-width:0;align-items:center;gap:10px;border:0;background:transparent;color:var(--color-muted);padding:0;text-align:left}.top-menu-brand>span:last-child{overflow:hidden;font-size:.86rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.top-menu-brand:hover>span:last-child,.top-menu-brand:focus-visible>span:last-child{color:var(--color-text)}.top-menu-actions{display:flex;align-items:center;gap:10px}.select-menu{position:relative;width:100%}.page-size-menu{width:86px}.column-filter-menu{width:auto;max-width:160px}.select-trigger{display:inline-flex;width:100%;min-height:34px;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font-size:.82rem;font-weight:800;padding:6px 10px 6px 12px}.select-trigger-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger-icon{flex:0 0 auto;width:14px;height:14px;fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.select-trigger-filter-icon{flex:0 0 auto;width:13px;height:13px;fill:currentcolor;opacity:.66}.select-trigger:hover .select-trigger-filter-icon,.select-trigger[aria-expanded=true] .select-trigger-filter-icon,.select-trigger.active .select-trigger-filter-icon{opacity:1}.select-trigger:hover,.select-trigger[aria-expanded=true]{border-color:var(--interactive-hover-strong);background:var(--interactive-hover)}.select-trigger.active{border-color:var(--color-border-accent);background:var(--color-primary-soft);color:var(--color-primary)}.select-trigger:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.select-options{position:fixed;z-index:20;display:grid;max-height:260px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-lg);overflow:hidden;overflow-y:auto;padding:4px;-webkit-user-select:none;user-select:none}.select-options button{min-height:32px;border:0;border-radius:6px;background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.84rem;font-weight:800;padding:7px 10px;text-align:left;-webkit-user-select:none;user-select:none}.select-options button:hover{background:var(--interactive-hover)}.select-options button[aria-selected=true]{background:var(--color-surface-subtle);color:var(--color-text)}.theme-control{display:inline-flex;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;background:var(--color-surface)}.theme-control button,.menu-button{min-height:34px;border:0;border-radius:0;background:var(--color-surface);color:var(--color-muted);font-size:.9rem;font-weight:800;padding:6px 10px}.theme-control button{min-width:36px;transition:background .16s ease,color .16s ease}.theme-control button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;transition:color .16s ease,transform .16s ease,filter .16s ease}.theme-control button:hover,.theme-control button:focus-visible{background:var(--interactive-hover);color:var(--color-text)}.theme-control button[aria-pressed=true]{background:var(--color-primary-soft);color:var(--color-primary)}.theme-control button:hover svg,.theme-control button:focus-visible svg{color:var(--color-text);filter:drop-shadow(0 2px 6px color-mix(in srgb,var(--color-text) 22%,transparent));transform:translateY(-1px)}.theme-control button:focus-visible,.select-trigger:focus-visible,.menu-button:focus-visible,.top-menu-brand:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.theme-control button+button{border-left:1px solid var(--color-border)}.menu-button:hover:not(:disabled){background:var(--interactive-hover)}.menu-button.sign-in{border:1px solid var(--color-text);border-radius:6px;color:var(--color-text);padding:6px 12px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,480px);gap:28px;align-items:start;margin:-4px auto 22px;width:100%}.hero-title-block{display:grid;gap:10px}.brand-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.brand-mark{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid transparent;border-radius:8px;background:linear-gradient(var(--color-surface),var(--color-surface)) padding-box,linear-gradient(90deg,color-mix(in srgb,var(--color-border) 76%,transparent),color-mix(in srgb,var(--color-primary) 90%,white 10%),color-mix(in srgb,var(--color-border) 76%,transparent)) border-box;background-size:100% 100%,220% 100%;background-position:0 0,0 0;color:var(--color-text);font-size:.86rem;font-weight:900;padding:5px 12px;animation:brand-border-shift 4.5s linear infinite}.brand-logo{width:18px;height:18px;object-fit:contain}.hero h1{display:grid;gap:2px;margin:0;color:var(--color-text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(2.25rem,4.6vw,3.9rem);font-weight:700;line-height:.95;letter-spacing:0}.title-motion-bar{width:min(420px,58%);height:6px;margin-top:2px;border-radius:999px;background:var(--gradient-title);background-size:260% 100%;box-shadow:var(--shadow-primary);animation:title-color-shift 7s ease-in-out infinite}.hero-copy{display:grid;gap:8px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-sm);padding:18px}.hero-copy p{margin:0;color:var(--color-muted);font-size:1rem;line-height:1.6}.hero-copy .hero-kicker{color:var(--color-text);font-size:.82rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.eyebrow{margin:0;color:var(--color-muted);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}@keyframes title-color-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes brand-border-shift{to{background-position:0 0,220% 0}}.dashboard-grid{display:grid;gap:20px;align-items:stretch;margin:0 auto 20px;width:100%}.dashboard-grid{grid-template-columns:minmax(280px,.65fr) minmax(320px,1fr)}.panel{border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-md);padding:24px}.panel h2,.panel h3{margin:0;color:var(--color-text)}.panel-heading{margin-bottom:20px}.heading-with-tooltip{display:flex;align-items:center;gap:8px}.info-tooltip{position:relative;display:inline-flex}.info-tooltip>button{display:inline-grid;width:24px;height:24px;min-height:24px;place-items:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-muted);font-size:.78rem;font-weight:900;padding:0}.info-tooltip>button:hover,.info-tooltip>button:focus-visible{border-color:var(--interactive-hover-strong);background:var(--interactive-hover);color:var(--color-text);outline:0}.info-tooltip [role=tooltip]{position:absolute;left:50%;bottom:calc(100% + 10px);z-index:30;display:grid;width:min(360px,calc(100vw - 40px));gap:7px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-lg);color:var(--color-text-soft);font-size:.82rem;line-height:1.35;opacity:0;padding:12px;pointer-events:none;text-transform:none;transform:translate(-50%,4px);transition:opacity .14s ease,transform .14s ease}.info-tooltip:hover [role=tooltip],.info-tooltip:focus-within [role=tooltip]{opacity:1;transform:translate(-50%)}.info-tooltip [role=tooltip] strong{color:var(--color-text)}.scan-form{display:grid;align-content:start;margin-bottom:20px}.scan-form-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:start}.scan-form-heading .eyebrow,.scan-form-heading h2{grid-column:1}.scan-timestamp{grid-column:2;grid-row:1 / span 2;align-self:start;color:var(--color-muted);font-size:.82rem;font-weight:800;text-align:right;white-space:nowrap}.scan-timestamp strong{display:block;margin-top:3px;color:var(--color-text);font-size:.9rem}.scan-repository-context{margin-top:14px;border-top:1px solid var(--color-border-subtle);padding-top:14px}.scan-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.scan-controls label{display:grid;gap:8px;color:var(--color-text-soft);font-weight:700}.scan-controls label span,.filters label{color:var(--color-muted);font-size:.85rem;font-weight:700}.scan-form input,.filters input{width:100%;border:1px solid var(--color-border);border-radius:6px;padding:11px 13px;color:var(--color-text);background:var(--color-surface)}.scan-form input:focus,.filters input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:0}button{border:0;border-radius:6px;background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;font-weight:800;min-height:42px;padding:9px 16px;white-space:nowrap}.scan-form button:hover:not(:disabled){background:var(--color-primary-hover)}button:disabled{cursor:not-allowed;opacity:.55}.summary-panel{display:grid;gap:16px;margin-bottom:20px}.summary-head{display:flex;align-items:start;justify-content:space-between;gap:16px}.summary-description{max-width:540px;margin:8px 0 0;color:var(--color-muted);font-size:.92rem;line-height:1.45}.score{display:inline-flex;align-items:baseline;gap:3px;color:var(--color-primary);font-size:3.4rem;line-height:1}.score small{font-size:1.1rem;font-weight:800}.score.empty{color:var(--color-primary)}.score.high{color:var(--color-success)}.score.medium{color:var(--color-primary)}.score.low{color:var(--color-warning)}.score.critical{color:var(--color-danger)}.summary-body{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(260px,.65fr) minmax(360px,1fr);gap:14px;align-items:stretch}.scan-progress-block{display:grid;align-content:center;gap:8px;border:1px solid var(--color-border-subtle);border-radius:8px;padding:14px}.progress-label{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:.88rem;font-weight:800}.progress-label span{overflow-wrap:anywhere}.progress-label strong{color:var(--color-text)}.progress-track{overflow:hidden;height:8px;border-radius:999px;background:var(--color-surface-muted)}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--color-primary);transition:width .22s ease}.progress-detail{display:grid;gap:4px;color:var(--color-muted);font-size:.86rem;line-height:1.45}.progress-detail span,.progress-detail strong{margin:0}.progress-detail strong{color:var(--color-text-soft);font-weight:700}.progress-actions{display:flex;justify-content:flex-end}.cancel-scan-button{border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text-soft);padding:8px 11px;min-height:0;font-size:.84rem;font-weight:900}.cancel-scan-button:hover:not(:disabled),.cancel-scan-button:focus-visible{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-danger-soft)}.summary-metrics{display:grid;grid-template-columns:1fr;gap:10px}.metric,.risk-pill{display:flex;justify-content:space-between;gap:14px;border:1px solid var(--color-border-subtle);border-radius:8px;padding:12px}.metric span,.risk-pill span{color:var(--color-muted)}.metric strong{color:var(--color-text);text-align:right;word-break:break-word}.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:2px 9px;text-transform:capitalize;white-space:nowrap;word-break:normal}.status-pill.idle,.status-pill.starting,.status-pill.pending,.status-pill.running{background:var(--color-primary-soft);color:var(--color-primary)}.status-pill.completed{background:var(--color-success-soft);color:var(--color-success)}.status-pill.failed{background:var(--color-danger-soft);color:var(--color-danger)}.status-pill.canceled{background:var(--color-surface-muted);color:var(--color-muted)}.scan-error{border-radius:8px;background:var(--color-danger-soft);color:var(--color-danger);padding:12px}.scan-error span{display:block;margin-bottom:5px;font-size:.78rem;font-weight:800;text-transform:uppercase}.scan-error p{margin:0;line-height:1.45}.coverage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.coverage-metric{display:grid;gap:4px;border:1px solid var(--color-border-subtle);border-radius:8px;padding:10px}.coverage-metric span{color:var(--color-muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.coverage-metric strong{color:var(--color-text);font-size:1.05rem}.scan-note{border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface-subtle);color:var(--color-muted);font-size:.88rem;font-weight:700;line-height:1.45;padding:11px 12px}.scan-limit-cta{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--color-border-accent);border-radius:8px;background:var(--color-primary-wash);box-shadow:var(--shadow-primary-soft);padding:12px}.scan-limit-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:8px;background:var(--color-primary-soft);color:var(--color-primary)}.scan-limit-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.scan-limit-cta strong{display:block;color:var(--color-text)}.scan-limit-cta p{margin:4px 0 0;color:var(--color-muted);line-height:1.45}.scan-limit-cta button{min-height:36px;padding:8px 12px}.repository-metadata-panel{display:grid;gap:10px}.repository-source{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);padding:10px}.repository-source img,.repository-avatar-placeholder{width:42px;height:42px;border-radius:8px;background:var(--color-surface-muted)}.repository-source strong{display:block;overflow:hidden;color:var(--color-text);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.repository-target-link{display:block;overflow:hidden;width:fit-content;max-width:100%;margin-top:3px;color:var(--color-muted);font-size:.84rem;font-weight:700;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.repository-target-link:hover{color:var(--color-primary);text-decoration:underline}.github-source-label{display:inline-flex;align-items:center;gap:6px;margin-bottom:3px;color:var(--color-muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.github-source-label svg{width:16px;height:16px;fill:currentColor}.repository-metadata-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.metadata-item{display:grid;gap:4px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);padding:10px}.metadata-item span{color:var(--color-muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.metadata-item strong{overflow:hidden;color:var(--color-text);font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.risk-grid,.recommendations{display:grid;gap:12px}.risk-summary{margin:8px 0 0;color:var(--color-muted);font-size:.92rem;line-height:1.45}.recommendations{align-content:start;height:auto}.plan-panel{display:grid;align-content:start;min-height:0}.roadmap-empty{display:grid;grid-template-rows:auto 1fr;gap:16px;min-height:100%;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--gradient-roadmap-empty),var(--color-surface);padding:18px}.roadmap-empty-intro{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;align-items:center}.roadmap-empty-copy{min-width:0}.roadmap-empty-icon{display:grid;width:64px;height:64px;place-items:center;border:1px solid var(--color-border-accent);border-radius:8px;background:var(--color-surface);color:var(--color-primary)}.roadmap-empty-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.roadmap-empty h3,.roadmap-info-card h4{margin:0}.roadmap-empty p,.roadmap-info-card p{max-width:760px;margin:8px 0 0;color:var(--color-muted);line-height:1.5}.roadmap-empty-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.roadmap-info-card{border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);padding:14px}.roadmap-info-card h4{color:var(--color-text);font-size:.95rem}.roadmap-info-card p{font-size:.88rem}.risk-pill{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--color-border-subtle);border-radius:6px;cursor:pointer;padding:12px;text-align:left;text-transform:capitalize;white-space:normal;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.risk-pill:hover:not(:disabled),.risk-pill:focus-visible{border-color:currentColor;box-shadow:0 10px 24px color-mix(in srgb,currentColor 10%,transparent);transform:translateY(-1px)}.risk-pill:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.risk-pill:disabled{cursor:default;opacity:.62}.risk-pill.active{border-color:currentColor;box-shadow:inset 0 -3px 0 currentColor}.risk-pill-copy{display:grid;gap:2px;min-width:0}.risk-pill-copy span{color:currentColor}.risk-pill small{color:currentColor;font-size:.76rem;font-weight:600;opacity:.72;text-transform:none}.risk-pill strong{display:grid;justify-items:end;color:currentColor;font-size:1.15rem;line-height:1;text-align:right}.risk-pill strong small{margin-top:3px;font-size:.68rem}.risk-pill.critical,.badge.critical{background:var(--color-danger-soft);color:var(--color-danger)}.risk-pill.vulnerable,.badge.vulnerable{background:var(--color-warning-soft);color:var(--color-warning)}.risk-pill.partial,.badge.partial{background:var(--color-warning-strong-soft);color:var(--color-warning-strong)}.risk-pill.hybrid,.badge.hybrid{background:var(--color-primary-soft);color:var(--color-primary)}.risk-pill.safe,.badge.safe{background:var(--color-success-soft);color:var(--color-success)}.risk-pill.unknown,.badge.unknown{background:var(--color-surface-muted);color:var(--color-muted)}.recommendation{display:grid;grid-template-columns:3px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.recommendation:hover,.recommendation:focus-within{border-color:var(--interactive-hover-strong);background:var(--color-surface-subtle);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.recommendation-marker{width:3px;height:100%;min-height:100%;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 44%,transparent);opacity:.75;transition:opacity .16s ease}.recommendation:hover .recommendation-marker,.recommendation:focus-within .recommendation-marker{opacity:1}.recommendation-open{display:block;width:100%;min-height:0;border:0;background:transparent;color:inherit;padding:12px 12px 12px 0;text-align:left;white-space:normal}.recommendation-open:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.recommendation-title{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px 12px;align-items:start}.recommendation-title h3{font-size:1rem;line-height:1.25}.recommendation-title span{color:var(--color-muted);font-size:.8rem;font-weight:800;text-transform:capitalize}.recommendation-arrow{display:grid;width:34px;height:34px;place-items:center;color:var(--color-primary);opacity:.72;transform:translate(-2px);transition:color .16s ease,opacity .16s ease,transform .16s ease}.recommendation-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.recommendation:hover .recommendation-arrow,.recommendation:focus-within .recommendation-arrow{color:var(--color-primary);opacity:1;transform:translate(4px)}.recommendation p{display:-webkit-box;overflow:hidden;margin:8px 0 0;color:var(--color-muted);font-size:.9rem;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.knowledge-base-card{display:grid;grid-template-columns:36px minmax(0,1fr) 34px;gap:10px;align-items:center;width:100%;min-height:0;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);color:inherit;padding:12px;text-align:left;white-space:normal;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.knowledge-base-card:hover,.knowledge-base-card:focus-visible{border-color:var(--interactive-hover-strong);background:var(--color-surface-subtle);box-shadow:var(--shadow-sm);outline:0;transform:translateY(-1px)}.knowledge-base-card:hover .recommendation-arrow,.knowledge-base-card:focus-visible .recommendation-arrow{opacity:1;transform:translate(4px)}.knowledge-base-icon{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--color-border-accent);border-radius:8px;background:var(--color-primary-wash);color:var(--color-primary)}.knowledge-base-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.knowledge-base-card strong,.knowledge-base-card small{display:block}.knowledge-base-card strong{color:var(--color-text);font-size:.95rem}.knowledge-base-card small{margin-top:3px;color:var(--color-muted);font-size:.84rem;line-height:1.4}.recommendation-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--color-border-subtle);padding-top:10px}.recommendation-pagination button{min-height:30px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);font-size:.82rem;padding:5px 9px}.recommendation-pagination button:hover:not(:disabled){border-color:var(--interactive-hover-strong);background:var(--interactive-hover);color:var(--color-text)}.recommendation-pagination span{min-width:48px;color:var(--color-muted);font-size:.82rem;font-weight:800;text-align:center}.recommendation-actions{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.recommendation-actions li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;color:var(--color-text-soft);font-size:.92rem;line-height:1.45}.recommendation-actions li:before{content:"";width:9px;height:9px;margin-top:.38rem;justify-self:center;border:2px solid var(--color-primary);border-radius:999px;background:var(--color-surface);box-shadow:0 0 0 3px var(--color-primary-soft)}.remediation-page{display:grid;gap:16px}.remediation-header{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(360px,.6fr);gap:14px 16px;align-items:start}.remediation-header .back-button{grid-column:1 / -1}.remediation-header:before{content:"";grid-column:2;grid-row:2;width:1px;height:76px;align-self:center;border-radius:999px;background:linear-gradient(180deg,transparent,var(--color-border-accent),var(--color-primary),transparent);opacity:.65}.remediation-title-block h1{margin:6px 0 0;color:var(--color-text);font-size:clamp(1.85rem,3.2vw,3rem);line-height:1.04}.remediation-status-grid{grid-column:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-self:start;padding-top:2px}.remediation-console{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1fr);gap:12px;align-items:stretch}.console-card{display:grid;gap:14px;align-content:start;border:1px solid var(--color-border);border-top:3px solid var(--color-border-accent);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-sm);padding:16px}.console-card.action{border-top-color:var(--color-primary)}.target-card{align-content:stretch}.console-card h2,.ai-tool-panel h2{margin:0;color:var(--color-text);font-size:1.12rem}.console-card p,.ai-tool-panel p,.remediation-empty,.remediation-table-note{margin:0;color:var(--color-muted);font-size:.92rem;line-height:1.5}.console-facts{display:grid;gap:8px}.fact-row{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;border-top:1px solid var(--color-border-subtle);padding-top:8px}.fact-row span,.first-action span,.target-stack span,.ai-preview-box span{color:var(--color-muted);font-size:.74rem;font-weight:900;text-transform:uppercase}.fact-row strong{color:var(--color-text-soft);font-size:.88rem;line-height:1.35}.first-action{display:grid;gap:6px;border:1px solid var(--color-border-accent);border-radius:8px;background:var(--color-primary-wash);padding:12px}.first-action strong{color:var(--color-text);font-size:.94rem;line-height:1.4}.remediation-checklist,.target-notes{display:grid;gap:8px;margin:0;padding:0;list-style:none}.remediation-checklist li,.target-notes li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;color:var(--color-text-soft);font-size:.9rem;line-height:1.42}.remediation-checklist li:before,.target-notes li:before{content:"";width:10px;height:3px;margin-top:.58rem;border-radius:999px;background:var(--color-primary)}.target-stack{display:grid;gap:4px;border-left:3px solid var(--color-primary);background:var(--color-primary-wash);padding:10px 12px}.target-stack strong{color:var(--color-primary);font-size:1.25rem}.target-docs-link{display:inline-flex;width:fit-content;align-items:center;justify-self:end;align-self:end;gap:7px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font-size:.86rem;font-weight:900;margin-top:auto;padding:7px 10px}.target-docs-link:hover{border-color:var(--interactive-hover-strong);background:var(--interactive-hover)}.target-docs-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ai-tool-panel button{justify-self:start;min-height:34px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:7px 11px}.ai-tool-panel button:hover:not(:disabled){border-color:var(--interactive-hover-strong);background:var(--interactive-hover)}.ai-tool-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.35fr) auto;gap:14px;align-items:center;border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-sm);padding:14px 16px}.ai-preview-box{display:grid;gap:4px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface-subtle);padding:10px}.ai-preview-box strong{color:var(--color-text)}.remediation-files{display:grid;gap:12px}.remediation-table-scroll{overflow:auto}.remediation-files-table th{position:sticky;top:0}.back-button{display:inline-flex;align-items:center;gap:7px;justify-self:start;min-height:34px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:7px 11px}.back-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.back-button:hover:not(:disabled){border-color:var(--interactive-hover-strong);background:var(--interactive-hover)}.guide-title-bar{width:min(420px,58%);height:6px;margin-top:12px;border-radius:999px;background:var(--gradient-title);background-size:260% 100%;box-shadow:var(--shadow-primary);animation:title-color-shift 7s ease-in-out infinite}.guide-missing{border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-md);padding:22px}.algorithm-docs-page{display:grid;gap:18px;min-height:420px;align-content:start}.algorithm-docs-layout{display:grid;grid-template-columns:minmax(190px,.28fr) minmax(0,1fr);gap:24px;align-items:start}.algorithm-docs-index{position:sticky;top:18px;display:grid;gap:6px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);padding:10px}.algorithm-docs-index span{color:var(--color-muted);font-size:.74rem;font-weight:900;text-transform:uppercase}.algorithm-docs-index button{min-height:34px;border:0;background:transparent;color:var(--color-text-soft);padding:7px 8px;text-align:left;white-space:normal}.algorithm-docs-index button:hover,.algorithm-docs-index button.active{background:var(--interactive-hover);color:var(--color-text)}.algorithm-docs-content{min-width:0}.algorithm-docs-page h1{margin:6px 0 0;color:var(--color-text);font-size:clamp(2rem,4vw,3.6rem);line-height:1}.algorithm-docs-page p:not(.eyebrow){max-width:720px;margin:14px 0 0;color:var(--color-muted);line-height:1.55}.algorithm-docs-placeholder{max-width:720px;margin-top:18px;border:1px solid var(--color-border-subtle);border-left:3px solid var(--color-primary);border-radius:8px;background:var(--color-surface-subtle);padding:14px}.algorithm-docs-placeholder strong{color:var(--color-text)}.algorithm-docs-placeholder p{margin-top:6px}.algorithm-topic{display:grid;gap:16px;max-width:900px}.algorithm-topic>p{max-width:760px}.algorithm-source-link,.algorithm-source-list a{width:fit-content;color:var(--color-primary);font-size:.88rem;font-weight:900;text-decoration:none}.algorithm-source-link:hover,.algorithm-source-list a:hover{text-decoration:underline}.algorithm-doc-section{display:grid;gap:10px;max-width:900px}.algorithm-doc-section h2{color:var(--color-text);font-size:1.05rem}.algorithm-doc-section p{margin:0;color:var(--color-muted);font-size:.94rem;line-height:1.55}.algorithm-flow,.algorithm-parameter-grid{display:grid;gap:10px}.algorithm-flow{grid-template-columns:repeat(3,minmax(0,1fr))}.algorithm-flow-step,.algorithm-parameter-card{display:grid;gap:6px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);padding:12px}.algorithm-flow-step strong,.algorithm-parameter-card strong{color:var(--color-text);font-size:.95rem}.algorithm-flow-step p,.algorithm-parameter-card p{margin:0;color:var(--color-muted);font-size:.9rem;line-height:1.45}.algorithm-parameter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.algorithm-parameter-card{border-top:3px solid var(--color-border-accent)}.algorithm-parameter-card span{color:var(--color-primary);font-size:.78rem;font-weight:900;text-transform:uppercase}.algorithm-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.algorithm-topic-grid.compact{margin-top:2px}.algorithm-doc-card{display:grid;gap:8px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);padding:14px}.algorithm-doc-card h2{color:var(--color-text);font-size:1rem}.algorithm-doc-card p{margin:0;color:var(--color-muted);font-size:.92rem;line-height:1.5}.algorithm-doc-card ul{display:grid;gap:7px;margin:0;padding-left:18px}.algorithm-doc-card li{color:var(--color-muted);font-size:.9rem;line-height:1.45}.algorithm-source-list{display:flex;flex-wrap:wrap;gap:8px 14px}.brief-metric{display:grid;gap:5px;border-top:1px solid var(--color-border-subtle);padding-top:10px}.brief-metric span{color:var(--color-muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.brief-metric strong{overflow:hidden;color:var(--color-text);font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.status-metric{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-items:center;min-width:0}.status-metric-icon{display:grid;width:28px;height:28px;place-items:center;color:var(--color-muted)}.status-metric-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.status-metric span:not(.status-metric-icon){display:block;color:var(--color-muted);font-size:.7rem;font-weight:900;line-height:1.1;text-transform:uppercase}.status-metric strong{display:block;overflow:hidden;margin-top:2px;color:var(--color-text);font-size:.9rem;line-height:1.15;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.status-metric.primary .status-metric-icon{color:var(--color-primary)}.status-metric.warning .status-metric-icon{color:var(--color-warning)}.status-metric.danger .status-metric-icon{color:var(--color-danger)}.guide-missing h1{margin:6px 0 0;color:var(--color-text);font-size:clamp(2rem,4vw,3.6rem);line-height:1}.guide-missing p{max-width:780px;margin:12px 0 0;color:var(--color-muted);font-size:1rem;line-height:1.55}.table-panel{margin:0 auto;width:100%}.table-scroll{max-height:min(640px,calc(100vh - 220px));overflow:auto}.findings-heading{display:flex;align-items:end;justify-content:space-between;gap:16px}.findings-heading span{color:var(--color-muted);font-weight:700}.filters{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-surface);padding:12px;margin-bottom:18px}.filters label,.pagination-bar label{display:grid;gap:7px;color:var(--color-muted);font-size:.85rem;font-weight:700}.clear-filters,.pagination-controls button{min-height:34px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);padding:7px 10px}.clear-filters:hover:not(:disabled),.pagination-controls button:hover:not(:disabled){border-color:var(--interactive-hover-strong);background:var(--interactive-hover);color:var(--color-text)}.clear-filters{color:var(--color-text);justify-self:end}table{width:100%;min-width:760px;border-collapse:collapse}th,td{border-top:1px solid var(--color-border-subtle);padding:12px 10px;text-align:left;vertical-align:top}th{position:sticky;top:0;z-index:2;background:var(--color-surface);box-shadow:inset 0 -1px 0 var(--color-border-subtle);color:var(--color-muted);font-size:.82rem;line-height:1.1;text-transform:uppercase;vertical-align:middle}.location-group-row{background:var(--color-surface-subtle)}.location-group-row td{border-top-color:var(--color-border);font-weight:800;vertical-align:middle}.finding-detail-row td{background:color-mix(in srgb,var(--color-surface-subtle) 42%,var(--color-surface));color:var(--color-text-soft);font-size:.9rem}.finding-detail-row td:first-child{padding-left:20px}.column-filter{display:inline-flex;min-width:0;max-width:100%;align-items:center;gap:5px}.column-filter>span{flex:0 0 auto;color:var(--color-muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.column-filter .select-trigger{width:28px;min-height:28px;justify-content:center;gap:0;border-color:transparent;background:transparent;color:var(--color-muted);font-size:.75rem;padding:0}.column-filter .select-trigger:hover,.column-filter .select-trigger[aria-expanded=true]{border-color:var(--color-border-subtle);background:var(--interactive-hover);color:var(--color-text)}.column-filter .select-trigger.active{border-color:var(--color-border-accent);background:var(--color-primary-soft);color:var(--color-primary)}.column-filter .select-options{text-transform:none}.badge{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:.82rem;font-weight:800;text-transform:capitalize}.location-link{color:var(--color-primary);font-weight:700;text-decoration:none}.location-link:hover{text-decoration:underline}.pagination-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--color-border-subtle);margin-top:14px;padding-top:14px}.pagination-bar label{grid-template-columns:auto 86px;align-items:center}.pagination-controls{display:flex;align-items:center;gap:10px}.pagination-controls span{color:var(--color-muted);font-size:.9rem;font-weight:800}.app-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:24px 0 4px;color:var(--color-muted);font-size:.85rem;line-height:1.5;text-align:center}.footer-logos{display:inline-flex;align-items:center;gap:10px}.footer-logos img{width:18px;height:18px;object-fit:contain;opacity:.82}.footer-logos .virustotal-logo{width:78px;height:16px}.logo-link-mark{color:var(--color-muted-strong);font-size:.86rem;font-weight:800;line-height:1}.footer-credit{color:var(--color-muted-strong)}.footer-credit a{color:var(--color-primary);font-weight:700;text-decoration:none}.footer-credit a:hover{text-decoration:underline}.toast-stack{position:fixed;right:18px;top:18px;z-index:10;display:grid;width:min(360px,calc(100vw - 36px));gap:10px}.toast{overflow:hidden;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-toast)}.toast-content{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px;color:var(--color-text);line-height:1.45}.toast-content button{min-width:28px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);padding:3px 8px}.toast-progress{height:4px;animation:toast-timer 5s linear forwards}.toast.info .toast-progress{background:var(--color-primary)}.toast.success .toast-progress{background:var(--color-success)}.toast.error .toast-progress{background:var(--color-danger)}@keyframes toast-timer{0%{width:100%}to{width:0}}@media(max-width:1240px){.summary-body{grid-template-columns:minmax(320px,1fr) minmax(320px,1fr)}.coverage-grid,.repository-metadata-grid{grid-column:1 / -1}.repository-metadata-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:860px){.app-shell{width:min(100% - 32px,100%);padding:20px 0}.top-menu-brand>span:last-child{display:none}.hero,.dashboard-grid,.summary-body,.scan-controls{grid-template-columns:1fr}.scan-controls button{justify-self:end}.filters,.scan-form-heading{grid-template-columns:1fr}.scan-timestamp{grid-column:1;grid-row:auto;text-align:left}.scan-timestamp strong{display:inline;margin-left:4px}.clear-filters{justify-self:start}.pagination-bar,.pagination-controls{align-items:stretch;flex-direction:column}.pagination-bar label{grid-template-columns:1fr}.scan-limit-cta{grid-template-columns:44px minmax(0,1fr)}.scan-limit-cta button{grid-column:1 / -1;justify-self:start}.coverage-grid,.repository-metadata-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roadmap-empty,.roadmap-empty-intro,.roadmap-empty-cards,.remediation-header,.remediation-console,.algorithm-docs-layout,.algorithm-flow,.algorithm-parameter-grid,.algorithm-topic-grid,.ai-tool-panel{grid-template-columns:1fr}.algorithm-docs-index{position:static}.remediation-header:before{display:none}.remediation-status-grid{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.summary-head{display:grid}.coverage-grid,.repository-metadata-grid{grid-template-columns:1fr}.brief-metric strong{white-space:normal}.remediation-status-grid,.fact-row{grid-template-columns:1fr}.remediation-title-block h1{font-size:1.85rem}}
