:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f7fb;color:#19212f}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit;text-decoration:none}.boot,.auth-page{min-height:100vh;display:grid;place-items:center}.boot{background:#fff;color:#19212f}.auth-page{position:relative;overflow:hidden;background:#fff;color:#19212f;perspective:1100px}.auth-page:before{content:"";position:absolute;pointer-events:none}.auth-page:before{inset:auto -8% -28% -8%;height:56%;background:linear-gradient(rgba(229,47,126,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(22,119,111,.12) 1px,transparent 1px);background-size:58px 58px;opacity:.55;transform:rotateX(64deg) translateY(24px);transform-origin:center bottom;animation:auth-grid-depth 18s linear infinite}.auth-network{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;transform-style:preserve-3d}.auth-network:before{content:"";position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background:linear-gradient(115deg,transparent 0 18%,rgba(229,47,126,.07) 18% 19%,transparent 19% 100%),linear-gradient(38deg,transparent 0 42%,rgba(22,119,111,.06) 42% 43%,transparent 43% 100%),linear-gradient(156deg,transparent 0 64%,rgba(20,108,148,.06) 64% 65%,transparent 65% 100%);transform:translateZ(-140px) scale(1.18);animation:auth-depth-shift 16s ease-in-out infinite alternate}.auth-network:after{content:"";position:absolute;top:13%;right:12%;bottom:13%;left:12%;background:linear-gradient(rgba(20,108,148,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(229,47,126,.08) 1px,transparent 1px);background-size:92px 92px;opacity:.42;transform:rotateX(58deg) rotate(-8deg) translateZ(-70px);animation:auth-grid-depth 24s linear infinite reverse}.auth-network svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;stroke:#e52f7e4d;stroke-width:2;fill:none;filter:drop-shadow(0 18px 18px rgba(20,108,148,.08));transform:translateZ(20px)}.auth-network path{stroke-dasharray:18 18;animation:auth-network-flow 18s linear infinite}.auth-network path:nth-of-type(2){stroke:#16776f47;animation-duration:22s;animation-direction:reverse}.auth-network path:nth-of-type(3){stroke:#146c943d;animation-duration:26s}.auth-network circle{fill:#fff;stroke-width:2;animation:auth-node-pulse 3.5s ease-in-out infinite}.auth-network circle:nth-of-type(3n){animation-delay:1.1s}.auth-network circle:nth-of-type(3n+1){animation-delay:2s}.auth-bug{position:absolute;color:#e52f7e57;filter:drop-shadow(0 8px 14px rgba(229,47,126,.16))}.auth-bug-one{left:10%;top:18%;animation:auth-bug-drift 16s ease-in-out infinite}.auth-bug-two{right:14%;top:24%;color:#16776f52;animation:auth-bug-drift 19s ease-in-out infinite reverse}.auth-bug-three{left:18%;bottom:16%;color:#146c944d;animation:auth-bug-drift 21s ease-in-out infinite}.auth-bug-four{right:20%;bottom:20%;animation:auth-bug-drift 17s ease-in-out infinite reverse}.auth-panel{position:relative;z-index:1;width:min(420px,calc(100vw - 32px));display:grid;gap:16px;padding:28px;border-radius:8px;background:#ffffff7a;color:#19212f;border:1px solid rgba(255,255,255,.74);box-shadow:0 34px 90px #19212f33,0 12px 28px #e52f7e14,inset 0 1px #ffffffe0,inset 0 -1px #19212f0f;backdrop-filter:blur(24px) saturate(1.35);-webkit-backdrop-filter:blur(24px) saturate(1.35)}.auth-panel h1,.page h1,.page h2,.page h3{margin:0}.auth-logo{width:min(160px,48vw);height:auto;justify-self:center}.auth-panel label,.local-login-form,.grid-form{display:grid;gap:8px}input,select{min-height:40px;border:1px solid rgba(216,222,233,.88);border-radius:6px;padding:0 12px;background:#ffffffc2;color:#19212f}.primary,.secondary-button,.gitlab-button,.forgot-password-button,.keycloak-button,.local-login-toggle,.nav-button,.icon-button{border:0;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px}.primary{background:#16776f;color:#fff;padding:0 16px}.keycloak-button{width:100%;border:1px solid #E52F7E;background:#e52f7e;color:#fff;font-weight:700;padding:0 16px}.keycloak-button:hover{border-color:#c91f68;background:#c91f68}.local-login-toggle{width:100%;border:1px solid rgba(216,222,233,.82);background:#ffffff94;color:#334155;padding:0 14px;font-weight:600}.local-login-toggle .is-open{transform:rotate(180deg)}.local-login-form{padding-top:2px}.forgot-password-button{width:100%;border:1px solid rgba(216,222,233,.82);background:#f8fafca3;color:#146c94;font-weight:600;padding:0 14px}@keyframes auth-network-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-360}}@keyframes auth-node-pulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.35);opacity:1}}@keyframes auth-bug-drift{0%,to{transform:translateZ(0) rotate(-8deg)}35%{transform:translate3d(28px,-18px,0) rotate(10deg)}70%{transform:translate3d(-18px,24px,0) rotate(4deg)}}@keyframes auth-depth-shift{0%{transform:translate3d(-2%,-1%,-140px) scale(1.18)}to{transform:translate3d(2%,1%,-140px) scale(1.22)}}@keyframes auth-grid-depth{0%{background-position:0 0,0 0}to{background-position:116px 116px,116px 116px}}.secondary-button{background:#e8eef4;color:#1f2937;padding:0 14px}.gitlab-button{background:#fc6d26;color:#fff;font-weight:700;padding:0 16px;box-shadow:0 8px 18px #fc6d263d}.gitlab-button:hover{background:#e24329}.danger-icon-button{width:34px;height:34px;border:0;border-radius:6px;background:#fee4e2;color:#b42318;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.danger-icon-button:hover{background:#fecdca}.danger-icon-button:disabled{cursor:not-allowed;opacity:.62}.danger-button{background:#fee4e2;color:#b42318;padding:0 14px;min-height:34px;border:0;border-radius:6px;cursor:pointer;font-weight:600}.danger-button:hover{background:#fecdca}.danger-button:disabled{cursor:not-allowed;opacity:.62}.button-row{display:flex;flex-wrap:wrap;gap:8px}.secondary-link,.inline-action{color:#146c94;font-weight:600}.error{color:#b42318}.ok{color:#087443}.app{height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);overflow:hidden}.app.is-collapsed{grid-template-columns:72px minmax(0,1fr)}.sidebar{background:#111827;color:#eef2f7;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden}.brand{height:64px;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.08)}.icon-button,.nav-button{background:transparent;color:inherit}.nav{display:grid;gap:6px;padding:16px 10px}.nav a,.nav-button,.user-chip{min-height:44px;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:6px;color:#cbd5e1}.nav a.active,.nav a:hover,.nav-button:hover{background:#243043;color:#fff}.hidden{display:none!important}.sidebar-footer{margin-top:auto;padding:12px 10px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:6px}.user-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{height:100vh;min-width:0;overflow-y:auto;padding:28px}.page{display:grid;gap:24px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.page-header p,.muted{color:#64748b;margin:6px 0 0}.metric-grid,.severity-counters{display:grid;gap:14px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.severity-counters{grid-template-columns:repeat(auto-fit,minmax(156px,1fr))}.counter-total{background:#eff6ff;border-color:#bfdbfe}.counter-vulnerable{background:#fef2f2;border-color:#fecaca}.counter-label{color:#475569;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em}.wp-admin-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;color:#1d4ed8;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0}.wp-admin-button:hover{background:#eef2ff;border-color:#93c5fd}.cve-link{color:#1d4ed8;text-decoration:none}.cve-link:hover{text-decoration:underline}.references{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:8px 0 0;padding:0}.references li a{display:inline-block;padding:2px 8px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc;color:#1d4ed8;font-size:12px;text-decoration:none}.references li a:hover{background:#eef2ff}.metric,.counter,.panel{background:#fff;border:1px solid #e5eaf1;border-radius:8px}.metric,.counter{min-height:112px;padding:18px;display:grid;gap:8px}.counter{align-content:space-between;border-top:3px solid #94a3b8}.counter-total{border-top-color:#21759b}.counter-vulnerable{border-top-color:#dc2626}.counter:has(.severity-critical){border-top-color:#dc2626}.counter:has(.severity-high){border-top-color:#f97316}.counter:has(.severity-medium){border-top-color:#eab308}.counter:has(.severity-low){border-top-color:#16a34a}.counter:has(.severity-unknown){border-top-color:#64748b}.metric span,.counter span{color:#64748b}.metric strong,.counter strong{font-size:28px}.counter .severity,.counter-label{width:fit-content;justify-self:start}.metric-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#475569}.metric-foot{color:#64748b;font-size:12px}.metric-gitlab{border-top:3px solid #fc6d26}.metric-wordpress{border-top:3px solid #21759b}.source-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-right:8px}.source-gitlab{background:#fff1ea;color:#c63d11}.source-wordpress{background:#e6f1f7;color:#21759b}.panel-header h2{display:inline-flex;align-items:center;gap:4px}.cta-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:8px;font-weight:700;font-size:14px;letter-spacing:.01em;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;width:fit-content;justify-self:end}.cta-button:hover{transform:translateY(-1px);box-shadow:0 8px 20px #0f172a1f;filter:brightness(1.04)}.cta-gitlab{background:linear-gradient(135deg,#fc6d26,#e24329);color:#fff}.cta-wordpress{background:linear-gradient(135deg,#21759b,#1c5d7c);color:#fff}.cta-compact{min-height:36px;padding:8px 12px;border-radius:6px;font-size:13px}.dashboard-source-panel{align-content:start;gap:14px}.dashboard-severity-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.dashboard-severity-row-four{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-severity-card{min-height:74px;padding:10px;border:1px solid #e5eaf1;border-radius:8px;background:#f8fafc;display:grid;align-content:center;justify-items:center;gap:8px}.dashboard-severity-card .severity{max-width:100%}.dashboard-severity-card strong{color:#1f2937;font-size:22px}.panel{padding:18px;display:grid;gap:16px}.panel-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.panel-header h2{margin:0}.filters{flex:1;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:10px}.filters label{display:grid;gap:4px;color:#64748b;font-size:13px}.filters select{min-height:34px;min-width:150px;padding:0 10px}.search-field{flex:1 1 360px;max-width:520px;min-width:260px}.search-field>div{min-height:34px;display:flex;align-items:center;gap:8px;border:1px solid #d8dee9;border-radius:6px;padding:0 8px;background:#fff;color:#64748b}.search-field input{min-width:0;min-height:32px;flex:1;border:0;padding:0}.search-field input:focus{outline:0}.search-field .icon-button{min-height:28px;width:28px;padding:0;color:#64748b}.state-box{border:1px solid #dbe5ef;border-radius:8px;background:#f8fafc;padding:12px;display:grid;gap:5px}.state-box span{color:#64748b}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.severity-list,.table,.repo-list,.findings{display:grid;gap:10px}.row,.table-row,.repo-item{display:flex;align-items:center;gap:12px;min-height:44px}.row,.table-row{justify-content:space-between}.table-row,.repo-item{border-top:1px solid #edf1f6;padding-top:10px}.repo-item{border-radius:6px;padding:10px 8px;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease}.repo-item:hover,.repo-item:focus-within{background:#f8fafc;box-shadow:inset 3px 0 #16776f}.repo-link{min-width:0;flex:1;display:flex;justify-content:space-between;align-items:center;gap:12px}.wp-site-item{flex-wrap:wrap}.wp-site-button{border:0;background:transparent;color:inherit;cursor:pointer;padding:0;text-align:left}.wp-site-detail{flex-basis:100%;margin-left:46px;display:grid;gap:16px}.wp-component-list{display:flex;flex-wrap:wrap;gap:8px}.wp-component{border:1px solid #dbe5ef;border-radius:6px;padding:8px 10px;display:grid;gap:2px;min-width:180px}.wp-component span{color:#64748b;font-size:13px}.wp-component.is-vulnerable{border-color:#fecdca;background:#fff7f5}.repo-link>div:first-child{display:grid;gap:4px;min-width:0}.repo-link strong,.repo-link span{overflow:hidden;text-overflow:ellipsis}.repo-link span,.repo-counts{color:#64748b}.favorite-button{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:6px;background:#eef2f7;color:#64748b;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.favorite-button:hover,.favorite-button.is-favorite{background:#fef3c7;color:#b45309}.repo-counts{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.severity-count{border-radius:999px;padding:4px 9px;font-size:13px;font-weight:700;line-height:1}.severity{border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.severity-critical{background:#fee4e2;color:#b42318}.severity-high{background:#ffedd5;color:#c2410c}.severity-medium{background:#fef3c7;color:#92400e}.severity-low{background:#dcfce7;color:#166534}.severity-unknown{background:#e2e8f0;color:#334155}.status{font-weight:700}.status-success{color:#087443}.status-failed{color:#b42318}.status-running,.status-queued{color:#146c94}.actions,.action,.inline-form{display:flex;gap:10px;align-items:center}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-form button,.grid-form input[type=password]{grid-column:span 2}.admin-page .panel{align-content:start}.admin-form{align-items:center;grid-template-columns:repeat(2,minmax(180px,1fr)) auto}.admin-form input,.admin-form select,.admin-page .inline-form input,.user-table select{min-height:34px;padding:0 10px}.admin-form button,.admin-page .inline-form button,.admin-page>.secondary-button,.admin-page .panel>.secondary-button{min-height:34px;padding:0 12px;width:fit-content}.admin-form input[type=password]{grid-column:span 2}.admin-form button{grid-column:auto}.admin-page .inline-form{flex-wrap:wrap}.admin-page .inline-form input{flex:1 1 220px}.user-table .table-row{display:grid;grid-template-columns:minmax(0,1fr) 128px auto 34px}.user-table .table-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finding{border-top:1px solid #edf1f6;padding-top:16px;display:grid;gap:12px}.finding-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}dt{color:#64748b;font-size:13px}dd{margin:2px 0 0;word-break:break-word}@media(max-width:900px){.app,.app.is-collapsed{grid-template-columns:72px minmax(0,1fr)}.metric-grid,.severity-counters,.split{grid-template-columns:1fr}.dashboard-severity-row{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.content{padding:18px}.page-header,.panel-header,.row,.table-row,.repo-item{align-items:flex-start;flex-direction:column}.filters{width:100%;justify-content:flex-start}.search-field{max-width:none}.repo-link{width:100%;align-items:flex-start;flex-direction:column}.wp-site-detail{margin-left:0}.repo-counts{justify-content:flex-start}.grid-form,.admin-form,dl{grid-template-columns:1fr}.grid-form button,.admin-form button,.grid-form input[type=password]{grid-column:auto}.user-table .table-row{grid-template-columns:1fr}}
