.dv2{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:13px;line-height:1.55;color:#101a26;background:var(--ct-bg, #dfe4ec);-webkit-font-smoothing:antialiased;height:100%}.dv2{--brand: var(--ct-brand);--brand-ink: var(--ct-brand-ink);--brand-soft: var(--ct-brand-soft);--navy: var(--ct-nav);--navy-2: var(--ct-nav-2);--navy-3: var(--ct-nav-3);--navy-line: var(--ct-nav-line);--amber: var(--ct-warn);--amber-ink: var(--ct-warn-ink);--amber-soft: var(--ct-warn-soft);--safe: var(--ct-safe);--safe-ink: var(--ct-safe-ink);--safe-soft: var(--ct-safe-soft);--danger: var(--ct-danger);--danger-ink: var(--ct-danger-ink);--danger-soft: var(--ct-danger-soft);--fill: var(--ct-fill);--fill-soft: #fbeaf4;--violet: var(--ct-violet);--violet-soft: #efebfa;--ink: var(--ct-ink);--ink-2: var(--ct-ink-2);--ink-3: var(--ct-ink-3, #8595a8);--ink-3-strong: var(--ct-ink-3-strong, #52667e);--line: var(--ct-line, #ccd6e2);--line-2: var(--ct-line-2, #e5eaf2);--line-ctrl: var(--ct-line-ctl, #a9b9ce);--bg: var(--ct-bg, #dfe4ec);--panel: var(--ct-panel, #ffffff);--head: var(--ct-head, #eef2f8);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--h-header: 56px;--w-sider: 216px;--r-card: 10px;--r-ctrl: 6px;--shadow: 0 1px 2px rgba(16, 26, 38, .04)}.dv2,.dv2 *,.dv2 *:before,.dv2 *:after{box-sizing:border-box}.dv2 [hidden]{display:none!important}.dv2{height:100%}.dv2{margin:0;font-family:var(--font);font-size:13px;line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}.dv2 button,.dv2 input,.dv2 select,.dv2 textarea{font:inherit;color:inherit}.dv2 a{color:inherit;text-decoration:none}.dv2 ::selection{background:var(--ct-brand-soft)}.dv2 .num,.dv2 .mono{font-family:var(--ct-tabnum);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.dv2 .num{text-align:right}.dv2 .shell{display:grid;grid-template-columns:var(--w-sider) minmax(0,1fr);grid-template-rows:var(--h-header) minmax(0,1fr);grid-template-areas:"head head" "sider main";height:100vh;overflow:hidden}.dv2 .topbar{grid-area:head;display:flex;align-items:center;gap:14px;padding:0 16px 0 14px;background:var(--ct-nav, #06285c);border-bottom:1px solid transparent;position:relative;z-index:20}.dv2 .topbar .brand{display:flex;align-items:center;gap:9px;min-width:0;text-decoration:none}.dv2 .brand-mk{width:26px;height:26px;border-radius:7px;flex:none;background:var(--ct-brand, #0b4c9e);display:inline-flex;align-items:center;justify-content:center}.dv2 .brand-t{font-size:13px;font-weight:700;letter-spacing:.3px;white-space:nowrap;color:#fff}.dv2 .tb-div{width:1px;height:18px;background:#ffffff29;flex:none}.dv2 .tb-cur{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:12.5px;color:var(--ct-nav-text-2, #c6d4e8);white-space:nowrap}.dv2 .tb-cur i{font-style:normal;color:var(--ct-nav-text, #93a8c8)}.dv2 .tb-cur b{font-weight:600;color:#fff}.dv2 .tb-grow{flex:1}.dv2 .env{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0;background:none;color:var(--ct-nav-text-2, #c6d4e8);font-size:11px;font-weight:500;white-space:nowrap}.dv2 .dot{width:6px;height:6px;border-radius:50%;background:var(--ct-safe, #2568c0);flex:none;box-shadow:0 0 0 3px #1d8a5a2e}.dv2 .dot.warn{background:var(--amber);box-shadow:0 0 0 3px #c97a162e}.dv2 .dot.err{background:var(--danger);box-shadow:0 0 0 3px #c23a342e}.dv2 .who{position:relative;display:inline-flex;align-items:center}.dv2 .who-b{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 9px 0 4px;border:0;border-radius:20px;background:none;cursor:pointer;font-family:inherit}.dv2 .who-b:hover{background:#ffffff12}.dv2 .who-b:focus-visible{outline:none;box-shadow:0 0 0 3px #ffffff2e}.dv2 .avatar{width:26px;height:26px;border-radius:50%;background:#ffffff24;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;flex:none}.dv2 .who-t{display:flex;flex-direction:column;line-height:1.2;text-align:left}.dv2 .who-t b{font-size:12.5px;font-weight:600;color:#fff}.dv2 .who-t i{font-style:normal;font-size:11px;color:var(--ct-nav-text, #93a8c8)}.dv2 .who-chev{color:var(--ct-nav-text-2, #c6d4e8);flex:none}.dv2 .usermenu{position:absolute;right:0;top:calc(100% + 8px);width:236px;padding:8px;background:#fff;border:1px solid var(--ct-line, var(--line));border-radius:var(--ct-r-card, 10px);box-shadow:var(--ct-shadow-pop);z-index:var(--ct-z-pop, 60)}.dv2 .um-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 10px;margin-bottom:6px;border-bottom:1px solid var(--ct-line-2, var(--line-2))}.dv2 .um-row>span{font-size:11px;color:var(--ct-ink-3-strong);white-space:nowrap}.dv2 .um-row select{height:28px;padding:0 6px;border:1px solid var(--ct-line-ctl, var(--line-ctrl));border-radius:6px;background:var(--ct-head);font-size:12.5px;color:var(--ct-ink, var(--ink));outline:none}.dv2 .um-out{display:block;width:100%;height:30px;border:0;border-radius:6px;background:none;color:var(--ct-danger-ink, #91201c);font-size:12.5px;font-family:inherit;cursor:pointer}.dv2 .um-out:hover{background:var(--ct-danger-soft, #fbe9e7)}@media (max-width: 1280px){.dv2 .tb-cur>span,.dv2 .tb-cur>i{display:none}}.dv2 .sider{grid-area:sider;background:var(--navy);color:var(--ct-nav-text-2);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.dv2 .sider::-webkit-scrollbar{width:8px}.dv2 .sider::-webkit-scrollbar-thumb{background:#24425f;border-radius:4px}.dv2 .nav-g{padding:14px 0 4px}.dv2 .nav-g+.nav-g{border-top:1px solid var(--navy-line)}.dv2 .nav-h{padding:0 16px 6px;font-size:13px;line-height:1.3;letter-spacing:.6px;color:var(--ct-nav-text)}.dv2 .nav-i{display:flex;align-items:center;gap:9px;height:34px;padding:0 14px 0 15px;font-size:var(--ct-fs-nav, 14px);color:var(--ct-nav-text-2);position:relative;transition:background .12s,color .12s}.dv2 .nav-i svg{flex:none;opacity:.82}.dv2 .nav-i:hover{background:var(--navy-2);color:#fff}.dv2 .nav-i.on{background:var(--navy-3);color:#fff;font-weight:600}.dv2 .nav-i.on:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--brand);border-radius:0 2px 2px 0}.dv2 .nav-i.on svg{opacity:1;color:#fff}.dv2 .nav-i .cnt{margin-left:auto;font-family:var(--mono);font-size:11px;padding:0 5px;height:17px;line-height:17px;border-radius:9px;background:#ffffff1f;color:#dbe7f3}.dv2 .nav-i .cnt.alert{background:var(--danger);color:#fff}.dv2 .nav-i .cnt.warn{background:var(--amber);color:#fff}.dv2 .main{grid-area:main;overflow-y:auto;overflow-x:hidden}.dv2 .main::-webkit-scrollbar{width:10px}.dv2 .main::-webkit-scrollbar-thumb{background:var(--ct-line);border-radius:5px;border:2px solid var(--bg)}.dv2 .page{padding:18px 22px 26px;max-width:1760px}.dv2 .page-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:14px}.dv2 .page-head h1{margin:0;font-size:20px;font-weight:700;letter-spacing:.2px;line-height:1.35}.dv2 .page-head p{margin:3px 0 0;font-size:13px;color:var(--ink-2)}.dv2 .page-head .acts{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dv2 .msgblock{font-size:13px;line-height:1.65;color:var(--danger-ink);background:var(--danger-soft);border-left:2px solid var(--danger);padding:8px 10px;border-radius:0 4px 4px 0}.dv2 .grid{display:grid;gap:12px}.dv2 .g-4{grid-template-columns:repeat(4,minmax(0,1fr))}.dv2 .g-3{grid-template-columns:repeat(3,minmax(0,1fr))}.dv2 .g-2{grid-template-columns:repeat(2,minmax(0,1fr))}.dv2 .g-main{grid-template-columns:minmax(0,1.62fr) minmax(0,1fr)}.dv2 .g-main-3{grid-template-columns:minmax(0,1.5fr) 300px}.dv2 .stack-12>*+*{margin-top:12px}.dv2 .stack-8>*+*{margin-top:8px}.dv2 .panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow)}.dv2 .panel-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line-2)}.dv2 .panel-h h2{margin:0;font-size:13px;font-weight:700;letter-spacing:.2px}.dv2 .panel-h .r{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink-2)}.dv2 .panel-b{padding:14px}.dv2 .panel-b.tight{padding:0}.dv2 .panel-b.pad-10{padding:10px 12px}.dv2 .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 13px;border-radius:var(--r-ctrl);border:1px solid var(--line-ctrl);background:#fff;color:var(--ink);font-size:12.5px;cursor:pointer;white-space:nowrap;transition:border-color .12s,background .12s,box-shadow .12s}.dv2 .btn:hover{border-color:var(--ct-line-ctl-hover, #8ea3bd);background:var(--ct-head)}.dv2 .btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-soft);border-color:var(--brand)}.dv2 .btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.dv2 .btn.primary:hover{background:var(--brand-ink);border-color:var(--brand-ink)}.dv2 .btn.ghost{border-color:transparent;background:transparent;color:var(--brand-ink)}.dv2 .btn.ghost:hover{background:var(--brand-soft)}.dv2 .btn.danger{border-color:var(--ct-danger-line);color:var(--danger-ink);background:#fff}.dv2 .btn.danger:hover{background:var(--danger-soft)}.dv2 .btn.lg{height:40px;padding:0 18px;font-size:13px}.dv2 .btn.sm{height:26px;padding:0 9px;font-size:12.5px}.dv2 .btn[disabled]{opacity:.5;cursor:not-allowed}.dv2 .btn svg{flex:none}.dv2 .kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:12px 14px 11px;box-shadow:var(--shadow);position:relative;overflow:hidden}.dv2 .kpi-t{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2)}.dv2 .kpi-t .unit{color:var(--ink-3-strong);font-size:11px}.dv2 .kpi-v{margin-top:6px;font-family:var(--ct-tabnum);font-variant-numeric:tabular-nums;font-size:var(--ct-num);font-weight:600;letter-spacing:-.5px;line-height:1.1;white-space:nowrap}.dv2 .kpi-v small{font-size:11px;font-weight:400;color:var(--ink-3-strong);margin-left:3px;letter-spacing:0}.dv2 .kpi-src{margin-top:8px;padding-top:7px;border-top:1px dashed rgba(0,0,0,.09);font-size:11px;line-height:1.5;color:var(--ink-3-strong)}.dv2 .kpi-src b{font-weight:600}.dv2 .kpi-src span.ok{color:var(--safe-ink)}.dv2 .kpi-src span.warn{color:var(--amber-ink)}.dv2 .kpi-src span.bad{color:var(--danger-ink)}.dv2 .up{color:var(--danger);font-family:var(--mono)}.dv2 .down{color:var(--safe);font-family:var(--mono)}.dv2 .kpi .bar{position:absolute;left:0;top:0;bottom:0;width:3px}.dv2 .kpi.brand .bar{background:var(--brand)}.dv2 .kpi.amber .bar{background:var(--amber)}.dv2 .kpi.safe .bar{background:var(--safe)}.dv2 .kpi.danger .bar{background:var(--danger)}.dv2 .kpi.fill .bar{background:var(--fill)}.dv2 .chip{display:inline-flex;align-items:center;gap:5px;height:21px;padding:0 7px 0 6px;border-radius:4px;font-size:12.5px;font-weight:600;white-space:nowrap;border:1px solid transparent}.dv2 .chip:before{content:"";width:7px;height:7px;flex:none;border:1.5px solid currentColor;border-radius:1px}.dv2 .chip.s-fill:before{background:currentColor}.dv2 .chip.s-half:before{background:linear-gradient(90deg,currentColor 50%,transparent 50%)}.dv2 .chip.s-ring:before{background:transparent}.dv2 .chip.s-slash:before{background:repeating-linear-gradient(45deg,currentColor 0 1.5px,transparent 1.5px 3px)}.dv2 .chip.ok{color:var(--safe-ink);background:var(--safe-soft);border-color:var(--ct-safe-line)}.dv2 .chip.going{color:var(--amber-ink);background:var(--amber-soft);border-color:var(--ct-warn-line)}.dv2 .chip.bad{color:var(--danger-ink);background:var(--danger-soft);border-color:var(--ct-danger-line)}.dv2 .chip.info{color:var(--brand-ink);background:var(--brand-soft);border-color:var(--ct-brand-line)}.dv2 .chip.fill{color:var(--fill);background:var(--fill-soft);border-color:#f2cfe4}.dv2 .chip.violet{color:#5636a5;background:var(--violet-soft);border-color:#ddd4f5}.dv2 .chip.mute{color:var(--ink-2);background:var(--ct-head);border-color:var(--ct-line-2)}.dv2 .tag-t{font-size:12.5px;font-weight:600}.dv2 .tag-t.ok{color:var(--safe-ink)}.dv2 .tag-t.going{color:var(--amber-ink)}.dv2 .tag-t.bad{color:var(--danger-ink)}.dv2 .tag-t.info{color:var(--brand-ink)}.dv2 .tag-t.mute{color:var(--ink-3-strong)}.dv2 .tbl{width:100%;border-collapse:collapse}.dv2 .tbl th{height:34px;padding:0 12px;text-align:left;font-weight:500;font-size:12.5px;color:var(--ink-2);background:var(--head);border-bottom:1px solid var(--line);white-space:nowrap}.dv2 .tbl th.r,.dv2 .tbl td.r{text-align:right}.dv2 .tbl td{height:40px;padding:0 12px;border-bottom:1px solid var(--line-2);font-size:12.5px;vertical-align:middle}.dv2 .tbl.compact td{height:32px}.dv2 .tbl tr:last-child td{border-bottom:0}.dv2 .tbl tbody tr:hover td{background:var(--ct-head)}.dv2 .tbl tbody tr.sel td{background:var(--brand-soft)}.dv2 .tbl tbody tr.sel td:first-child{box-shadow:inset 2px 0 0 var(--brand)}.dv2 .tbl .t-no{font-family:var(--mono);font-size:13px;letter-spacing:.2px}.dv2 .tbl .t-sub{display:block;font-size:11px;color:var(--ink-3-strong);line-height:1.35}.dv2 .tbl .t-strong{font-weight:600}.dv2 .tbl-wrap{max-height:100%;overflow:auto}.dv2 .row-act{color:var(--brand-ink);font-size:12.5px;font-weight:600;cursor:pointer}.dv2 .row-act+.row-act{margin-left:10px}.dv2 .row-act.mute{color:var(--ink-3-strong);font-weight:400}.dv2 .field{display:block}.dv2 .field>span{display:block;margin-bottom:5px;font-size:12.5px;color:var(--ink-2)}.dv2 .field>span em{font-style:normal;color:var(--danger);margin-left:2px}.dv2 .input,.dv2 .select{width:100%;height:34px;padding:0 10px;border:1px solid var(--line-ctrl);border-radius:var(--r-ctrl);background:#fff;font-size:12.5px;outline:none;transition:border-color .12s,box-shadow .12s}.dv2 .input:focus,.dv2 .select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.dv2 .input.mono{font-family:var(--mono);letter-spacing:.4px}.dv2 .input.err{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.dv2 .input.ok{border-color:var(--safe)}.dv2 .scanbox{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1.5px solid var(--brand);border-radius:var(--r-card);box-shadow:0 0 0 4px var(--brand-soft)}.dv2 .scanbox svg{flex:none;color:var(--brand)}.dv2 .scanbox input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--mono);font-size:20px;letter-spacing:1.6px;color:var(--ink)}.dv2 .scanbox input::placeholder{font-family:var(--font);font-size:13px;letter-spacing:0;color:var(--ink-3-strong)}.dv2 .scanbox .tail{font-size:11px;color:var(--ink-3-strong);white-space:nowrap;display:flex;align-items:center;gap:6px}.dv2 .scanbox .tail kbd{font-family:var(--mono);font-size:11px;padding:2px 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;background:#fff}.dv2 .scanbox.idle{border-color:var(--line);box-shadow:none}.dv2 .scanbox.idle svg{color:var(--ink-3-strong)}.dv2 .form-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.dv2 .form-g .full{grid-column:1 / -1}.dv2 .form-g .three{grid-column:span 3}.dv2 .ticket{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden}.dv2 .ticket:before{content:"";position:absolute;left:78px;top:6px;bottom:6px;border-left:1px dashed var(--ct-line);z-index:1}.dv2 .ticket:after{content:"";position:absolute;left:74px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--bg);border:1px solid var(--line);box-shadow:0 0 0 0 transparent}.dv2 .ticket .stub{position:absolute;left:0;top:0;bottom:0;width:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:var(--ct-head);color:var(--ink-3-strong);font-size:11px;letter-spacing:1px}.dv2 .ticket .stub:after{content:"";position:absolute;left:74px;bottom:-5px;width:8px;height:8px;border-radius:50%;background:var(--bg);border:1px solid var(--line)}.dv2 .ticket .stub b{font-family:var(--mono);font-size:13px;color:var(--ink-2);letter-spacing:.4px;writing-mode:vertical-rl}.dv2 .ticket .body{padding:14px 16px 13px 92px}.dv2 .steps{display:flex;align-items:stretch;gap:0}.dv2 .step{flex:1;position:relative;padding-right:12px;min-width:0}.dv2 .step .rail{display:flex;align-items:center;gap:7px}.dv2 .step .n{width:20px;height:20px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:600;border:1.5px solid var(--line);color:var(--ink-3-strong);background:#fff}.dv2 .step .line{flex:1;height:1px;background:var(--line)}.dv2 .step .lb{margin-top:6px;font-size:12.5px;color:var(--ink-2)}.dv2 .step .vv{margin-top:1px;font-family:var(--mono);font-size:12.5px;color:var(--ink-3-strong)}.dv2 .step.done .n{background:var(--safe);border-color:var(--safe);color:#fff}.dv2 .step.done .line{background:var(--safe);opacity:.35}.dv2 .step.done .lb,.dv2 .step.done .vv{color:var(--ink)}.dv2 .step.now .n{background:var(--amber);border-color:var(--amber);color:#fff}.dv2 .step.now .line{background:repeating-linear-gradient(90deg,var(--line) 0 4px,transparent 4px 8px)}.dv2 .step.now .lb{color:var(--amber-ink);font-weight:600}.dv2 .step.now .vv{color:var(--amber-ink)}.dv2 .step.todo .n{color:var(--ink-3-strong)}.dv2 .step .warnflag{position:absolute;top:-2px;right:4px;font-size:11px;color:var(--danger-ink)}.dv2 .ring{position:relative;width:84px;height:84px;flex:none}.dv2 .ring svg{transform:rotate(-90deg)}.dv2 .ring .c{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.dv2 .ring .c b{font-family:var(--mono);font-size:15px;font-weight:600}.dv2 .ring .c i{font-style:normal;font-size:11px;color:var(--ink-3-strong);margin-top:2px}.dv2 .state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 20px;gap:8px}.dv2 .state .ic{color:var(--ink-3-strong);opacity:.75}.dv2 .state h3{margin:2px 0 0;font-size:15px;font-weight:600}.dv2 .state p{margin:0;font-size:13px;color:var(--ink-2);max-width:330px;line-height:1.6}.dv2 .state p code{font-family:var(--mono);font-size:11px;background:var(--ct-bg);padding:0 4px;border-radius:3px}.dv2 .state .acts{margin-top:6px;display:flex;gap:8px}.dv2 .errbox{border:1px solid var(--ct-danger-line);background:var(--ct-danger-soft);border-radius:var(--r-card);padding:14px 16px;display:flex;gap:12px;align-items:flex-start}.dv2 .errbox .ic{color:var(--danger);flex:none;margin-top:1px}.dv2 .errbox h3{margin:0 0 3px;font-size:13px;font-weight:700;color:var(--danger-ink)}.dv2 .errbox p{margin:0;font-size:13px;color:var(--ct-danger-ink);line-height:1.6}.dv2 .errbox .code{display:inline-block;margin-top:6px;font-family:var(--mono);font-size:11px;color:var(--danger-ink);background:#fff;border:1px solid var(--ct-danger-line);border-radius:3px;padding:1px 5px}.dv2 .errbox .acts{margin-top:9px;display:flex;gap:8px}.dv2 .denied{border:1px dashed var(--ct-line);background:var(--ct-head);border-radius:var(--r-card);padding:22px 18px;display:flex;gap:12px;align-items:center;color:var(--ink-2)}.dv2 .denied .ic{color:var(--ink-3-strong);flex:none}.dv2 .denied b{display:block;color:var(--ink);font-size:12.5px;margin-bottom:2px}.dv2 .denied p{margin:0;font-size:12.5px}.dv2 .sk{background:linear-gradient(90deg,var(--ct-head) 25%,var(--ct-head) 37%,var(--ct-head) 63%);background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:4px}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.dv2 .sk-line{height:10px;margin-bottom:9px}.dv2 .sk-line:last-child{margin-bottom:0}.dv2 .tabs{display:flex;gap:2px;border-bottom:1px solid var(--line)}.dv2 .tab{height:34px;padding:0 13px;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.dv2 .tab:hover{color:var(--ink)}.dv2 .tab.on{color:var(--brand-ink);border-bottom-color:var(--brand);font-weight:600}.dv2 .tab .n{font-family:var(--mono);font-size:11px;color:var(--ink-3-strong)}.dv2 .tl{position:relative;padding-left:18px}.dv2 .tl:before{content:"";position:absolute;left:4px;top:5px;bottom:5px;width:1px;background:var(--line)}.dv2 .tl-i{position:relative;padding-bottom:13px}.dv2 .tl-i:last-child{padding-bottom:0}.dv2 .tl-i:before{content:"";position:absolute;left:-17px;top:5px;width:7px;height:7px;border-radius:50%;background:#fff;border:1.5px solid var(--ink-3)}.dv2 .tl-i.ok:before{border-color:var(--safe);background:var(--safe)}.dv2 .tl-i.now:before{border-color:var(--amber);background:var(--amber)}.dv2 .tl-i.bad:before{border-color:var(--danger);background:var(--danger)}.dv2 .tl-i .t{font-size:12.5px}.dv2 .tl-i .m{font-size:11px;color:var(--ink-3-strong);font-family:var(--mono)}.dv2 .kv{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line-2)}.dv2 .kv:last-child{border-bottom:0}.dv2 .kv .k{font-size:12.5px;color:var(--ink-2);white-space:nowrap}.dv2 .kv .v{font-family:var(--mono);font-size:12.5px;text-align:right}.dv2 .kv .v.big{font-size:15px;font-weight:600}.dv2 .kv .v small{font-family:var(--font);font-size:11px;color:var(--ink-3-strong);margin-left:3px}.dv2 .bar-h{height:6px;border-radius:3px;background:var(--ct-head);overflow:hidden;display:flex}.dv2 .bar-h i{display:block;height:100%}.dv2 .bar-h .b1{background:var(--brand)}.dv2 .bar-h .b2{background:var(--amber)}.dv2 .bar-h .b3{background:var(--danger)}.dv2 .legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--ink-2)}.dv2 .legend span{display:inline-flex;align-items:center;gap:5px}.dv2 .legend i{width:9px;height:9px;border-radius:2px;display:inline-block}.dv2 .split-line{height:1px;background:var(--line-2);margin:12px 0}.dv2 .thumb{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fdf7fa;aspect-ratio:4 / 3}.dv2 .thumb .cap{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;background:#ffffffeb;border-top:1px solid var(--line);font-size:11px;color:var(--ink-2);display:flex;justify-content:space-between;gap:4px}.dv2 .thumb .badge{position:absolute;top:6px;left:6px;font-size:11px;padding:1px 5px;border-radius:3px;background:var(--brand);color:#fff;font-family:var(--mono)}.dv2 .paper-wrap{background:var(--ct-bg);border-radius:var(--r-card);padding:16px}.dv2 .paper{width:175.01mm;height:76.2mm;isolation:isolate;background:#fff;box-shadow:0 2px 10px #101a2624;border:1px dashed var(--ct-line-ctl);padding:3mm 4mm;position:relative;font-size:6.6pt;line-height:1.45;color:#111;overflow:hidden}.dv2 .paper .p-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #333;padding-bottom:1mm}.dv2 .paper .p-title{font-size:8.5pt;font-weight:700;letter-spacing:.5px}.dv2 .paper .p-sub{font-size:5.6pt;color:#444}.dv2 .paper .p-no{font-family:var(--mono);font-size:8pt;font-weight:700;text-align:right}.dv2 .paper .p-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6mm 3mm;margin-top:1.2mm}.dv2 .paper .p-grid div{font-size:6pt}.dv2 .paper .p-grid b{font-family:var(--mono)}.dv2 .paper .p-foot{position:absolute;left:4mm;right:4mm;bottom:2.4mm;display:flex;justify-content:space-between;align-items:flex-end;font-size:5.4pt;color:#444}.dv2 .paper .barcode{display:flex;gap:1px;align-items:flex-end;height:7mm}.dv2 .paper .barcode i{display:block;background:#111}.dv2 .paper .p-underlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;pointer-events:none;z-index:-1;opacity:.34;mix-blend-mode:multiply;background-repeat:no-repeat;background-size:100% 100%;background-image:radial-gradient(circle at 4mm 4mm,#8aa 0 1.1mm,transparent 1.2mm),radial-gradient(circle at calc(100% - 4mm) 4mm,#8aa 0 1.1mm,transparent 1.2mm),radial-gradient(circle at 4mm calc(100% - 4mm),#8aa 0 1.1mm,transparent 1.2mm),radial-gradient(circle at calc(100% - 4mm) calc(100% - 4mm),#8aa 0 1.1mm,transparent 1.2mm),repeating-linear-gradient(0deg,rgba(120,140,160,.14) 0 .35mm,transparent .35mm 2.5mm)}.dv2 .paper.show-underlay .p-underlay{display:block}@media (max-width: 1440px){.dv2{--w-sider: 200px}.dv2 .page{padding:16px 18px 22px}.dv2 .kpi-v{font-size:27px}}@media (max-width: 1320px){.dv2 .g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.dv2 .g-main,.dv2 .g-main-3,.dv2 .g-3{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){.dv2,.dv2 *,.dv2 *:before,.dv2 *:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media (max-width: 1280px){.dv2 .page{padding:12px 14px 18px}.dv2 .page-head{margin-bottom:10px}.dv2 .page-head h1{font-size:20px}.dv2 .g-3,.dv2 .g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.dv2 .panel-h{padding:9px 12px}.dv2 .panel-b{padding:10px 12px}.dv2 .kpi{padding:10px 12px 9px}.dv2 .kpi-v{font-size:20px}.dv2 .tbl th{height:30px}.dv2 .tbl td{height:34px}.dv2 .tbl.compact td{height:28px}}.dv2 .nav-g{padding:0}.dv2 .nav-h{display:flex;align-items:center;gap:8px;width:100%;height:36px;padding:0 12px 0 16px;background:none;border:0;font:inherit;font-size:13px;letter-spacing:.6px;color:var(--ct-nav-text);text-align:left;cursor:pointer;transition:color .12s,background .12s}.dv2 .nav-h:hover{color:var(--ct-nav-text-2);background:#ffffff08}.dv2 .nav-h:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.dv2 .nav-h .nav-h-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv2 .nav-h .cnt{flex:none;font-family:var(--mono);font-size:12px;padding:0 5px;height:18px;line-height:18px;border-radius:9px;background:#ffffff1f;color:#dbe7f3}.dv2 .nav-h .cnt.alert{background:var(--danger);color:#fff}.dv2 .nav-h .cnt.warn{background:var(--amber);color:#fff}.dv2 .nav-h .chev{flex:none;opacity:.55;transform:rotate(0);transition:transform .16s ease,opacity .12s}.dv2 .nav-g.open .nav-h{color:var(--ct-nav-text-2);background:#ffffff0a}.dv2 .nav-g.open .nav-h .chev{transform:rotate(90deg);opacity:.9}.dv2 .nav-p{display:none}.dv2 .nav-g.open .nav-p{display:block;max-height:300px;overflow-y:auto;overflow-x:hidden;padding-bottom:4px}.dv2 .nav-p .nav-i{height:30px}.dv2 .nav-p::-webkit-scrollbar{width:6px}.dv2 .nav-p::-webkit-scrollbar-thumb{background:#24425f;border-radius:3px}.dv2 .nav-p .nav-sect{padding:0 15px;font-size:11px;font-weight:600;letter-spacing:1px;line-height:20px;color:#93a8c8}.dv2 .nav-p .nav-sep{margin:4px 15px;height:1px;background:var(--navy-line)}.dv2 .kpi.clickable{transition:box-shadow .12s ease}.dv2 .kpi.clickable:hover{box-shadow:0 2px 12px #0f2a471f}.dv2 .kpi.clickable:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.dv2 .mx-group>td{background:var(--head);font-weight:600}.dv2 .mx-item{padding-left:6px}.dv2 .mx-gbtn{height:20px;padding:0 6px;font-size:11px;line-height:18px;border-radius:4px;border:1px solid var(--line-ctrl);background:#fff;color:var(--ink-3-strong);cursor:pointer}.dv2 .mx-gbtn.all{border-color:#1d63c959;background:#1d63c914;color:var(--brand)}.dv2 .mx-gbtn.some{border-color:#c67c0a59;background:#c67c0a1a;color:var(--amber-ink)}.dv2 .mx-gbtn:hover{filter:brightness(.97)}.dv2 .fb-f{display:inline-flex;align-items:center;gap:6px}.dv2 .fb-l{font-size:12.5px;color:var(--ct-ink-2, var(--ink-2));white-space:nowrap}.dv2 .sb-l{flex:none;font-size:13px;color:var(--ct-ink-2, var(--ink-2));border-right:1px solid var(--ct-line, var(--line));padding-right:10px}.dv2 .nav-h-i,.dv2 .nav-h-s,.dv2 .nav-pt{display:none}@media (max-width: 1280px){.dv2 .shell{grid-template-columns:var(--ct-sider-w-rail, 64px) minmax(0,1fr)}.dv2 .sider{overflow-x:visible}.dv2 .sider>nav{padding:6px 0 8px}.dv2 .nav-g{position:relative;padding:0}.dv2 .nav-g+.nav-g{border-top:0}.dv2 .nav-g+.nav-g:before{content:"";display:block;height:1px;margin:6px 12px;background:var(--navy-line)}.dv2 .nav-h{position:relative;flex-direction:column;justify-content:center;gap:3px;height:52px;padding:0;letter-spacing:0;text-align:center;font-size:12px;color:var(--ct-nav-text)}.dv2 .nav-g:hover .nav-h{color:var(--ct-line);background:#ffffff0d}.dv2 .nav-h .nav-h-t{display:none}.dv2 .nav-h-i{display:block;line-height:0;opacity:.82}.dv2 .nav-h-s{display:block;font-size:11px;line-height:1}.dv2 .nav-h .chev{display:none}.dv2 .nav-h:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #7fb3f7}.dv2 .nav-h .cnt{position:absolute;top:5px;right:6px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;font-family:var(--mono);font-size:11px;line-height:15px;background:var(--amber);color:#fff}.dv2 .nav-h .cnt.warn{background:var(--amber)}.dv2 .nav-h .cnt.alert{background:var(--danger)}.dv2 .nav-g.cur .nav-h{color:#fff;background:#5aa0ee21}.dv2 .nav-g.cur .nav-h-i{opacity:1}.dv2 .nav-g.cur .nav-h:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;background:var(--ct-nav-accent, var(--brand))}.dv2 .nav-g.fly .nav-h{color:#fff;background:#ffffff0f}.dv2 .nav-g.fly .nav-h-i{opacity:1}.dv2 .nav-g.open .nav-p{display:none}.dv2 .nav-g.fly .nav-p{display:block;position:fixed;left:var(--ct-sider-w-rail, 64px);top:0;width:196px;max-height:calc(100vh - 16px);padding:6px 0;border-radius:8px;overflow-y:auto;background:var(--navy);border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 32px #06142466;z-index:45;animation:nav-fly-in .14s ease-out}.dv2 .nav-g.fly .nav-p::-webkit-scrollbar{width:6px}.dv2 .nav-g.fly .nav-p::-webkit-scrollbar-thumb{background:#24425f;border-radius:3px}.dv2 .nav-pt{display:block;padding:5px 12px 7px;font-size:12.5px;font-weight:600;color:#fff}.dv2 .nav-g.fly .nav-p .nav-i{height:32px;padding:0 12px}.dv2 .nav-g.fly .nav-p .nav-i.on{background:#5aa0ee29}.dv2 .nav-g.fly .nav-p .nav-i.on:before{top:6px;bottom:6px}.dv2 .nav-g.fly .nav-p .nav-sect{padding:0 12px}.dv2 .nav-g.fly .nav-p .nav-sep{margin:4px 12px}}@keyframes nav-fly-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:none}}.dv2 .pwdmask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;background:#06285c61}.dv2 .pwdbox{width:380px;max-width:calc(100vw - 32px);background:var(--ct-panel, #fff);border-radius:12px;padding:18px 20px 16px;box-shadow:0 18px 48px #06285c47}.dv2 .pwdbox h3{margin:0 0 4px;font-size:15px;color:var(--ct-ink, #101a26)}.dv2 .pwdhint{margin:0 0 14px;font-size:11px;color:var(--ct-ink-3-strong, var(--ct-ink-2));line-height:1.6}.dv2 .pwdbox label{display:block;margin-bottom:10px}.dv2 .pwdbox label>span{display:block;margin-bottom:5px;font-size:11px;color:var(--ct-ink-3-strong, var(--ct-ink-2))}.dv2 .pwdbox input{width:100%;height:32px;padding:0 10px;font-size:13px;color:var(--ct-ink, #101a26);background:#fff;border:1px solid var(--ct-line-ctl, #a9b9ce);border-radius:6px}.dv2 .pwdbox input:focus{outline:none;border-color:var(--pri, #0b4c9e)}.dv2 .pwdmsg{margin:4px 0 10px;font-size:12px}.dv2 .pwdmsg.ok{color:var(--ct-safe-ink)}.dv2 .pwdmsg.err{color:var(--ct-danger-ink)}.dv2 .pwdacts{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.dv2 .ct-kinds{display:flex;flex-wrap:wrap;gap:6px}.dv2 .ct-kind{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;font-size:12px;line-height:18px;color:var(--ct-ink-2, #46586e);background:var(--ct-head);border:1px solid var(--ct-line, var(--ct-line-2));border-radius:999px}.dv2 .ct-kind b{font-weight:700;color:var(--ct-brand, #0b4c9e);font-variant-numeric:tabular-nums}.dv2 .ct-inspect-summary{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;padding:8px 10px;font-size:12.5px;color:var(--ct-ink-2, #46586e);background:var(--ct-head);border:1px solid var(--ct-line, var(--ct-line-2));border-radius:8px}.dv2 .ct-inspect-summary b{font-size:14px;font-variant-numeric:tabular-nums}.dv2 .ct-inspect-summary .ct-safe{color:var(--ct-safe-ink, #04367a)}.dv2 .ct-inspect-summary .ct-danger{color:var(--ct-danger, #b32b26)}.dv2 .ct-inspect-row{cursor:pointer}.dv2 .ct-inspect-row:hover>td{background:var(--ct-brand-soft, var(--ct-brand-soft))!important}.dv2 .ct-inspect-row-returned>td:first-child{box-shadow:inset 3px 0 0 var(--ct-safe, #2568c0)}.dv2 .ct-inscan-row{display:flex;gap:8px;align-items:stretch}.dv2 .ct-inscan-row>.ant-input-affix-wrapper{flex:1}.dv2 .ct-inscan-btn{min-width:88px;height:40px}.dv2 .ct-inscan-flash{margin-top:8px;padding:7px 10px;font-size:12.5px;border-radius:6px;border:1px solid transparent}.dv2 .ct-inscan-flash.warn{color:var(--ct-warn-ink);background:var(--ct-warn-soft);border-color:var(--ct-warn-line)}.dv2 .ct-inscan-flash.err{color:var(--ct-danger-ink, #91201c);background:var(--ct-danger-soft, #fbe9e7);border-color:var(--ct-danger-line)}.dv2 .ct-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}.dv2 .ct-inspect-cards,.dv2 .ct-inspect-foot{display:none}@media (max-width: 1024px){.dv2 .ct-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.dv2 .grid.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.dv2 .page{padding:12px 12px 84px}.dv2 .ct-form-grid{grid-template-columns:minmax(0,1fr)}.dv2 .ct-inspect-scan{position:sticky;top:0;z-index:20;padding-top:4px}.dv2 .ct-inspect-scan .panel{box-shadow:0 6px 18px #06285c1a}.dv2 .ct-inscan-btn{min-width:96px;height:44px;font-size:15px}.dv2 .ct-inscan-row>.ant-input-affix-wrapper{height:44px}.dv2 .ct-inspect-table{display:none}.dv2 .ct-inspect-cards{display:block;padding:0 14px 14px}.dv2 .ct-inspect-card{padding:10px 12px;margin-bottom:8px;background:var(--ct-panel, #fff);border:1px solid var(--ct-line, var(--ct-line-2));border-radius:10px}.dv2 .ct-inspect-card .h{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:600;margin-bottom:4px}.dv2 .ct-inspect-card .m{font-size:12px;color:var(--ct-ink-3-strong, var(--ct-ink-2));line-height:1.7}.dv2 .ct-inspect-foot{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--ct-panel, #fff);border-top:1px solid var(--ct-line, var(--ct-line-2));box-shadow:0 -6px 18px #06285c14}.dv2 .ct-inspect-foot>span{font-size:13px;color:var(--ct-ink-2, #46586e)}.dv2 .ct-inspect-foot .ant-btn{min-height:44px}}:root{--ct-brand: #0b4c9e;--ct-brand-ink: #04367a;--ct-brand-soft: #e6edf9;--ct-brand-bar: #2568c0;--ct-warn: #b26a00;--ct-warn-ink: #8f5400;--ct-warn-soft: #fbeeda;--ct-safe: var(--ct-brand-bar);--ct-safe-ink: var(--ct-brand-ink);--ct-safe-soft: var(--ct-brand-soft);--ct-danger: #b32b26;--ct-danger-ink: #91201c;--ct-danger-soft: #fbe9e7;--ct-danger-line: #f1d9d8;--ct-warn-line: #f1e4d1;--ct-safe-line: #d8e4f4;--ct-brand-line: #d3dfee;--ct-fill: #b5327f;--ct-violet: #6d48c8;--ct-ink: #101a26;--ct-ink-2: #46586e;--ct-ink-3: #8595a8;--ct-ink-3-strong: #52667e;--ct-ink-4: #c2ccd8;--ct-line: #ccd6e2;--ct-line-2: #e5eaf2;--ct-line-ctl: #a9b9ce;--ct-line-ctl-hover: #8ea3bd;--ct-bg: #dfe4ec;--ct-canvas: #cbd3de;--ct-panel: #ffffff;--ct-head: #eef2f8;--ct-nav: #06285c;--ct-nav-2: #0a3268;--ct-nav-3: #0f3c78;--ct-nav-hover: rgba(255, 255, 255, .05);--ct-nav-active: rgba(127, 179, 247, .2);--ct-nav-text: #93a8c8;--ct-nav-text-2: #c6d4e8;--ct-nav-line: rgba(255, 255, 255, .07);--ct-nav-accent: #7fb3f7;--ct-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--ct-mono: ui-monospace, "SFMono-Regular", Consolas, Menlo, monospace;--ct-fs-1: 11px;--ct-fs-2: 12.5px;--ct-fs-3: 13px;--ct-fs-4: 15px;--ct-fs-5: 20px;--ct-fs-6: 27px;--ct-fs-nav: 14px;--ct-fw-1: 400;--ct-fw-2: 500;--ct-fw-3: 600;--ct-fw-4: 700;--ct-lh-1: 1.25;--ct-lh-2: 1.5;--ct-sp-1: 4px;--ct-sp-2: 8px;--ct-sp-3: 12px;--ct-sp-4: 16px;--ct-sp-5: 20px;--ct-sp-6: 24px;--ct-sp-7: 32px;--ct-sp-8: 40px;--ct-header-h: 56px;--ct-sider-w: 208px;--ct-sider-w-rail: 64px;--ct-content-max: 1440px;--ct-page-x: 32px;--ct-ctrl-h: 34px;--ct-ctrl-h-sm: 30px;--ct-row-h: 40px;--ct-row-h-dense: 32px;--ct-th-h: 36px;--ct-gap-block: 16px;--ct-pad-block: 13px 15px;--ct-num: 27px;--ct-tabnum: var(--ct-mono);--ct-r-card: 10px;--ct-r-ctrl: 6px;--ct-r-chip: 6px;--ct-shadow-pop: 0 8px 24px rgba(16, 24, 39, .12);--ct-shadow-card: none;--ct-z-nav: 20;--ct-z-pop: 60;--ct-z-modal: 80;--ct-motion: .14s;--ct-ease: cubic-bezier(.2, .7, .3, 1)}.ct-theme-light-sider{--ct-nav: #ffffff;--ct-nav-hover: #f4f7fb;--ct-nav-active: var(--ct-brand-soft);--ct-nav-text: var(--ct-ink-2);--ct-nav-text-2: var(--ct-ink);--ct-nav-line: var(--ct-line-2);--ct-nav-accent: var(--ct-brand)}:root{--ct-navy: var(--ct-nav, #06285c);--ct-navy-2: var(--ct-nav-2, #0a3268);--ct-navy-3: var(--ct-nav-3, #0f3c78);--ct-amber: var(--ct-warn, #b26a00);--ct-amber-ink: var(--ct-warn-ink, #8f5400);--ct-amber-soft: var(--ct-warn-soft, #fbeeda);--ct-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--ct-mono: ui-monospace, "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--ct-header-h: 56px;--ct-sider-w: 216px;--ct-footer-h: 30px;--ct-r-card: 10px;--ct-r-ctrl: 6px;--ct-shadow-card: 0 1px 2px rgba(16, 26, 38, .04)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-size:13px;font-family:var(--ct-font);background:var(--ct-bg);color:var(--ct-ink);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ct-ink-4);border:2px solid transparent;background-clip:content-box;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--ct-line-ctl);background-clip:content-box}::selection{background:var(--ct-brand-soft);color:var(--ct-brand-ink)}:focus-visible{outline:2px solid var(--ct-brand);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.ct-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 28px),radial-gradient(120% 90% at 12% 0%,#0f3c78,#0f3c7800 58%),linear-gradient(140deg,#04183a,#06285c 45%,#0a3268)}.ct-login-card{width:420px;max-width:100%;padding:34px 34px 26px;border-radius:14px;background:var(--ct-panel);box-shadow:0 1px #ffffff0f inset,0 24px 60px #0310206b}.ct-login-brand{display:flex;gap:14px;align-items:flex-start;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--ct-line)}.ct-mark{flex:none;width:42px;height:42px;border-radius:10px;background:transparent;display:flex;align-items:center;justify-content:center;color:#fff}.ct-login-names{min-width:0}.ct-login-company{margin:1px 0 6px;font-size:13px;line-height:1.45;color:var(--ct-ink-2);letter-spacing:.01em}.ct-login-system{margin:0;font-size:20px;line-height:1.3;font-weight:700;color:var(--ct-ink);letter-spacing:.02em}.ct-login-system em{font-style:normal;color:var(--ct-brand)}.ct-login-tagline{margin:8px 0 0;font-size:13px;color:var(--ct-ink-3-strong);letter-spacing:.04em}.ct-login-slogan{margin:6px 0 0;font-size:12.5px;font-weight:600;color:var(--ct-brand-ink);letter-spacing:.14em}.ct-layout{min-height:100vh}.ct-sider,.ct-sider .ant-layout-sider-children{background:var(--ct-navy)}.ct-logo{height:var(--ct-header-h);display:flex;align-items:center;gap:10px;padding:0 14px;color:#fff;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.07)}.ct-logo .ct-mark{width:26px;height:26px;border-radius:7px;background:transparent}.ct-logo-text{min-width:0;line-height:1.25}.ct-logo-line1{display:block;font-size:15px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.ct-logo-line2{display:block;font-size:11px;color:var(--ct-nav-text);letter-spacing:.06em;white-space:nowrap;margin-top:1px}.ct-logo-collapsed{justify-content:center;padding:0}.ct-sider .ant-menu{border-inline-end:none!important;padding-top:6px}.ct-sider .ant-menu-item{position:relative}.ct-sider .ant-menu-item:after{content:"";position:absolute;inset-inline-start:0;top:50%;width:3px;height:0;background:var(--ct-brand);transform:translateY(-50%);transition:height .18s ease;border:0!important;opacity:1!important}.ct-sider .ant-menu-item-selected:after{height:20px;transform:none;right:auto;bottom:auto}.ct-sider .ant-menu-inline .ant-menu-item:after{border-inline-end:none}.ct-sider-trigger{background:#0a3268!important;border-top:1px solid rgba(255,255,255,.07);color:var(--ct-nav-text)!important}.ct-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;background:var(--ct-panel);border-bottom:1px solid var(--ct-line)}.ct-header-title{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.ct-np-bar{flex:none;width:3px;height:16px;border-radius:2px;background:var(--ct-brand)}.ct-np-text{font-size:15px;font-weight:600;color:var(--ct-ink);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ct-np-rule{flex:1;height:1px;min-width:12px;background:linear-gradient(90deg,var(--ct-line) 0%,transparent 100%)}.ct-header-right{display:flex;align-items:center;gap:14px;flex:none}.ct-user{cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:4px 6px;border-radius:var(--ct-r-ctrl)}.ct-user:hover{background:var(--ct-head)}.ct-user-name{font-size:13px;color:var(--ct-ink)}.ct-avatar{background:var(--ct-brand);font-size:13px}.ct-content{padding:20px}.ct-footer{height:var(--ct-footer-h);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;background:var(--ct-panel);border-top:1px solid var(--ct-line);font-size:13px;color:var(--ct-ink-3-strong);letter-spacing:.02em}.ct-footer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ct-footer-meta{flex:none;display:flex;align-items:center;gap:8px}.ct-footer-clock{font-family:var(--ct-mono);font-size:12.5px;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--ct-ink-3-strong)}.ct-stat{border-radius:var(--ct-r-card);border-color:var(--ct-line);box-shadow:var(--ct-shadow-card);transition:border-color .16s ease}.ct-stat:hover{border-color:var(--ct-line)}.ct-stat-clickable:hover{border-color:var(--ct-brand)}.ct-stat-label{color:var(--ct-ink-2);font-size:13px;letter-spacing:.03em}.ct-stat-icon{display:inline-flex;font-size:15px;line-height:1;opacity:.9}.ct-stat-value{margin-top:6px;font-size:27px;font-weight:600;line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.ct-stat-sub{margin-top:4px;font-size:13px;color:var(--ct-ink-3-strong)}.ct-kv{display:flex;padding:8px 0;border-bottom:1px dashed var(--ct-line-2);font-size:13px}.ct-kv-label{width:110px;flex:none;color:var(--ct-ink-2);letter-spacing:.02em}.ct-kv-value{flex:1;word-break:break-all;color:var(--ct-ink)}.ct-section-title{display:flex;align-items:center;gap:8px;margin:20px 0 10px;font-size:13px;font-weight:600;color:var(--ct-ink);letter-spacing:.03em;line-height:1.2}.ct-section-title:before{content:"";flex:none;width:3px;height:13px;border-radius:2px;background:var(--ct-brand)}.ct-section-title:after{content:"";flex:1;height:1px;background:var(--ct-line-2)}.ct-mono{font-family:var(--ct-mono);font-size:12.5px;letter-spacing:.01em}.ct-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.ct-green{color:var(--ct-safe)}.ct-gray{color:var(--ct-ink-3-strong)}.ct-scan-result{border-radius:var(--ct-r-card)}.ant-card-head{border-bottom:1px solid var(--ct-line-2)}.ant-card-head-title{font-weight:600;letter-spacing:.01em}.ant-table-wrapper .ant-table{border-radius:var(--ct-r-card)}.ant-table-thead>tr>th{font-weight:600;font-size:13px;letter-spacing:.03em;border-bottom:1px solid var(--ct-line)!important}.ant-table-thead>tr>th:before{display:none!important}.ant-table-tbody>tr>td{border-bottom:1px solid var(--ct-line-2)}.ant-table-summary>tr>td{border-bottom:1px solid var(--ct-line)}.ant-drawer-title,.ant-modal-title{font-weight:600;letter-spacing:.01em}.ant-statistic-content{font-variant-numeric:tabular-nums}.ant-divider{border-color:var(--ct-line-2)}.ant-tag{border-radius:4px;font-variant-numeric:tabular-nums}
