.fi[data-v-b69c64b9]{margin-bottom:12px}.fi label[data-v-b69c64b9]{display:block;font-size:var(--fs-sm);color:var(--text-regular);margin-bottom:6px}.inp[data-v-b69c64b9]{width:100%;font-size:var(--fs-body);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;background:#fff;font-family:inherit;line-height:1.5;box-sizing:border-box}.inp[data-v-b69c64b9]:disabled{background:var(--bg-muted);color:var(--text-secondary)}.is-group td[data-v-e76b01f8]{background:#00000008;font-weight:600}.pb input[data-v-e76b01f8],.pb select[data-v-e76b01f8]{padding:2px 6px;border:1px solid var(--line, #ccc);border-radius:4px}.login-page[data-v-c7f4446c]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0e2a47,#123c66)}.login-card[data-v-c7f4446c]{width:360px;padding:32px;border-radius:12px;background:#fff;box-shadow:0 12px 40px #00000040;display:flex;flex-direction:column;gap:10px}.login-card h1[data-v-c7f4446c]{font-size:18px;margin:0;color:#0e2a47}.login-card .sub[data-v-c7f4446c]{margin:0 0 12px;color:#888;font-size:13px}.login-card label[data-v-c7f4446c]{font-size:13px;color:#555}.login-card input[data-v-c7f4446c]{padding:9px 12px;border:1px solid #d9dee5;border-radius:6px;font-size:14px}.login-card input[data-v-c7f4446c]:focus{outline:none;border-color:#2f6fed}.login-card button[data-v-c7f4446c]{margin-top:8px;padding:10px;border:0;border-radius:6px;background:#2f6fed;color:#fff;font-size:15px;cursor:pointer}.login-card button[data-v-c7f4446c]:disabled{opacity:.6;cursor:default}.login-card .err[data-v-c7f4446c]{margin:0;color:#e5484d;font-size:13px}.login-card .tip[data-v-c7f4446c]{margin:6px 0 0;color:#aaa;font-size:12px}:root{--primary: #55aaff;--primary-active: #3688ff;--primary-weak-1: #f4f9ff;--primary-weak-2: #d9ecff;--primary-weak-3: #aed6ff;--primary-ink: #1f60bd;--primary-deep: #2f74dd;--grad-brand-deep: linear-gradient(135deg, #2a6bd0 0%, #2f74dd 50%, #2359b0 100%);--info: #5677fc;--text-primary: #1f2733;--text-regular: #3d4652;--text-secondary: #6b6b6b;--text-placeholder: #a5a7b2;--text-disabled: #c2c7d0;--text-inverse: #ffffff;--bg-page: #f5f7fa;--bg-card: #ffffff;--bg-muted: #f0f2f5;--bg-mask: rgba(15, 23, 42, .45);--border: #eaeef1;--border-strong: #d5d5d5;--border-accent: #55aaff;--success: #21b46a;--success-weak: #e8f7ef;--warning: #f5a623;--warning-weak: #fff5e3;--danger: #e76b61;--danger-active: #dd524d;--danger-weak: #fdeeed;--neutral: #8a94a6;--neutral-weak: #f2f4f7;--level-A: #e5484d;--level-B: #f5a623;--level-C: #5677fc;--level-A-weak: #fdecec;--level-B-weak: #fff5e3;--level-C-weak: #eef0ff;--level-A-ink: #b62d33;--level-B-ink: #9a6604;--level-C-ink: #3a4fc4;--ele-risk: #b54708;--ele-risk-weak: #fff4e6;--ele-safe: #12764a;--st-notice-ink: #b62d33;--st-rectify-ink: #9a6604;--st-recheck-ink: #3a4fc4;--st-audit-ink: #9a6604;--st-rejected-ink: #b62d33;--st-closed-ink: #12764a;--st-overdue-ink: #5c6577;--fs-xs: 12px;--fs-sm: 13px;--fs-body: 14px;--fs-h2: 15px;--fs-h1: 16px;--fs-title: 20px;--fs-display: 28px;--r-xs: 3px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-full: 999px;--shadow-card: 0 2px 8px rgba(15, 40, 80, .06);--shadow-xs: 0 1px 3px rgba(15, 40, 80, .05);--web-top-h: 52px;--web-menu-w: 210px;--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--num-feature: "tnum" 1}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--text-regular);background:var(--bg-page);-webkit-font-smoothing:antialiased}a{color:var(--primary-ink);text-decoration:none}code,.mono{font-family:Consolas,Courier New,monospace}b{font-weight:600}.web-shell{display:flex;flex-direction:column;height:100vh}.web-top{height:var(--web-top-h);flex:none;background:var(--grad-brand-deep);color:#fff;display:flex;align-items:center;padding:0 18px;gap:16px;font-size:var(--fs-sm);box-shadow:0 2px 10px #0f28502e;position:relative;z-index:5}.web-top .logo{font-size:var(--fs-h1);font-weight:700;letter-spacing:1px}.web-top .crumb{opacity:.9;font-size:var(--fs-sm)}.web-top .right{margin-left:auto;display:flex;gap:16px;align-items:center;opacity:.95}.web-main{flex:1;display:flex;min-height:0}.web-menu{width:var(--web-menu-w);flex:none;background:#fff;border-right:1px solid var(--border);padding:8px 0;overflow-y:auto}.web-menu .mi{padding:11px 18px;font-size:var(--fs-body);color:var(--text-regular);cursor:pointer;display:flex;align-items:center;gap:8px;border-left:4px solid transparent}.web-menu .mi:hover{background:var(--primary-weak-1)}.web-menu .mi.on{background:var(--primary-weak-1);border-left-color:var(--primary);color:var(--primary-ink);font-weight:600}.web-menu .mi .no{font-size:var(--fs-xs);opacity:.6;width:26px;flex:none}.web-menu .mgroup{font-size:11px;color:var(--text-placeholder);padding:14px 18px 5px;letter-spacing:1px}.web-content{flex:1;overflow-y:auto;padding:18px 22px 60px;min-width:0}.web-content::-webkit-scrollbar{width:8px}.web-content::-webkit-scrollbar-thumb{background:#cfd6e0;border-radius:4px}.v3-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}.v3-kpi{background:#fff;border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--shadow-card);border:1px solid var(--border)}.v3-kpi .t{font-size:var(--fs-sm);color:var(--text-secondary)}.v3-kpi .v{font-size:var(--fs-display);font-weight:700;line-height:1.15;margin-top:4px;font-variant-numeric:var(--num-feature);word-break:break-all}.v3-kpi .d{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:3px}.v3-kpi .v.ink-a{color:var(--level-A-ink)}.v3-kpi .v.ink-ok{color:var(--st-closed-ink)}.v3-kpi .v.ink-warn{color:var(--st-rectify-ink)}.v3-panel{background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-card);border:1px solid var(--border);overflow:hidden;margin-bottom:16px}.v3-panel>.ph{padding:11px 16px;border-bottom:1px solid var(--border);font-size:var(--fs-h2);font-weight:600;display:flex;align-items:center;gap:10px;background:var(--bg-muted);color:var(--text-primary)}.v3-panel>.ph .r{margin-left:auto;font-size:var(--fs-xs);color:var(--text-secondary);font-weight:400}.v3-panel>.pb{padding:14px 16px}.v3-cols{display:grid;gap:16px}.v3-cols.c2{grid-template-columns:1fr 1fr}.v3-cols.c4{grid-template-columns:repeat(4,1fr)}.section-title{font-size:var(--fs-h2);font-weight:600;color:var(--text-primary);margin:4px 0 10px}.v3-wtable{width:100%;border-collapse:collapse;font-size:var(--fs-sm);background:#fff}.v3-wtable th{background:var(--bg-muted);color:var(--text-regular);font-weight:600;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.v3-wtable td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text-regular)}.v3-wtable tr:hover td{background:var(--primary-weak-1)}.v3-wtable td.num,.v3-wtable th.num{text-align:right;font-variant-numeric:var(--num-feature)}.v3-wtable .mono{font-variant-numeric:var(--num-feature);color:var(--text-secondary);font-size:var(--fs-xs)}.v3-wtable .cell-sub{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:2px}.dt-val--link{color:var(--primary-ink);cursor:pointer;font-size:var(--fs-sm)}.tag{display:inline-flex;font-size:var(--fs-xs);padding:2px 10px;border-radius:var(--r-full);line-height:1.6}.tag--outline{border:1px solid var(--border-strong);color:var(--text-regular);background:#fff}.tag--closed{background:var(--success-weak);color:var(--st-closed-ink)}.tag--pending{background:var(--level-C-weak);color:var(--level-C-ink)}.tag--doing{background:var(--warning-weak);color:var(--st-rectify-ink)}.tag--danger{background:var(--danger-weak);color:var(--st-notice-ink)}.v3-st{display:inline-flex;font-size:var(--fs-xs);padding:2px 10px;border-radius:var(--r-full);white-space:nowrap}.v3-st.notice{background:var(--danger-weak);color:var(--st-notice-ink)}.v3-st.rectify{background:var(--warning-weak);color:var(--st-rectify-ink)}.v3-st.recheck{background:var(--level-C-weak);color:var(--st-recheck-ink)}.v3-st.audit{background:var(--warning-weak);color:var(--st-audit-ink)}.v3-st.rejected{background:var(--danger-weak);color:var(--st-rejected-ink)}.v3-st.closed{background:var(--success-weak);color:var(--st-closed-ink)}.v3-st.overdue{background:var(--neutral-weak);color:var(--st-overdue-ink)}.switch{display:inline-flex;align-items:center;width:34px;height:19px;border-radius:var(--r-full);background:var(--border-strong);padding:2px;transition:background .15s;flex:none}.switch i{display:block;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0003}.switch--on{background:var(--success)}.switch--on i{transform:translate(15px)}.v3-cfg{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--primary-ink);background:var(--primary-weak-1);border:1px solid var(--primary-weak-2);padding:9px 12px;border-radius:var(--r-sm);margin-bottom:14px;line-height:1.7}.v3-cfg .tagx{font-size:11px;padding:1px 8px;border-radius:var(--r-full);background:var(--primary-deep);color:#fff;flex:none}.v3-anno{font-size:var(--fs-xs);color:var(--text-secondary);line-height:1.7;background:var(--primary-weak-1);border-left:4px solid var(--primary-weak-3);padding:9px 12px;border-radius:0 var(--r-sm) var(--r-sm) 0;margin:10px 0 0}.v3-anno b{color:var(--primary-ink);font-weight:600}.v3-anno.warn{background:var(--ele-risk-weak);border-left-color:#f0b877}.v3-anno.warn b{color:var(--ele-risk)}.v3-tip{font-size:var(--fs-xs);padding:10px 12px;border-radius:var(--r-sm);line-height:1.7;background:var(--primary-weak-1);color:var(--primary-ink);border:1px solid var(--primary-weak-2)}.v3-tip.warn{background:var(--ele-risk-weak);color:var(--ele-risk);border-color:#f3c78f}.v3-tip.ok{background:var(--success-weak);color:var(--st-closed-ink);border-color:#a5dfc3}.v3-tip.err{background:var(--danger-weak);color:var(--st-notice-ink);border-color:#f0b3ae}.list-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.list-item:last-child{border-bottom:none}.list-item .list-main{flex:1}.list-item .list-main b{font-size:var(--fs-body);color:var(--text-primary)}.list-item .list-sub{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:2px}.v3-dim-item{background:var(--bg-muted);border-radius:var(--r-sm);padding:10px 12px}.v3-dim-item .t{font-size:var(--fs-xs);color:var(--text-secondary)}.v3-dim-item .n{font-size:var(--fs-body);font-weight:600;margin-top:3px;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-body);padding:9px 20px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:#fff;color:var(--text-regular);cursor:pointer;font-family:inherit;line-height:1.5;transition:opacity .15s}.btn:hover{opacity:.88}.btn--primary{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff;font-weight:500}.btn--danger{background:var(--danger-active);border-color:var(--danger-active);color:#fff;font-weight:500}.btn:disabled{opacity:.42;cursor:not-allowed}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-mask);z-index:60}.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:61;background:#fff;border-radius:var(--r-lg);min-width:420px;max-width:640px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 16px 48px #0f285047}.modal .sh{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center}.modal .sh .t{font-size:var(--fs-h1);font-weight:600;flex:1;color:var(--text-primary)}.modal .sh .x{font-size:20px;color:var(--text-placeholder);cursor:pointer;padding:0 8px}.modal .sb{padding:16px 18px;overflow-y:auto}.modal .sa{padding:12px 18px 14px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}.toast{position:fixed;left:50%;top:64px;transform:translate(-50%);z-index:70;padding:10px 20px;border-radius:var(--r-sm);background:#151f2ded;color:#fff;font-size:var(--fs-sm);line-height:1.6;box-shadow:0 10px 30px #0f285042}.toast.warn{background:#b54708f0}.toast.ok{background:#12764af0}.fade-enter-active,.fade-leave-active{transition:opacity .18s}.fade-enter-from,.fade-leave-to{opacity:0}.screen-cap{font-size:var(--fs-xs);color:var(--text-secondary);margin-bottom:12px;line-height:1.7}.screen-cap b{color:var(--primary-ink)}
