:root{--primary: #2F6BFF;--primary-hover: #1F54D6;--primary-active: #1A47B8;--primary-disabled: #A8BFFB;--primary-soft: #EAF0FF;--primary-soft-2: #DCE7FF;--bg: #F5F7FA;--surface: #FFFFFF;--surface-2: #F9FAFC;--border: #E5E8EF;--border-strong: #D4D9E3;--text: #1F2329;--text-sub: #6B7280;--text-faint: #9CA3AF;--success: #00B578;--success-soft: #E6F7F1;--warning: #FF8F1F;--warning-soft: #FFF3E6;--danger: #FA5151;--danger-soft: #FEECEC;--info: #0C7CD5;--info-soft: #E8F4FC;--nav-bg: #101A33;--nav-bg-2: #182647;--nav-line: #243459;--nav-text: #9FB0D6;--nav-text-on: #fff;--font-body: "PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;--font-num: "SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-full: 999px;--sh-sm: 0 1px 2px rgba(16,26,51,.05);--sh-md: 0 8px 24px rgba(16,26,51,.1);--sh-drawer: -12px 0 32px rgba(16,26,51,.14);--topbar-h: 56px;--sidebar-w: 220px;--content-max: 1440px;--border-2: var(--border-strong);--shadow-sm: var(--sh-sm);--shadow-md: var(--sh-md);--shadow-drawer: var(--sh-drawer)}body{margin:0;font:400 14px/1.6 var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.page{max-width:var(--content-max);margin:0 auto;padding:20px 24px 48px;animation:qz-page-in .35s ease both}@keyframes qz-page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.breadcrumb{font-size:12px;color:var(--text-faint);display:flex;gap:6px;align-items:center}.page-title{font-size:20px;font-weight:600;line-height:1.3}.page-head .spacer{flex:1}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);z-index:100;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 20px}.topbar .brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px}.topbar .brand .logo{width:28px;height:28px;border-radius:8px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.g-search{flex:1;max-width:420px;margin-left:12px;position:relative}.g-search input{width:100%;height:34px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);padding:0 12px 0 34px;font-size:13px;color:var(--text);outline:none;transition:.15s}.g-search input:focus{border-color:var(--primary);background:var(--surface)}.g-search .kbd{position:absolute;right:8px;top:6px;font-size:11px;color:var(--text-faint);border:1px solid var(--border);border-radius:4px;padding:0 5px;background:var(--surface)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px;color:var(--text-sub)}.top-actions .icon-btn{position:relative;width:34px;height:34px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s}.top-actions .icon-btn:hover{background:var(--surface-2);color:var(--text)}.top-actions .dot{position:absolute;top:5px;right:5px;min-width:14px;height:14px;border-radius:7px;background:var(--danger);color:#fff;font-size:10px;line-height:14px;text-align:center;padding:0 3px}.avatar-chip{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--r-sm)}.avatar-chip:hover{background:var(--surface-2)}.logout-btn{height:30px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:none;color:var(--text-sub);font-size:12px;display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:.15s;font-family:inherit}.logout-btn:hover{color:var(--danger);border-color:var(--danger)}.qz-sider{position:fixed;top:var(--topbar-h);left:0;bottom:0;width:var(--sidebar-w);z-index:90;box-sizing:border-box;overflow-y:auto;padding:10px 10px 20px;background:var(--nav-bg);color:var(--nav-text)}.qz-sider::-webkit-scrollbar{width:4px}.qz-sider::-webkit-scrollbar-thumb{background:var(--nav-line);border-radius:2px}.nav-group{margin-bottom:4px}.nav-group .g-label{font-size:11px;letter-spacing:1.5px;color:#5d6c93;padding:12px 12px 4px;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:2px 0;border-radius:var(--r-sm);color:var(--nav-text);font-size:13.5px;line-height:1.4;position:relative;cursor:pointer;transition:.15s;border:none;background:none;font-family:inherit;text-align:left;width:100%}.nav-item svg{opacity:.8;width:16px;height:16px;flex-shrink:0}.nav-item:hover{background:var(--nav-bg-2);color:var(--nav-text-on)}.nav-item.active{background:var(--primary);color:#fff;font-weight:500;box-shadow:0 4px 12px #2f6bff59}.nav-item.active svg{opacity:1}.app-content{margin-left:var(--sidebar-w);padding-top:var(--topbar-h);min-height:100vh}.qz-btn.ant-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--r-sm);font-size:13px;background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:none;white-space:nowrap}.qz-btn.ant-btn:hover{border-color:var(--border-2);background:var(--surface-2);color:var(--text)}.qz-btn.ant-btn:disabled,.qz-btn.ant-btn.ant-btn-disabled{opacity:.45;color:var(--text);border-color:var(--border)}.qz-btn.ant-btn .anticon{font-size:14px}.qz-btn-primary.ant-btn{background:var(--primary);border-color:var(--primary);color:#fff}.qz-btn-primary.ant-btn:hover,.qz-btn-primary.ant-btn:focus{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.qz-btn-danger.ant-btn{color:var(--danger);border-color:var(--danger);background:var(--surface)}.qz-btn-danger.ant-btn:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.qz-btn-ghost.ant-btn{background:transparent;border-color:transparent;color:var(--text-sub)}.qz-btn-ghost.ant-btn:hover{background:var(--surface-2);color:var(--text);border-color:transparent}.qz-btn-sm.ant-btn{height:28px;padding:0 10px;font-size:12px}.batch-bar .qz-btn.ant-btn{background:#ffffff24;border-color:transparent;color:#fff}.batch-bar .qz-btn.ant-btn:hover{background:#ffffff3d;color:#fff}.qz-tag.ant-tag,.qz-tag{display:inline-flex;align-items:center;gap:5px;height:22px;line-height:20px;padding:0 8px;border-radius:4px;font-size:12px;font-weight:500;margin:0;margin-inline-end:0;border:none;background:var(--surface-2);color:var(--text-sub);white-space:nowrap}.qz-tag.ant-tag:before,.qz-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.qz-tag[data-tone=processing]{color:var(--primary-active);background:var(--primary-soft)}.qz-tag[data-tone=done]{color:var(--success);background:var(--success-soft)}.qz-tag[data-tone=warn]{color:var(--warning);background:var(--warning-soft)}.qz-tag[data-tone=danger]{color:var(--danger);background:var(--danger-soft)}.qz-tag[data-tone=info]{color:var(--info);background:var(--info-soft)}.qz-tag[data-tone=muted]{color:var(--text-sub);background:#f1f2f7}.qz-tag-blue.ant-tag{background:var(--primary-soft);color:var(--primary)}.qz-tag-green.ant-tag{background:var(--success-soft);color:var(--success)}.qz-tag-orange.ant-tag{background:var(--warning-soft);color:var(--warning)}.qz-tag-red.ant-tag{background:var(--danger-soft);color:var(--danger)}.qz-tag-purple.ant-tag{background:#f1eafb;color:#7b2fbe}.qz-tag-plain.ant-tag{height:20px;font-size:11.5px;padding:0 6px}.st-dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.qz-field.ant-input{height:34px;border-radius:var(--r-sm);padding:0 10px;font-size:13px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.qz-field.ant-input:focus,.qz-field.ant-input-focused{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.qz-field.ant-input::placeholder{color:var(--text-faint)}textarea.qz-field.ant-input{height:auto;padding:8px 10px;line-height:1.6}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.card-pad{padding:16px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:13px;color:var(--text-sub);cursor:pointer;transition:.15s}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:500}.chip .num{font-weight:600}.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:12px}.filter-bar .clear{font-size:12px;color:var(--text-faint);cursor:pointer}.filter-bar .clear:hover{color:var(--danger)}.tbl-card{overflow:hidden}.qz-table.ant-table-wrapper .ant-table{background:var(--surface);font-size:13px}.qz-table .ant-table-thead>tr>th{background:var(--surface-2);font-weight:500;color:var(--text-sub);font-size:12px;padding:10px 14px;white-space:nowrap}.qz-table .ant-table-thead>tr>th:before{display:none}.qz-table .ant-table-tbody>tr>td{padding:12px 14px;border-bottom:1px solid var(--border)}.qz-table .ant-table-tbody>tr:last-child>td{border-bottom:none}.qz-table .ant-table-tbody>tr.ant-table-row:hover>td{background:var(--surface-2)}.qz-table .ant-table-cell-fix-left,.qz-table .ant-table-cell-fix-right{background:var(--surface)}.qz-table .ant-table-tbody>tr.ant-table-row:hover>.ant-table-cell-fix-left,.qz-table .ant-table-tbody>tr.ant-table-row:hover>.ant-table-cell-fix-right{background:var(--surface-2)}.qz-table .ant-table-pagination.ant-pagination{margin:12px 14px;font-size:12px}.cell-main{display:flex;align-items:center;gap:10px}.cell-main .sub,.tbl .sub{font-size:12px;color:var(--text-faint)}.row-actions{display:flex;gap:4px;justify-content:flex-end}.lnk{font-size:12px;color:var(--primary);cursor:pointer;padding:2px 6px;border-radius:4px;white-space:nowrap;background:none;border:none;font-family:inherit}.lnk:hover{background:var(--primary-soft)}.lnk.mute{color:var(--text-sub)}.lnk.mute:hover{background:var(--surface-2)}.batch-bar{position:sticky;top:calc(var(--topbar-h) + 8px);z-index:50;display:none;align-items:center;gap:12px;background:var(--primary);color:#fff;border-radius:var(--r-md);padding:10px 16px;margin-bottom:12px;box-shadow:var(--shadow-md)}.batch-bar.show{display:flex;animation:qz-slide-down .2s}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--sh-sm);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-24px;top:-24px;width:72px;height:72px;border-radius:50%;background:var(--primary-soft);opacity:.55}.stat-card .k{font-size:12.5px;color:var(--text-sub)}.stat-card .v{font-size:22px;font-weight:600;font-family:var(--font-num);font-variant-numeric:tabular-nums;margin:6px 0 2px;position:relative;z-index:1}.stat-card .d{font-size:12px;margin-top:2px;position:relative;z-index:1}.stat-card .d.up{color:var(--success)}.stat-card .d.down{color:var(--danger)}.qz-tabs.ant-tabs>.ant-tabs-nav{margin:0 0 16px}.qz-tabs.ant-tabs .ant-tabs-tab{font-size:13.5px;color:var(--text-sub);padding:10px 14px;margin:0}.qz-tabs.ant-tabs .ant-tabs-tab+.ant-tabs-tab{margin-left:2px}.qz-tabs.ant-tabs .ant-tabs-tab:hover{color:var(--primary)}.qz-tabs.ant-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--primary-active);font-weight:600}.qz-tabs.ant-tabs .ant-tabs-ink-bar{background:var(--primary);height:2px;border-radius:2px}.qz-tab-count{font-size:11px;color:var(--primary-active);background:var(--primary-soft);border-radius:8px;padding:0 6px;margin-left:6px;font-family:var(--font-num)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px}button.tab{font-size:13.5px;color:var(--text-sub);padding:10px 14px;cursor:pointer;position:relative;background:none;border:none;font-family:inherit}button.tab:hover{color:var(--primary)}button.tab.on{color:var(--primary-active);font-weight:600}button.tab.on:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--primary);border-radius:2px}.qz-modal .ant-modal-content{border-radius:var(--r-lg);padding:0;box-shadow:var(--shadow-md)}.qz-modal .ant-modal-header{padding:16px 20px;border-bottom:1px solid var(--border);font-size:16px;font-weight:600;background:transparent;margin-bottom:0}.qz-modal .ant-modal-title{font-size:16px;font-weight:600}.qz-modal .ant-modal-body{padding:20px;max-height:62vh;overflow:auto}.qz-modal .ant-modal-footer{padding:14px 20px;border-top:1px solid var(--border);margin:0;display:flex;justify-content:flex-end;gap:10px}.qz-modal .ant-modal-close{top:16px;inset-inline-end:16px;color:var(--text-faint)}.qz-drawer.ant-drawer-content{box-shadow:var(--shadow-drawer)}.qz-drawer .ant-drawer-header{padding:16px 20px;border-bottom:1px solid var(--border)}.qz-drawer .ant-drawer-title{font-size:16px;font-weight:600}.qz-drawer .ant-drawer-close{color:var(--text-faint)}.qz-drawer .ant-drawer-body{padding:20px;flex:1;overflow:auto}.qz-toast-msg .ant-message-notice-content{background:#fff;color:var(--text);border-radius:var(--r-md);padding:10px 18px;font-size:13px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.qz-toast-inner{display:inline-flex;align-items:center;gap:8px}.qz-toast-act{color:var(--primary);cursor:pointer;margin-left:6px}.pbar{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden;min-width:80px}.pbar i{display:block;height:100%;border-radius:3px;background:var(--primary);transition:width .4s}.pbar.warn i{background:var(--warning)}.empty{text-align:center;padding:48px 0;color:var(--text-faint)}.empty svg{width:44px;height:44px;opacity:.4;margin-bottom:8px}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#2f6bff,#7fa4ff);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.stack{display:flex}.stack .avatar{width:24px;height:24px;font-size:10px;border:2px solid var(--surface);margin-left:-8px}.stack .avatar:first-child{margin-left:0}.row{display:flex;align-items:center;gap:10px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mt8{margin-top:8px}.mt16{margin-top:16px}.mb8{margin-bottom:8px}.mb16{margin-bottom:16px}.muted{color:var(--text-sub)}.faint{color:var(--text-faint)}.fs12{font-size:12px}.fs13{font-size:13px}.fs16{font-size:16px}.divider{height:1px;background:var(--border);margin:14px 0}.spacer{flex:1}@keyframes qz-slide-down{0%{transform:translateY(-8px);opacity:0}}.lnk2{font-size:12px;color:var(--primary);cursor:pointer}.lnk2:hover{text-decoration:underline}.kv{display:flex;padding:9px 0;font-size:13px;border-bottom:1px solid var(--border)}.kv:last-child{border-bottom:none}.kv .k{width:96px;color:var(--text-sub);flex-shrink:0}.tl{position:relative;padding-left:20px;margin-top:4px}.tl:before{content:"";position:absolute;left:4px;top:6px;bottom:10px;width:2px;background:var(--border)}.tl-i{position:relative;padding-bottom:22px}.tl-i:last-child{padding-bottom:2px}.tl-i:before{content:"";position:absolute;left:-20px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--text-faint);border:2px solid var(--surface)}.tl-i.manual:before{background:var(--primary)}.tl-i .t{font-size:12px;color:var(--text-faint)}.tl-i .c{font-size:13px;margin-top:2px}.tg{display:inline-flex;align-items:center;height:28px;padding:0 12px;border:1px solid var(--border);border-radius:999px;cursor:pointer;font-size:13px;color:var(--text-sub);transition:.15s;background:var(--surface)}.tg:hover{border-color:var(--primary);color:var(--primary)}.tg.on{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.cat-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--r-sm);cursor:pointer;font-size:13px;color:var(--text-sub);position:relative;width:100%;background:none;border:none;font-family:inherit;text-align:left}.cat-item:hover{background:var(--surface-2);color:var(--text)}.cat-item.on{background:var(--primary-soft);color:var(--primary);font-weight:500}.cat-item .cnt{margin-left:auto;font-size:12px;color:var(--text-faint)}.cat-item .ci-more{display:none;align-items:center;color:var(--text-faint);cursor:pointer;padding:2px;border-radius:4px}.cat-item:hover .ci-more{display:flex}.cat-item .ci-more:hover{color:var(--text);background:var(--border)}.qr-sq{width:34px;height:34px;border:1px solid var(--border);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--text-sub);cursor:pointer;background:var(--surface-2);transition:.15s;flex-shrink:0}.qr-sq:hover{border-color:var(--primary);color:var(--primary)}.pv-num{color:var(--primary);cursor:pointer}.steps{display:flex;align-items:center;gap:12px}.step{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-faint)}.step .dot{width:24px;height:24px;border-radius:50%;border:1px solid var(--border-2);display:flex;align-items:center;justify-content:center;font-size:12px;background:var(--surface);flex-shrink:0}.step.on{color:var(--primary);font-weight:500}.step.on .dot{background:var(--primary);border-color:var(--primary);color:#fff}.step.done{color:var(--primary)}.step.done .dot{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.step .ln{width:56px;height:2px;background:var(--border);border-radius:1px}.step .ln.done{background:var(--primary)}.type-opt{border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px;cursor:pointer;transition:.15s;background:var(--surface)}.type-opt:hover{border-color:var(--border-2)}.type-opt.on{border-color:var(--primary);background:var(--primary-soft)}.wchip{height:24px;padding:0 10px;border:1px solid var(--border);border-radius:999px;font-size:12px;cursor:pointer;color:var(--text-sub);display:inline-flex;align-items:center;white-space:nowrap;background:var(--surface)}.wchip:hover{border-color:var(--primary);color:var(--primary)}.wchip.on{background:var(--primary);border-color:var(--primary);color:#fff}.tag-sel{cursor:pointer;transition:.15s;background:var(--surface);border:none;font-family:inherit}.tag-sel:hover{border-color:var(--primary)}.tag-sel.on{background:var(--primary-soft);color:var(--primary)}.mem-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:8px;cursor:pointer}.mem-row:hover{background:var(--surface-2)}.cyc-row{border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;margin-bottom:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cyc-x{cursor:pointer;color:var(--text-faint);display:flex;margin-left:auto;background:none;border:none;padding:2px}.cyc-x:hover{color:var(--danger)}.pv-qr{height:180px;border:1px dashed var(--border-2);border-radius:var(--r-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-faint)}.h5-kv{display:flex;padding:7px 0;font-size:13px;align-items:center;gap:4px}.h5-kv .k{width:88px;color:var(--text-sub);flex-shrink:0}.err{border-color:var(--danger)!important;box-shadow:0 0 0 3px var(--danger-soft)!important}.fail-num{color:var(--danger);font-weight:600;cursor:pointer}.fail-num:hover{text-decoration:underline}.lnk.done{color:var(--success);cursor:default}.lnk.done:hover{background:transparent}.rd{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;margin-right:20px}.rd input{accent-color:var(--primary)}.bottom-bar{position:fixed;left:var(--sidebar-w);right:0;bottom:0;z-index:80;background:var(--surface);border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;padding:12px 24px;box-shadow:var(--shadow-sm)}.page.has-bottom-bar{padding-bottom:104px}.tip{position:relative;cursor:help;color:var(--text-sub);border-bottom:1px dashed var(--text-faint)}.tip:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%);background:var(--text);color:#fff;font-size:12px;line-height:1.7;padding:10px 12px;border-radius:var(--r-sm);width:280px;opacity:0;visibility:hidden;transition:.15s;z-index:60;text-align:left;white-space:normal}.tip:before{content:"";position:absolute;left:50%;bottom:calc(100% + 5px);transform:translate(-50%);border:5px solid transparent;border-top-color:var(--text);opacity:0;visibility:hidden;transition:.15s}.tip:hover:after,.tip:hover:before{opacity:1;visibility:visible}.tag.pick{cursor:pointer}.tag.pick:hover{border:1px solid var(--primary)}.health-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;font-size:16px;font-weight:600}.health-badge.ok{background:var(--success-soft);color:var(--success)}.health-badge .pulse{width:10px;height:10px;border-radius:50%;background:currentColor;animation:qz-pulse 1.6s infinite}@keyframes qz-pulse{50%{opacity:.35}}.q-row{display:flex;align-items:center;gap:12px;padding:8px 0}.q-row .nm{width:120px;font-size:13px}.q-depth{height:8px;border-radius:4px;background:var(--surface-2);flex:1;overflow:hidden}.q-depth i{display:block;height:100%;background:var(--primary)}.acc-steps{display:flex}.acc-step{flex:1;text-align:center;position:relative;padding:0 6px}.acc-step .ic{width:30px;height:30px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-2);background:var(--surface);color:var(--text-faint)}.acc-step.done .ic{background:var(--success);border-color:var(--success);color:#fff}.acc-step.run .ic{background:var(--primary);border-color:var(--primary);color:#fff;animation:qz-pulse-ring 1.1s ease-in-out infinite}.acc-step.fail .ic{background:var(--danger);border-color:var(--danger);color:#fff}.acc-step .nm{font-size:14px;font-weight:500}.acc-step .stx{font-size:12px;margin-top:2px}.acc-step:not(:last-child):after{content:"";position:absolute;top:15px;left:calc(50% + 24px);right:calc(-50% + 24px);height:2px;background:var(--border)}.acc-step.done:not(:last-child):after{background:var(--success)}.acc-step.run:not(:last-child):after{background:var(--primary)}@keyframes qz-pulse-ring{50%{box-shadow:0 0 0 6px var(--primary-soft)}}.eye{position:absolute;right:8px;top:8px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-faint);cursor:pointer}.eye:hover{color:var(--text)}.save-bar{position:sticky;bottom:0;z-index:40;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:12px 16px;margin-top:16px}.pimg{width:40px;height:40px;border-radius:6px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0;overflow:hidden}.pimg img{width:100%;height:100%;object-fit:cover}.pimg.sm{width:36px;height:36px;font-size:13px}.stock-low{color:var(--warning);font-weight:600}.stock-out{color:var(--danger);font-weight:600}.amount{display:flex;justify-content:flex-end;font-size:13px;padding:4px 0}.amount b{font-weight:600;margin-left:16px}.amount.pay{font-size:15px;color:var(--text)}.cardline{border:1px dashed var(--border);border-radius:8px;padding:12px;background:var(--bg);white-space:pre-line;font-family:inherit;font-size:13px}.form-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.form-row .lb{width:72px;flex-shrink:0;font-size:13px;color:var(--text-sub);padding-top:8px;text-align:right}.form-row .lb b.req{color:var(--danger);margin-right:2px;font-weight:400}.radio-line{display:flex;gap:18px;align-items:center;padding-top:8px;font-size:13px}.radio-line input,.rd input{accent-color:var(--primary)}.gline{display:grid;grid-template-columns:1fr 110px 90px 70px 32px;gap:8px;align-items:center;margin-bottom:8px}.gline .head{font-size:12px;color:var(--text-faint);padding-bottom:2px}.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--nav-bg)}.auth-side{position:relative;display:flex;flex-direction:column;justify-content:center;padding:64px 56px;color:#fff;overflow:hidden;background:radial-gradient(900px 500px at -10% 110%,rgba(47,107,255,.55),transparent 60%),radial-gradient(700px 420px at 110% -10%,rgba(12,124,213,.35),transparent 60%),var(--nav-bg)}.auth-side:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(200deg,transparent 40%,#000);-webkit-mask-image:linear-gradient(200deg,transparent 40%,#000)}.auth-logo{display:flex;align-items:center;gap:12px;margin-bottom:38px;z-index:1}.auth-logo .logo-lg{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--primary),#7FA4FF);font-size:18px;font-weight:700}.auth-logo b{font-size:19px;letter-spacing:1px}.auth-side h1{font-size:30px;line-height:1.4;font-weight:600;z-index:1}.auth-side h1 span{color:#7fa4ff}.auth-side .auth-desc{margin-top:14px;color:#9fb0d6;font-size:13.5px;max-width:420px;z-index:1}.auth-feats{margin-top:34px;display:grid;grid-template-columns:1fr 1fr;gap:12px;z-index:1;max-width:460px}.auth-feats li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#c4d0ee;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:9px 12px}.auth-feats svg{color:#7fa4ff;flex:none}.auth-main{display:flex;align-items:center;justify-content:center;background:var(--bg);padding:40px}.auth-card{width:400px;max-width:92vw;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:34px 32px}.auth-card h2{font-size:20px;margin-bottom:4px}.auth-card .sub{font-size:12.5px;color:var(--text-sub);margin-bottom:20px}.auth-foot{margin-top:16px;font-size:12px;color:var(--text-faint);text-align:center;line-height:1.8}@media (max-width: 1280px){:root{--sidebar-w: 64px}.qz-sider .nav-item span,.qz-sider .nav-group .g-label{display:none}.qz-sider .nav-item{justify-content:center}}@media (max-width: 1100px){.grid-2,.grid-3{grid-template-columns:1fr}}@media (max-width: 900px){.auth{grid-template-columns:1fr}.auth-side{display:none}}@media (max-width: 860px){.qz-sider{display:none}.app-content{margin-left:0}.page{padding:14px}}@media print{.qz-sider,.topbar,.qz-toast-wrap{display:none!important}.app-content{margin-left:0;padding-top:0}.page{padding:0}}
