:root{--bg:#080b10;--bg2:#0d1117;--bg3:#141b24;--border:#1e2a38;--border2:#2a3a4e;--amber:#f0a500;--amber2:#fbbf24;--green:#22c55e;--red:#ef4444;--red2:#ff6b6b;--blue:#38bdf8;--muted:#4a6080;--text:#c8d8e8;--text2:#8aa0b8;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--font-ui:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}body:before{content:"";pointer-events:none;z-index:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(30,42,56,.4) 40px),repeating-linear-gradient(90deg,transparent,transparent 79px,rgba(30,42,56,.3) 80px);position:fixed;top:0;bottom:0;left:0;right:0}.login-wrap,.license-wrap{z-index:10;background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(240,165,0,.06) 0%,transparent 70%),var(--bg);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.license-wrap{background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(56,189,248,.05) 0%,transparent 70%),var(--bg)}.login-box{background:var(--bg2);border:1px solid var(--border2);width:460px;padding:40px;position:relative}.login-box:before{content:"";background:linear-gradient(90deg,var(--amber),var(--amber2),var(--blue));height:3px;position:absolute;top:0;left:0;right:0}.login-logo{font-family:var(--font-mono);letter-spacing:4px;text-transform:uppercase;color:var(--amber);margin-bottom:8px;font-size:11px}.login-title{color:var(--text);margin-bottom:6px;font-size:28px;font-weight:800;line-height:1.1}.login-sub{color:var(--text2);margin-bottom:32px;font-size:13px}.field-label{font-family:var(--font-mono);letter-spacing:2px;color:var(--amber);text-transform:uppercase;margin-bottom:6px;font-size:10px;display:block}.field-input{background:var(--bg3);border:1px solid var(--border2);width:100%;font-family:var(--font-mono);color:var(--text);outline:none;margin-bottom:18px;padding:10px 14px;font-size:13px}.btn-primary{background:var(--amber);color:#000;cursor:pointer;width:100%;font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;border:none;padding:13px;font-size:13px;font-weight:700}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.login-note{font-family:var(--font-mono);color:var(--muted);text-align:center;margin-top:16px;font-size:10px;line-height:1.6}.login-note span{color:var(--green)}.error-bar{border:1px solid var(--red);font-family:var(--font-mono);color:var(--red2);background:rgba(239,68,68,.15);margin-bottom:18px;padding:10px 14px;font-size:12px}.skip-link{text-align:center;font-family:var(--font-mono);color:var(--muted);cursor:pointer;margin-top:12px;font-size:10px;text-decoration:underline}.app-layout{z-index:1;flex-direction:column;height:100vh;display:flex;position:relative}.header{background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:52px;padding:0 24px;display:flex}.header-logo{font-family:var(--font-mono);letter-spacing:3px;color:var(--amber);text-transform:uppercase;white-space:nowrap;font-size:11px}.header-sep{background:var(--border2);width:1px;height:20px}.header-org{font-family:var(--font-mono);color:var(--text2);font-size:12px}.header-org span{color:var(--blue)}.header-stats{gap:20px;margin-left:auto;display:flex}.stat-pill{font-family:var(--font-mono);letter-spacing:1px;color:var(--text2);text-transform:uppercase;font-size:10px}.stat-pill b{color:var(--amber)}.header-actions{gap:8px;display:flex}.btn-sm{font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border:none;padding:6px 14px;font-size:10px;font-weight:700;transition:all .2s}.btn-outline{border:1px solid var(--border2);color:var(--text2);background:0 0}.btn-danger{border:1px solid var(--red);color:var(--red);background:0 0}.plan-badge{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;padding:3px 10px;font-size:10px;font-weight:700;display:inline-block}.plan-free{color:var(--muted);border:1px solid var(--border2);background:rgba(74,96,128,.3)}.plan-pro{color:var(--amber);background:rgba(240,165,0,.15);border:1px solid rgba(240,165,0,.3)}.plan-team{color:var(--blue);background:rgba(56,189,248,.15);border:1px solid rgba(56,189,248,.3)}.toolbar{background:var(--bg2);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:10px 24px;display:flex}.toolbar-label{font-family:var(--font-mono);letter-spacing:2px;color:var(--muted);text-transform:uppercase;white-space:nowrap;font-size:10px}.pkg-tag{background:var(--bg3);border:1px solid var(--border2);font-family:var(--font-mono);color:var(--text);align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:inline-flex}.pkg-tag button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.pkg-input{background:var(--bg3);border:1px solid var(--border2);font-family:var(--font-mono);color:var(--text);outline:none;width:180px;padding:5px 10px;font-size:12px}.toolbar-spacer{flex:1}.scan-btn{background:var(--amber);color:#000;font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;padding:7px 20px;font-size:11px;font-weight:700}.scan-btn:disabled{opacity:.4;cursor:not-allowed}.content{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow-y:auto}.sidebar-head{border-bottom:1px solid var(--border);font-family:var(--font-mono);letter-spacing:2px;color:var(--amber);text-transform:uppercase;justify-content:space-between;align-items:center;padding:14px 16px;font-size:10px;display:flex}.select-all-row{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:8px 16px;display:flex}.select-all-label{font-family:var(--font-mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;cursor:pointer;font-size:10px}.repo-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:8px;padding:10px 16px;transition:background .15s;display:flex}.repo-item:hover{background:var(--bg3)}.repo-item.has-issues{border-left:2px solid var(--red)}.repo-checkbox{accent-color:var(--amber);cursor:pointer;flex-shrink:0;width:14px;height:14px}.repo-name{font-family:var(--font-mono);color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.repo-badge{font-family:var(--font-mono);flex-shrink:0;padding:2px 5px;font-size:9px}.badge-arch{color:var(--muted);background:rgba(74,96,128,.3)}.badge-hit{color:var(--amber);background:rgba(240,165,0,.15)}.badge-bad{color:var(--red);background:rgba(239,68,68,.2)}.badge-ok{color:var(--green);background:rgba(34,197,94,.15)}.repo-time{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:9px;display:block;overflow:hidden}.repo-info-col{flex-direction:column;flex:1;min-width:0;display:flex}.table-area{flex:1;position:relative;overflow:auto}.table-wrap{min-width:600px}.pkg-table{border-collapse:collapse;width:100%}.pkg-table thead th{z-index:5;background:var(--bg2);border-bottom:1px solid var(--border);text-align:left;font-family:var(--font-mono);letter-spacing:1.5px;color:var(--amber);text-transform:uppercase;white-space:nowrap;padding:10px 12px;font-size:10px;position:-webkit-sticky;position:sticky;top:0}.pkg-table thead th.pkg-col{background:var(--bg3);border-left:1px solid var(--border);min-width:160px}.col-header{flex-direction:column;gap:4px;display:flex}.col-pkg-name{color:var(--blue);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.col-target-input{background:var(--bg2);border:1px solid var(--border2);font-family:var(--font-mono);color:var(--text);outline:none;width:100%;padding:3px 6px;font-size:10px}.col-bulk-btn{font-family:var(--font-mono);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;width:100%;margin-top:3px;padding:3px 8px;font-size:9px;font-weight:700}.col-bulk-btn.upgrade{color:var(--green);background:rgba(34,197,94,.2);border:1px solid rgba(34,197,94,.3)}.col-bulk-btn:disabled{opacity:.3;cursor:not-allowed}.td-repo{font-family:var(--font-mono);color:var(--text);white-space:nowrap;z-index:2;background:var(--bg2);border-right:1px solid var(--border);text-overflow:ellipsis;min-width:160px;max-width:200px;font-size:11px;position:-webkit-sticky;position:sticky;left:0;overflow:hidden}.td-repo a{color:inherit;text-decoration:none}.td-pkg{border-left:1px solid var(--border);min-width:160px;padding:6px 10px}.td-empty{font-family:var(--font-mono);color:var(--muted);text-align:center;letter-spacing:1px;font-size:11px}.version-cell{flex-direction:column;gap:3px;display:flex}.version-row{align-items:center;gap:6px;display:flex}.version-badge{font-family:var(--font-mono);white-space:nowrap;padding:2px 7px;font-size:10px}.vb-current{color:var(--blue);background:rgba(56,189,248,.1);border:1px solid rgba(56,189,248,.2)}.vb-locked{color:var(--text2);border:1px solid var(--border);background:rgba(74,96,128,.2)}.vb-malicious{font-weight:700;background:var(--red)!important;color:#fff!important;border:1px solid #b91c1c!important}.version-source{font-family:var(--font-mono);color:var(--muted);letter-spacing:.5px;font-size:8px}.cell-action{align-items:center;gap:4px;margin-top:4px;display:flex}.cell-ver-input{background:var(--bg3);border:1px solid var(--border2);font-family:var(--font-mono);color:var(--text);outline:none;width:90px;padding:3px 6px;font-size:10px}.cell-pr-btn{font-family:var(--font-mono);text-transform:uppercase;cursor:pointer;color:var(--amber);background:rgba(240,165,0,.15);border:1px solid rgba(240,165,0,.3);padding:3px 8px;font-size:9px;font-weight:700}.cell-pr-btn:disabled{opacity:.4;cursor:not-allowed}.pr-link{font-family:var(--font-mono);color:var(--green);font-size:9px;text-decoration:none}.transitive-badge{width:-webkit-fit-content;width:fit-content;color:var(--blue);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.8px;background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.35);margin-top:4px;padding:2px 6px;font-size:9px;display:inline-block}.center-state{height:100%;color:var(--text2);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.state-icon{opacity:.4;font-size:40px}.state-title{color:var(--text);font-size:18px;font-weight:700}.state-sub{font-family:var(--font-mono);color:var(--muted);text-align:center;font-size:12px}.progress-bar-wrap{background:var(--border);width:100%;height:3px;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,var(--amber),var(--amber2));height:100%;transition:width .3s}.progress-indeterminate .progress-bar-fill{animation:1.2s ease-in-out infinite indeterminate;width:40%!important}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}.scan-log{background:var(--bg2);border-top:1px solid var(--border);height:120px;font-family:var(--font-mono);color:var(--text2);z-index:20;padding:8px 16px;font-size:11px;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.log-line{margin-bottom:2px;line-height:1.5}.log-ok{color:var(--green)}.log-warn{color:var(--amber)}.log-err{color:var(--red)}.log-info{color:var(--blue)}.modal-overlay{z-index:100;background:rgba(0,0,0,.75);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-box{background:var(--bg2);border:1px solid var(--border2);width:520px;max-width:95vw}.modal-box:before{content:"";background:linear-gradient(90deg,var(--red),var(--amber));height:3px;display:block}.modal-head{padding:20px 24px 0;font-size:18px;font-weight:700}.modal-head.danger{color:var(--red)}.modal-head.warn{color:var(--amber)}.modal-body{font-family:var(--font-mono);color:var(--text2);padding:14px 24px 20px;font-size:12px;line-height:1.7}.modal-footer{justify-content:flex-end;gap:10px;padding:0 24px 20px;display:flex}.btn-cancel{border:1px solid var(--border2);color:var(--text2);font-family:var(--font-mono);letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:0 0;padding:9px 20px;font-size:11px;font-weight:700}.btn-confirm{background:var(--red);color:#fff;font-family:var(--font-mono);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;padding:9px 20px;font-size:11px;font-weight:700}.btn-confirm.amber{background:var(--amber);color:#000}.btn-ok{background:linear-gradient(135deg,var(--blue)0%,#0ea5e9 100%);color:#080b10;cursor:pointer;font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;border:none;padding:13px 36px;font-size:12px;font-weight:800;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 12px rgba(56,189,248,.25)}.btn-ok:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 20px rgba(56,189,248,.4)}.btn-ok:active{transform:translateY(1px)}.btn-ok:after{content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);width:100%;height:100%;transition:all .5s;position:absolute;top:0;left:-100%}.btn-ok:hover:after{left:100%}.results-panel{background:var(--bg2);border-left:1px solid var(--border);z-index:50;width:320px;position:fixed;top:52px;bottom:0;right:0;overflow-y:auto}.results-head{border-bottom:1px solid var(--border);font-family:var(--font-mono);letter-spacing:2px;color:var(--amber);text-transform:uppercase;justify-content:space-between;align-items:center;padding:16px;font-size:10px;display:flex}.result-item{border-bottom:1px solid var(--border);padding:12px 16px}.result-item-repo{font-family:var(--font-mono);color:var(--text);font-size:11px}.result-item-pkg{font-family:var(--font-mono);color:var(--text2);font-size:10px}.result-item-link a{font-family:var(--font-mono);color:var(--green);font-size:10px;text-decoration:none}.result-item-err{font-family:var(--font-mono);color:var(--red);font-size:10px}.schedule-modal{width:96vw;max-width:580px}.schedule-modal-body{max-height:min(78vh,640px);overflow-y:auto;padding-top:8px!important}.schedule-field-label{letter-spacing:2px;color:var(--amber);text-transform:uppercase;font-size:10px;font-family:var(--font-mono);margin:16px 0 6px;display:block}.schedule-lead{font-family:var(--font-ui);color:var(--text2);margin-bottom:4px;font-size:12px;line-height:1.55}.schedule-select{background:var(--bg3);border:1px solid var(--border2);width:100%;color:var(--text);font-family:var(--font-mono);padding:8px 10px;font-size:12px}.schedule-row{align-items:flex-end;gap:12px;margin-top:10px;display:flex}.schedule-row-wrap{flex-wrap:wrap}.schedule-group{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.schedule-grow{flex:2;min-width:160px}.schedule-sub-label{letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-size:9px;font-family:var(--font-mono)}.schedule-input-mono{background:var(--bg3);border:1px solid var(--border2);width:100%;font-family:var(--font-mono);color:var(--text);padding:8px 10px;font-size:12px}.schedule-cron-preview{font-family:var(--font-mono);background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.2);margin:14px 0 0;padding:10px 12px;font-size:11px}.schedule-cron-preview code{color:var(--blue);margin-top:4px;display:block}.schedule-hint{font-family:var(--font-ui);color:var(--muted);margin-top:8px;font-size:11px;line-height:1.5}.schedule-check{font-family:var(--font-mono);color:var(--text);cursor:pointer;align-items:center;gap:8px;margin:16px 0 8px;font-size:11px;display:flex}.schedule-check input{accent-color:var(--amber);width:14px;height:14px}.schedule-ops-toggle{text-align:left;border:1px dashed var(--border2);width:100%;color:var(--text2);font-family:var(--font-mono);cursor:pointer;background:0 0;margin-top:10px;padding:10px 12px;font-size:10px}.schedule-ops-box{background:var(--bg3);border:1px solid var(--border);color:var(--text2);font-size:11px;line-height:1.6;font-family:var(--font-ui);margin-top:8px;padding:12px}.schedule-pre{background:var(--bg);border:1px solid var(--border2);white-space:pre-wrap;word-break:break-all;font-size:10px;font-family:var(--font-mono);color:var(--text);margin-top:10px;padding:10px;overflow-x:auto}.schedule-muted{color:var(--muted);font-size:11px;font-family:var(--font-mono)}.schedule-footer{flex-wrap:wrap;gap:8px}.schedule-btn-test{padding:9px 16px!important}