.app-icon[data-v-5dab13bb]{fill:currentColor;vertical-align:-.14em}.app-icon-missing[data-v-5dab13bb]{display:inline-block;color:var(--c-danger, #d54941);font-weight:700}.watermark[data-v-5291a627]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99990;pointer-events:none;-webkit-user-select:none;user-select:none;background-repeat:repeat}.cp-form[data-v-e6717978]{display:flex;flex-direction:column;gap:12px}.cp-row[data-v-e6717978]{display:flex;align-items:center;gap:10px}.cp-lbl[data-v-e6717978]{width:84px;flex-shrink:0;font-size:13px;color:var(--c-text-2, #888)}.cp-hint[data-v-e6717978]{margin:2px 0 0;font-size:12px}.layout[data-v-25de2768]{display:flex;height:100vh;overflow:hidden}.sidebar[data-v-25de2768]{width:var(--sb-w);background:var(--c-sb-bg);color:var(--c-sb-text);display:flex;flex-direction:column;transition:width .18s ease;flex-shrink:0}.layout.collapsed .sidebar[data-v-25de2768]{width:var(--sb-w-collapsed)}.brand[data-v-25de2768]{display:flex;align-items:center;gap:10px;padding:18px 16px;font-weight:700;font-size:16px;color:#fff}.logo[data-v-25de2768]{width:30px;height:30px;border-radius:8px;background:var(--c-brand-600);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.nav[data-v-25de2768]{flex:1;overflow-y:auto;padding:8px}.nav-group[data-v-25de2768]{margin-bottom:14px}.nav-group-title[data-v-25de2768]{font-size:14px;color:#fff;padding:6px 10px;letter-spacing:1px}.nav-item[data-v-25de2768]{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;background:transparent;color:var(--c-sb-text);border-radius:8px;cursor:pointer;font-size:16px;font-weight:700;font-family:inherit;text-align:left;position:relative}.nav-item[data-v-25de2768]:hover{background:#ffffff0f;color:#fff}.nav-item.active[data-v-25de2768]{background:var(--c-sb-active-bg);color:#fff}.nav-item.active[data-v-25de2768]:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--c-sb-bar)}.nav-icon[data-v-25de2768]{flex-shrink:0;font-size:16px}.nav-item.dynamic[data-v-25de2768]{color:var(--c-sb-text);opacity:.92;margin-top:4px;border-top:1px dashed rgba(255,255,255,.14);border-radius:0 0 8px 8px}.nav-item.dynamic[data-v-25de2768]:first-child{border-top:none}.nav-item.dynamic[data-v-25de2768]:hover,.nav-item.dynamic.active[data-v-25de2768]{color:#fff}.nav-item.dynamic .nav-icon[data-v-25de2768]{color:var(--c-warning-400, #ffc53d)}.nav-caret[data-v-25de2768]{margin-left:auto;font-size:10px;opacity:.7;padding:0 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.nav-caret[data-v-25de2768]:hover{color:#fff}.nav-children[data-v-25de2768]{display:flex;flex-direction:column;margin:2px 0 2px 14px;border-left:1px solid rgba(255,255,255,.12);padding-left:6px}.nav-sub[data-v-25de2768]{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;background:transparent;color:var(--c-sb-text);border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;text-align:left}.nav-sub[data-v-25de2768]:hover{background:#ffffff0f;color:#fff}.nav-sub.active[data-v-25de2768]{background:var(--c-sb-active-bg);color:#fff}.nav-dyn-tag[data-v-25de2768]{margin-left:auto;font-size:10px;line-height:1;color:var(--c-warning-400, #ffc53d);border:1px dashed var(--c-warning-500, #ffa940);border-radius:4px;padding:2px 4px;flex-shrink:0}.main[data-v-25de2768]{flex:1;display:flex;flex-direction:column;min-width:0;box-sizing:border-box;overflow:hidden;height:100vh}.topbar[data-v-25de2768]{height:56px;background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;align-items:center;gap:14px;padding:0 8px;flex-shrink:0}.tabbar[data-v-25de2768]{display:flex;align-items:center;flex:1;min-width:0;height:100%;padding:0;gap:4px}.tabbar-list[data-v-25de2768]{flex:1;min-width:0;display:flex;align-items:center;gap:4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.tab[data-v-25de2768]{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;max-width:180px;height:30px;padding:0 8px;border:1px solid var(--c-border);border-radius:7px;background:var(--c-surface-hover, #f5f7fa);color:var(--c-text-2);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.tab[data-v-25de2768]:hover{border-color:var(--c-brand-300, #a9c3dd);color:var(--c-text-1)}.tab.active[data-v-25de2768]{background:var(--c-brand-50, #eef3f8);border-color:var(--c-brand-500);color:var(--c-brand-700);font-weight:600}.tab-label[data-v-25de2768]{flex:0 1 auto;min-width:0;max-width:140px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tab-x[data-v-25de2768]{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;font-size:13px;line-height:1;color:var(--c-text-3)}.tab-x[data-v-25de2768]:hover{background:var(--c-danger, #e34d59);color:#fff}.tabbar-close-all[data-v-25de2768]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin:0;border:none;background:transparent;color:var(--c-text-3);font-size:13px;cursor:pointer;border-radius:6px}.tabbar-close-all[data-v-25de2768]:hover{background:var(--c-surface-hover, #f5f7fa);color:var(--c-text-1)}.collapse-btn[data-v-25de2768]{border:none;background:transparent;font-size:18px;cursor:pointer;color:var(--c-text-2)}.top-right[data-v-25de2768]{margin-left:auto;display:flex;align-items:center;gap:14px}.notify-wrap[data-v-25de2768]{position:relative;display:inline-flex}.notify-panel[data-v-25de2768]{position:absolute;right:0;top:34px;width:340px;max-height:430px;display:flex;flex-direction:column;background:var(--c-surface, #fff);border:1px solid var(--c-border, #e5e6eb);border-radius:8px;box-shadow:0 6px 20px #0000001f;z-index:1500}.notify-head[data-v-25de2768]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--c-border, #e5e6eb);font-size:13px}.notify-filter[data-v-25de2768]{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:12px;color:var(--c-text-2, #666)}.notify-body[data-v-25de2768]{flex:1;min-height:0;overflow-y:auto}.notify-empty[data-v-25de2768]{padding:26px 0;text-align:center;font-size:13px}.notify-item[data-v-25de2768]{padding:8px 10px;border-bottom:1px solid var(--c-border, #f0f1f3);cursor:pointer}.notify-item[data-v-25de2768]:hover{background:var(--c-surface-hover, #f7f8fa)}.notify-item.unread[data-v-25de2768]{background:var(--c-brand-50, #eef3f8)}.notify-title[data-v-25de2768]{font-size:13px;font-weight:600}.notify-content[data-v-25de2768]{font-size:12px;color:var(--c-text-2, #666);margin-top:2px;word-break:break-all}.notify-meta[data-v-25de2768]{font-size:11px;margin-top:3px}.bell[data-v-25de2768]{position:relative;border:none;background:transparent;font-size:18px;cursor:pointer}.badge[data-v-25de2768]{position:absolute;top:-4px;right:-6px;background:var(--c-danger);color:#fff;font-size:11px;min-width:16px;height:16px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.content[data-v-25de2768]{flex:1;overflow-y:auto;background:var(--c-bg);display:flex}.login-box[data-v-25de2768]{display:inline-flex;align-items:center;gap:6px}.login-box .li[data-v-25de2768]{width:92px;border:1px solid var(--c-border-st);border-radius:8px;padding:5px 8px;font-family:inherit;font-size:13px;background:var(--c-surface);height:30px}.login-box .li-err[data-v-25de2768]{color:var(--c-danger);font-size:12px}.user-box[data-v-25de2768]{display:inline-flex;align-items:center;gap:8px;font-size:13px}.user-box .uname[data-v-25de2768]{font-weight:600;color:var(--c-text-1)}.user-box .link-btn[data-v-25de2768]{border:1px solid var(--c-border-st);background:var(--c-surface);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:13px;font-family:inherit}.user-box .link-btn[data-v-25de2768]:hover{border-color:var(--c-brand-500);color:var(--c-brand-600)}.side-mask[data-v-25de2768]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:1100}@media (max-width: 768px){.layout[data-v-25de2768]{display:block}.sidebar[data-v-25de2768]{position:fixed;top:0;left:0;bottom:0;width:78vw;max-width:300px;z-index:1200;transform:translate(0);box-shadow:2px 0 14px #0000002e}.layout.collapsed .sidebar[data-v-25de2768]{width:78vw;max-width:300px;transform:translate(-101%)}.main[data-v-25de2768]{height:100vh}.topbar[data-v-25de2768]{height:auto;min-height:48px;flex-wrap:wrap;padding:6px 8px;row-gap:4px}.tabbar[data-v-25de2768]{order:3;flex-basis:100%;height:34px}.user-box[data-v-25de2768]{margin-left:auto}.content[data-v-25de2768]{display:block}.notify-panel[data-v-25de2768]{width:88vw;max-width:340px}}.nav-folder-add[data-v-25de2768]{display:flex;align-items:center;gap:6px;margin:6px 10px 12px;padding:6px 8px;font-size:12px;color:var(--c-text-3);border:1px dashed var(--c-border);border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.nav-folder-add[data-v-25de2768]:hover{color:var(--c-primary);border-color:var(--c-primary)}.nav-group-title.is-folder[data-v-25de2768]{color:var(--c-text-2);font-weight:600;cursor:context-menu}.nav-ctx-mask[data-v-25de2768]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000}.nav-ctx[data-v-25de2768]{position:fixed;z-index:3001;min-width:196px;max-width:240px;max-height:320px;overflow-y:auto;padding:6px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #00000029}.nav-ctx-title[data-v-25de2768]{font-size:12px;color:var(--c-text-3);padding:4px 8px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-ctx-item[data-v-25de2768]{display:block;width:100%;padding:6px 8px;border:none;background:none;border-radius:6px;text-align:left;font-size:13px;color:var(--c-text-1);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-ctx-item[data-v-25de2768]:hover{background:var(--c-surface-hover, #f2f4f7)}.nav-ctx-item.active[data-v-25de2768]{color:var(--c-primary);font-weight:600}.nav-ctx-new[data-v-25de2768]{display:flex;gap:6px;margin-top:6px;padding:8px 4px 2px;border-top:1px solid var(--c-border)}.nav-ctx-input[data-v-25de2768]{flex:1;min-width:0;height:28px;padding:0 8px;border:1px solid var(--c-border);border-radius:6px;font-size:12px;outline:none}.nav-ctx-input[data-v-25de2768]:focus{border-color:var(--c-primary)}.nav-ctx-ok[data-v-25de2768]{height:28px;padding:0 10px;border:none;border-radius:6px;background:var(--c-primary);color:#fff;font-size:12px;cursor:pointer}.nav-ctx-ok[data-v-25de2768]:disabled{opacity:.5;cursor:not-allowed}.nav-fold-caret[data-v-25de2768]{display:inline-block;width:10px;margin-right:2px;font-size:10px;opacity:.7}.nav-group-title.is-folder[data-v-25de2768]{cursor:pointer;-webkit-user-select:none;user-select:none}.nav-group-title.is-folder[data-v-25de2768]:hover{color:var(--c-primary)}.nav-group-title.dragging[data-v-25de2768]{opacity:.45}.nav-group-title.drop-target[data-v-25de2768]{color:var(--c-primary);box-shadow:inset 0 -2px 0 var(--c-primary)}.login-screen[data-v-7d28db99]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f3a5f,#2f5d8a,#3a7ca5);font-family:var(--font-ui, system-ui, sans-serif)}.login-card[data-v-7d28db99]{width:380px;max-width:92vw;background:var(--c-bg, #fff);border-radius:14px;padding:32px 30px 28px;box-shadow:0 20px 60px #00000040}.login-brand[data-v-7d28db99]{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-brand .logo[data-v-7d28db99]{width:44px;height:44px;border-radius:10px;background:var(--c-brand-600, #2f5d8a);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center}.login-brand .t1[data-v-7d28db99]{font-size:19px;font-weight:700;color:var(--c-text, #1f2937)}.login-brand .t2[data-v-7d28db99]{font-size:12px;color:var(--c-text-2, #6b7280);margin-top:2px}.login-form[data-v-7d28db99]{display:flex;flex-direction:column;gap:16px}.fld[data-v-7d28db99]{display:flex;flex-direction:column;gap:6px}.lab[data-v-7d28db99]{font-size:13px;color:var(--c-text-2, #6b7280)}.fld .tiny-input[data-v-7d28db99]{width:100%}.fld .tiny-input__inner[data-v-7d28db99]{height:40px;border-radius:8px;font-size:14px}.code-row[data-v-7d28db99]{display:flex;gap:10px;align-items:center}.code-row .tiny-input[data-v-7d28db99]{flex:1}.code-row .tiny-input__inner[data-v-7d28db99]{text-transform:uppercase}.code-canvas[data-v-7d28db99]{width:110px;height:40px;border-radius:8px;border:1px solid var(--c-border, #d9dee5);cursor:pointer;flex-shrink:0}.login-err[data-v-7d28db99]{margin:0;color:var(--c-danger-600, #d4380d);font-size:13px}.login-hint[data-v-7d28db99]{margin:0;color:var(--c-text-3, #9ca3af);font-size:12px}.login-btn[data-v-7d28db99]{height:44px;border:none;border-radius:8px;background:var(--c-brand-600, #2f5d8a);color:#fff;font-size:16px;font-weight:600;letter-spacing:4px;cursor:pointer;transition:background .15s}.login-btn[data-v-7d28db99]:hover:not(:disabled){background:var(--c-brand-700, #244a70)}.login-btn[data-v-7d28db99]:disabled{opacity:.6;cursor:not-allowed}.login-foot[data-v-7d28db99]{margin-top:18px;color:#ffffffb3;font-size:12px}.gl-bar[data-v-c3196bd7]{position:fixed;top:0;left:0;height:3px;width:40%;background:linear-gradient(90deg,#2f5d8a,#3a7ca5);box-shadow:0 0 8px #2f5d8a99;z-index:3000;opacity:0;pointer-events:none;transition:opacity .2s ease}.gl-bar.active[data-v-c3196bd7]{opacity:1;animation:gl-sweep-c3196bd7 1.1s ease-in-out infinite}@keyframes gl-sweep-c3196bd7{0%{left:-40%}to{left:100%}}.kpis[data-v-7f77983d]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.kpi[data-v-7f77983d]{padding:20px;border-radius:var(--r-lg)}.kpi-val[data-v-7f77983d]{font-size:30px;font-weight:700;line-height:1.1}.kpi-label[data-v-7f77983d]{color:var(--c-text-2);margin-top:6px}.kpi-brand .kpi-val[data-v-7f77983d]{color:var(--c-brand-600)}.kpi-info .kpi-val[data-v-7f77983d]{color:var(--c-info)}.kpi-warning .kpi-val[data-v-7f77983d]{color:var(--c-warning)}.kpi-danger .kpi-val[data-v-7f77983d]{color:var(--c-danger)}.grid2[data-v-7f77983d]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel[data-v-7f77983d]{padding:16px 18px}.panel-head[data-v-7f77983d]{margin-bottom:12px}.risk-list[data-v-7f77983d]{list-style:none;margin:0;padding:0}.risk-list li[data-v-7f77983d]{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--c-border);font-size:13px}.dot[data-v-7f77983d]{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.lv-warn .dot[data-v-7f77983d]{background:var(--c-danger)}.lv-tip .dot[data-v-7f77983d]{background:var(--c-warning)}.empty[data-v-7f77983d]{color:var(--c-text-3);padding:16px 0}.recent[data-v-7f77983d]{display:flex;gap:24px}.rc-title[data-v-7f77983d]{font-weight:600;color:var(--c-text-2);margin-bottom:8px}.rc-item[data-v-7f77983d]{padding:4px 0;font-size:13px;display:flex;align-items:baseline;gap:8px}.rc-time[data-v-7f77983d]{font-size:11px;color:var(--c-text-3)}:root{--c-brand-600: #2f5bea;--c-brand-700: #2348c4;--c-brand-500: #3f6bf2;--c-brand-100: #eaf0ff;--c-brand-50: #f5f8ff;--c-success: #16a34a;--c-success-bg: #e7f6ed;--c-warning: #d97706;--c-warning-bg: #fdf2e3;--c-danger: #dc2626;--c-danger-bg: #fdeaea;--c-info: #2563eb;--c-info-bg: #e8f0fe;--c-bg: #f3f4f6;--c-surface: #fff;--c-border: #e5e7eb;--c-border-st: #d1d5db;--c-text-1: #1f2430;--c-text-2: #515964;--c-text-3: #8a93a2;--c-sb-bg: #141b2e;--c-sb-text: #fff;--c-sb-active-bg: rgba(63, 107, 242, .18);--c-sb-bar: #3f6bf2;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-6: 24px;--s-8: 32px;--r-md: 8px;--r-lg: 12px;--sh-1: 0 1px 2px rgba(16, 24, 40, .06);--sh-2: 0 4px 12px rgba(16, 24, 40, .1);--font-stack: "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif;--sb-w: 232px;--sb-w-collapsed: 64px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font-stack);background:var(--c-bg);color:var(--c-text-1);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--c-border-st);background:var(--c-surface);color:var(--c-text-1);padding:7px 14px;border-radius:var(--r-md);cursor:pointer;font-size:14px;font-family:inherit;transition:all .15s ease;white-space:nowrap}.btn:hover{border-color:var(--c-brand-500);color:var(--c-brand-600)}.btn-primary{background:var(--c-brand-600);border-color:var(--c-brand-600);color:#fff}.btn-primary:hover{background:var(--c-brand-700);border-color:var(--c-brand-700);color:#fff}.btn-ghost{background:transparent;border-color:transparent;color:var(--c-text-2)}.btn-ghost:hover{background:var(--c-brand-50);color:var(--c-brand-600)}.btn-sm{padding:4px 10px;font-size:13px}.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6}.tag:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.tag-success{background:var(--c-success-bg);color:var(--c-success)}.tag-warning{background:var(--c-warning-bg);color:var(--c-warning)}.tag-danger{background:var(--c-danger-bg);color:var(--c-danger)}.tag-info{background:var(--c-info-bg);color:var(--c-info)}.tag-neutral{background:#eef1f5;color:var(--c-text-2)}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.input{width:100%;font-size:14px;font-family:inherit;color:var(--c-text-1);background:var(--c-surface);outline:none;transition:border-color .15s ease}.input:focus{border-color:var(--c-brand-500)}.input.error{border-color:var(--c-danger)}.select{width:100%;font-size:14px;font-family:inherit;background:var(--c-surface);color:var(--c-text-1);outline:none}.select:focus{border-color:var(--c-brand-500)}.muted{color:var(--c-text-3)}.error-text{color:var(--c-danger);font-size:12px;margin-top:4px}.page{padding:var(--s-2);flex:1;overflow:hidden;display:flex;flex-flow:column;margin:0 auto}.page-title{font-size:20px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--c-text-2);margin:0 0 var(--s-4);font-size:13px}.row{display:flex;align-items:center;gap:var(--s-3)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}:root{--tv-base-color-brand: #2f5bea;--tv-base-color-brand-1: #eaf0ff;--tv-base-color-brand-2: #dbe4fd;--tv-base-color-brand-3: #c3d2fb;--tv-base-color-brand-4: #9db4f7;--tv-base-color-brand-5: #4f72ec;--tv-base-color-brand-6: #2f5bea;--tv-base-color-brand-7: #2348c4;--tv-base-color-brand-8: #1d3ea8;--tv-base-color-brand-9: #eaf0ff;--tv-base-color-brand-10: #162e7a;--tv-base-color-brand-11: #2f5bea;--tv-base-color-brand-12: #6f8fe6;--tv-base-color-brand-13: #b3c5f5;--tv-color-success: #16a34a;--tv-color-warn: #d97706;--tv-color-error: #dc2626;--tv-color-info: #2563eb}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}.nav,.content,.tiny-grid__body-wrapper,.tiny-dialog-box__body,.tiny-modal__body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.nav,.content{scrollbar-gutter:stable}.tiny-grid__body-wrapper tr{transition:background-color .15s ease}*{scrollbar-width:thin;scrollbar-color:rgba(31,36,48,.28) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1f243038;background-clip:content-box;border:2px solid transparent;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#1f243061;background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}.sidebar{scrollbar-color:rgba(255,255,255,.26) transparent}.sidebar ::-webkit-scrollbar-thumb{background:#ffffff38;background-clip:content-box;border:2px solid transparent;border-radius:10px}.sidebar ::-webkit-scrollbar-thumb:hover{background:#ffffff5c}
