.login-wrap[data-v-b8704364]{height:100%;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#eef3ff 0,#f7f8fa 45%,#f7f8fa)}.login-card[data-v-b8704364]{width:420px;background:#fff;border-radius:16px;padding:34px 36px 26px;box-shadow:0 12px 40px #1d21291a}.login-brand[data-v-b8704364]{display:flex;gap:12px;align-items:center;margin-bottom:26px}.login-brand .logo[data-v-b8704364]{width:44px;height:44px;display:block;object-fit:contain;flex:none}.login-brand h1[data-v-b8704364]{font-size:19px;letter-spacing:.4px}.login-brand p[data-v-b8704364]{margin:3px 0 0;font-size:12px;color:var(--text-3)}.err-bar[data-v-b8704364]{background:var(--danger-soft);color:var(--danger);font-size:13px;padding:9px 12px;border-radius:8px;margin-bottom:14px}.mock-hint[data-v-b8704364]{margin-top:18px;text-align:center;font-size:12px;color:var(--text-3);background:#fafbfc;border:1px dashed var(--line);border-radius:8px;padding:9px}.foot-note[data-v-b8704364]{margin-top:10px;text-align:center;font-size:11px;color:#b6bcc5}.kpis[data-v-4cd0cddd]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi[data-v-4cd0cddd]{cursor:pointer;transition:box-shadow .15s,transform .15s}.kpi[data-v-4cd0cddd]:hover{box-shadow:0 6px 18px #0000001a;transform:translateY(-1px)}.kpi-label[data-v-4cd0cddd]{font-size:13px;color:var(--text-3)}.kpi-value[data-v-4cd0cddd]{font-size:30px;font-weight:600;line-height:1.35;margin-top:6px}.kpi-value.warn[data-v-4cd0cddd]{color:var(--warn)}.kpi-value.danger[data-v-4cd0cddd]{color:var(--danger)}.unit[data-v-4cd0cddd]{font-size:15px;margin-left:2px}.kpi-foot[data-v-4cd0cddd]{font-size:12px;color:var(--text-3);margin-top:2px}.cols[data-v-4cd0cddd]{display:grid;grid-template-columns:1.05fr 1fr;gap:16px;margin-top:16px;align-items:start}.bars[data-v-4cd0cddd]{display:flex;flex-direction:column;gap:14px;padding:6px 0 2px}.bar-row[data-v-4cd0cddd]{display:flex;align-items:center;gap:12px}.bar-label[data-v-4cd0cddd]{width:76px;font-size:13px;color:var(--text-2)}.bar-track[data-v-4cd0cddd]{flex:1;height:14px;background:var(--line-2);border-radius:7px;overflow:hidden}.bar-fill[data-v-4cd0cddd]{height:100%;background:var(--brand);border-radius:7px;transition:width .4s}.bar-fill.hot[data-v-4cd0cddd]{background:var(--warn)}.bar-count[data-v-4cd0cddd]{width:28px;text-align:right;font-size:13px;color:var(--text-2)}.tip[data-v-4cd0cddd]{margin-top:16px;font-size:12px;color:var(--text-3);background:#fafbfc;padding:9px 12px;border-radius:8px}.timeline[data-v-4cd0cddd]{display:flex;flex-direction:column}.tl-item[data-v-4cd0cddd]{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2);cursor:pointer}.tl-item[data-v-4cd0cddd]:last-child{border-bottom:none}.tl-dot[data-v-4cd0cddd]{width:8px;height:8px;border-radius:50%;background:#d7dbe0;flex:none}.tl-dot.success[data-v-4cd0cddd]{background:var(--success)}.tl-dot.failed[data-v-4cd0cddd]{background:var(--danger)}.tl-dot.running[data-v-4cd0cddd]{background:var(--brand)}.tl-dot.interrupted[data-v-4cd0cddd]{background:var(--warn)}.tl-main[data-v-4cd0cddd]{flex:1;min-width:0}.tl-title[data-v-4cd0cddd]{font-size:13px;display:flex;align-items:center;gap:6px}.tl-sub[data-v-4cd0cddd]{font-size:12px;color:var(--text-3);margin-top:2px}.job-head[data-v-4e1e6f47]{padding-bottom:14px;border-bottom:1px solid var(--line-2)}.job-meta[data-v-4e1e6f47]{display:flex;align-items:center;gap:8px;font-size:13px}.stages[data-v-4e1e6f47]{display:flex;flex-wrap:wrap;gap:6px;padding:14px 0}.stage[data-v-4e1e6f47]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3)}.stage .sdot[data-v-4e1e6f47]{width:7px;height:7px;border-radius:50%;background:#d7dbe0}.stage.done[data-v-4e1e6f47]{color:var(--text-2)}.stage.done .sdot[data-v-4e1e6f47]{background:var(--success)}.stage.now[data-v-4e1e6f47]{color:var(--brand);font-weight:500}.stage.now .sdot[data-v-4e1e6f47]{background:var(--brand);animation:pulse-4e1e6f47 1.2s infinite}.stage.bad[data-v-4e1e6f47]{color:var(--danger);font-weight:500}.stage.bad .sdot[data-v-4e1e6f47]{background:var(--danger)}@keyframes pulse-4e1e6f47{0%,to{box-shadow:0 0 #3370ff73}50%{box-shadow:0 0 0 5px #3370ff00}}.fail-bar[data-v-4e1e6f47]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;margin-bottom:12px;background:var(--danger-soft);color:var(--danger);border-radius:8px;font-size:13px}.logbox[data-v-4e1e6f47]{flex:1;min-height:260px;overflow-y:auto;background:#0e1116;border-radius:10px;padding:12px 14px;font-family:JetBrains Mono,Consolas,monospace;font-size:12px;line-height:1.75;color:#c9d1d9}.logline[data-v-4e1e6f47]{white-space:pre-wrap;word-break:break-all}.logline.dim[data-v-4e1e6f47]{color:#6b7683;animation:blink-4e1e6f47 1s steps(1) infinite}@keyframes blink-4e1e6f47{50%{opacity:0}}.chip-status[data-v-2e1b7998]{height:30px;padding:0 12px;border-radius:15px;border:1px solid var(--line);background:#fff;font-size:13px;color:var(--text-2)}.chip-status.on[data-v-2e1b7998]{background:var(--brand-soft);border-color:#b8ccff;color:var(--brand)}.sec[data-v-2e1b7998]{font-size:13px;font-weight:600;color:var(--text-2);margin:18px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line-2)}.sec[data-v-2e1b7998]:first-child{margin-top:0}.err-box[data-v-2e1b7998]{background:var(--danger-soft);color:var(--danger);padding:9px 12px;border-radius:8px;font-size:13px;margin-bottom:14px}.precheck[data-v-2e1b7998]{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 12px;background:#fafbfc;border-radius:8px;margin-top:6px}.pk[data-v-2e1b7998]{font-size:12px;color:var(--text-3)}.pk.ok[data-v-2e1b7998]{color:var(--success)}.cols[data-v-f618b881]{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;margin-bottom:16px}.prog-track[data-v-f618b881]{height:10px;background:var(--line-2);border-radius:5px;overflow:hidden}.prog-fill[data-v-f618b881]{height:100%;background:var(--brand);transition:width .3s}.prog-fill.hot[data-v-f618b881]{background:var(--warn)}.prog-labels[data-v-f618b881]{display:flex;justify-content:space-between;margin-top:8px;font-size:13px}.prog-labels .muted[data-v-f618b881]{font-size:12px}.kv[data-v-f618b881]{display:grid;grid-template-columns:74px 1fr;gap:8px 10px;margin-top:16px;font-size:13px}.kv .k[data-v-f618b881]{color:var(--text-3)}.kv .v[data-v-f618b881]{color:var(--text-1)}.hint[data-v-f618b881]{font-size:12px;color:var(--text-3)}.loading-box[data-v-d62fd1ad]{padding:22px;text-align:center;color:var(--text-3);font-size:13px;background:#fafbfc;border-radius:8px}.dom-picker[data-v-d62fd1ad]{border:1px solid var(--line);border-radius:8px;max-height:300px;overflow-y:auto}.dom-item[data-v-d62fd1ad]{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--line-2);font-size:13px}.dom-item[data-v-d62fd1ad]:last-child{border-bottom:none}.dom-item[data-v-d62fd1ad]:hover{background:#fafbfd}.dom-item.picked[data-v-d62fd1ad]{background:var(--brand-soft)}.dom-item.disabled[data-v-d62fd1ad]{opacity:.55;cursor:not-allowed}.cb[data-v-d62fd1ad]{width:16px;height:16px;border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;font-size:11px;color:#fff;flex:none;background:#fff}.dom-item.picked .cb[data-v-d62fd1ad]{background:var(--brand);border-color:var(--brand)}.dom-name[data-v-d62fd1ad]{font-weight:500;min-width:150px}.dom-exp[data-v-d62fd1ad]{margin-left:auto;font-size:12px}.results[data-v-d62fd1ad]{margin-top:16px;border:1px solid var(--line-2);border-radius:8px;padding:12px;background:#fafbfc}.res-title[data-v-d62fd1ad]{font-size:13px;font-weight:600;margin-bottom:8px}.res-row[data-v-d62fd1ad]{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px}.hint[data-v-d62fd1ad]{font-size:12px;color:var(--text-3)}.acc-grid[data-v-8525899d]{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.acc-card[data-v-8525899d]{display:flex;flex-direction:column;gap:12px}.acc-head[data-v-8525899d]{display:flex;align-items:flex-start;justify-content:space-between}.acc-name[data-v-8525899d]{font-size:15px;font-weight:600}.acc-ak[data-v-8525899d]{font-size:12px;color:var(--text-3);margin-top:3px}.acc-meta[data-v-8525899d]{display:flex;gap:22px;font-size:13px}.acc-meta .muted[data-v-8525899d]{display:block;font-size:12px;margin-bottom:2px}.acc-remark[data-v-8525899d]{font-size:12px;color:var(--text-3);min-height:16px}.acc-check[data-v-8525899d]{display:flex;align-items:center;gap:8px;font-size:12px}.acc-acts[data-v-8525899d]{display:flex;gap:8px;align-items:center;padding-top:10px;border-top:1px solid var(--line-2)}.add-card[data-v-8525899d]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-3);cursor:pointer;min-height:186px;border:1px dashed var(--line);box-shadow:none;background:#fff}.add-card[data-v-8525899d]:hover{border-color:var(--brand);color:var(--brand);background:#fcfdff}.plus[data-v-8525899d]{font-size:26px;line-height:1}.err-box[data-v-8525899d]{background:var(--danger-soft);color:var(--danger);padding:9px 12px;border-radius:8px;font-size:13px;margin-bottom:14px}.policy[data-v-8525899d]{margin-top:8px;padding:12px;background:#fafbfc;border-radius:8px;border:1px dashed var(--line)}.policy-title[data-v-8525899d]{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:8px}.policy-code[data-v-8525899d]{margin:0;font-family:JetBrains Mono,Consolas,monospace;font-size:11.5px;color:var(--text-2);line-height:1.7;white-space:pre-wrap}.hint[data-v-8525899d]{font-size:12px;color:var(--text-3);margin-top:8px;line-height:1.6}.cols[data-v-1d59e11e]{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.env[data-v-1d59e11e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px 24px;font-size:13px}.env .muted[data-v-1d59e11e]{display:inline-block;width:104px}.inline-nums[data-v-1d59e11e]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hint[data-v-1d59e11e]{font-size:12px;color:var(--text-3);margin-top:5px}:root{--brand: #3370ff;--brand-hover: #245bdb;--brand-active: #1a4bc7;--brand-soft: #e8f0ff;--success: #00b42a;--success-soft: #e8ffea;--warn: #ff7d00;--warn-soft: #fff7e8;--danger: #f53f3f;--danger-soft: #ffece8;--text-1: #1d2129;--text-2: #4e5969;--text-3: #86909c;--line: #e5e6eb;--line-2: #f2f3f5;--bg: #f7f8fa;--card: #ffffff;--radius: 12px;--radius-sm: 8px;--shadow: 0 2px 8px rgba(0, 0, 0, .06)}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,Inter,sans-serif;font-size:14px;color:var(--text-1);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:.2px}button,input,select,textarea{font-family:inherit;font-size:14px;color:var(--text-1)}button{cursor:pointer}.muted{color:var(--text-3)}.text-2{color:var(--text-2)}.mono{font-family:JetBrains Mono,Consolas,SF Mono,monospace}.nums{font-variant-numeric:tabular-nums}.page{padding:20px 24px 40px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.page-title{font-size:20px;line-height:28px}.page-sub{margin-top:4px;font-size:13px;color:var(--text-3)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.cards-list>.card+.card{margin-top:16px}.card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-title h3{font-size:15px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.toolbar .spacer{flex:1}.btn{height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:#fff;color:var(--text-1);display:inline-flex;align-items:center;gap:6px;transition:all .15s;white-space:nowrap}.btn:hover{border-color:#c9cdd4;background:#fafafa}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn-danger{color:var(--danger);border-color:#ffc9c2;background:#fff}.btn-danger:hover{background:var(--danger-soft);border-color:#ffb3a8}.btn-ghost{border-color:transparent;background:transparent;color:var(--brand);padding:0 8px}.btn-ghost:hover{background:var(--brand-soft)}.btn-sm{height:28px;padding:0 10px;font-size:13px}.btn-block{width:100%;justify-content:center}.input,.select,.textarea{width:100%;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;outline:none;transition:border .15s}.textarea{height:auto;min-height:72px;padding:8px 10px;resize:vertical;line-height:1.6}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px #3370ff1f}.input::placeholder,.textarea::placeholder{color:#c0c6cf}.input-sm{height:30px}.field{margin-bottom:14px}.field>label{display:block;margin-bottom:6px;font-size:13px;color:var(--text-2)}.field .hint{margin-top:5px;font-size:12px;color:var(--text-3);line-height:1.5}.field .err{margin-top:5px;font-size:12px;color:var(--danger)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer}.check input{width:15px;height:15px;accent-color:var(--brand)}.switch{width:40px;height:22px;border-radius:11px;background:#c9cdd4;position:relative;cursor:pointer;transition:background .2s;flex:none;border:none;padding:0}.switch.on{background:var(--brand)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}.switch.on:after{transform:translate(18px)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 8px 0 10px;background:var(--brand-soft);color:var(--brand);border-radius:4px;font-size:13px}.chip .x{cursor:pointer;color:#7a9bff;font-weight:700}.chip .x:hover{color:var(--brand-active)}.tbl-wrap{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}table.tbl{width:100%;border-collapse:collapse}table.tbl th{text-align:left;font-weight:500;font-size:13px;color:var(--text-3);padding:12px 14px;background:#fafbfc;border-bottom:1px solid var(--line-2);white-space:nowrap}table.tbl td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}table.tbl tr:last-child td{border-bottom:none}table.tbl tbody tr:hover td{background:#fafbfd}table.tbl tr.clickable{cursor:pointer}td.actions{white-space:nowrap}td.actions .btn+.btn{margin-left:8px}.card table.tbl{margin-left:-14px;width:calc(100% + 14px)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:4px;font-size:12px;white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%}.badge.green{background:var(--success-soft);color:var(--success)}.badge.blue{background:var(--brand-soft);color:var(--brand)}.badge.orange{background:var(--warn-soft);color:var(--warn)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.gray{background:var(--line-2);color:var(--text-3)}.badge.green .dot{background:var(--success)}.badge.blue .dot{background:var(--brand)}.badge.orange .dot{background:var(--warn)}.badge.red .dot{background:var(--danger)}.badge.gray .dot{background:#c9cdd4}.tag{display:inline-block;padding:1px 6px;margin:2px 4px 2px 0;border-radius:4px;background:var(--line-2);color:var(--text-2);font-size:12px}.empty{padding:56px 0;text-align:center;color:var(--text-3)}.empty .icon{font-size:28px;display:block;margin-bottom:10px;opacity:.5}.skeleton{height:16px;background:linear-gradient(90deg,#f2f3f5,#e9ebef,#f2f3f5);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:4px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#1d212973;z-index:90;display:flex;align-items:center;justify-content:center;animation:fade .15s}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:460px;background:#fff;border-radius:var(--radius);padding:22px 24px 18px;box-shadow:0 12px 32px #00000029;animation:pop .18s ease-out}@keyframes pop{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal h3{font-size:16px;margin-bottom:10px}.modal .body{color:var(--text-2);font-size:13px;line-height:1.7}.modal .foot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#1d212973;z-index:95}.drawer{position:fixed;top:0;right:0;bottom:0;background:#fff;z-index:96;display:flex;flex-direction:column;box-shadow:-8px 0 24px #0000001a;animation:slide .22s ease-out}@keyframes slide{0%{transform:translate(24px);opacity:.6}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line-2)}.drawer-head h3{font-size:15px}.drawer-body{flex:1;overflow-y:auto;padding:20px}.drawer-foot{padding:14px 20px;border-top:1px solid var(--line-2);display:flex;justify-content:flex-end;gap:10px}.icon-btn{border:none;background:transparent;font-size:16px;color:var(--text-3);padding:4px 6px;border-radius:4px}.icon-btn:hover{background:var(--line-2)}.toast-host{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{padding:9px 16px;border-radius:8px;background:#fff;box-shadow:0 6px 20px #00000024;font-size:13px;display:flex;align-items:center;gap:8px;animation:pop .18s;border-left:3px solid var(--brand)}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.sidebar{width:220px;flex:none;background:#fff;border-right:1px solid var(--line-2);display:flex;flex-direction:column;position:relative}.brand{height:62px;display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid var(--line-2)}.brand .logo{width:28px;height:28px;display:block;object-fit:contain}.brand .name{font-weight:600;font-size:15px;letter-spacing:.3px}.nav{padding:12px 10px;flex:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:8px;color:var(--text-2);cursor:pointer;font-size:14px;margin-bottom:2px;position:relative}.nav-item:hover{background:#f7f8fa}.nav-item.active{background:var(--brand-soft);color:var(--brand);font-weight:500}.nav-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--brand);border-radius:2px}.nav-item .ico{width:18px;text-align:center;font-size:15px;opacity:.85}.side-foot{padding:12px 16px;border-top:1px solid var(--line-2);font-size:12px;color:var(--text-3)}.topbar{height:56px;background:#fff;border-bottom:1px solid var(--line-2);display:flex;align-items:center;padding:0 24px;gap:12px}.topbar .crumb{color:var(--text-3);font-size:13px}.topbar .spacer{flex:1}.user-chip{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}.avatar{width:26px;height:26px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-size:12px;font-weight:600}
