.toaster[data-v-0e5bb42e]{z-index:9000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:18px;left:50%;transform:translate(-50%)}.toast[data-v-0e5bb42e]{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:10px;max-width:520px;padding:9px 18px;font-size:13px;line-height:1.5;box-shadow:0 6px 20px #0f172a1f}.toast.ok[data-v-0e5bb42e]{color:#027a48;background:#ecfdf3;border-color:#abefc6}.toast.err[data-v-0e5bb42e]{color:#b42318;background:#fef3f2;border-color:#fecdca}:root{--bg:#f5f6f8;--panel:#fff;--border:#e6e8ec;--border-light:#eef0f3;--text:#1f2329;--text-2:#5f6570;--text-3:#9aa1ad;--accent:#2563eb;--accent-soft:#eff5ff;--accent-dark:#1d4ed8;--teal:#0d9488;--teal-soft:#e8faf7;--green:#12b76a;--green-soft:#e8f8f0;--red:#f04438;--red-soft:#feeceb;--orange:#f79009;--orange-soft:#fef4e6;--purple:#7c3aed;--purple-soft:#f3eeff;--radius-sm:8px;--radius:12px;--shadow:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow-hover:0 6px 16px #10182814;--gap-xs:4px;--gap-sm:8px;--gap:14px;--gap-lg:20px;--font:"PingFang SC", "Microsoft YaHei", -apple-system, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;overflow:hidden}.app{height:100vh;display:none}.app.logged-in{display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:250px;display:flex;overflow-y:auto}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);height:52px;padding:0 var(--gap-lg);flex-shrink:0;align-items:center;gap:12px;display:flex}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.workspace{padding:var(--gap-lg);flex:1;overflow-y:auto}.view{display:none}.view.active{display:block}.logo{background:var(--panel);z-index:2;border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:16px 16px 14px;display:flex;position:sticky;top:0}.logo-mark{letter-spacing:.8px;white-space:nowrap;background:linear-gradient(135deg, var(--accent), var(--teal));color:#fff;border-radius:9px;justify-content:center;align-items:center;width:auto;min-width:36px;height:32px;padding:0 9px;font-size:13px;font-weight:700;display:flex}.logo-name{font-size:15px;font-weight:600}.logo-tag{color:var(--accent);background:var(--accent-soft);border-radius:4px;margin-left:2px;padding:1px 5px;font-size:10px}.nav{flex:1;padding:6px 10px}.nav-group{color:var(--text-3);letter-spacing:.5px;align-items:center;gap:6px;padding:14px 10px 7px;font-size:11px;display:flex}.nav-group .stage-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.stage-0 .stage-dot{background:var(--accent)}.stage-1 .stage-dot{background:var(--teal)}.stage-2 .stage-dot{background:var(--purple)}.stage-3 .stage-dot{background:var(--red)}.stage-4 .stage-dot{background:var(--orange)}.stage-a .stage-dot{background:#0891b2}.stage-b .stage-dot{background:#059669}.stage-0 .nav-item.active{background:var(--accent-soft);color:var(--accent)}.stage-1 .nav-item.active{background:var(--teal-soft);color:var(--teal)}.stage-2 .nav-item.active{background:var(--purple-soft);color:var(--purple)}.stage-3 .nav-item.active{background:var(--red-soft);color:var(--red)}.stage-4 .nav-item.active{background:var(--orange-soft);color:var(--orange)}.stage-a .nav-item.active{color:#0891b2;background:#e6f7fa}.stage-b .nav-item.active{color:#059669;background:#e6f6f0}.nav-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-2);align-items:center;gap:10px;margin-bottom:1px;padding:7px 10px;font-size:13.5px;transition:all .15s;display:flex}.nav-item:hover{color:var(--text);background:#f3f4f6}.nav-item.active{font-weight:500}.nav-item .ico{text-align:center;flex-shrink:0;width:20px;font-size:14px}.nav-item .badge{color:#fff;border-radius:9px;margin-left:auto;padding:0 6px;font-size:10px;line-height:17px}.nav-item.star{color:var(--accent);margin:4px 0 8px;font-size:14px;font-weight:600}.nav-item.star .ico{font-size:16px}.nav-item.sub{padding:6px 10px;font-size:12.5px}.nav-bottom{border-top:1px solid var(--border-light);flex-direction:column;gap:2px;padding:10px;display:flex}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-2);background:#fff;padding:6px 14px;font-size:13px;transition:all .15s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);color:#fff}.btn-login{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;padding:11px;font-size:15px;font-weight:600;transition:all .15s}.btn-login:hover{background:var(--accent-dark)}.send{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-left:auto;padding:6px 18px;font-size:13px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--border);background:#fafbfc;padding:10px 14px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--border-light);color:var(--text-2);padding:11px 14px}tr:last-child td{border-bottom:none}.tag{border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:500;display:inline-block}.tag-green{background:var(--green-soft);color:var(--green)}.tag-red{background:var(--red-soft);color:var(--red)}.tag-orange{background:var(--orange-soft);color:var(--orange)}.tag-blue{background:var(--accent-soft);color:var(--accent)}.tag-teal{background:var(--teal-soft);color:var(--teal)}.tag-purple{background:var(--purple-soft);color:var(--purple)}.tag-gray{color:var(--text-2);background:#f2f3f5}.stage-badge{border-radius:12px;padding:2px 10px;font-size:11.5px;font-weight:500}.input-box{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.input-box textarea{resize:none;background:0 0;border:none;outline:none;width:100%;height:40px;font-family:inherit;font-size:13.5px}.input-actions{align-items:center;gap:var(--gap-sm);margin-top:6px;display:flex}.chip{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:#fff;border-radius:7px;padding:3px 9px;font-size:12px;transition:all .15s}.chip:hover{border-color:var(--accent);color:var(--accent)}.switch{cursor:pointer;background:#d4d8de;border-radius:12px;width:38px;height:21px;transition:all .2s;position:relative}.switch.on{background:var(--accent)}.switch:after{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:all .2s;position:absolute;top:2px;left:2px}.switch.on:after{left:19px}.progress{background:#eef0f3;border-radius:4px;width:160px;height:7px;overflow:hidden}.progress i{background:var(--accent);border-radius:4px;height:100%;display:block}.progress i.warn{background:var(--orange)}.progress i.over{background:var(--red)}.form-row{border-bottom:1px solid var(--border-light);align-items:center;padding:14px 18px;display:flex}.form-row .fl{width:200px;font-size:13.5px}.form-row .fr{color:var(--text-2);flex:1;font-size:13px}.tab-bar{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--gap-xs);display:flex;overflow:hidden}.tab-bar span{text-align:center;cursor:pointer;color:var(--text-2);background:#fafbfc;flex:1;padding:8px;font-size:13px;transition:all .15s}.tab-bar span.active{color:var(--accent);background:#fff;font-weight:500}.o-tab-content{display:none}.o-tab-content.active{display:block}.stat-grid{grid-template-columns:repeat(4,1fr);margin-bottom:16px}.stat{padding:16px 18px}.stat .label{color:var(--text-2);font-size:12.5px}.stat .num{margin:6px 0 2px;font-size:26px;font-weight:700}.stat .delta{font-size:12px}.section-title{margin:var(--gap-lg) 0 10px;font-size:14px;font-weight:600}.list-card{padding:0}.chat-wrap{gap:16px;height:calc(100vh - 92px);display:flex}.chat-panel{flex-direction:column;flex:1;min-width:0;display:flex}.chat-body{flex:1;padding:18px 22px;overflow-y:auto}.chat-input{border-top:1px solid var(--border-light);border-radius:0 0 var(--radius) var(--radius);background:#fff;padding:12px 16px}.msg{gap:10px;margin-bottom:16px;display:flex}.msg .avatar{border-radius:var(--radius-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:flex}.msg .bubble{border-radius:var(--radius);max-width:78%;padding:11px 14px;font-size:13.5px;line-height:1.7}.msg.user{flex-direction:row-reverse}.msg.user .bubble{background:var(--accent);color:#fff;border-top-right-radius:4px}.msg.ai .bubble{border:1px solid var(--border-light);color:var(--text);background:#f4f6f9;border-top-left-radius:4px}.right-panel{flex-direction:column;flex-shrink:0;gap:12px;width:320px;display:flex;overflow-y:auto}.quick-grid{grid-template-columns:1fr 1fr;gap:10px}.quick{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;padding:13px;transition:all .15s}.quick:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}.quick .t{margin-bottom:3px;font-size:13px;font-weight:600}.quick .d{color:var(--text-3);font-size:11.5px}.flow-card{padding:14px 16px;font-size:13px}.flow-card .flow-title{margin-bottom:var(--gap-sm);font-size:13px;font-weight:600}.flow-item{align-items:center;gap:var(--gap-sm);color:var(--text-2);border-top:1px solid var(--border-light);padding:6px 0;font-size:12px;display:flex}.flow-item .flow-step{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:flex}.file-drop{border:1.5px dashed var(--border);border-radius:var(--radius-sm);text-align:center;cursor:pointer;background:#fafbfc;padding:14px;transition:all .15s}.file-drop:hover{border-color:var(--accent);background:var(--accent-soft)}.agent-intro{background:linear-gradient(135deg, var(--accent-soft), #fafbff);border:1px solid var(--accent-soft);border-radius:var(--radius);margin-bottom:16px;padding:20px 22px}.agent-intro .aicon{border-radius:var(--radius);justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:12px;font-size:24px;display:flex}.agent-intro .aname{margin-bottom:var(--gap-xs);font-size:16px;font-weight:700}.agent-intro .adesc{color:var(--text-2);font-size:13px;line-height:1.7}.agent-intro .acaps{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.agent-intro .acap{border:1px solid var(--border);color:var(--text-2);border-radius:14px;padding:3px 10px;font-size:12px}.orchestrator-wrap{flex-direction:column;gap:16px;display:flex}.o-tabs{border-bottom:2px solid var(--border-light);gap:0;padding:0 2px;display:flex}.o-tab{cursor:pointer;color:var(--text-2);border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 18px;font-size:13.5px;font-weight:500;transition:all .15s}.o-tab:hover{color:var(--text)}.o-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.milestone-flow{padding:var(--gap-lg);flex-wrap:wrap;align-items:flex-start;gap:0;display:flex;overflow-x:auto}.milestone-node{align-items:center;gap:var(--gap-sm);cursor:pointer;min-width:100px;padding:var(--gap-sm) var(--gap-xs);border-radius:10px;flex-direction:column;transition:all .15s;display:flex;position:relative}.milestone-node:hover{background:#f8f9fb}.milestone-node .m-dot{z-index:2;background:#fff;border:3px solid #e6e8ec;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;transition:all .2s;display:flex;position:relative}.milestone-node.done .m-dot{background:var(--green-soft);border-color:var(--green);color:var(--green)}.milestone-node.active-node .m-dot{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);animation:2s infinite pulse-node}.milestone-node.pending .m-dot{color:var(--text-3);background:#fafbfc;border-color:#d4d8de}.milestone-node.skipped .m-dot{background:var(--orange-soft);border-color:var(--orange);color:var(--orange);text-decoration:line-through}@keyframes pulse-node{50%{box-shadow:0 0 0 8px #2563eb1f}}.milestone-node .m-name{text-align:center;max-width:90px;font-size:11.5px;font-weight:500;line-height:1.3}.milestone-node .m-status{border-radius:10px;padding:1px 8px;font-size:10.5px}.milestone-node.done .m-status{background:var(--green-soft);color:var(--green)}.milestone-node.active-node .m-status{background:var(--accent-soft);color:var(--accent)}.milestone-node.pending .m-status{color:var(--text-3);background:#f2f3f5}.milestone-node.skipped .m-status{background:var(--orange-soft);color:var(--orange)}.milestone-arrow{color:var(--text-3);justify-content:center;align-items:center;min-width:24px;padding:0 2px;font-size:14px;display:flex}.milestone-arrow.done{color:var(--green)}.milestone-arrow.active-arrow{color:var(--accent)}.milestone-branch{flex-direction:column;gap:6px;min-width:100px;display:flex}.milestone-branch .branch-label{color:var(--text-3);text-align:center;font-size:10.5px}.perm-table td,.perm-table th{font-size:12.5px}.perm-check{cursor:pointer;border:1px solid var(--border);border-radius:10px;padding:2px 10px;font-size:11px;transition:all .15s;display:inline-block}.perm-check.on{background:var(--green-soft);color:var(--green);border-color:var(--green)}.perm-check.off{background:var(--red-soft);color:var(--red);border-color:var(--red)}.project-dashboard{flex-direction:column;gap:16px;display:flex}.proj-row{gap:var(--gap);flex-wrap:wrap;display:flex}.proj-card{cursor:pointer;flex:1;min-width:300px;padding:18px;transition:all .15s}.proj-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.proj-card .proj-head{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.proj-card .proj-name{font-size:14px;font-weight:700}.proj-card .proj-cat{color:var(--text-3);margin-bottom:2px;font-size:11px}.proj-card .proj-code{color:var(--text-3);font-size:11px}.proj-card .proj-bar-bg{background:var(--border-light);border-radius:4px;height:8px;margin:12px 0 8px;overflow:hidden}.proj-card .proj-bar{background:linear-gradient(90deg, var(--accent), var(--teal));border-radius:4px;height:100%;transition:width .5s}.proj-card .proj-stats{color:var(--text-2);gap:12px;font-size:12px;display:flex}.proj-mini-milestones{margin-top:var(--gap-sm);gap:2px;display:flex}.proj-mini-dot{border-radius:50%;width:8px;height:8px}.proj-mini-dot.done{background:var(--green)}.proj-mini-dot.active-node{background:var(--accent)}.proj-mini-dot.pending{background:#d4d8de}.proj-mini-dot.skipped{background:var(--orange)}.proj-meta{color:var(--text-3);margin-top:var(--gap-xs);padding:0 2px;font-size:11px}.bar-chart{align-items:flex-end;gap:var(--gap);height:160px;padding:16px 18px 8px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bar{background:linear-gradient(180deg, #6f9bff, var(--accent));border-radius:6px 6px 0 0;width:70%}.bar-label{color:var(--text-3);font-size:11.5px}.login-page{background:linear-gradient(135deg,#eff5ff 0%,#f0fdfa 60%,#faf5ff 100%);height:100vh;display:flex}.login-left{flex-direction:column;flex:1;justify-content:center;padding:60px 80px;display:flex;position:relative}.login-left .brand{align-items:center;gap:12px;margin-bottom:32px;display:flex}.brand-logo{border-radius:var(--radius);background:linear-gradient(135deg, var(--accent), var(--teal));color:#fff;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;font-weight:700;display:flex}.brand-name{font-size:22px;font-weight:700}.brand-sub{color:var(--accent);background:var(--accent-soft);margin-left:var(--gap-xs);border-radius:6px;padding:2px 8px;font-size:12px}.hero-title{background:linear-gradient(135deg, #1e293b, var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:16px;font-size:32px;font-weight:800;line-height:1.4}.hero-desc{color:var(--text-2);max-width:480px;margin-bottom:36px;font-size:15px;line-height:1.8}.hero-features{flex-direction:column;gap:16px;display:flex}.hero-feat{color:var(--text-2);align-items:flex-start;gap:12px;font-size:14px;display:flex}.hero-feat .f-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:flex}.hero-feat .f-label{color:var(--text);margin-bottom:2px;font-weight:600}.hero-feat .f-desc{color:var(--text-3);font-size:12.5px}.login-right{background:var(--panel);flex-direction:column;justify-content:center;width:440px;padding:60px 50px;display:flex;box-shadow:-2px 0 20px #1018280a}.login-card{gap:var(--gap-lg);flex-direction:column;display:flex}.login-card h2{margin-bottom:var(--gap-xs);font-size:20px;font-weight:700}.mvp-badge{vertical-align:3px;letter-spacing:0;color:var(--accent);background:var(--accent-soft);border:1px solid #cfe0ff;border-radius:6px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.login-card .subtitle{color:var(--text-3);font-size:13px}.login-footer{text-align:center;color:var(--text-3);margin-top:16px;font-size:12px}.qr-wrap{padding:var(--gap-lg) 0;flex-direction:column;align-items:center;gap:16px;display:flex}.qr-box{border:2px dashed var(--border);border-radius:var(--radius);justify-content:center;align-items:center;gap:var(--gap-sm);background:#fafbfc;flex-direction:column;width:180px;height:180px;display:flex;position:relative}.qr-box img{width:130px;height:130px}.qr-box .qr-label{color:var(--text-3);font-size:12px}.qr-tip{color:var(--text-2);text-align:center;font-size:12.5px;line-height:1.7}.qr-tip strong{color:var(--accent)}.phone-form{flex-direction:column;gap:12px;display:none}.phone-form.active{display:flex}.phone-form input{width:100%;font-family:var(--font);color:var(--text);border:1.5px solid var(--border);caret-color:var(--accent);background:#fff;border-radius:10px;outline:none;padding:11px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.phone-form input::placeholder{color:var(--text-3);font-family:var(--font)}.phone-form input:hover{border-color:#c3c9d4}.phone-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.phone-form .sms-row,.phone-form .code-row{align-items:stretch;gap:10px;display:flex}.phone-form .sms-row input,.phone-form .code-row input{box-sizing:border-box;height:42px;font-family:var(--font);letter-spacing:2px;text-align:left;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;flex:1;padding:0 14px;font-size:16px;font-weight:600;line-height:42px}.phone-form .sms-row input::placeholder,.phone-form .code-row input::placeholder{letter-spacing:0;color:var(--text-3);font-size:14px;font-weight:400}.phone-form .sms-btn,.phone-form .send-code{background:var(--accent-soft);height:42px;color:var(--accent);font-family:var(--font);cursor:pointer;white-space:nowrap;border:1.5px solid #0000;border-radius:10px;flex-shrink:0;padding:0 18px;font-size:13px;font-weight:600;transition:all .15s}.phone-form .sms-btn:hover:not(:disabled),.phone-form .send-code:hover:not(:disabled){border-color:var(--accent);background:#dbe7ff}.phone-form .sms-btn:disabled,.phone-form .send-code:disabled{opacity:.55;cursor:not-allowed}.bid-card{gap:var(--gap-sm);cursor:pointer;flex-direction:column;padding:16px;transition:all .15s;display:flex}.bid-card:hover{box-shadow:var(--shadow);border-color:var(--accent)}.bid-card .bid-header{justify-content:space-between;align-items:center;display:flex}.bid-card .bid-title{font-size:13px;font-weight:600}.bid-card .bid-meta{color:var(--text-3);font-size:12px}.bid-card .bid-deadline{background:var(--red-soft);color:var(--red);border-radius:10px;padding:2px 8px;font-size:12px}:root{--side-bg:#0d1936;--side-bg2:#12224d;--side-text:#8fa0c6;--side-text-on:#fff;--card-border:#e8ebf2}html{-webkit-font-smoothing:antialiased}body{font-feature-settings:"tnum"}.sidebar{width:252px;color:var(--side-text);background:linear-gradient(178deg,var(--side-bg) 0%,var(--side-bg2) 55%,#0c1730 100%);border-right:none}.sidebar .logo{background:0 0;border-bottom:1px solid #ffffff12;padding:16px 18px 14px}.sidebar .logo-name{color:#fff;letter-spacing:.3px;font-size:14.5px}.sidebar .logo-mark{box-shadow:0 4px 14px #2f6bff73}.sidebar .logo-tag{color:#9db9ff;background:#2f6bff38}.sidebar .nav-group{color:#5d6e96;letter-spacing:1px}.sidebar .nav .nav-item{color:var(--side-text);border-radius:9px;margin:1px 2px;padding:8px 10px;position:relative}.sidebar .nav .nav-item:hover{color:#dbe4f7;background:#ffffff0f}.sidebar .nav .nav-item.active{font-weight:500;box-shadow:inset 2.5px 0 #3d7bff;color:var(--side-text-on)!important;background:linear-gradient(90deg,#2f6bff52,#2f6bff1a)!important}.sidebar .nav-item .badge{background:var(--red);color:#fff;border-radius:9px;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:700}.sidebar .nav-item.star .ico{color:#ffd66b}.sidebar .nav-bottom{border-top:1px solid #ffffff12}.sidebar .nav-bottom .nav-item{color:var(--side-text)}.sidebar .nav-item.locked{opacity:.42;cursor:not-allowed}.note-strip{color:#8fa0c6;background:#ffffff0d;border:1px solid #ffffff17;border-radius:9px;margin:4px 6px 8px;padding:9px 11px;font-size:11px;line-height:1.75}.topbar{height:50px;box-shadow:0 1px 0 var(--border-light)}.topbar-title{letter-spacing:.2px;font-size:15.5px;font-weight:600}.crumb{color:var(--text-3);align-items:center;gap:6px;min-width:0;font-size:12.5px;display:flex}.crumb .cr-sep{color:#c4cbd6;-webkit-user-select:none;user-select:none;font-size:13px;line-height:1}.crumb .cr-item{white-space:nowrap;border-radius:6px;padding:2px 4px;transition:all .15s}.crumb .cr-link{cursor:pointer;color:var(--text-2)}.crumb .cr-link:hover{color:var(--accent);background:var(--accent-soft)}.crumb .cr-cur{color:var(--text);cursor:default;font-weight:600}.op-chip{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:#fff;border-radius:18px;align-items:center;gap:8px;padding:3px 12px 3px 3px;font-size:12.5px;display:flex}.op-avatar{background:linear-gradient(135deg,var(--accent),var(--purple));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex}.bell{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;transition:all .15s;display:flex;position:relative}.bell:hover{border-color:var(--accent)}.bell .b-dot{background:var(--red);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:15px;height:15px;padding:0 4px;font-size:9.5px;font-weight:600;display:flex;position:absolute;top:-4px;right:-4px}.kbd{border:1px solid var(--border);color:var(--text-3);background:#fafbfd;border-bottom-width:2px;border-radius:5px;padding:0 5px;font-family:Consolas,monospace;font-size:11px;display:inline-block}.q{color:var(--orange);font-weight:600}#viewHost{animation:.18s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(3px)}}.envbar{color:#b45309;background:#fff7ed;border-bottom:1px solid #fde3c0;align-items:center;gap:8px;height:26px;padding:0 18px;font-size:11.5px;display:flex}.banner{border-bottom:1px solid #0000;align-items:center;gap:9px;padding:9px 18px;font-size:12.5px;line-height:1.6;display:flex}.banner.info{background:var(--accent-soft);color:var(--accent-dark);border-color:#d8e6ff}.banner.warn{background:var(--orange-soft);color:#b45309;border-color:#fbe6c8}.banner.critical{background:var(--red-soft);color:#912018;border-color:#fadcd9}.banner .bn-act{align-items:center;gap:10px;margin-left:auto;font-size:12px;display:flex}.banner.critical{animation:1.1s 2 bnPulse}@keyframes bnPulse{50%{box-shadow:inset 0 0 0 2px #f0443859}}.card{border:1px solid var(--card-border);border-radius:14px;box-shadow:0 1px 2px #1018280a}.card-head{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;font-size:13.5px;font-weight:600;display:flex}.card-head .ch-sub{color:var(--text-3);font-size:11.5px;font-weight:400}.card-body{padding:14px 18px}.card-foot{border-top:1px solid var(--border-light);padding:11px 18px}.card.plain{box-shadow:none}.hint-i{border:1px solid var(--border);width:15px;height:15px;color:var(--text-3);cursor:help;border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.btn{border-radius:9px;transition:all .18s}.btn-primary{background:linear-gradient(135deg,#2f6bff,#1d4ed8);border:none;box-shadow:0 3px 10px #2563eb47}.btn-primary:hover{background:linear-gradient(135deg,#2f6bff,#1e40af);box-shadow:0 5px 14px #2563eb57}.btn-danger{color:#fff;background:linear-gradient(135deg,#f04438,#d92d20);border:none;box-shadow:0 3px 10px #f0443840}.btn-danger:hover{color:#fff;background:linear-gradient(135deg,#f04438,#b42318)}.btn-text{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:12.5px}.btn-text:hover{background:var(--accent-soft)}.btn-text.danger{color:var(--red)}.btn-text.danger:hover{background:var(--red-soft)}.btn-sm{padding:3px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed!important}th{color:#828da3;letter-spacing:.4px;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8fafd;padding:10px 14px;font-size:11.5px;font-weight:500}th.nosort{cursor:default}th .sort-i{color:var(--accent);margin-left:3px;font-size:10px}td{padding:11px 14px}tbody tr{transition:background .12s}tbody tr:hover{background:#f6f9ff}tbody tr.clickable{cursor:pointer}.mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.text-3{color:var(--text-3)}.tbl-wrap{overflow-x:auto}.na{color:#c3c9d4}.view-head h1{letter-spacing:.3px;align-items:center;gap:10px;font-size:19px;font-weight:700;display:flex}.view-head .sub{color:var(--text-3);margin-top:4px;font-size:12.5px}.domain-badge{color:#fff;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-size:12.5px;font-weight:700;display:inline-flex;box-shadow:0 3px 8px #1018282e}.rule-note{border:1px solid #0000;border-radius:10px;margin-bottom:14px;padding:10px 14px;font-size:12.5px;line-height:1.75;display:block}.rule-note.blue{background:var(--accent-soft);color:var(--accent-dark);border-color:#d8e6ff}.rule-note.teal{background:var(--teal-soft);color:var(--teal);border-color:#c8efe9}.rule-note.red{background:var(--red-soft);color:#912018;border-color:#fadcd9}.rule-note.orange{background:var(--orange-soft);color:#b45309;border-color:#fbe6c8}.rule-note.gray{color:var(--text-2);background:#f2f4f8;border-color:#e6e9f0}.rule-note b{white-space:nowrap}.stat2{align-items:flex-start;gap:14px;padding:15px 17px;display:flex;position:relative;overflow:hidden}.stat2 .s-ico{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.stat2 .s-label{color:var(--text-2);align-items:center;gap:5px;font-size:12.5px;display:flex}.stat2 .s-num{font-variant-numeric:tabular-nums;letter-spacing:.3px;margin:3px 0 1px;font-size:25px;font-weight:700}.stat2 .s-delta{font-size:12px}.stat2 .s-spark{opacity:.9;position:absolute;bottom:12px;right:12px}.delta.up{color:var(--red)}.delta.down{color:var(--green)}.grid{gap:14px;display:grid}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g6{grid-template-columns:repeat(6,1fr)}.g19{grid-template-columns:1.9fr 1fr}.g14{grid-template-columns:1.4fr 1fr}.g23{grid-template-columns:2fr 3fr}.g32{grid-template-columns:3fr 2fr}@media (width<=1439px){.g6{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(2,1fr)}}@media (width<=1279px){.g19,.g14,.g32,.g23,.g3{grid-template-columns:1fr}.g4,.g6{grid-template-columns:repeat(2,1fr)}}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.search-input{border:1px solid var(--border);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239aa1ad' stroke-width='2.4'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") 10px no-repeat;border-radius:9px;outline:none;width:290px;padding:7.5px 12px 7.5px 32px;font-family:inherit;font-size:13px;transition:all .15s}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-input::placeholder{color:#b6bcc9}select.sel{border:1px solid var(--border);color:var(--text-2);background:#fff;border-radius:9px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}input.date{border:1px solid var(--border);color:var(--text-2);border-radius:9px;outline:none;padding:6.5px 10px;font-family:inherit;font-size:12.5px}input.txt{border:1px solid var(--border);color:var(--text-2);border-radius:9px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}input.txt:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.fchip-row{flex-wrap:wrap;gap:6px;display:flex}.fchip{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:#fff;border-radius:7px;padding:3px 10px;font-size:12px;transition:all .15s}.fchip:hover{border-color:var(--accent);color:var(--accent)}.fchip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}.adv-panel{margin-bottom:12px;display:none}.adv-panel.show{display:block}.adv-grid{grid-template-columns:repeat(3,1fr);gap:12px 22px;padding:16px 18px;display:grid}@media (width<=1279px){.adv-grid{grid-template-columns:repeat(2,1fr)}}.adv-item label{color:var(--text-3);margin-bottom:6px;font-size:12px;display:block}.adv-foot{justify-content:flex-end;gap:10px;padding:0 18px 14px;display:flex}.colpop-wrap{position:relative}.colpop{border:1px solid var(--border);z-index:40;background:#fff;border-radius:12px;width:212px;display:none;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 10px 30px #10182824}.colpop.show{display:block}.colpop .cp-head{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:10px 14px;font-size:12.5px;font-weight:600;display:flex}.colpop .cp-list{max-height:290px;padding:6px;overflow-y:auto}.colpop .cp-item{cursor:pointer;color:var(--text-2);border-radius:7px;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}.colpop .cp-item:hover{background:#f5f7fb}.colpop .cp-item input{accent-color:var(--accent)}.pager{border-top:1px solid var(--border-light);color:var(--text-2);flex-wrap:wrap;align-items:center;gap:6px;padding:12px 16px;font-size:12.5px;display:flex}.pager .pg-total{color:var(--text-3);margin-right:auto}.pager .pg-btn{border:1px solid var(--border);min-width:28px;height:28px;color:var(--text-2);cursor:pointer;background:#fff;border-radius:7px;padding:0 8px;font-size:12.5px;transition:all .15s}.pager .pg-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pager .pg-btn.cur{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.pager .pg-btn:disabled{opacity:.4;cursor:not-allowed}.pager select{border:1px solid var(--border);color:var(--text-2);border-radius:7px;outline:none;padding:4px 6px;font-family:inherit;font-size:12.5px}.utabs{border-bottom:1px solid var(--border-light);flex-wrap:wrap;gap:2px;margin-bottom:14px;display:flex}.utabs .ut{color:var(--text-2);cursor:pointer;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:9px 15px;font-size:13.5px;transition:all .15s;display:flex}.utabs .ut:hover{color:var(--accent)}.utabs .ut.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.utabs .ut .badge{background:var(--red);color:#fff;border-radius:9px;padding:0 6px;font-size:10.5px;font-weight:700}.utabs .ut .badge.gray{background:#c3c9d4}.tab-mini{background:#f2f4f8;border-radius:8px;gap:4px;padding:3px;display:flex}.tab-mini span{cursor:pointer;color:var(--text-2);border-radius:6px;padding:3px 11px;font-size:12px;transition:all .15s}.tab-mini span.active{color:var(--accent);box-shadow:var(--shadow);background:#fff;font-weight:600}.modal-mask{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#0d142880;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-mask.show{display:flex}.modal{background:var(--panel);border-radius:16px;flex-direction:column;width:520px;max-width:96vw;max-height:90vh;display:flex;overflow-y:auto;box-shadow:0 24px 60px #0d14284d}.modal.w420{width:420px}.modal.w480{width:480px}.modal.w560{width:560px}.modal.w680{width:680px}.modal.w860{width:860px}.modal.w520{width:520px}.modal.w580{width:580px}.modal.w620{width:620px}.modal.w640{width:640px}.modal.w720{width:720px}.modal.w760{width:760px}.modal.w820{width:820px}.modal.w880{width:880px}.modal.w920{width:920px}.modal-head{align-items:center;gap:8px;padding:17px 22px 11px;font-size:15.5px;font-weight:700;display:flex}.modal-body{color:var(--text-2);flex-direction:column;gap:12px;padding:2px 22px 16px;font-size:13px;display:flex}.modal-foot{border-top:1px solid var(--border-light);justify-content:flex-end;align-items:center;gap:10px;padding:13px 22px 17px;display:flex}.rp-nav-item{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;margin-bottom:3px;padding:9px 10px;font-size:12.5px;display:flex}.rp-nav-item:hover{background:#f2f6fd}.rp-nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.rp-count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.tag-soon{color:#b45309;white-space:nowrap;background:#fff4e5;border:1px solid #f3c98b;border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.tag-soon:before{content:"🚧";font-size:13px;line-height:1}.ut-soon{margin-bottom:2px;font-weight:700;color:#b42318!important;background:#fef3f2!important;border:1.5px solid #f04438!important;border-radius:10px!important}.ut-soon.active{box-shadow:inset 0 0 0 1px #f04438;background:#fee4e2!important}.ut-soon .tag-soon{margin-left:6px}.detail-side>.idx-group{padding:10px 16px 0}.detail-side>.kv{padding-left:16px;padding-right:16px}.detail-side>.action-col{padding:0 16px 16px}.idx-group{border-top:1px dashed var(--border-light);color:var(--accent);letter-spacing:.2px;margin:14px 0 6px;padding-top:10px;font-size:12.5px;font-weight:700}.idx-group:first-of-type{border-top:none;margin-top:10px;padding-top:0}.tag-soon:before{content:"🚧"}.modal textarea,.modal select,.modal input[type=text],.modal input[type=password],.modal input[type=number]{border:1px solid var(--border);background:#fff;border-radius:9px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.modal textarea:focus,.modal select:focus,.modal input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.modal label{color:var(--text-2);margin-bottom:5px;font-size:12.5px;font-weight:500;display:block}.modal .warn-box{background:var(--red-soft);color:#912018;border:1px solid #fadcd9;border-radius:10px;padding:10px 13px;font-size:12.5px;line-height:1.7}.modal .info-box{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #d8e6ff;border-radius:10px;padding:10px 13px;font-size:12.5px;line-height:1.7}.warn-strip{background:var(--red);color:#fff;border-radius:9px;align-items:center;gap:8px;margin:-6px -4px 0;padding:8px 13px;font-size:12.5px;display:flex}.check-line{cursor:pointer;align-items:flex-start;gap:7px;font-size:12.5px;line-height:1.6;display:flex}.check-line input{width:auto;accent-color:var(--accent);margin-top:3px}.sms-row{gap:10px;display:flex}.modal .sms-row input,.modal .code-row input{letter-spacing:3px;text-align:center;font-variant-numeric:tabular-nums;flex:1;font-size:16px;font-weight:600}.sms-btn{border:1px solid var(--accent);width:132px;color:var(--accent);background:var(--accent-soft);cursor:pointer;border-radius:9px;flex-shrink:0;padding:8px 0;font-size:12.5px;transition:all .15s}.sms-btn:disabled{border-color:var(--border);color:var(--text-3);cursor:not-allowed;background:#f5f6f8}.impact{border:1px solid var(--border);background:#fff;border-radius:11px;overflow:hidden}.impact .im-head{color:var(--text-2);border-bottom:1px solid var(--border-light);background:#f8fafd;padding:9px 13px;font-size:12px}.impact .im-body{max-height:320px;overflow-y:auto}.impact .im-row{border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:8px 13px;font-size:12.5px;display:flex}.impact .im-row:last-child{border-bottom:none}.impact .im-num{color:var(--red);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.drawer-mask{z-index:110;background:#0d142859;display:none;position:fixed;inset:0}.drawer-mask.show{display:block}.drawer{z-index:111;background:#fff;flex-direction:column;height:100%;transition:transform .24s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-14px 0 44px #0d14282e}.drawer.show{transform:translate(0)}.drawer .dr-head{border-bottom:1px solid var(--border-light);flex-shrink:0;justify-content:space-between;align-items:center;padding:15px 20px;display:flex}.drawer .dr-head h3{font-size:15px;font-weight:700}.drawer .dr-body{flex:1;padding:14px 20px;overflow-y:auto}.drawer .dr-foot{border-top:1px solid var(--border-light);flex-shrink:0;justify-content:flex-end;gap:10px;padding:12px 20px;display:flex}.dr-close{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-3);background:#fff;border-radius:8px;font-size:15px;line-height:1}.dr-close:hover{border-color:var(--accent);color:var(--accent)}.dr-sec{align-items:center;gap:7px;margin:16px 0 8px;font-size:13px;font-weight:600;display:flex}.dr-sec:first-child{margin-top:0}#toastWrap{z-index:200;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{color:#fff;background:#1f2329;border-radius:10px;align-items:center;gap:12px;max-width:76vw;padding:10px 16px;font-size:13px;line-height:1.5;animation:.22s toastIn;display:flex;box-shadow:0 10px 30px #1018284d}.toast.ok{background:linear-gradient(135deg,#12b76a,#0e9f5d)}.toast.warn{background:linear-gradient(135deg,#f79009,#e38600)}.toast.err{background:linear-gradient(135deg,#f04438,#d92d20)}.toast .t-act{cursor:pointer;white-space:nowrap;border:1px solid #ffffff8c;border-radius:6px;padding:2px 9px;font-size:12px}.toast .t-act:hover{background:#ffffff2e}.toast .t-trace{opacity:.75;font-family:Consolas,monospace;font-size:11px}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}}.palette{z-index:150;background:#fff;border-radius:14px;width:660px;max-width:94vw;display:none;position:fixed;top:14vh;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 24px 60px #0d142852}.palette.show{display:block}.palette .pl-input{border:none;border-bottom:1px solid var(--border-light);outline:none;width:100%;padding:15px 20px;font-family:inherit;font-size:15px}.palette .pl-list{max-height:52vh;padding:6px;overflow-y:auto}.pl-group{color:var(--text-3);letter-spacing:.6px;padding:8px 14px 4px;font-size:11px}.pl-item{cursor:pointer;border-radius:9px;align-items:center;gap:11px;padding:9px 14px;font-size:13.5px;display:flex}.pl-item.sel{background:var(--accent-soft)}.pl-item .pli-ico{background:#f2f4f8;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;display:flex}.pl-item .pli-sub{color:var(--text-3);font-size:11.5px}.pl-item .pli-right{color:var(--text-3);margin-left:auto;font-size:11.5px}.lock-screen{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:190;background:#0b1430eb;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.lock-screen.show{display:flex}.lock-card{text-align:center;background:#fff;border-radius:16px;width:400px;padding:28px;box-shadow:0 24px 60px #00000059}.lock-card h3{margin-bottom:6px;font-size:17px;font-weight:700}.lock-card p{color:var(--text-3);margin-bottom:18px;font-size:12.5px;line-height:1.7}.wm-layer{pointer-events:none;z-index:90;display:none;position:fixed;inset:0;overflow:hidden}.help-tip{color:#2f6bff;cursor:help;vertical-align:1px;background:#e3ecff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:16px;height:16px;margin-left:7px;font-size:10.5px;font-weight:700;display:inline-flex;position:relative}.help-tip:hover{color:#fff;background:#2f6bff}.help-tip .ht-pop{color:#e5e9f2;z-index:9999;text-align:left;white-space:normal;pointer-events:none;background:#1f2329;border-radius:10px;width:380px;max-width:78vw;max-height:62vh;padding:12px 15px;font-size:12px;font-weight:400;line-height:1.85;display:none;position:fixed;overflow:auto;box-shadow:0 10px 30px #10182852}.help-tip.ht-float .ht-pop{display:block}.btn-soon{color:#b42318!important;opacity:1!important;background:#fef3f2!important;border:1.5px solid #f04438!important;border-radius:10px!important}.btn-soon .tag-soon{color:#b42318;font-size:inherit;background:0 0;border:none;padding:0}.help-tip .ht-pop:after{content:"";bottom:100%;left:var(--arrow,50%);border:6px solid #0000;border-bottom-color:#1f2329;position:absolute;transform:translate(-50%)}.op-chip{cursor:pointer;position:relative}.op-menu{border:1px solid var(--border-light);z-index:260;background:#fff;border-radius:12px;width:180px;padding:6px;display:none;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 32px #10182829}.op-menu.show{display:block}.opm-item{color:var(--text-2);cursor:pointer;border-radius:8px;align-items:center;gap:9px;padding:9px 12px;font-size:13px;display:flex}.opm-item:hover{color:var(--accent);background:#f2f6fd}.opm-item.danger:hover{color:var(--red);background:#fef3f2}.opm-ico{font-size:14px}.help-tip.ht-r .ht-pop{left:auto;right:-8px;transform:translateY(-3px)}.help-tip.ht-r:hover .ht-pop{transform:translateY(0)}.help-tip.ht-r .ht-pop:after{left:auto;right:12px;transform:none}.wm-layer.show{display:block}.wm-layer span{color:#1f232913;white-space:nowrap;font-size:13px;font-weight:500;position:absolute;transform:rotate(-28deg)}.todo-item{border-bottom:1px solid var(--border-light);cursor:pointer;align-items:center;gap:11px;padding:11px 18px;font-size:13px;transition:all .15s;display:flex}.todo-item:hover{background:#f6f9ff}.todo-item:last-child{border-bottom:none}.todo-item .t-ico{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:flex}.todo-item .t-main{flex:1;min-width:0}.todo-item .t-title{color:var(--text);font-weight:500}.todo-item .t-desc{color:var(--text-3);margin-top:1px;font-size:11.5px}.feed-item{border-bottom:1px solid var(--border-light);gap:10px;padding:10px 18px;font-size:12.5px;display:flex}.feed-item:last-child{border-bottom:none}.feed-item .f-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:6px}.feed-item .f-time{color:var(--text-3);margin-top:1px;font-size:11px}.legend{flex-direction:column;gap:9px;display:flex}.legend .lg{color:var(--text-2);align-items:center;gap:8px;font-size:12.5px;display:flex}.legend .lg i{border-radius:3px;flex-shrink:0;width:9px;height:9px}.legend .lg b{font-variant-numeric:tabular-nums;color:var(--text);margin-left:auto}.mini-kv{border-bottom:1px dashed var(--border-light);justify-content:space-between;align-items:baseline;padding:7px 0;font-size:12.5px;display:flex}.mini-kv:last-child{border-bottom:none}.mini-kv b{font-variant-numeric:tabular-nums;font-size:15px}.back-link{color:var(--accent);cursor:pointer;align-items:center;gap:5px;margin-bottom:10px;font-size:13px;font-weight:500;display:inline-flex}.back-link:hover{text-decoration:underline}.detail-grid{grid-template-columns:352px 1fr;align-items:start;gap:14px;display:grid}@media (width<=1279px){.detail-grid{grid-template-columns:1fr}}.kv{border-bottom:1px solid var(--border-light);align-items:center;padding:9px 18px;font-size:13px;display:flex}.kv:last-child{border-bottom:none}.kv .k{width:104px;color:var(--text-3);flex-shrink:0;font-size:12.5px;line-height:1.4}.kv .v{color:var(--text);word-break:break-all;flex:1}.kv .v.plain-on{color:var(--red);font-weight:600}.action-col{border-top:1px solid var(--border-light);flex-direction:column;gap:8px;padding:14px 18px;display:flex}.id-hero{border-bottom:1px solid var(--border-light);align-items:center;gap:13px;padding:16px 18px;display:flex}.id-avatar{background:linear-gradient(135deg,var(--accent),var(--purple));color:#fff;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:17px;font-weight:700;display:flex;box-shadow:0 4px 12px #2563eb4d}.id-hero .ih-name{font-size:15.5px;font-weight:700}.id-hero .ih-id{color:var(--text-3);margin-top:1px;font-size:11.5px}.op-tag{border-radius:5px;padding:1px 7px;font-size:11px;font-weight:500;display:inline-block}.op-tag.op{background:var(--accent-soft);color:var(--accent)}.op-tag.sys{background:var(--teal-soft);color:var(--teal)}.op-tag.self{background:var(--purple-soft);color:var(--purple)}.sub-tag{color:var(--text-2);background:#eef2fb;border-radius:5px;padding:0 6px;font-size:11px;display:inline-block}.change-cell{font-size:12px}.change-cell .cf{color:var(--red);margin-right:4px;text-decoration:line-through}.change-cell .ct{color:var(--green);font-weight:500}.change-cell .ct:before{content:"→  ";color:var(--text-3);font-weight:400;text-decoration:none}.plain-timer{color:var(--red);align-items:center;gap:5px;font-size:11.5px;display:flex}.diff-box{border:1px solid var(--border);border-radius:10px;overflow:hidden}.diff-row{border-bottom:1px solid var(--border-light);grid-template-columns:110px 1fr 20px 1fr;gap:0;font-size:12.5px;display:grid}.diff-row:last-child{border-bottom:none}.diff-row .dk{color:var(--text-3);background:#f8fafd;padding:8px 12px;font-size:12px}.diff-row .dv{align-items:center;gap:6px;padding:8px 12px;font-family:Consolas,monospace;font-size:12px;display:flex}.diff-row .dm{color:var(--text-3);background:#f8fafd;justify-content:center;align-items:center;font-size:11px;display:flex}.diff-row.same .dv{color:var(--text-2)}.diff-row.diff .dv.l,.diff-row.diff .dv.r{color:#b54708;background:#fef3f2}.mk{color:#fff;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.mk.a{background:#2f6bff}.mk.b{background:#7c3aed}.ev{border:1px solid var(--border-light);background:#f8f9fb;border-radius:9px;padding:8px 10px;font-size:12px;line-height:1.6}.ev b{color:var(--text)}.mh-sub{color:var(--text-3);margin-top:4px;font-size:11.5px;font-weight:400;line-height:1.6}.mg-body{padding:0}.mg-sec{border-bottom:1px solid var(--border-light);padding:16px 20px}.mg-sec:last-child{border-bottom:none}.mg-sec-t{color:var(--text);align-items:baseline;gap:10px;margin-bottom:12px;font-size:13.5px;font-weight:700;display:flex}.mg-sec-t span{color:var(--text-3);font-size:11.5px;font-weight:400;line-height:1.6}.mg-vs{grid-template-columns:1fr 78px 1fr;align-items:stretch;gap:12px;display:grid}.mg-side{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.mg-side.a{background:linear-gradient(#f5f8ff 0%,#fff 60%);border-color:#bfd3ff}.mg-side.b{background:linear-gradient(#faf6ff 0%,#fff 60%);border-color:#ddd0fb}.mg-hd{border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:10px 12px;display:flex}.mg-tag{color:#fff;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:700}.mg-tag.a{background:#2f6bff}.mg-tag.b{background:#7c3aed}.mg-nm{padding:12px 12px 2px;font-size:17px;font-weight:700}.mg-id{color:var(--text-3);padding:0 12px 8px;font-size:12px}.mg-mt{border-top:1px dashed var(--border-light);flex-direction:column;gap:6px;padding:8px 12px 12px;display:flex}.mg-mt>div{gap:10px;font-size:12px;line-height:1.6;display:flex}.mg-mt span{color:var(--text-3);flex-shrink:0;width:66px}.mg-mt b{color:var(--text);font-weight:600}.mg-mid{color:var(--text-3);border:1px dashed var(--border);background:#fafbfc;border-radius:10px;justify-content:center;align-items:center;font-size:12px;display:flex}.mg-prog{align-items:center;gap:12px;display:flex}.mp-bar{background:#eef1f5;border-radius:99px;flex:1;height:8px;overflow:hidden}.mp-bar i{background:linear-gradient(90deg,#2f6bff,#7c3aed);height:100%;display:block}.mp-txt{color:var(--text-2);font-variant-numeric:tabular-nums;text-align:right;min-width:150px;font-size:12px}.mg-legend{color:var(--text-2);flex-wrap:wrap;gap:18px;margin-bottom:8px;font-size:11.5px;display:flex}.mg-legend .lr{align-items:center;gap:6px;display:flex}.mg-legend .lr i{border-radius:3px;width:11px;height:11px;display:inline-block}.mg-table .diff-row{grid-template-columns:110px 1fr 26px 1fr 250px}.mg-thead .dk,.mg-thead .dv{color:var(--text-2);background:#f1f4f9;font-family:inherit;font-size:12px;font-weight:700}.diff-row.same .pickcell{color:var(--text-3);font-family:inherit}.pickcell{flex-wrap:wrap;font-family:inherit}.pbtn{border:1px solid var(--border);height:26px;color:var(--text-2);cursor:pointer;background:#fff;border-radius:7px;justify-content:center;align-items:center;padding:0 10px;font-size:11.5px;transition:all .15s;display:inline-flex}.pbtn:hover{border-color:var(--accent);color:var(--accent)}.pbtn.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.mg-cust{width:100%;height:30px;margin-top:7px}.mg-final{border:1px solid var(--border);background:#fafbfc;border-radius:10px;margin-top:12px}.mf-t{color:var(--text-2);border-bottom:1px solid var(--border-light);padding:9px 12px;font-size:12px;font-weight:700}.mf-body{flex-wrap:wrap;gap:8px;padding:10px 12px;display:flex}.mf-i{border:1px solid var(--border-light);background:#fff;border-radius:7px;align-items:center;gap:6px;padding:5px 9px;font-size:11.5px;display:inline-flex}.mf-i i{color:var(--text-3);font-style:normal}.mf-i b{color:var(--text);font-weight:600}.vf-sum{border-bottom:1px solid var(--border-light);color:var(--text-2);flex-wrap:wrap;align-items:center;gap:18px;padding:12px 20px;font-size:12.5px;display:flex}.vf-list{flex-direction:column;gap:12px;max-height:52vh;padding:14px 20px;display:flex;overflow:auto}.vf-mat{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.vf-mat.has-diff{border-color:#f3b7b3}.vf-mat-hd{border-bottom:1px solid var(--border-light);background:#f8fafd;align-items:center;gap:10px;padding:9px 14px;font-size:12.5px;display:flex}.cell-bad{color:#b42318;font-weight:600;background:#fef3f2!important}.vf-ck{color:var(--text-2);cursor:pointer;align-items:center;gap:5px;font-size:12px;display:inline-flex}.vf-cb{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.vf-verdict{gap:10px;margin-top:6px;display:flex}.vv{border:1px solid var(--border);cursor:pointer;border-radius:9px;flex:1;align-items:center;gap:8px;padding:10px 14px;font-size:13px;transition:all .15s;display:flex}.vv input{accent-color:var(--accent)}.vv.pass{border-color:#a6e3c5}.vv.pass:has(input:checked){background:#e7f8ef;border-color:#12b76a}.vv.recheck:has(input:checked){background:#fef4e6;border-color:#f79009}.vv.reject{border-color:#f3b7b3}.vv.reject:has(input:checked){background:#fef3f2;border-color:#f04438}.limit-cfg{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.limit-cfg label{color:var(--text-2);margin-bottom:5px;font-size:12px;display:block}@media (width<=1279px){.limit-cfg{grid-template-columns:repeat(2,1fr)}}.ladder{align-items:stretch;gap:0;padding:6px 4px 2px;display:flex}.lad{text-align:center;flex-direction:column;flex:1;align-items:center;gap:6px;display:flex;position:relative}.lad .lc{color:#fff;z-index:1;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:13px;font-weight:700;display:flex;position:relative;box-shadow:0 3px 9px #10182829}.lad .lt{color:var(--text);font-size:12.5px;font-weight:600}.lad .ls{color:var(--text-3);font-size:11.5px}.lad .ln{color:var(--text-3);margin-top:1px;font-size:11px}.lad+.lad:before{content:"";z-index:0;background:linear-gradient(90deg,#dfe3ea,#c9cfda);width:100%;height:2px;position:absolute;top:22px;left:-50%}.step-flow{flex-wrap:wrap;align-items:center;gap:0;padding:4px 0 14px;display:flex}.step-node{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.step-node .sn{border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10.5px;font-weight:700;display:flex}.step-node.done .sn{background:var(--green-soft);color:var(--green);border:1.5px solid var(--green)}.step-node.cur .sn{background:var(--accent-soft);color:var(--accent);border:1.5px solid var(--accent)}.step-node.wait .sn{color:var(--text-3);background:#f2f3f5;border:1.5px solid #d4d8de}.step-arrow{color:#c3c9d4;margin:0 8px;font-size:12px}.meter{background:#eef0f4;border-radius:3px;width:100%;height:6px;overflow:hidden}.meter i{background:linear-gradient(90deg,#2f6bff,#5b8dff);border-radius:3px;height:100%;display:block}.meter.warn i{background:linear-gradient(90deg,#f79009,#fbbf24)}.meter.bad i{background:linear-gradient(90deg,#f04438,#fb7185)}.sla{font-variant-numeric:tabular-nums;font-size:12.5px}.sla.hot{color:var(--red);font-weight:600}.sla.warn{color:#b45309;font-weight:600}.health-dot{border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.health-ok{color:var(--green);font-weight:600}.health-bad{color:var(--red);font-weight:600}.empty{text-align:center;color:var(--text-3);padding:38px;font-size:13px}.empty .e-ico{opacity:.35;margin-bottom:8px;font-size:34px}.row-flex{align-items:center;gap:8px;display:flex}.form-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:14px;padding:11px 0;display:flex}.form-row:last-child{border-bottom:none}.form-row .fr-t{font-size:13.5px;font-weight:500}.form-row .fr-d{color:var(--text-3);margin-top:2px;font-size:11.5px;line-height:1.6}.mat{border-bottom:1px dashed var(--border-light);align-items:center;gap:10px;padding:9px 0;font-size:13px;display:flex}.mat:last-child{border-bottom:none}.skel{background:linear-gradient(90deg,#f0f2f6 25%,#e6e9f0 37%,#f0f2f6 63%) 0 0/400% 100%;border-radius:6px;height:12px;animation:1.3s infinite sk}@keyframes sk{0%{background-position:100%}to{background-position:0}}.flow-wrap{padding:4px 2px 8px;overflow-x:auto}.legend-row{color:var(--text-2);flex-wrap:wrap;gap:18px;margin-top:10px;font-size:12px;display:flex}.legend-row .lr{align-items:center;gap:6px;display:flex}.legend-row .lr i{border-radius:3px;width:11px;height:11px;display:inline-block}.errpage{text-align:center;max-width:520px;margin:0 auto;padding:64px 20px}.errpage .ep-code{letter-spacing:2px;color:#dfe3ea;font-size:74px;font-weight:800;line-height:1}.errpage h2{margin:10px 0 8px;font-size:19px;font-weight:700}.errpage p{color:var(--text-2);font-size:13px;line-height:1.85}.errpage .ep-trace{color:var(--text-3);border:1px solid var(--border-light);cursor:pointer;background:#f7f9fc;border-radius:7px;margin-top:8px;padding:5px 10px;font-family:Consolas,monospace;font-size:11.5px;display:inline-block}.errpage .ep-acts{justify-content:center;gap:10px;margin-top:22px;display:flex}.login-page{background:#0b1430}.login-left{background:radial-gradient(1200px 700px at 18% 22%,#1b3a8f 0%,#12235c 42%,#0b1430 100%);overflow:hidden}.login-left:after{content:"";background:radial-gradient(circle,#0d948847,#0000 65%);border-radius:50%;width:560px;height:560px;position:absolute;bottom:-200px;right:-160px}.login-left .brand-name{color:#fff}.hero-title{background:linear-gradient(135deg,#fff,#9db9ff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:33px}.hero-desc{color:#93a3c4}.hero-feat{color:#b9c6e4}.hero-feat .f-label{color:#fff}.hero-feat .f-desc{color:#7c8db5}.float-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#dbe4f7;z-index:1;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:14px;padding:12px 16px;font-size:12px;animation:7s ease-in-out infinite floaty;position:absolute}@keyframes floaty{50%{transform:translateY(-12px)}}.login-right{background:#fff}.brand-logo{letter-spacing:1px;white-space:nowrap;width:auto;min-width:48px;padding:0 12px;font-size:19px}.test-zone{border-top:1px dashed var(--border);margin-top:18px;padding-top:14px}.tz-label{color:#b45309;background:#fef4e6;border:1px solid #f5d9a8;border-radius:8px;align-items:center;gap:6px;margin-bottom:10px;padding:6px 10px;font-size:11px;line-height:1.5;display:flex}.tz-label b{font-weight:700}.role-pick{gap:8px;margin-bottom:4px;display:flex}.role-pick .rp{border:1px solid var(--border);cursor:pointer;color:var(--text-2);text-align:center;border-radius:9px;flex:1;padding:8px 10px;font-size:12px;transition:all .15s}.role-pick .rp.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.role-pick .rp small{color:var(--text-3);margin-top:2px;font-size:10.5px;font-weight:400;display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#d3d8e2;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#b9c0cf}.view-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:14px;display:flex}.view-head h1{letter-spacing:.2px;align-items:center;gap:9px;font-size:19.5px;font-weight:700;line-height:1.35;display:flex}.view-head .sub{color:var(--text-3);margin-top:5px;font-size:12.5px;line-height:1.6}.view-head>.row-flex{align-self:flex-end}.filterbar{border:1px solid var(--border);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:11px 18px;display:flex;box-shadow:0 1px 2px #10182808}.filterbar .fb-fields{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.filterbar .fb-actions{flex-wrap:nowrap;align-items:center;gap:8px;margin-left:auto;padding-right:6px;display:flex}.filterbar .fb-sep{background:var(--border);width:1px;height:20px;margin:0 2px}.fld{height:34px;color:var(--text-2);box-sizing:border-box;background:#fff;border:1px solid #dde3ec;border-radius:8px;outline:none;padding:0 10px;font-family:inherit;font-size:13px;line-height:32px;transition:border-color .15s,box-shadow .15s}.fld:hover{border-color:#c8d2e0}.fld:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.fld:disabled{color:var(--text-3);cursor:not-allowed;background:#f7f9fc}.fld-search{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239aa1ad' stroke-width='2.4'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") 10px no-repeat;flex:0 300px;min-width:220px;padding-left:31px}select.fld{appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238b929c' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") right 9px center no-repeat;min-width:104px;padding-right:26px}input.fld-date{cursor:pointer;width:136px;color:var(--text-2)}input.fld-date::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}.fld-range{white-space:nowrap;align-items:center;gap:6px;display:flex}.fld-range .rg-txt{color:var(--text-3);font-size:12px}.btn-34{border-radius:8px;align-items:center;gap:5px;height:34px;padding:0 14px;font-size:13px;display:inline-flex}.fb-hint{color:var(--text-3);white-space:nowrap;margin-left:2px;font-size:11.5px}.card>.filterbar{box-shadow:none;background:0 0;border:none;border-radius:0;margin:0 0 2px;padding:2px 18px 12px}.topbar{height:58px}.topbar-left{flex-direction:column;justify-content:center;gap:2px;min-width:0;display:flex}.pt-row{align-items:center;gap:8px;display:flex}.pt-ico{color:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:21px;height:21px;font-size:11.5px;display:inline-flex}.pt-title{letter-spacing:.2px;color:var(--text);font-size:15.5px;font-weight:700;line-height:1.2}.crumb{margin-top:0;line-height:1.2}.crumb .cr-sep{color:#c4cbd6;font-size:11px}.utabs .ut-count{color:var(--text-3);align-self:center;margin-left:auto;font-size:11.5px;font-weight:400}.page-lead{color:var(--text-3);margin:-2px 0 10px;font-size:12px;line-height:1.7}.page-lead b{color:var(--text-2);font-weight:600}.page-lead.back-lead{margin:0 0 10px}.pager .pg-size{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:#fff;border-radius:7px;outline:none;padding:4px 6px;font-family:inherit;font-size:12.5px}.pager .pg-size:focus{border-color:var(--accent)}.pager .pg-spacer{flex:auto}.pager .pg-jump{color:var(--text-3);white-space:nowrap;align-items:center;gap:5px;margin-left:8px;font-size:12px;display:inline-flex}.pager .pg-input{border:1px solid var(--border);text-align:center;width:52px;height:28px;color:var(--text-2);border-radius:7px;outline:none;padding:0 4px;font-family:inherit;font-size:12.5px}.pager .pg-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.pager .pg-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pager .pg-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.workspace{padding:0}.topbar{background:var(--panel);padding:0 20px}.page-body{min-width:0;padding:14px 20px 24px}.filterbar .fb-fields{display:contents}.filterbar .fb-fields>.fld{flex:110px;min-width:110px}.filterbar .fb-fields>.fld.fld-search{flex:2.4 260px;min-width:240px}.filterbar .fb-fields>.fld-range{flex:none}.filterbar .fb-actions{margin-left:auto;padding-right:0}.logo{flex-wrap:nowrap;gap:8px;padding:15px 12px 13px}.logo .logo-mark{border-radius:8px;flex:none;min-width:0;height:30px;padding:0 8px;font-size:11.5px}.logo .logo-name{white-space:nowrap;text-overflow:ellipsis;letter-spacing:.1px;flex:auto;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden}.logo .logo-tag{border-radius:4px;flex:none;margin-left:0;padding:1px 4px;font-size:9px;line-height:15px}
