:root{--bg-app:#fff;--bg-sidebar:#f6f8fb;--bg-card:#fff;--bg-card-2:#f4f6f9;--bg-input:#fff;--bg-panel:#f4f6f9;--bg-panel-2:#fafbfc;--bg-panel-3:#eef1f5;--bg-row-hover:#f7f9fc;--bg-thead:#fafbfc;--bg-tooltip:#1a1d24;--bg-code:#1a1d24;--overlay-1:#14192306;--overlay-2:#1419230a;--overlay-3:#1419230d;--overlay-4:#1419230f;--line:#e1e4e8;--line-strong:#c8ccd1;--line-subtle:#ecf0f3;--brand:#2a257f;--brand-2:#5462a0;--brand-tint:#aacddf;--brand-soft:#2a257f14;--risk-high:#c93b3b;--risk-warn:#b87211;--risk-ok:#2a8f5a;--risk-info:#4b7da0;--risk-high-soft:#c93b3b1a;--risk-warn-soft:#b872111f;--risk-ok-soft:#2a8f5a1f;--risk-info-soft:#4b7da01f;--c1:#2a257f;--c2:#5462a0;--c3:#8fa8bf;--c4:#6b7db3;--c5:#aacddf;--fg:#1a1d24;--fg-2:#3d4148;--fg-3:#6a6f78;--fg-4:#8a8f98;--fg-on-brand:#fff;--btn-bg:#fff;--btn-bg-hover:#f4f6f9;--switch-bg:#d4d7dc;--switch-border:#c8ccd1;--switch-thumb:#fff;--switch-thumb-shadow:0 1px 2px #1419232e;--shadow-1:0 1px 0 #1419230a, 0 1px 3px #1419230d;--shadow-2:0 4px 14px #14192314;--shadow-pop:0 8px 24px #1419231f;--shadow-drawer:-10px 0 30px #14192324;--r-sm:5px;--r:7px;--r-lg:10px;--sidebar-w:240px;--topbar-h:58px}:root[data-theme=dark]{--bg-app:#383635;--bg-sidebar:#2f2d2c;--bg-card:#4a4846;--bg-card-2:#524f4d;--bg-input:#3d3a39;--bg-panel:#3a3837;--bg-panel-2:#423f3e;--bg-panel-3:#444241;--bg-row-hover:#423f3e;--bg-thead:#3a3837;--bg-tooltip:#1a1d24;--bg-code:#1a1d24;--overlay-1:#ffffff06;--overlay-2:#ffffff0a;--overlay-3:#ffffff0d;--overlay-4:#ffffff0f;--line:#5a5755;--line-strong:#6e6a67;--line-subtle:#423f3e;--brand-soft:#5462a02e;--risk-high:#e05c5c;--risk-warn:#e8a23a;--risk-ok:#4caf7d;--risk-info:#aacddf;--risk-high-soft:#e05c5c24;--risk-warn-soft:#e8a23a24;--risk-ok-soft:#4caf7d24;--risk-info-soft:#aacddf24;--fg:#fff;--fg-2:#d4d3d1;--fg-3:#b0b0b0;--fg-4:#8a8785;--btn-bg:#524f4d;--btn-bg-hover:#5e5b58;--switch-bg:#524f4d;--switch-border:#5a5755;--switch-thumb:#d4d3d1;--switch-thumb-shadow:0 1px 2px #0006;--shadow-1:0 1px 0 #00000040, 0 1px 2px #0000002e;--shadow-2:0 4px 14px #0000005c;--shadow-pop:0 8px 24px #00000080;--shadow-drawer:-10px 0 30px #00000073}*{box-sizing:border-box}html,body{background:var(--bg-app);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01", "cv11";margin:0;padding:0;font-size:16.8px;line-height:1.5;transition:background-color .18s,color .18s}:root.theme-changing,:root.theme-changing *,:root.theme-changing :before,:root.theme-changing :after{transition:none!important}#root{min-height:100vh}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "Noto Sans TC", "Microsoft JhengHei", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}h1{letter-spacing:-.012em;color:var(--fg);margin:0;font-size:26.4px;font-weight:700}h2{letter-spacing:-.005em;color:var(--fg);margin:0;font-size:20.4px;font-weight:600}h3{color:var(--fg-2);text-transform:uppercase;letter-spacing:.07em;margin:0;font-size:15.6px;font-weight:600}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--bg-app);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--fg-4)}::-webkit-scrollbar-track{background:0 0}::selection{background:var(--brand-2);color:#fff}.app{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.main{background:var(--bg-app);flex-direction:column;min-width:0;display:flex}.topbar{height:var(--topbar-h);border-bottom:1px solid var(--line-subtle);background:var(--bg-app);z-index:20;align-items:center;gap:14px;padding:0 28px;display:flex;position:sticky;top:0}.page{width:100%;max-width:1480px;margin:0 auto;padding:28px 32px 80px}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--line-subtle);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-head{min-height:var(--topbar-h);border-bottom:1px solid var(--line-subtle);white-space:nowrap;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:14px 22px;display:flex;position:relative}.sidebar-collapse-btn{position:absolute;top:10px;right:10px}.sidebar-logo{object-fit:contain;background:0 0;border-radius:6px;flex-shrink:0;width:auto;max-width:180px;height:50px;position:relative}.sidebar-head.is-wordmark.no-copy .sidebar-logo{width:100%;max-width:200px;height:54px}.sidebar-title{letter-spacing:.02em;text-align:left;color:var(--fg);flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:100%;font-size:16.2px;font-weight:600;display:flex;overflow:hidden}.sidebar-title span,.sidebar-title small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-title small{color:var(--fg-4);letter-spacing:.13em;text-transform:uppercase;font-size:12.6px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.sidebar-section-label{color:var(--fg-4);text-transform:uppercase;letter-spacing:.13em;padding:14px 12px 7px;font-size:12.6px;font-weight:600}.nav-item{border-radius:var(--r-sm);color:var(--fg-2);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:11px;padding:9px 12px;font-size:16.2px;display:flex;position:relative}.nav-item:hover{background:var(--overlay-2);color:var(--fg)}:root:not([data-theme=dark]) .nav-item.active{background:var(--brand-soft);color:var(--brand);border-color:#2a257f26;font-weight:500}:root[data-theme=dark] .nav-item.active{background:var(--brand-soft);color:#fff;border-color:#5462a066;font-weight:500}.nav-item.active:before{content:"";background:currentColor;border-radius:2px;width:2px;position:absolute;top:8px;bottom:8px;left:-10px}.nav-item .icon{width:17px;height:17px;color:var(--fg-3);flex-shrink:0}.nav-item.active .icon{color:currentColor}.nav-item .count{color:var(--fg-4);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13.8px}.sidebar-foot{border-top:1px solid var(--line-subtle);color:var(--fg-3);align-items:center;gap:11px;padding:12px 14px;font-size:15.6px;display:flex}.sidebar-user-card{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.sidebar-user-avatar{background:var(--brand-soft);width:22px;height:22px;color:var(--brand-2);border-radius:6px;flex:0 0 22px;place-items:center;display:grid}.sidebar-user-text{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-family:var(--font-mono);font-size:12px;overflow:hidden}.sidebar-user-role{color:var(--fg-4);text-transform:uppercase;align-items:center;gap:4px;font-size:10.5px;display:flex}.sidebar-user-role span{background:var(--risk-ok);border-radius:50%;width:5px;height:5px;display:inline-block}.app.collapsed{--sidebar-w:60px}.app.collapsed .sidebar-title,.app.collapsed .sidebar-section-label,.app.collapsed .nav-item span:not(.icon),.app.collapsed .nav-item .count,.app.collapsed .sidebar-foot .user-info{display:none}.app.collapsed .sidebar-head{justify-content:center;padding:0 14px}.app.collapsed .sidebar-logo{object-fit:contain;object-position:center;width:34px;max-width:34px;height:26px}.app.collapsed .nav-item{justify-content:center;padding:9px}.app.collapsed .sidebar-foot{justify-content:center}.access-denied-panel{align-items:flex-start;gap:18px;max-width:760px;padding:24px;display:flex}.access-denied-icon{background:var(--risk-warn-soft);width:54px;height:54px;color:var(--risk-warn);border-radius:12px;flex:0 0 54px;place-items:center;display:grid}.access-denied-panel h1{margin:0;font-size:28px}.access-denied-panel p{max-width:620px;color:var(--fg-3);margin:8px 0 0;line-height:1.55}.access-denied-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.topbar-title{color:var(--fg);font-size:18px;font-weight:600}.crumb{color:var(--fg-4);font-size:15.6px}.crumb-sep{color:var(--fg-4);margin:0 7px}.topbar-spacer{flex:1}.topbar-search{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-sm);width:320px;color:var(--fg-3);align-items:center;gap:9px;padding:6px 12px;display:flex}.topbar-search input{color:var(--fg);background:0 0;border:0;outline:0;flex:1;font-family:inherit;font-size:15.6px}.topbar-search input::placeholder{color:var(--fg-4)}.topbar-search kbd{font-family:var(--font-mono);background:var(--overlay-3);border:1px solid var(--line);color:var(--fg-4);border-radius:3px;padding:2px 6px;font-size:12.6px}.topbar-env{color:var(--fg-3);border-radius:var(--r-sm);border:1px solid var(--line-subtle);align-items:center;gap:7px;padding:5px 11px;font-size:15.6px;display:flex}.topbar-env .dot{background:var(--risk-ok);width:7px;height:7px;box-shadow:0 0 0 2px var(--risk-ok-soft);border-radius:50%}.topbar-user{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-input);max-width:220px;height:34px;color:var(--fg-2);align-items:center;gap:7px;min-width:0;padding:0 10px;display:inline-flex}.topbar-user span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topbar-user strong{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-4);font-size:11px}.mfa-topbar-btn.enabled{color:var(--risk-ok);background:var(--risk-ok-soft);border-color:color-mix(in srgb, var(--risk-ok) 25%, var(--line))}.icon-btn{border-radius:var(--r-sm);width:34px;height:34px;color:var(--fg-3);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:grid}.icon-btn:hover{background:var(--overlay-3);color:var(--fg)}.icon-btn.theme-toggle{color:var(--fg-2)}.language-select{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-input);height:34px;color:var(--fg-2);-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:0 8px 0 10px;display:inline-flex}.language-select-label{color:var(--fg-4);text-transform:uppercase;letter-spacing:.04em;font-size:12.6px;font-weight:600}.language-select select{color:var(--fg-2);font:600 13px var(--font-sans);cursor:pointer;background:0 0;border:0;outline:0;min-width:142px}.language-select select option{color:#17202d;background:#fff}.login-page{background:#fff;justify-content:center;align-items:center;min-height:100vh;padding:88px 24px 40px;display:flex}[data-theme=dark] .login-page{background:#0d1118}.login-controls{z-index:3;justify-content:flex-end;align-items:center;gap:8px;display:flex;position:fixed;top:18px;right:18px}.login-panel{background:#fff;border:1px solid #e7ebf2;border-radius:12px;flex-direction:column;justify-content:flex-start;width:min(680px,100%);min-height:540px;padding:42px 40px 36px;animation:.46s cubic-bezier(.2,.8,.2,1) both login-card-in;display:flex;box-shadow:0 14px 34px #141a2612}[data-theme=dark] .login-panel{border-color:color-mix(in srgb, var(--line) 78%, transparent);background:var(--bg-card);box-shadow:0 24px 44px #0000004d}.login-panel.has-message{animation:.46s cubic-bezier(.2,.8,.2,1) both login-card-in,.28s ease-out login-shake}.login-brand{justify-content:flex-start;align-items:center;gap:26px;margin-bottom:30px;animation:.5s cubic-bezier(.2,.8,.2,1) 50ms both login-rise;display:flex}.login-brand.no-copy{gap:0}.login-mark{color:#fff;flex:0 140px;place-items:center;width:min(140px,100%);height:80px;display:grid;position:relative;overflow:visible}.login-brand.is-wordmark .login-mark{flex-basis:360px;width:min(360px,100%);height:96px}.login-mark img{object-fit:contain;object-position:center;width:100%;height:100%;display:block}.login-brand h1{color:#0f172a;letter-spacing:0;white-space:nowrap;margin:0;font-size:18px;font-weight:750;line-height:1.15}.login-brand p{color:#808899;letter-spacing:.26em;margin:5px 0 0;font-size:12px;font-weight:700;line-height:1}[data-theme=dark] .login-brand h1{color:var(--fg)}[data-theme=dark] .login-brand p{color:var(--fg-4)}.login-form{gap:22px;display:grid}.login-copy{gap:12px;margin:2px 0;animation:.5s cubic-bezier(.2,.8,.2,1) .1s both login-rise;display:grid}.login-copy h2{color:#0f172a;letter-spacing:0;margin:0;font-size:28px;font-weight:780;line-height:1.15}.login-copy p{color:#53657f;margin:0;font-size:15px;line-height:1.45}[data-theme=dark] .login-copy h2{color:var(--fg)}[data-theme=dark] .login-copy p{color:var(--fg-3)}.login-field{color:#4b5a70;gap:10px;font-size:14px;font-weight:650;animation:.5s cubic-bezier(.2,.8,.2,1) .14s both login-rise;display:grid}.login-input-wrap{color:#8a95a5;background:#fff;border:1px solid #dbe1ea;border-radius:6px;align-items:center;gap:13px;height:55px;padding:0 15px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}[data-theme=dark] .login-field{color:var(--fg-2)}[data-theme=dark] .login-input-wrap{border-color:var(--line);background:var(--bg-input);color:var(--fg-4)}.login-input-wrap:focus-within{border-color:#3b3491;transform:translateY(-1px);box-shadow:0 0 0 3px #3b34911c}.login-input-wrap input{color:#122033;min-width:0;height:100%;font:16px var(--font-sans);background:0 0;border:0;outline:none;flex:1}.login-input-wrap input::placeholder{color:#8d99aa;opacity:1}[data-theme=dark] .login-input-wrap input{color:var(--fg)}.login-input-wrap input:disabled{cursor:not-allowed;opacity:.72}.login-field small{color:var(--fg-4);font-weight:500;line-height:1.4}.login-password-toggle{color:#8a95a5;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:0 0 32px;place-items:center;width:32px;height:32px;transition:background .16s,color .16s;display:grid}.login-password-toggle:hover{color:#3b3491;background:#3b349114}.login-message{border:1px solid var(--risk-warn-soft);color:var(--risk-warn);background:color-mix(in srgb, var(--risk-warn-soft) 60%, transparent);border-radius:6px;padding:10px 12px;font-size:14px;line-height:1.4;animation:.2s ease-out both login-rise}.login-verification{color:#3b3491;gap:8px;margin-top:-4px;animation:.18s ease-out both login-rise;display:grid}.login-verification-track{background:#3b34911f;border-radius:999px;height:4px;position:relative;overflow:hidden}.login-verification-track span{border-radius:inherit;background:linear-gradient(90deg,#0000,#3b3491 35%,#6f7fb8 70%,#0000);width:42%;animation:1.3s cubic-bezier(.3,.7,.2,1) infinite login-verify-scan;position:absolute;inset:0 auto 0 0}.login-verification-text{color:#596786;font-size:13px;font-weight:650;line-height:1.2}[data-theme=dark] .login-verification-text{color:var(--fg-3)}.primary-btn{border-radius:var(--r-sm);border:1px solid color-mix(in srgb, var(--brand) 65%, transparent);background:var(--brand);color:#fff;cursor:pointer;height:40px;font:650 15px var(--font-sans);justify-content:center;align-items:center;gap:8px;display:inline-flex}.login-submit{background:#32298a;border:0;border-radius:6px;gap:14px;width:100%;height:58px;margin-top:5px;font-size:20px;font-weight:780;transition:transform .18s,box-shadow .18s,background .18s;animation:.5s cubic-bezier(.2,.8,.2,1) .18s both login-rise;box-shadow:0 12px 22px #32298a33}.login-submit:hover:not(:disabled){background:#282178;transform:translateY(-1px);box-shadow:0 16px 28px #32298a40}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit-arrow{transition:transform .18s}.login-submit:hover:not(:disabled) .login-submit-arrow{transform:translate(5px)}.primary-btn:disabled{opacity:.55;cursor:wait}.login-submit:disabled{opacity:1}.login-panel.is-verifying .login-input-wrap{border-color:#3b349138}.spin-icon{animation:.8s linear infinite spin}.auth-loading{place-items:center;width:52px;height:52px;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes login-card-in{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes login-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes login-shine{0%,42%{transform:translate(-92%)rotate(10deg)}58%,to{transform:translate(92%)rotate(10deg)}}@keyframes login-verify-scan{0%{transform:translate(-105%)}to{transform:translate(250%)}}@keyframes login-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}55%{transform:translate(4px)}78%{transform:translate(-2px)}}@media (width<=560px){.login-page{align-items:flex-start;padding:86px 18px 28px}.login-controls{top:12px;left:12px;right:12px}.login-panel{min-height:auto;padding:34px 24px 28px}.login-brand{justify-items:start;gap:12px;margin-bottom:26px;display:grid}.login-brand h1{white-space:normal;font-size:16px}.login-mark{flex-basis:auto}.login-brand.is-wordmark .login-mark{width:min(320px,100%);height:84px}.login-copy h2{font-size:26px}.login-submit{font-size:18px}}.card{background:var(--bg-card);border:1px solid var(--line-subtle);border-radius:var(--r);box-shadow:var(--shadow-1);flex-direction:column;display:flex}.card-head{border-bottom:1px solid var(--line-subtle);align-items:center;gap:11px;padding:14px 18px;display:flex}.card-head h2{font-size:16.8px;font-weight:600}.card-head .meta{color:var(--fg-4);font-size:14.4px}.card-head .actions{align-items:center;gap:7px;margin-left:auto;display:flex}.card-body{padding:18px}.card-body.dense{padding:14px 18px}.card-body.flush{padding:0}.kpi{background:var(--bg-card);border:1px solid var(--line-subtle);border-radius:var(--r);min-width:0;box-shadow:var(--shadow-1);flex-direction:column;gap:7px;padding:16px 18px;display:flex;position:relative}.kpi-label{color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;font-size:14.4px;font-weight:500;display:flex}.kpi-value{font-variant-numeric:tabular-nums;letter-spacing:-.014em;color:var(--fg);font-size:33.6px;font-weight:600}.kpi-value .unit{color:var(--fg-3);margin-left:3px;font-size:16.8px;font-weight:500}.kpi-foot{color:var(--fg-3);align-items:center;gap:7px;font-size:14.4px;display:flex}.kpi.risk-high .kpi-value{color:var(--risk-high)}.kpi.risk-warn .kpi-value{color:var(--risk-warn)}.kpi.risk-ok .kpi-value{color:var(--risk-ok)}.delta{font-variant-numeric:tabular-nums;border-radius:3px;align-items:center;gap:3px;padding:2px 7px;font-size:14.4px;display:inline-flex}.delta.up{color:var(--risk-high);background:var(--risk-high-soft)}.delta.down{color:var(--risk-ok);background:var(--risk-ok-soft)}.delta.flat{color:var(--fg-3);background:var(--overlay-2)}.btn{border-radius:var(--r-sm);background:var(--btn-bg);height:32px;color:var(--fg);border:1px solid var(--line);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:0 14px;font-family:inherit;font-size:15.6px;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--btn-bg-hover);border-color:var(--line-strong)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:#211d68;border-color:#211d68}.btn.ghost{color:var(--fg-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--overlay-2);color:var(--fg);border-color:#0000}.btn.danger{background:var(--risk-high-soft);color:var(--risk-high);border-color:#c93b3b40}.btn.danger:hover{background:#c93b3b2e}.btn.sm{gap:5px;height:28px;padding:0 10px;font-size:14.4px}.btn.lg{height:38px;padding:0 18px;font-size:16.8px}.btn .icon{width:15px;height:15px}.badge{background:var(--overlay-3);color:var(--fg-2);white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:10px;align-items:center;gap:4px;padding:3px 9px;font-size:14.4px;font-weight:500;display:inline-flex}.badge.high{color:var(--risk-high);background:var(--risk-high-soft)}.badge.warn{color:var(--risk-warn);background:var(--risk-warn-soft)}.badge.ok{color:var(--risk-ok);background:var(--risk-ok-soft)}.badge.info{color:var(--risk-info);background:var(--risk-info-soft)}:root:not([data-theme=dark]) .badge.brand{color:var(--brand);background:var(--brand-soft)}:root[data-theme=dark] .badge.brand{color:var(--brand-tint);background:var(--brand-soft)}.badge.dot:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.badge.sq{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border-radius:3px;padding:2px 6px;font-size:12.6px;font-weight:600}.badge.has-tip{cursor:help;position:relative}.badge.has-tip:after{content:attr(data-tip);z-index:80;background:var(--bg-tooltip);color:#fff;max-width:220px;box-shadow:var(--shadow-pop);font-family:var(--font-sans);letter-spacing:.04em;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;border-radius:5px;padding:6px 8px;font-size:14.4px;font-weight:700;line-height:1.2;transition:opacity .14s,transform .14s,visibility .14s;display:block;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(2px)}.badge.has-tip:before{content:"";z-index:81;border:5px solid #0000;border-bottom-color:var(--bg-tooltip);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%)translateY(2px)}.badge.has-tip:hover:after,.badge.has-tip:focus-visible:after,.badge.has-tip:hover:before,.badge.has-tip:focus-visible:before{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:16.2px}.table-scroll{width:100%;max-width:100%;overflow:auto visible}.table-scroll .table{margin:0}.asset-table-scroll{overscroll-behavior:auto;max-height:60vh;overflow:auto}.asset-table-scroll .table thead th{z-index:1;position:sticky;top:0}.report-table-scroll .table{min-width:1120px}.container-table{table-layout:fixed;min-width:2250px}.container-table th:first-child,.container-table td:first-child{width:190px}.container-table th:nth-child(2),.container-table td:nth-child(2){width:135px}.container-table th:nth-child(3),.container-table td:nth-child(3){width:92px}.container-table th:nth-child(4),.container-table td:nth-child(4){width:190px}.container-table th:nth-child(5),.container-table td:nth-child(5){width:150px}.container-table th:nth-child(6),.container-table td:nth-child(6){width:240px}.container-table th:nth-child(7),.container-table td:nth-child(7){width:145px}.container-table th:nth-child(8),.container-table td:nth-child(8){width:120px}.container-table th:nth-child(9),.container-table td:nth-child(9){width:145px}.container-table th:nth-child(10),.container-table td:nth-child(10){width:110px}.container-table th:nth-child(n+11),.container-table td:nth-child(n+11){width:115px}.container-table th:nth-child(9),.container-table td:nth-child(9),.container-table th:nth-child(10),.container-table td:nth-child(10){width:190px}.container-table td{overflow-wrap:anywhere}.container-table .badge{white-space:normal;max-width:100%}.table .truncate-cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table .mac-address-cell{min-width:330px}.mac-address-value{white-space:nowrap;display:inline-block}.mac-address-value.tip{cursor:help}.mac-address-value.tip[data-tip]:focus-visible:after{content:attr(data-tip);z-index:50;background:var(--bg-tooltip);color:#fff;width:max-content;max-width:min(520px,100vw - 32px);box-shadow:var(--shadow-pop);font-family:var(--font-mono);overflow-wrap:anywhere;white-space:normal;border-radius:4px;padding:5px 10px;font-size:12.5px;line-height:1.5;position:absolute;bottom:calc(100% + 7px);left:0}.table .wrap-cell{overflow-wrap:anywhere;word-break:break-word}.table thead th{text-align:left;color:var(--fg-3);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--line);background:var(--bg-thead);white-space:nowrap;padding:10px 14px;font-size:13.8px;font-weight:500;position:sticky;top:0}.table tbody td{border-bottom:1px solid var(--line-subtle);vertical-align:middle;color:var(--fg);padding:12px 14px}.table tbody tr:hover td{background:var(--bg-row-hover)}.table tbody tr.selected td{background:var(--brand-soft)}.table tbody tr.selected td:first-child{box-shadow:inset 2px 0 0 var(--brand)}.table .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:15.6px}.table .mono{font-family:var(--font-mono);font-size:15.6px}.table .muted{color:var(--fg-3)}.table .truncate{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.table .row-actions{opacity:0;gap:5px;transition:opacity .12s;display:flex}.table tbody tr:hover .row-actions{opacity:1}.vex-triage-page .vex-triage-table{font-size:17.8px}.vex-triage-page .vex-triage-table thead th{font-size:15.2px}.vex-triage-page .vex-triage-table tbody td{font-size:17.8px}.checkbox{appearance:none;border:1px solid var(--line-strong);background:var(--bg-input);cursor:pointer;border-radius:3px;flex-shrink:0;width:16px;height:16px;position:relative}.checkbox:checked{background:var(--brand);border-color:var(--brand)}.checkbox:checked:after{content:"";border:1.5px solid #fff;border-width:0 1.5px 1.5px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.checkbox.indeterminate{background:var(--brand);border-color:var(--brand)}.checkbox.indeterminate:after{content:"";background:#fff;width:9px;height:1.5px;position:absolute;top:6.5px;left:2.5px}.field{flex-direction:column;gap:6px;display:flex}.stack{gap:12px;display:grid}.field>span{color:var(--fg-3);font-size:14.4px;font-weight:500}.field-label{color:var(--fg-3);text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:6px;font-size:14.4px;font-weight:500;display:flex}.field-help{color:var(--fg-4);font-size:14.4px}.field-validation-error{color:var(--risk-high);font-size:13.5px;font-weight:600;line-height:1.4}.validation-invalid .input,.validation-invalid .select,.validation-invalid .textarea{border-color:var(--risk-high);box-shadow:0 0 0 2px var(--risk-high-soft)}.validation-group-invalid{border:1px solid var(--risk-high);border-radius:var(--r-sm);box-shadow:0 0 0 2px var(--risk-high-soft);padding:8px}.notice.validation-invalid{border-color:var(--risk-high);box-shadow:0 0 0 2px var(--risk-high-soft)}.live-capture-status{border:2px solid var(--line);border-radius:var(--r-md);background:var(--bg-panel);gap:10px;margin:18px 0 22px;padding:17px 18px;display:grid;box-shadow:0 4px 12px #1418230d}.live-capture-status.ok{border-color:var(--risk-ok);background:var(--risk-ok-soft)}.live-capture-status.warn,.live-capture-status.validation-invalid{border-color:var(--risk-high);background:var(--risk-high-soft);box-shadow:0 4px 14px color-mix(in srgb, var(--risk-high) 12%, transparent)}.live-capture-status-heading{align-items:center;gap:10px;font-size:16px;display:flex}.live-capture-status-icon{background:var(--risk-high);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:14px;font-weight:800;display:grid}.live-capture-status.ok .live-capture-status-icon{background:var(--risk-ok)}.live-capture-status-message{color:var(--fg-2);font-size:14.5px;line-height:1.5}.live-capture-status-action{border-top:1px solid color-mix(in srgb, var(--risk-high) 25%, transparent);color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:7px 9px;padding-top:10px;font-size:13.5px;display:flex}.live-capture-status-action code{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-code);color:var(--fg);font-family:var(--font-mono);-webkit-user-select:all;user-select:all;padding:5px 8px;font-size:12.5px}.validation-pulse{animation:.75s ease-out scan-validation-pulse}@keyframes scan-validation-pulse{0%,to{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}.scan-validation-notice{border:1px solid var(--risk-high);border-radius:var(--r-sm);background:var(--risk-high-soft);border-left-width:4px;padding:13px 14px}.scan-validation-title{color:var(--risk-high);font-size:15px;font-weight:700}.scan-validation-summary{color:var(--fg-2);margin-top:3px;font-size:13.5px}.scan-validation-items{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.scan-validation-item{border:1px solid color-mix(in srgb, var(--risk-high) 45%, transparent);background:var(--bg-panel);color:var(--fg);cursor:pointer;font:inherit;text-align:left;border-radius:999px;align-items:center;gap:7px;padding:5px 10px;font-size:13px;display:inline-flex}.scan-validation-item:hover,.scan-validation-item:focus-visible{border-color:var(--risk-high);outline:none}.scan-validation-item>span{background:var(--risk-high);color:#fff;border-radius:50%;place-items:center;width:17px;height:17px;font-size:11px;font-weight:800;display:grid}.input,.select,.textarea{background:var(--bg-input);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-sm);outline:0;width:100%;padding:9px 12px;font-family:inherit;font-size:16.2px}.input::placeholder,.textarea::placeholder{color:var(--fg-4)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.input.mono{font-family:var(--font-mono);font-size:15.6px}.input.sm{min-width:110px;padding:6px 9px;font-size:14.4px}.textarea{resize:vertical;min-height:80px}.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23808080' stroke-width='1.5' stroke-linecap='round'/></svg>");background-position:right 11px center;background-repeat:no-repeat;padding-right:30px}.banner{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg-input);color:var(--fg-2);margin:12px 14px 0;padding:10px 12px;font-size:14px}.banner.danger{border-color:color-mix(in srgb, var(--risk-high) 35%, transparent);background:var(--risk-high-soft);color:var(--risk-high)}.banner.success{border-color:color-mix(in srgb, var(--risk-ok) 35%, transparent);background:var(--risk-ok-soft);color:var(--risk-ok)}.user-management-layout{grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);align-items:start;gap:16px}.user-security-grid{align-items:start}.token-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.token-scope{border:1px solid var(--line-subtle);border-radius:var(--r-sm);background:var(--bg-panel-2);color:var(--fg-2);font-size:14px;font-family:var(--font-mono);cursor:pointer;align-items:center;gap:8px;padding:9px 10px;display:flex}.token-scope input{accent-color:var(--brand)}.token-scope>span{gap:3px;min-width:0;display:grid}.token-scope strong{color:var(--fg);font-size:12.5px}.token-scope small{color:var(--fg-4);font-family:var(--font-sans);font-size:11px;line-height:1.3}.token-scope.disabled{cursor:not-allowed;opacity:.52;background:var(--bg-panel)}.one-time-secret{border:1px solid color-mix(in srgb, var(--risk-warn) 30%, var(--line));border-radius:var(--r-sm);background:var(--risk-warn-soft);gap:8px;padding:12px;display:grid}.backup-code-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.backup-code-grid code{border:1px solid var(--line-subtle);border-radius:var(--r-sm);background:var(--bg-input);color:var(--fg);font-family:var(--font-mono);text-align:center;padding:8px 9px;font-size:14px;display:block}.mfa-setup-modal{width:720px}.mfa-qr-layout{grid-template-columns:260px minmax(0,1fr);align-items:center;gap:18px;display:grid}.mfa-qr-box{border:1px solid var(--line-subtle);border-radius:var(--r-sm);width:260px;min-height:260px;box-shadow:var(--shadow-sm);background:#fff;place-items:center;display:grid}.mfa-qr-box img{object-fit:contain;width:240px;height:240px;display:block}.mfa-qr-empty{color:var(--fg-4);text-align:center;font-size:13px;font-weight:600}.password-strength{border:1px solid var(--line-subtle);border-radius:var(--r-sm);background:var(--bg-panel-2);gap:8px;padding:10px 11px;display:grid}.password-strength-head{color:var(--fg-3);justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;display:flex}.password-strength-head strong{color:var(--fg-2)}.password-strength-bar{background:var(--overlay-2);border-radius:999px;height:7px;overflow:hidden}.password-strength-bar span{border-radius:inherit;height:100%;transition:width .18s,background .18s;display:block}.password-strength.weak .password-strength-bar span{background:var(--risk-high)}.password-strength.fair .password-strength-bar span{background:var(--risk-warn)}.password-strength.good .password-strength-bar span{background:var(--brand)}.password-strength.strong .password-strength-bar span{background:var(--risk-ok)}.password-rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;display:grid}.password-rule{min-width:0;color:var(--fg-4);align-items:center;gap:6px;font-size:12.5px;line-height:1.25;display:flex}.password-rule.ok{color:var(--risk-ok)}.password-rule span{min-width:0}@media (width<=900px){.user-security-grid,.grid.cols-2.user-security-grid,.token-scope-grid,.backup-code-grid,.mfa-qr-layout{grid-template-columns:1fr}.mfa-qr-box{width:100%;min-height:240px}.user-management-layout{grid-template-columns:1fr}}.agent-selector-placeholder{flex-direction:column;gap:10px;display:flex}.agent-selector-label{color:var(--fg);flex-wrap:wrap;align-items:baseline;gap:10px;font-size:16.8px;display:flex}.agent-selector-label span{color:var(--fg-4);font-size:15px}.agent-select-box{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-sm);align-items:center;gap:8px;min-height:48px;padding:6px;display:flex}.agent-chip{min-height:36px;color:var(--fg);background:var(--overlay-2);font:inherit;cursor:default;white-space:nowrap;border:1px solid #0000;border-radius:9px;align-items:center;gap:8px;padding:0 11px;font-size:16.2px;display:inline-flex}.agent-chip.selected{background:var(--brand-soft);color:var(--brand);border-color:#2b28841f}.agent-chip-muted{color:var(--fg-4);font-size:18px;line-height:1}.agent-add-button{border:1px dashed var(--line-strong);width:36px;height:36px;color:var(--brand);cursor:pointer;background:0 0;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.agent-add-button:hover{background:var(--brand-soft);border-color:var(--brand)}.agent-selector-notice{color:var(--fg-3);font-size:14.4px}.agent-chip-remove{width:18px;height:18px;color:var(--fg-4);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;margin-left:2px;padding:0;display:inline-flex}.agent-chip-remove:hover{background:var(--overlay-3);color:var(--fg)}.agent-picker-modal{width:460px}.agent-picker-list{flex-direction:column;gap:8px;display:flex}.agent-picker-row{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-input);width:100%;color:var(--fg);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:12px;padding:11px 13px;transition:border-color .12s,background .12s;display:flex}.agent-picker-row:hover:not(:disabled){border-color:var(--line-strong);background:var(--overlay-2)}.agent-picker-row.selected{background:var(--brand-soft);color:var(--brand);border-color:#2b288438}.agent-picker-row:disabled{cursor:default}.agent-picker-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.agent-picker-name{font-size:16px}.agent-picker-sub{color:var(--fg-4);font-size:13.5px}.agent-picker-row.selected .agent-picker-sub{color:var(--brand);opacity:.7}.agent-picker-tick{flex-shrink:0}.switch{background:var(--switch-bg);border:1px solid var(--switch-border);cursor:pointer;border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--switch-thumb);width:16px;height:16px;box-shadow:var(--switch-thumb-shadow);border-radius:50%;transition:all .15s;position:absolute;top:1px;left:1px}.switch.on{background:var(--brand);border-color:var(--brand)}.switch.on:after{background:#fff;left:15px}.segmented{background:var(--bg-card-2);border:1px solid var(--line);border-radius:var(--r-sm);gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--fg-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:3px;padding:5px 12px;font-family:inherit;font-size:14.4px;font-weight:500}.segmented button.active{background:var(--bg-card);color:var(--fg);box-shadow:0 1px 2px #14192314}:root[data-theme=dark] .segmented button.active{box-shadow:0 1px #0000004d}.tabs{border-bottom:1px solid var(--line);align-items:flex-end;gap:0;margin-bottom:18px;display:flex}.tab{color:var(--fg-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:9px;margin-bottom:-1px;padding:11px 16px;font-family:inherit;font-size:16.2px;display:flex}.tab:hover{color:var(--fg)}.tab.active{color:var(--fg);border-bottom-color:var(--brand);font-weight:600}:root[data-theme=dark] .tab.active{border-bottom-color:var(--brand-tint)}.tab .count{background:var(--overlay-3);font-variant-numeric:tabular-nums;color:var(--fg-3);border-radius:8px;padding:2px 7px;font-size:13.8px}.asset-tabs-scroll{scrollbar-gutter:stable;max-width:100%;margin-bottom:18px;overflow:auto hidden}.asset-tabs-scroll .tabs{width:max-content;min-width:100%;margin-bottom:0}.asset-tabs-scroll .tab{white-space:nowrap;flex:none;min-width:max-content}.asset-tabs-scroll .tab span{white-space:nowrap;word-break:keep-all}.grid{gap:18px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-5{grid-template-columns:repeat(5,1fr)}.grid.cols-6{grid-template-columns:repeat(6,1fr)}.row{align-items:center;gap:14px;display:flex}.row.wrap{flex-wrap:wrap}.col{flex-direction:column;gap:14px;display:flex}.spacer{flex:1}.filters{border-bottom:1px solid var(--line-subtle);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.hint{color:var(--fg-4);font-size:15.6px}.dot-sep:before{content:"·";color:var(--fg-4);margin:0 7px}.modal-backdrop{z-index:100;background:#14192366;place-items:center;padding:24px 12px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-lg);width:580px;max-width:92vw;box-shadow:var(--shadow-2);flex-direction:column;max-height:min(86vh,100dvh - 48px);display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--line-subtle);flex:none;align-items:center;padding:16px 20px;display:flex}.modal-body{overscroll-behavior:contain;scrollbar-gutter:stable;contain:content;flex:auto;min-height:0;max-height:calc(100dvh - 260px);padding:18px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line-subtle);background:var(--bg-panel-2);flex:none;justify-content:flex-end;gap:9px;padding:14px 20px;display:flex}.drawer-backdrop{z-index:100;background:#14192366;position:fixed;inset:0}.drawer{background:var(--bg-card);border-left:1px solid var(--line);z-index:101;width:60vw;max-width:100vw;box-shadow:var(--shadow-drawer);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@media (width<=900px){.drawer{width:96vw}}.certificate-detail-drawer{--certificate-text-scale:1.3;font-size:calc(16.8px * var(--certificate-text-scale))}.certificate-detail-drawer h3{font-size:calc(15.6px * var(--certificate-text-scale))}.certificate-detail-drawer .badge{font-size:calc(14.4px * var(--certificate-text-scale))}.certificate-detail-drawer .btn{font-size:calc(15.6px * var(--certificate-text-scale));height:auto;min-height:36px;padding-top:4px;padding-bottom:4px}.certificate-detail-drawer .btn.sm{font-size:calc(14.4px * var(--certificate-text-scale))}.certificate-detail-drawer .target-chip{font-size:calc(15px * var(--certificate-text-scale))}.certificate-detail-drawer .grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}.certificate-detail-drawer .grid.cols-3>div{overflow-wrap:anywhere;min-width:0}.certificate-detail-drawer .ccg-section p,.certificate-detail-drawer .ccg-text-details article{font-size:calc(13px * var(--certificate-text-scale))}.scan-detail-body{flex:1;min-height:0;overflow-y:auto}.scan-detail-content{padding:16px 18px}.scan-detail-footer{border-top:1px solid var(--line-subtle);background:var(--bg-panel);flex-shrink:0;max-width:100%;padding:10px 12px;overflow:hidden}.scan-detail-footer-scroll{scrollbar-gutter:stable;align-items:center;gap:8px;padding:2px 6px 5px;display:flex;overflow:auto hidden}.scan-detail-footer-scroll .btn{flex:none}.scan-detail-footer-spacer{flex:1 0 18px}.scan-source-cbom-workspace{min-width:0}.scan-source-cbom-page{flex-direction:column;gap:18px;display:flex}.scan-source-cbom-page-head{border-bottom:1px solid var(--line-subtle);align-items:flex-start;gap:14px;padding-bottom:16px;display:flex}.scan-source-cbom-page-title{flex-direction:column;gap:5px;min-width:0;display:flex}.scan-source-cbom-page-title .hint{overflow-wrap:anywhere}.scan-config-panel{flex-direction:column;gap:18px;display:flex}.scan-config-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.scan-config-section{border-top:1px solid var(--line-subtle);padding-top:14px}.scan-config-section-head{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.scan-config-section-head h3{flex-shrink:0}.scan-config-modules{flex-direction:column;gap:10px;display:flex}.scan-config-module{border:1px solid var(--line-subtle);border-radius:var(--r);background:var(--bg-panel-2);padding:11px 12px}.scan-config-module-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.scan-config-module-head strong{font-size:16.2px}.scan-config-rows{flex-direction:column;margin:0;display:flex}.scan-config-rows>div{border-top:1px solid var(--line-subtle);grid-template-columns:minmax(130px,.8fr) minmax(0,1.6fr);gap:12px;padding:7px 0;display:grid}.scan-config-rows>div:first-child{border-top:0}.scan-config-rows dt{color:var(--fg-3);text-transform:uppercase;font-size:13.8px}.scan-config-rows dd{color:var(--fg-2);font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:14.4px}.scan-config-json{border-radius:var(--r);background:var(--bg-code);color:#aacddf;max-height:320px;font-family:var(--font-mono);margin:0;padding:12px;font-size:13.8px;line-height:1.55;overflow:auto}.bar{background:var(--overlay-3);vertical-align:middle;border-radius:2px;width:90px;height:5px;display:inline-block;position:relative;overflow:hidden}.bar>span{background:var(--brand-2);border-radius:2px;position:absolute;top:0;bottom:0;left:0}.legend{color:var(--fg-3);flex-wrap:wrap;gap:14px;font-size:14.4px;display:flex}.legend-item{align-items:center;gap:7px;display:flex}.legend-swatch{background:var(--brand);border-radius:2px;flex-shrink:0;width:11px;height:11px}.pill-sev{font-size:13.8px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;border-radius:3px;align-items:center;gap:4px;padding:2px 7px;font-weight:600;display:inline-flex}.pill-sev.high{color:var(--risk-high);background:var(--risk-high-soft)}.pill-sev.med{color:var(--risk-warn);background:var(--risk-warn-soft)}.pill-sev.low{color:var(--risk-info);background:var(--risk-info-soft)}.pill-sev.ok{color:var(--risk-ok);background:var(--risk-ok-soft)}.spinning{animation:1s linear infinite spin}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulsing{animation:1.4s ease-in-out infinite pulse}.tip{position:relative}.kpi-info{color:var(--fg-4);cursor:help;display:inline-flex;position:absolute;top:9px;right:10px}.kpi-info:hover{color:var(--fg-2)}.tip.wrap[data-tip]:hover:after{white-space:normal;text-align:left;width:max-content;max-width:280px;font-size:12.5px;line-height:1.5;left:auto;right:0;transform:none}.tip[data-tip]:hover:after{content:attr(data-tip);background:var(--bg-tooltip);color:#fff;white-space:nowrap;z-index:50;pointer-events:none;box-shadow:var(--shadow-pop);border-radius:4px;padding:5px 10px;font-size:14.4px;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.target-chip{font-family:var(--font-mono);background:var(--bg-panel);border:1px solid var(--line-subtle);color:var(--fg-2);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;align-items:center;gap:7px;max-width:340px;padding:3px 9px;font-size:15px;display:inline-flex;overflow:hidden}.status-dot{background:var(--fg-4);vertical-align:middle;border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-right:7px;display:inline-block}.status-dot.running{background:var(--brand-2);box-shadow:0 0 0 3px #5462a02e}.status-dot.success{background:var(--risk-ok)}.status-dot.failed{background:var(--risk-high)}.status-dot.partial{background:var(--risk-warn)}.status-dot.queued{background:var(--fg-4)}.status-dot.cancelled{background:var(--fg-4);opacity:.5}.page>.row+*,.page>.grid+*,.page>.card+*{margin-top:18px}.source-cbom-demo{flex-direction:column;gap:14px;display:flex}.source-cbom-notice{border:1px solid #c93b3b38;border-left:3px solid var(--risk-high);border-radius:var(--r-sm);background:var(--risk-high-soft);box-shadow:var(--shadow-sm);gap:8px;padding:13px 15px;display:grid}.source-cbom-notice-title{color:var(--risk-high);font-size:14px;font-weight:700}.source-cbom-notice-reason{color:var(--fg);font-size:13.5px;line-height:1.5}.source-cbom-notice-action{color:var(--brand);font-size:13px;font-weight:600;line-height:1.45}.source-cbom-notice .btn{justify-self:start;margin-top:2px}.source-cbom-header{align-items:flex-start;gap:18px;display:flex}.source-cbom-title{flex-direction:column;gap:6px;min-width:0;display:flex}.source-cbom-title h2{color:var(--fg);margin:0;font-size:21.6px;font-weight:700}.source-cbom-title p{color:var(--fg-3);font-family:var(--font-mono);margin:0;font-size:15px}.source-cbom-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.source-cbom-meta{border-top:1px solid var(--line-subtle);color:var(--fg-3);flex-wrap:wrap;gap:14px;margin-top:12px;padding-top:12px;font-size:15px;display:flex}.source-cbom-meta span{align-items:center;gap:6px;min-width:0;display:inline-flex}.source-cbom-bars{flex-direction:column;gap:12px;display:flex}.source-cbom-bar-row{color:var(--fg-2);grid-template-columns:100px 1fr 42px;align-items:center;gap:12px;font-size:15.6px;display:grid}.source-cbom-bar-row strong{text-align:right;font-family:var(--font-mono);font-weight:600}.source-cbom-bar-track{background:var(--bg-panel-3);border-radius:999px;height:9px;overflow:hidden}.source-cbom-bar-track i{background:var(--risk-info);border-radius:999px;height:100%;display:block}.source-cbom-bar-track i.high{background:var(--risk-high)}.source-cbom-bar-track i.warn{background:var(--risk-warn)}.source-cbom-bar-track i.ok{background:var(--risk-ok)}.source-cbom-bar-track i.info{background:var(--risk-info)}.source-cbom-table code{border-radius:var(--r-sm);background:var(--bg-code);color:#fff;text-overflow:ellipsis;white-space:nowrap;max-width:360px;padding:5px 7px;display:block;overflow:hidden}.source-cbom-graph{grid-template-columns:1fr 42px 1fr 42px 1fr;align-items:center;min-height:220px;display:grid}.graph-node{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-panel-2);min-height:92px;color:var(--fg-2);text-align:center;place-items:center;gap:7px;font-weight:600;display:grid}.graph-node.source{background:var(--risk-info-soft);border-color:#4b7da059}.graph-node.library{background:var(--brand-soft);border-color:#5462a059}.graph-node.asset{background:var(--risk-warn-soft);border-color:#b8721159}.graph-edge{background:var(--line-strong);height:1px;position:relative}.graph-edge:after{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:6px solid var(--line-strong);width:0;height:0;position:absolute;top:-4px;right:-1px}.source-cbom-json{background:var(--bg-code);color:#fff;border-radius:var(--r);max-height:520px;font-family:var(--font-mono);margin:0;padding:16px;font-size:14.4px;line-height:1.55;overflow:auto}.source-cbom-asset-view{flex-direction:column;gap:14px;display:flex}.source-cbom-empty{text-align:center;color:var(--fg-3);padding:24px}.source-cbom-empty h2{color:var(--fg);margin:0 0 8px}.source-cbom-empty p{max-width:560px;margin:0 auto}.source-cbom-diff-modal{width:min(940px,94vw)}.source-cbom-diff-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.source-cbom-diff-result{gap:14px;margin-top:16px;display:grid}.source-cbom-diff-stats{grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;display:grid}.source-cbom-diff-stat{border:1px solid var(--line);background:var(--bg-panel-2);border-radius:var(--r-sm);padding:10px 12px}.source-cbom-diff-stat span{color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;font-size:12px;display:block}.source-cbom-diff-stat strong{font-variant-numeric:tabular-nums;margin-top:4px;font-size:22px;display:block}.source-cbom-diff-section{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.source-cbom-diff-section h3{border-bottom:1px solid var(--line-subtle);background:var(--bg-panel-2);margin:0;padding:10px 12px;font-size:14px}.source-cbom-diff-section .hint{padding:12px}.source-cbom-diff-row{border-top:1px solid var(--line-subtle);grid-template-columns:auto minmax(120px,1fr) minmax(180px,1.4fr);align-items:center;gap:10px;padding:10px 12px;display:grid}.source-cbom-diff-row:first-of-type{border-top:0}.source-cbom-diff-row code,.source-cbom-diff-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.report-selection-bar{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-panel-2);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.report-selection-bar>div:first-child{gap:2px;min-width:0;display:grid}.report-selection-bar strong{color:var(--fg)}.report-selection-bar span{color:var(--fg-3);overflow-wrap:anywhere}.report-compare-modal{width:min(980px,94vw)}.report-compare-direction{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.report-compare-side{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-panel-2);gap:10px;min-width:0;padding:14px;display:grid}.report-compare-side h3{color:var(--fg);margin:0;font-size:17px}.report-compare-side p{color:var(--fg-3);margin:3px 0 0}.report-compare-side .filter-picker,.report-compare-side select{max-width:100%}.report-compare-card{border:1px solid var(--line-subtle);border-radius:var(--r-sm);background:var(--bg-panel);color:var(--fg-3);gap:5px;padding:10px;display:grid}.report-compare-card strong{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.report-compare-card span{overflow-wrap:anywhere;min-width:0}.report-compare-swap{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-panel);min-width:64px;color:var(--brand);cursor:pointer;align-self:center;place-items:center;gap:5px;padding:10px;display:inline-grid}.report-compare-swap:hover{background:var(--brand-soft);border-color:var(--brand)}.report-compare-note,.report-compare-scope,.report-diff-direction{border:1px solid var(--line-subtle);border-radius:var(--r-sm);background:var(--bg-panel-2);color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;display:flex}.report-compare-note strong,.report-diff-direction strong{color:var(--fg)}.report-diff-direction{margin-top:0;margin-bottom:8px}.report-diff-coverage{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px;margin-top:12px;margin-bottom:8px;display:grid}.report-diff-coverage>.badge{grid-column:1/-1;justify-self:start}.report-diff-coverage>div{border:1px solid var(--line-subtle);border-radius:var(--r-sm);background:var(--bg-panel-2);min-width:0;padding:8px 10px}.report-diff-coverage span{color:var(--fg-3);text-transform:uppercase;letter-spacing:.04em;font-size:12px;display:block}.report-diff-coverage strong{color:var(--fg);font-variant-numeric:tabular-nums;margin-top:3px;font-size:18px;display:block}@media (width<=900px){.report-compare-direction{grid-template-columns:1fr}.report-compare-swap{justify-self:start}.report-selection-bar{flex-direction:column;align-items:flex-start}.report-diff-coverage{grid-template-columns:repeat(2,minmax(0,1fr))}}.source-cbom-controls{border-top:1px solid var(--line-subtle);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding-top:10px;display:flex}.source-cbom-controls label{color:var(--fg-3);text-transform:uppercase;align-items:center;gap:8px;font-size:14.4px;display:flex}.source-cbom-controls select{border:1px solid var(--line);background:var(--bg-panel-2);min-width:220px;height:30px;color:var(--fg);border-radius:4px;padding:0 8px}.source-cbom-chart-grid,.source-cbom-dependency-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.source-cbom-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.source-cbom-dependency-metrics{margin-bottom:14px}.source-cbom-mini-chart{border:1px solid var(--line-subtle);background:var(--bg-panel-2);border-radius:4px;padding:10px}.source-cbom-mini-chart h4{text-transform:uppercase;color:var(--fg-3);margin:0 0 8px;font-size:14.4px}.source-cbom-mini-row{grid-template-columns:minmax(80px,1fr) 1.4fr 34px;align-items:center;gap:8px;margin-top:7px;font-size:14.4px;display:grid}.source-cbom-mini-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.source-cbom-mini-row div{background:var(--bg-panel-3);border-radius:999px;height:7px;overflow:hidden}.source-cbom-mini-row i{background:var(--brand-2);height:100%;display:block}.source-cbom-table-toolbar{border-bottom:1px solid var(--line-subtle);background:var(--bg-panel-2);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.source-cbom-table-toolbar .input{min-width:260px}.source-cbom-detail-row td{background:var(--bg-panel-2)}.source-cbom-finding-detail{border:1px solid var(--line-subtle);border-radius:4px;overflow:hidden}.source-cbom-detail-tabs{border-bottom:1px solid var(--line-subtle);background:var(--bg-panel);gap:4px;padding:8px;display:flex}.source-cbom-detail-tabs button{color:var(--fg-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 9px;font-size:14.4px}.source-cbom-detail-tabs button.active{color:var(--fg);background:var(--overlay-2);border-color:var(--line)}.source-cbom-finding-detail pre{background:var(--bg-code);color:#aacddf;max-height:280px;margin:0;padding:12px;font-size:14.4px;overflow:auto}.source-cbom-metadata{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0;padding:12px;display:grid}.source-cbom-metadata dt{color:var(--fg-3);text-transform:uppercase;margin-bottom:2px;font-size:13.2px}.source-cbom-metadata dd{color:var(--fg);overflow-wrap:anywhere;margin:0}.source-cbom-dataflow-detail{gap:10px;padding:12px;display:grid}.source-cbom-dataflow-detail .source-cbom-metadata{padding:0}.source-cbom-dataflow-graph{border:1px solid var(--line-subtle);background:linear-gradient(180deg, var(--bg-panel), var(--bg-panel-2)), radial-gradient(circle at 1px 1px, var(--overlay-2) 1px, transparent 0) 0 0 / 22px 22px;border-radius:4px;align-items:stretch;gap:10px;padding:12px;display:flex;overflow-x:auto}.source-cbom-df-node{border:1px solid var(--line);border-left:4px solid var(--brand);background:var(--bg-panel);border-radius:4px;flex:0 0 210px;align-content:start;gap:4px;min-width:210px;padding:10px;display:grid}.source-cbom-df-node.module{border-left-color:var(--risk-info)}.source-cbom-df-node.source{border-left-color:var(--risk-ok)}.source-cbom-df-node.sink{border-left-color:var(--risk-warn)}.source-cbom-df-node.finding{border-left-color:var(--risk-high)}.source-cbom-df-node span{color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.source-cbom-df-node strong{min-width:0;color:var(--fg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.source-cbom-df-node small{min-width:0;color:var(--fg-3);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.source-cbom-df-node em{background:var(--overlay-2);color:var(--fg-2);font-style:normal;font-family:var(--font-mono);border-radius:4px;justify-self:start;margin-top:2px;padding:2px 6px;font-size:12px}.source-cbom-df-arrow{color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;flex:0 0 58px;align-content:center;place-items:center;gap:4px;font-size:11px;display:grid}.source-cbom-df-arrow i{background:var(--line-strong);width:48px;height:1px;position:relative}.source-cbom-df-arrow i:after{content:"";border-right:1px solid var(--line-strong);border-top:1px solid var(--line-strong);width:8px;height:8px;position:absolute;top:-4px;right:-1px;transform:rotate(45deg)}.source-cbom-target-list{flex-direction:column;gap:6px;display:flex}.source-cbom-component-label{border-left:2px solid var(--brand-2);flex-direction:column;gap:2px;min-width:0;padding-left:8px;display:flex}.source-cbom-component-label.crypto{border-left-color:var(--risk-warn)}.source-cbom-component-label.library{border-left-color:var(--risk-info)}.source-cbom-component-label.file{border-left-color:var(--risk-ok)}.source-cbom-component-label span,.source-cbom-component-label small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.source-cbom-component-label small,.source-cbom-component-label em{color:var(--fg-3);font-size:13.2px}.source-cbom-graph-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.source-cbom-graph-header h3{margin:0 0 4px;font-size:18px}.source-cbom-graph-header p{color:var(--fg-3);margin:0}.source-cbom-relationship-scroll{overflow-x:auto}.source-cbom-relationship-scroll table{min-width:640px}.source-cbom-graph-toolbar{border-bottom:1px solid var(--line-subtle);background:var(--bg-panel);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.source-cbom-graph-search{min-width:min(360px,100%);color:var(--fg-3);flex:280px;align-items:center;display:flex;position:relative}.source-cbom-graph-search svg{pointer-events:none;position:absolute;left:12px}.source-cbom-graph-search input{border:1px solid var(--line);background:var(--bg-input);width:100%;color:var(--fg);font:inherit;border-radius:8px;outline:0;padding:9px 12px 9px 36px}.source-cbom-graph-search input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.source-cbom-graph-chip{border:1px solid var(--line);background:var(--bg-panel);color:var(--fg-2);font:inherit;cursor:pointer;border-radius:999px;padding:8px 12px;font-size:13.2px;font-weight:700}.source-cbom-graph-chip:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.source-cbom-graph-chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.source-cbom-graph-shell{grid-template-columns:minmax(0,1fr) 320px;min-height:660px;display:grid}.source-cbom-graph-canvas{border-right:1px solid var(--line-subtle);background:radial-gradient(circle at 1px 1px, var(--overlay-2) 1px, transparent 0) 0 0 / 24px 24px, linear-gradient(180deg, var(--bg-panel), var(--bg-panel-2));min-width:0;position:relative;overflow:auto}.source-cbom-graph-svg{cursor:default;width:100%;min-width:900px;height:660px;display:block}.source-cbom-graph-link line{stroke:color-mix(in srgb, var(--fg-3) 52%, transparent);stroke-width:1.6px;stroke-linecap:round;marker-end:url(#source-cbom-arrow);transition:opacity .18s,stroke .18s}.source-cbom-graph-link path{fill:color-mix(in srgb, var(--fg-3) 62%, transparent)}.source-cbom-graph-link text{fill:var(--fg-3);font-size:10.5px;font-family:var(--font-mono);text-anchor:middle;paint-order:stroke;stroke:var(--bg-panel);stroke-width:4px;stroke-linejoin:round}.source-cbom-graph-link.provides line{stroke-dasharray:5 5;stroke:var(--brand-2)}.source-cbom-graph-link:not(.dim) line{stroke:var(--brand);stroke-width:2px}.source-cbom-graph-link.dim,.source-cbom-graph-node.dim{opacity:.16}.source-cbom-graph-node{cursor:pointer}.source-cbom-graph-node .shape{filter:drop-shadow(0 4px 8px #2a257f24);transition:filter .15s,stroke .15s,opacity .18s}.source-cbom-graph-node:hover .shape{filter:drop-shadow(0 7px 14px #2a257f42)}.source-cbom-graph-node.file .shape{fill:var(--bg-panel);stroke:var(--brand-2);stroke-width:1.8px}.source-cbom-graph-node.library .shape{fill:var(--brand-soft);stroke:var(--brand);stroke-width:1.8px}.source-cbom-graph-node.crypto .shape{fill:var(--risk-warn);stroke:var(--bg-panel);stroke-width:2.5px}.source-cbom-graph-node.selected .shape,.source-cbom-graph-node.query-hit .shape{stroke:var(--brand);stroke-width:3px}.source-cbom-graph-node.crypto.selected .shape,.source-cbom-graph-node.crypto.query-hit .shape{stroke:var(--brand)}.source-cbom-graph-node .ring{fill:none;stroke:#0000;stroke-width:2.5px}.source-cbom-graph-node.selected .ring,.source-cbom-graph-node.query-hit .ring{stroke:var(--brand)}.source-cbom-graph-node .file-icon{fill:none;stroke:var(--brand-2);stroke-width:1.6px}.source-cbom-graph-node text{pointer-events:none;text-anchor:middle;-webkit-user-select:none;user-select:none}.source-cbom-graph-node .label{fill:var(--fg);font-size:12.5px;font-weight:800}.source-cbom-graph-node .label.inside{fill:var(--brand);font-size:13px}.source-cbom-graph-node.file .label.inside{fill:var(--fg-2)}.source-cbom-graph-node .label.outside{fill:var(--fg);paint-order:stroke;stroke:var(--bg-panel);stroke-width:4px;stroke-linejoin:round;font-size:12px}.source-cbom-graph-node .count{fill:#fff;text-anchor:middle;font-size:15px;font-weight:850}.source-cbom-graph-legend{border:1px solid var(--line-subtle);background:color-mix(in srgb, var(--bg-panel) 88%, transparent);color:var(--fg-2);border-radius:4px;flex-wrap:wrap;gap:8px;padding:8px 10px;font-size:12px;display:flex;position:absolute;top:12px;left:12px}.source-cbom-graph-legend span{align-items:center;gap:5px;display:inline-flex}.source-cbom-graph-legend i{background:var(--brand-2);border-radius:999px;width:10px;height:10px}.source-cbom-graph-legend i.file{background:var(--risk-ok)}.source-cbom-graph-legend i.crypto{background:var(--risk-warn)}.source-cbom-graph-legend i.library{background:var(--risk-info)}.source-cbom-graph-side{background:var(--bg-panel);border-left:1px solid var(--line-subtle);min-width:0;overflow:auto}.source-cbom-graph-empty{color:var(--fg-3);gap:14px;padding:16px;display:grid}.source-cbom-graph-empty strong{color:var(--fg)}.source-cbom-graph-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.source-cbom-graph-neighbors{gap:8px;margin-top:14px;padding:0 14px 14px;display:grid}.source-cbom-graph-neighbors h4{color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:13px}.source-cbom-graph-neighbors button{text-align:left;border:1px solid var(--line-subtle);background:var(--bg-panel-2);color:var(--fg);border-radius:4px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px;display:grid}.source-cbom-graph-neighbors button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.source-cbom-graph-side>.source-cbom-component-label{border:1px solid var(--line);border-left:4px solid var(--brand);background:var(--bg-panel-2);border-radius:8px;margin:14px;padding:14px}.source-cbom-graph-side>.source-cbom-component-label.crypto{border-left-color:var(--risk-warn)}.source-cbom-graph-side>.source-cbom-component-label.file{border-left-color:var(--brand-2)}.source-cbom-graph-side>.source-cbom-component-label.library{border-left-color:var(--brand)}@media (width<=980px){.source-cbom-graph-header,.source-cbom-graph-shell{grid-template-columns:1fr}.source-cbom-graph-header{flex-direction:column}.source-cbom-graph-canvas{border-right:0;border-bottom:1px solid var(--line-subtle)}}.source-cbom-graph-port{--wk-ink:var(--fg);--wk-ink-soft:var(--fg-3);--wk-ink-faint:var(--fg-4);--wk-blue:var(--brand-2);--wk-indigo:var(--brand);--wk-muted:var(--bg-panel-2);--wk-surface:var(--bg-panel);--wk-border:var(--line-subtle);--wk-border-strong:var(--line);--wk-tint:var(--brand-soft);--wk-tint-2:var(--overlay-2);--wk-shadow-sm:0 4px 12px #2a257f14}.source-cbom-graph-port .graph-shell{overflow:hidden}.source-cbom-graph-port .graph-toolbar{border-bottom:1px solid var(--wk-border);background:var(--wk-muted);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.source-cbom-graph-port .graph-search{flex:1;align-items:center;min-width:220px;display:flex;position:relative}.source-cbom-graph-port .graph-search svg{color:var(--wk-ink-faint);position:absolute;left:12px}.source-cbom-graph-port .graph-search input{border:1px solid var(--wk-border-strong);width:100%;color:var(--wk-ink);background:#fff;border-radius:10px;outline:none;padding:10px 12px 10px 36px;font-size:.92rem}.source-cbom-graph-port .graph-search input:focus{border-color:var(--wk-blue);box-shadow:0 0 0 3px #5462a029}.source-cbom-graph-port .graph-filter{align-items:center;gap:7px;display:flex}.source-cbom-graph-port .graph-filter span{color:var(--wk-ink-soft);font-size:.8rem;font-weight:700}.source-cbom-graph-port .graph-filter select{border:1px solid var(--wk-border-strong);color:var(--wk-ink);background:#fff;border-radius:9px;outline:none;padding:8px 10px;font-size:.86rem;font-weight:650}.source-cbom-graph-port .graph-chip{border:1px solid var(--wk-border-strong);color:var(--wk-indigo);cursor:pointer;background:#fff;border-radius:9px;padding:8px 13px;font-size:.84rem;font-weight:750}.source-cbom-graph-port .graph-chip:hover{background:var(--wk-tint);border-color:var(--wk-blue)}.source-cbom-graph-port .graph-chip.on{background:var(--wk-indigo);color:#fff;border-color:var(--wk-indigo)}.source-cbom-graph-port .graph-body{grid-template-columns:1fr;display:grid}.source-cbom-graph-port .graph-body.with-drawer{grid-template-columns:minmax(0,1.55fr) minmax(360px,.95fr);height:min(820px,100vh - 170px);min-height:620px}.source-cbom-graph-port .graph-canvas{overscroll-behavior:contain;border-right:1px solid var(--wk-border);background:radial-gradient(circle at 1px 1px,#5462a01a 1px,#0000 0) 0 0/26px 26px,linear-gradient(#fdfeff,#f4f9fc);min-width:0;height:100%;min-height:0;position:relative}.source-cbom-graph-port .graph-body:not(.with-drawer) .graph-canvas{border-right:0}.source-cbom-graph-port .graph-svg{aspect-ratio:1060/700;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:auto;max-height:74vh;display:block}.source-cbom-graph-port .graph-body.with-drawer .graph-svg{aspect-ratio:auto;height:100%;max-height:none}.source-cbom-graph-port .graph-svg:active{cursor:grabbing}.source-cbom-graph-port .g-edge{stroke-linecap:round;transition:opacity .18s,stroke .18s}.source-cbom-graph-port .g-edge-uses{stroke:#9fb6c9;stroke-width:1.6px}.source-cbom-graph-port .g-edge-provides{stroke:#c3bfe6;stroke-width:1.6px;stroke-dasharray:5 5}.source-cbom-graph-port .g-normal{opacity:.5}.source-cbom-graph-port .g-dim{opacity:.08}.source-cbom-graph-port .g-active{opacity:1;stroke-width:2.6px}.source-cbom-graph-port .g-edge-uses.g-active{stroke:var(--wk-blue)}.source-cbom-graph-port .g-edge-provides.g-active{stroke:var(--wk-indigo)}.source-cbom-graph-port .g-node{cursor:pointer}.source-cbom-graph-port .g-node text{-webkit-user-select:none;user-select:none;pointer-events:none}.source-cbom-graph-port .g-zone-rule{stroke:var(--line);stroke-dasharray:4 5}.source-cbom-graph-port .g-zone-title{fill:var(--fg-3);letter-spacing:.14em;text-transform:uppercase;font-size:30px;font-weight:800}.source-cbom-graph-port .g-node-label{fill:var(--fg-2);text-anchor:middle;font-size:12.5px;font-weight:600}.source-cbom-graph-port .g-node-label.inside{font-size:12.5px;font-weight:500}.source-cbom-graph-port .g-file .g-node-shape{fill:var(--bg-card);stroke:var(--line-strong);stroke-width:1px}.source-cbom-graph-port .g-file .g-node-label.inside{fill:var(--fg)}.source-cbom-graph-port .g-file .g-node-icon{fill:none;stroke:var(--fg-4);stroke-width:1.4px}.source-cbom-graph-port .g-library .g-node-shape{fill:var(--bg-panel-3);stroke:var(--line);stroke-width:1px}.source-cbom-graph-port .g-library .g-node-label.inside{fill:var(--fg-2);font-weight:500}.source-cbom-graph-port .g-algo .g-node-shape{stroke:var(--bg-card);stroke-width:2px;transition:r .15s}.source-cbom-graph-port .g-algo .g-node-ring{fill:none;stroke:#0000;stroke-width:2px}.source-cbom-graph-port .g-node-count{fill:var(--agi-ink);text-anchor:middle;font-size:14px;font-weight:700}.source-cbom-graph-port .g-algo .g-node-label{fill:var(--fg-2);font-size:12px;font-weight:600}.source-cbom-graph-port .g-node .g-node-shape{transition:stroke .15s,opacity .18s}.source-cbom-graph-port .g-node:hover .g-node-shape,.source-cbom-graph-port .g-sel .g-node-ring{stroke:var(--brand)}.source-cbom-graph-port .g-sel.g-file .g-node-shape,.source-cbom-graph-port .g-sel.g-library .g-node-shape{stroke:var(--brand);stroke-width:2px}.source-cbom-graph-port .g-qh .g-node-shape{stroke:var(--risk-warn);stroke-width:2.5px}.source-cbom-graph-port .g-qh .g-node-ring{stroke:var(--risk-warn)}.source-cbom-graph-port .graph-zoom{gap:5px;display:grid;position:absolute;bottom:14px;right:14px}.source-cbom-graph-port .graph-zoom button{border:1px solid var(--wk-border-strong);width:36px;height:36px;color:var(--wk-indigo);box-shadow:var(--wk-shadow-sm);cursor:pointer;background:#ffffffeb;border-radius:9px;font-size:1.3rem;font-weight:700;line-height:1}.source-cbom-graph-port .graph-zoom button:hover{background:var(--wk-tint)}.source-cbom-graph-port .graph-legend{border:1px solid var(--wk-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--wk-shadow-sm);color:var(--wk-ink-soft);background:#ffffffe6;border-radius:11px;gap:6px;padding:11px 13px;font-size:.8rem;font-weight:700;display:grid;position:absolute;top:14px;left:14px}.source-cbom-graph-port .gl-row{align-items:center;gap:8px;display:flex}.source-cbom-graph-port .gl-row.sm{font-size:.72rem;font-weight:650}.source-cbom-graph-port .gl-swatch{border-radius:3px;width:16px;height:12px}.source-cbom-graph-port .gl-file{background:var(--bg-card);border:1px solid var(--line-strong);border-radius:3px}.source-cbom-graph-port .gl-lib{background:var(--bg-panel-3);border:1px solid var(--line);border-radius:3px}.source-cbom-graph-port .gl-algo{background:var(--risk-ok);border-radius:50%;width:13px;height:13px}.source-cbom-graph-port .gl-dot{border-radius:50%;width:10px;height:10px}.source-cbom-graph-port .gl-sep{background:var(--wk-border);height:1px;margin:3px 0}.source-cbom-graph-port .graph-side{background:var(--bg-panel);min-width:0;height:100%;min-height:0;overflow-y:auto}.source-cbom-graph-port .gp-default{gap:18px;padding:20px;display:grid;overflow-y:auto}.source-cbom-graph-port .gp-stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.source-cbom-graph-port .gp-stat{border:1px solid var(--wk-border);background:var(--wk-muted);border-radius:11px;padding:13px 14px}.source-cbom-graph-port .gp-stat span{color:var(--wk-ink-soft);font-size:.78rem;font-weight:700;display:block}.source-cbom-graph-port .gp-stat strong{color:var(--wk-indigo);margin-top:4px;font-size:1.7rem;font-weight:850;display:block}.source-cbom-graph-port .gp-stat.accent{background:var(--wk-indigo);border-color:var(--wk-indigo)}.source-cbom-graph-port .gp-stat.accent span,.source-cbom-graph-port .gp-stat.accent strong{color:#fff}.source-cbom-graph-port .gp-hint{border:1px dashed var(--wk-border-strong);background:var(--wk-tint);border-radius:12px;align-items:flex-start;gap:13px;padding:15px;display:flex}.source-cbom-graph-port .gp-hint-icon{width:42px;height:42px;color:var(--wk-indigo);box-shadow:var(--wk-shadow-sm);background:#fff;border-radius:11px;flex:none;place-items:center;display:grid}.source-cbom-graph-port .gp-hint strong{color:var(--wk-ink);font-size:1rem;display:block}.source-cbom-graph-port .gp-hint p{color:var(--wk-ink-soft);margin-top:3px;font-size:.88rem}.source-cbom-graph-port .gp-top{gap:9px;display:grid}.source-cbom-graph-port .gp-top-title{text-transform:uppercase;letter-spacing:.04em;color:var(--wk-ink-soft);font-size:.82rem;font-weight:800}.source-cbom-graph-port .gp-top-row{grid-template-columns:12px 116px 1fr 28px;align-items:center;gap:9px;display:grid}.source-cbom-graph-port .gp-top-dot{border-radius:50%;width:11px;height:11px}.source-cbom-graph-port .gp-top-name{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:750;overflow:hidden}.source-cbom-graph-port .gp-top-track{background:var(--wk-tint-2);border-radius:999px;height:8px;overflow:hidden}.source-cbom-graph-port .gp-top-track span{border-radius:999px;height:100%;display:block}.source-cbom-graph-port .gp-top-n{text-align:right;color:var(--wk-ink);font-size:.9rem;font-weight:800}.source-cbom-graph-port .graph-side.drawer{z-index:auto;width:auto;max-width:none;box-shadow:none;border-left:1px solid var(--wk-border);animation:.22s drawer-in;position:relative;inset:auto}@keyframes drawer-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.source-cbom-graph-port .gp-head{border-bottom:1px solid var(--wk-border);background:var(--wk-muted);z-index:2;padding:18px 20px 16px;position:sticky;top:0}.source-cbom-graph-port .gp-head-top{justify-content:space-between;align-items:center;margin-bottom:11px;display:flex}.source-cbom-graph-port .gp-kind{background:var(--wk-indigo);color:#fff;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 11px;font-size:.7rem;font-weight:850;display:inline-flex}.source-cbom-graph-port .gp-kind.file{background:var(--wk-blue)}.source-cbom-graph-port .gp-kind.lib{background:var(--wk-indigo)}.source-cbom-graph-port .gp-close{border:1px solid var(--wk-border-strong);width:32px;height:32px;color:var(--wk-ink-soft);cursor:pointer;background:#fff;border-radius:9px;place-items:center;display:grid}.source-cbom-graph-port .gp-close:hover{background:var(--wk-tint);color:var(--wk-indigo)}.source-cbom-graph-port .gp-head h3{color:var(--wk-ink);letter-spacing:-.01em;margin:0;font-size:1.45rem;font-weight:850}.source-cbom-graph-port .gp-filepath{word-break:break-all;font-size:1.1rem}.source-cbom-graph-port .gp-badges{flex-wrap:wrap;gap:7px;margin-top:11px;display:flex}.source-cbom-graph-port .gp-cat{background:var(--wk-tint-2);color:var(--wk-indigo);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;padding:3px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.source-cbom-graph-port .gp-note{color:var(--wk-ink-soft);margin-top:11px;font-size:.9rem;line-height:1.5}.source-cbom-graph-port .gp-meta{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.source-cbom-graph-port .gp-meta>div{border:1px solid var(--wk-border);background:#fff;border-radius:10px;min-width:0;padding:9px 11px}.source-cbom-graph-port .gp-meta span{color:var(--wk-ink-faint);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700;display:block}.source-cbom-graph-port .gp-meta strong{color:var(--wk-indigo);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.96rem;font-weight:800;display:block;overflow:hidden}.source-cbom-graph-port .gp-findings{align-content:start;gap:9px;padding:14px 16px 18px;display:grid}.source-cbom-graph-port .gp-findings-title{text-transform:uppercase;letter-spacing:.04em;color:var(--wk-ink-soft);font-size:.82rem;font-weight:800}.source-cbom-graph-port .gp-findings-title strong{color:var(--wk-indigo)}.source-cbom-graph-port .gp-findings-filters{gap:8px;display:flex}.source-cbom-graph-port .gp-find-search{border:1px solid var(--wk-border-strong);min-width:0;font:inherit;border-radius:8px;outline:none;flex:1;padding:7px 11px;font-size:.84rem}.source-cbom-graph-port .gp-find-search:focus{border-color:var(--wk-blue);box-shadow:0 0 0 3px var(--wk-tint)}.source-cbom-graph-port .gp-findings-filters select{border:1px solid var(--wk-border-strong);font:inherit;color:var(--wk-ink);background:#fff;border-radius:8px;padding:7px 9px;font-size:.82rem}.source-cbom-graph-port .gp-find-empty{color:var(--wk-ink-faint);padding:10px 2px;font-size:.86rem}.source-cbom-graph-port .fr{border:1px solid var(--wk-border);background:#fff;border-radius:11px;transition:border-color .14s,box-shadow .14s;overflow:hidden}.source-cbom-graph-port .fr.open{border-color:var(--wk-border-strong);box-shadow:var(--wk-shadow-sm)}.source-cbom-graph-port .fr-head{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;width:100%;padding:11px 12px 7px;display:grid}.source-cbom-graph-port .fr-loc{min-width:0;display:grid}.source-cbom-graph-port .fr-loc strong{color:var(--wk-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:750;overflow:hidden}.source-cbom-graph-port .fr-loc em{color:var(--wk-ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-style:normal;font-family:var(--font-mono);overflow:hidden}.source-cbom-graph-port .fr-caret{color:var(--wk-ink-faint);transition:transform .16s}.source-cbom-graph-port .fr.open .fr-caret{transform:rotate(180deg)}.source-cbom-graph-port .fr-match{background:var(--wk-tint);color:#2d3566;white-space:pre;border-radius:8px;margin:0 12px 11px;padding:7px 10px;font-size:.8rem;overflow-x:auto}.source-cbom-graph-port .fr-context{padding:0 12px 12px}.source-cbom-graph-port .fr-context-head{color:var(--wk-ink-faint);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:7px;font-size:.76rem;font-weight:700;display:flex}.source-cbom-graph-port .fr-conf{text-transform:none;letter-spacing:0}.source-cbom-graph-port .fr-conf strong{color:var(--wk-indigo)}.source-cbom-graph-port .code-block{background:#20242e;border-radius:9px;margin:0;padding:10px 0;font-size:.8rem;line-height:1.6;overflow-x:auto}.source-cbom-graph-port .cl{grid-template-columns:42px 1fr;display:grid}.source-cbom-graph-port .cl .ln{text-align:right;color:#d7eaf352;-webkit-user-select:none;user-select:none;padding-right:12px}.source-cbom-graph-port .cl .lc{color:#d7eef3;white-space:pre;padding-right:14px}.source-cbom-graph-port .cl.hit{background:#d97a2b29}.source-cbom-graph-port .cl.hit .lc{color:#ffd9b0}.source-cbom-graph-port .cl.hit .ln{color:#ffd9b099}.source-cbom-graph-port .gp-prov{border:1px solid var(--wk-border);background:#fff;border-radius:10px;grid-template-columns:12px 1fr auto auto;align-items:center;gap:10px;padding:9px 11px;display:grid}.source-cbom-graph-port .gp-prov-name{font-size:.92rem;font-weight:750}.source-cbom-graph-port .gp-prov-n{color:var(--wk-indigo);text-align:right;min-width:22px;font-size:.92rem;font-weight:850}.source-cbom-graph-port .sev,.source-cbom-graph-port .mig{text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:3px 9px;font-size:.72rem;font-weight:850;display:inline-flex}.source-cbom-graph-port .sev.critical,.source-cbom-graph-port .sev.high,.source-cbom-graph-port .mig.vulnerable{color:#a94710;background:#fde9df}.source-cbom-graph-port .sev.medium,.source-cbom-graph-port .mig.partial{color:#8a6a00;background:#fff4cc}.source-cbom-graph-port .sev.low,.source-cbom-graph-port .sev.info,.source-cbom-graph-port .mig.safe{color:#1e7a52;background:#e6f5ee}.source-cbom-graph-port .mig.hybrid{color:var(--wk-indigo);background:#eef0fb}.source-cbom-graph-port .mig.n\/a,.source-cbom-graph-port .mig.excluded{background:var(--wk-tint-2);color:var(--wk-ink-soft)}@media (width<=1080px){.source-cbom-graph-port .graph-body.with-drawer{grid-template-columns:1fr;height:auto;min-height:0}.source-cbom-graph-port .graph-body.with-drawer .graph-svg{aspect-ratio:1060/700;height:auto}.source-cbom-graph-port .graph-canvas{border-right:0;border-bottom:1px solid var(--wk-border)}.source-cbom-graph-port .graph-side,.source-cbom-graph-port .graph-side.drawer{height:auto;max-height:none}}.source-cbom-level-guide{border:1px solid var(--line);background:var(--bg-panel);width:min(760px,100vw - 32px);box-shadow:var(--shadow-lg);border-radius:6px}.source-cbom-level-guide header{border-bottom:1px solid var(--line-subtle);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.source-cbom-level-guide h2{margin:0;font-size:20.4px}.source-cbom-guide-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;display:grid}.source-cbom-guide-list{border:1px solid var(--line-subtle);background:var(--bg-panel-2);border-radius:4px;padding:10px}.source-cbom-guide-list h4{margin:0 0 8px}.source-cbom-guide-list div{margin-top:8px}.source-cbom-guide-list span{font-family:var(--font-mono);color:var(--brand-2);font-size:14.4px}.source-cbom-guide-list p{color:var(--fg-3);margin:2px 0 0;font-size:14.4px;line-height:1.45}@media (width<=900px){.scan-source-cbom-page-head{flex-wrap:wrap}.scan-source-cbom-page-head .spacer{display:none}.scan-config-summary{grid-template-columns:1fr}.scan-config-rows>div{grid-template-columns:1fr;gap:3px}.source-cbom-header{flex-direction:column}.source-cbom-actions{justify-content:flex-start;margin-left:0}.source-cbom-demo .grid.cols-4,.source-cbom-demo .grid.cols-2,.source-cbom-chart-grid,.source-cbom-dependency-metrics,.source-cbom-guide-grid{grid-template-columns:1fr}.source-cbom-controls label{flex-direction:column;align-items:flex-start;width:100%}.source-cbom-controls select{width:100%;min-width:0}.source-cbom-table-toolbar{flex-direction:column}.source-cbom-table-toolbar .input{width:100%;min-width:0}.source-cbom-metadata{grid-template-columns:1fr}}.schedule-modal{width:680px}.sched-section{border-top:1px solid var(--line-subtle);padding:14px 0}.sched-section:first-child{border-top:none;padding-top:2px}.sched-h{align-items:center;gap:8px;margin:0 0 10px;font-size:15px;display:flex}.sched-count{background:var(--overlay-3);min-width:20px;height:20px;color:var(--fg-3);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;display:inline-flex}.sched-seg{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;display:flex;overflow:hidden}.sched-seg-btn{text-align:center;background:var(--bg-input);border:none;border-right:1px solid var(--line);color:var(--fg-3);cursor:pointer;font:inherit;flex:1;padding:8px 14px;font-size:14px}.sched-seg-btn:hover{background:var(--overlay-2)}.sched-seg-btn:last-child{border-right:none}.sched-seg-btn.on{background:var(--brand-soft);color:var(--brand)}.sched-days{gap:6px;margin-top:8px;display:flex}.sched-day{border:1px solid var(--line);background:var(--bg-input);min-width:0;height:34px;color:var(--fg-3);cursor:pointer;font:inherit;border-radius:8px;flex:1;padding:0 6px;font-size:14px}.sched-day.on{background:var(--brand-soft);color:var(--brand);border-color:#2b288438}.sched-fns{flex-wrap:wrap;gap:8px;display:flex}.sched-fn{border:1px solid var(--line);background:var(--bg-input);color:var(--fg);cursor:pointer;font:inherit;border-radius:8px;align-items:center;gap:7px;padding:7px 11px;font-size:14px;display:inline-flex}.sched-fn.on{background:var(--brand-soft);color:var(--brand);border-color:#2b288438}.sched-kvs{flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px;display:flex}.sched-kvs .target-chip{white-space:normal;text-overflow:clip;cursor:default;max-width:100%;overflow:visible}.sched-check{cursor:pointer;align-items:flex-start;gap:9px;font-size:15px;display:flex}.sched-check input{margin-top:3px}.sched-store{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:6px;padding:11px 13px;display:flex}.sched-store>div{align-items:baseline;gap:10px;display:flex}.sched-store-k{min-width:130px;color:var(--fg-4);font-size:13.5px}.sched-list{flex-direction:column;gap:8px;display:flex}.sched-item{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-input);gap:10px;padding:11px 12px;display:flex}.sched-item.off{opacity:.55}.sched-item-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.sched-item-name{font-weight:600}.sched-item-sub{color:var(--fg-4);font-size:12.5px}.sched-item-chips{flex-wrap:wrap;gap:5px;margin-top:2px;display:flex}.target-chip.sm{padding:2px 7px;font-size:11.5px}.target-chip.acc{color:var(--brand)}.sched-item-next{color:var(--fg-3);font-size:12.5px}.sched-item-actions{align-items:flex-start;gap:6px;display:flex}.sched-foot-preview{color:var(--fg-3);font-size:13.5px}.modal-foot{align-items:center}.poc-hint{opacity:.85;margin-top:4px}.poc-hint-item{font-family:var(--font-mono);color:var(--fg-4);margin-top:1px;font-size:12.5px;display:block}span.poc-hint-item{margin-left:4px;display:inline}.system-log-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.system-log-header h1{margin:0}.system-log-export-format{flex:none;width:auto;max-width:100%}.system-log-control-card{gap:14px;margin-bottom:14px;padding:14px 16px}.system-log-day-picker{justify-content:center;align-items:center;gap:14px;display:flex}.system-log-day-button{border:1px solid var(--line);background:var(--bg-input);width:36px;height:36px}.system-log-day-button:disabled{opacity:.35;cursor:not-allowed}.system-log-day-label{flex-direction:column;align-items:center;gap:2px;min-width:190px;display:flex}.system-log-day-label strong{font-family:var(--font-mono);letter-spacing:.02em;font-size:19px}.system-log-day-label span{color:var(--fg-4);font-size:12px}.system-log-filters{grid-template-columns:150px 150px minmax(260px,1fr);gap:10px;display:grid}.system-log-search{align-items:center;display:flex;position:relative}.system-log-search>.icon{color:var(--fg-4);z-index:1;position:absolute;left:11px}.system-log-search .input{padding-left:34px}.system-log-error{color:var(--risk-high);background:var(--risk-high-soft);border-radius:var(--r-sm);border:1px solid #c93b3b3d;align-items:center;gap:8px;margin:0 0 14px;padding:11px 13px;display:flex}.system-log-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.system-log-stats>div{background:var(--bg-card);border:1px solid var(--line-subtle);border-radius:var(--r-sm);justify-content:space-between;align-items:baseline;padding:11px 14px;display:flex}.system-log-stats span{color:var(--fg-4);letter-spacing:.06em;font-size:12px}.system-log-stats strong{font-family:var(--font-mono);font-size:20px}.system-log-stats .tone-error{color:var(--risk-high)}.system-log-stats .tone-warning{color:var(--risk-warn)}.system-log-console-card{overflow:hidden}.system-log-console{color:#d5dbe6;min-height:420px;max-height:calc(100vh - 420px);font-family:var(--font-mono);background:#14171d;font-size:12.5px;overflow:auto}[data-theme=light] .system-log-console{color:#d9dee8;background:#171a20}.system-log-row{border-bottom:1px solid #ffffff0e;grid-template-columns:105px 76px 62px 130px minmax(300px,1fr);align-items:start;gap:10px;padding:8px 14px;display:grid}.system-log-row:hover{background:#ffffff09}.system-log-row time{color:#8590a3;font-variant-numeric:tabular-nums}.system-log-level{color:#8bc99b;font-weight:700}.level-warning .system-log-level{color:#e3b65c}.level-error .system-log-level,.level-critical .system-log-level{color:#ff7d7d}.system-log-source{color:#85b8e9}.system-log-category{color:#aaa1e8;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.system-log-message{overflow-wrap:anywhere;min-width:0;line-height:1.45}.system-log-message code{color:#8493aa;margin-left:8px;font-size:11.5px;display:inline-block}.system-log-empty{color:#7f8898;place-items:center;min-height:420px;display:grid}.system-log-pager{border-top:1px solid var(--line-subtle);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.system-log-retention-note{margin-top:12px}@media (width<=900px){.system-log-header{flex-wrap:wrap}.system-log-header .spacer{display:none}.system-log-filters{grid-template-columns:1fr}.system-log-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.system-log-row{grid-template-columns:90px 68px 56px minmax(180px,1fr)}.system-log-category{display:none}}.input:disabled,.textarea:disabled{opacity:.5;cursor:not-allowed;background:var(--overlay-2)}.schedules-header{align-items:flex-start;gap:10px;margin-bottom:16px;display:flex}.schedules-header h1{margin:0 0 4px}.sched-notice{border:2px solid var(--line);border-radius:var(--r-md);align-items:center;gap:8px;padding:10px 12px;font-size:14.4px;display:flex}.sched-notice.ok{color:var(--risk-ok);border-color:var(--risk-ok);background:var(--risk-ok-soft)}.sched-notice.warn{color:var(--risk-warn);border-color:var(--risk-warn);background:var(--risk-warn-soft)}.sched-notice.bad{color:var(--risk-high);border-color:var(--risk-high);background:var(--risk-high-soft)}.sched-card{border:2px solid var(--line);border-radius:var(--r-md);background:var(--bg-1);gap:8px;padding:12px 14px;display:grid}.sched-card.is-paused{opacity:.68}.sched-card-head{align-items:center;gap:8px;display:flex}.sched-card-title{min-width:0}.sched-card-name{font-size:15.6px;font-weight:600}.sched-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sched-card-meta .meta{color:var(--fg-3);font-size:13px}.sched-badge-mono{font-family:var(--font-mono);font-size:12.5px}.sched-occurrences{border-top:2px solid var(--line);margin-top:6px;padding-top:10px}.sched-table th,.sched-table td{padding:6px 8px;font-size:13.5px}.sched-link{cursor:pointer;background:0 0;border:0;padding:0}.sched-next-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.sched-next-list li{align-items:center;gap:10px;font-size:14.4px;display:flex}.sched-next-list .meta{color:var(--fg-4);font-size:12.5px}.sched-empty{text-align:center;color:var(--fg-3);justify-items:center;gap:6px;padding:26px 16px;display:grid}.sched-empty-title{color:var(--fg-1);font-size:15.6px;font-weight:600}.sched-saved{gap:4px;display:grid}.sched-saved-name{margin-bottom:4px;font-size:15.6px;font-weight:600}.field-help.sched-field-warn{color:var(--risk-warn)}.sched-inline{border-top:2px solid var(--line);margin-top:14px;padding-top:14px}.sched-next{border:2px solid var(--line);border-radius:var(--r-md);background:var(--bg-2);margin-top:14px;padding:12px}.sched-next>.field-label{margin-bottom:8px}:root{--agi-r2-0:var(--risk-high);--agi-r2-1:var(--risk-ok);--agi-r4-0:var(--risk-high);--agi-r4-1:color-mix(in oklab, var(--risk-warn) 67%, var(--risk-high));--agi-r4-2:color-mix(in oklab, var(--risk-ok) 33%, var(--risk-warn));--agi-r4-3:var(--risk-ok);--agi-r5-0:var(--risk-high);--agi-r5-1:color-mix(in oklab, var(--risk-warn) 50%, var(--risk-high));--agi-r5-2:var(--risk-warn);--agi-r5-3:color-mix(in oklab, var(--risk-ok) 50%, var(--risk-warn));--agi-r5-4:var(--risk-ok);--agi-empty:var(--brand-soft);--agi-none:var(--bg-panel-2);--agi-ink:var(--bg-code)}.agility-header h2{margin:0 0 2px;font-size:19px}.agility-sub{color:var(--fg-3);margin:0 0 10px;font-size:13px}.agility-mx-order{color:var(--fg-3);margin:0 0 8px;font-size:12px}.agility-nousage{color:var(--fg-3);font-size:13px}.agility-matrix-wrap{overflow-x:auto}.agility-matrix{border-collapse:collapse;width:100%}.agility-matrix th,.agility-matrix td{border:1px solid var(--line)}.agility-mx-corner,.agility-mx-group,.agility-mx-col{background:var(--bg-thead);letter-spacing:.02em;color:var(--fg-3);text-transform:uppercase;padding:6px 8px;font-size:11px;font-weight:600}.agility-mx-group{text-align:center}.agility-mx-col{text-align:center;line-height:1.25}.agility-mx-subcol{font-weight:500}.agility-mx-groupstart{border-left:2px solid var(--line-strong)}.agility-mx-name{text-align:right;white-space:nowrap;padding:4px 10px;font-size:13px;font-weight:600}.agility-mx-nameline{align-items:center;gap:6px;display:inline-flex}.agility-kind{letter-spacing:.04em;text-transform:uppercase;color:var(--fg-4);font-size:10px;font-weight:500}.agility-mx-row.is-open>th,.agility-mx-row.is-open>td{background:var(--bg-row-hover)}.agility-mx-td{text-align:center;padding:3px}.agility-mx-cell{border-radius:var(--r-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;width:46px;height:26px;font-size:13px;font-weight:700;display:inline-flex;position:relative}.agility-mx-cell:disabled{cursor:default}.agility-mx-cell.is-open{outline:2px solid var(--brand);outline-offset:1px}.agility-mx-cell--absent{font-weight:400}.agility-mx-gap{opacity:.85;font-size:9px;font-weight:600;position:absolute;top:1px;right:3px}.agility-mx-hint{color:var(--fg-3);margin:8px 0 0;font-size:12px}.agility-mx-detail{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-panel-2);margin-top:10px;padding:12px}.agility-mx-detail-head{align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.agility-mx-prov{color:var(--fg-4);margin:4px 0 8px;font-size:11px}.agility-row{grid-template-columns:220px auto 1fr;align-items:center;gap:10px;display:grid}.agility-row-head{align-items:center;gap:6px;min-width:0;display:flex}.agility-dim{color:var(--fg-2);font-size:12px}.agility-ref{font-family:var(--font-mono);color:var(--fg-4);border:1px solid var(--line);border-radius:var(--r-sm);padding:0 4px;font-size:10px}.agility-track{gap:3px;display:flex}.agility-cell{border:1px solid var(--line);border-radius:var(--r-sm);width:22px;height:20px;color:var(--fg-4);background:var(--agi-empty);place-items:center;font-size:10px;display:grid}.agility-cell.filled{color:var(--agi-ink);border-color:#0000}.agility-cell.ceiling{outline:2px dashed var(--fg-4);outline-offset:1px}.agility-row-meta{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.agility-levellabel{color:var(--fg-3)}.agility-basis,.agility-ceiling-note,.agility-sites{color:var(--fg-4)}.agility-notobs{color:var(--fg-4);font-style:italic}.agility-dist{margin-top:10px}.agility-dist-scope{color:var(--fg-4);margin:0 0 6px;font-size:11px}.agility-dist-group{margin-bottom:8px}.agility-dist-bar{align-items:center;gap:8px;display:flex}.agility-dist-lvl{color:var(--fg-3);min-width:58px;font-size:11px}.agility-dist-fill{border-radius:var(--r-sm);background:var(--brand-soft);padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.agility-site-below{color:var(--risk-warn);cursor:help;font-size:10px}.agility-level-sites{flex-direction:column;gap:2px;margin:4px 0 0;padding:0 0 0 58px;list-style:none;display:flex}.agility-level-sites li{align-items:baseline;gap:8px;font-size:12px;display:flex}.agility-site-where{font-family:var(--font-mono);color:var(--fg-2);font-size:11.5px}.agility-site-what{color:var(--fg-3);overflow-wrap:anywhere}.agility-legend{color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:14px;margin-top:12px;font-size:11.5px;display:flex}.agility-legend-ramp{align-items:center;gap:4px;display:inline-flex}.agility-swatch{border:1px solid var(--line);border-radius:3px;width:13px;height:13px;display:inline-block}.agility-swatch--ceiling{outline:2px dashed var(--fg-4);outline-offset:-3px;background:0 0}.agility-legend-note{color:var(--fg-4);font-style:italic}.agility-legend-toggle{border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;color:var(--brand);background:0 0;padding:2px 8px;font-size:11.5px}.agility-legend-guide{gap:6px;margin:10px 0 0;display:grid}.agility-legend-guide dt{font-size:12px;font-weight:600}.agility-legend-guide dd{color:var(--fg-3);white-space:pre-line;margin:0;font-size:12px;line-height:1.6}.agility-chip{border-radius:var(--r-sm);white-space:nowrap;cursor:help;background:color-mix(in srgb, var(--agi-chip,var(--agi-none)) 22%, transparent);color:var(--fg);padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.agility-chip-empty{color:var(--fg-4)}.source-cbom-inventory-row>td{opacity:.62}.agility-page-head{margin-bottom:12px}.agility-page-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.agility-page-controls label{align-items:center;gap:6px;font-size:12px;display:flex}.agility-panel{flex-direction:column;gap:12px;display:flex}.agility-table-wrap{overflow-x:auto}.agility-table-row{cursor:pointer}.agility-table-row.is-open>td{background:var(--bg-row-hover)}.agility-cell-site{white-space:nowrap}.agility-file{font-family:var(--font-mono);font-size:12.5px}.agility-line{font-family:var(--font-mono);color:var(--fg-4);font-size:12.5px}.agility-cell-api{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:340px;font-size:12.5px;overflow:hidden}.agility-cell-platform{color:var(--fg-3)}.agility-level-chip{border-radius:var(--r-sm);min-width:22px;color:var(--agi-ink);text-align:center;margin-right:8px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.agility-level-text{color:var(--fg-3);font-size:12px}.agility-table-detail>td{background:var(--bg-panel-2)}.agility-table-detail dl{gap:8px;margin:0;display:grid}.agility-table-detail dt{color:var(--fg-4);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.agility-table-detail dd{margin:2px 0 0;font-size:12.5px}.agility-empty{color:var(--fg-3);padding:10px 0;font-size:12px}.agility-snippet{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-card);font-family:var(--font-mono);margin:0;padding:8px;font-size:12px;overflow-x:auto}.agility-snippet>div{gap:10px;display:flex}.agility-snippet>div.is-match{background:var(--risk-warn-soft)}.agility-snippet-no{color:var(--fg-4);text-align:right;-webkit-user-select:none;user-select:none;min-width:34px}.agility-snippet-src{white-space:pre}.agility-chip.is-inherited{border:1px dashed var(--line-strong)}.agility-chip-from{color:var(--fg-4);margin-left:4px;font-size:9px;font-weight:600}.scope-summary{align-items:center;gap:6px;margin-right:auto;display:inline-flex}.scope-pill{border:1px solid var(--line);background:var(--bg-card);cursor:pointer;color:var(--fg-3);white-space:nowrap;border-radius:999px;align-items:baseline;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.scope-pill strong{color:var(--fg);font-size:13px}.scope-pill:hover{border-color:var(--line-strong)}.scope-pill.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--fg)}.scope-pill.scope-active strong{color:var(--risk-high)}.scope-pill.scope-inventory strong{color:var(--fg-3)}.scope-pill.scope-active.selected strong,.scope-pill.scope-inventory.selected strong{color:var(--fg)}.agility-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.agility-filters .input{flex:260px;width:auto;min-width:180px}.agility-filters .select{flex:none;width:auto;min-width:130px}.source-cbom-table-toolbar .input{flex:240px;width:auto;min-width:180px}.source-cbom-table-toolbar .select{flex:none;width:auto;min-width:140px}.agility-site-link{border-radius:var(--r-sm);cursor:pointer;text-align:left;color:inherit;font:inherit;background:0 0;border:0;align-items:baseline;gap:8px;margin-left:-4px;padding:1px 4px;display:inline-flex}.agility-site-link:hover{background:var(--brand-soft)}.agility-site-link:hover .agility-site-where{text-decoration:underline}.agility-table-row.is-landed>td{background:var(--brand-soft)}.source-cbom-finding-row{cursor:pointer}.source-cbom-finding-row:hover>td{background:var(--bg-row-hover)}.source-cbom-finding-row.selected>td{background:var(--bg-panel-2)}.source-cbom-inventory-row:hover>td{opacity:1}.source-cbom-finding-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.container-table td:nth-child(6),.container-table td:nth-child(8){white-space:normal;overflow-wrap:anywhere}
