.workspace-icon[data-v-a2986865]{flex-shrink:0;vertical-align:middle}.dlg-mask[data-v-4dc6cf51]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:200}.dlg[data-v-4dc6cf51]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 24px;width:420px;max-width:92vw;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-lg)}.dlg h4[data-v-4dc6cf51]{margin:0;color:var(--ink);font-size:15px}.dlg-row[data-v-4dc6cf51]{display:flex;align-items:center;gap:12px;font-size:13px}.dlg-lab[data-v-4dc6cf51]{color:var(--muted);min-width:64px}.dlg-val[data-v-4dc6cf51]{color:var(--ink)}.muted[data-v-4dc6cf51]{color:var(--muted)}.fld[data-v-4dc6cf51]{display:flex;flex-direction:column;gap:6px}.fld label[data-v-4dc6cf51]{font-size:13px;color:var(--ink2)}.fld-sub[data-v-4dc6cf51]{font-size:12px;color:var(--muted);margin-left:8px;font-weight:400}.inp[data-v-4dc6cf51]{font-family:var(--font);font-size:13px;padding:8px 12px;border:1px solid var(--baseline);border-radius:6px;background:var(--surface);color:var(--ink);width:100%}.inp[data-v-4dc6cf51]:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brand-glow)}.pwd-tip[data-v-4dc6cf51]{font-size:12px;margin-top:2px}.pwd-tip.err[data-v-4dc6cf51]{color:var(--danger)}.dlg-msg[data-v-4dc6cf51]{font-size:12.5px;color:var(--danger)}.dlg-msg.ok[data-v-4dc6cf51]{color:var(--success)}.dlg-actions[data-v-4dc6cf51]{display:flex;gap:10px}.btn[data-v-4dc6cf51]{font-family:var(--font);font-size:13px;font-weight:500;padding:7px 14px;border-radius:var(--radius-md, 8px);cursor:pointer;border:1px solid transparent;transition:all .15s ease;white-space:nowrap}.btn[data-v-4dc6cf51]:disabled{opacity:.55;cursor:not-allowed}.btn-primary[data-v-4dc6cf51]{background:var(--brand);color:var(--on-brand, #fff)}.btn-primary[data-v-4dc6cf51]:hover:not(:disabled){background:var(--brand-dark, var(--brand));box-shadow:0 2px 10px var(--brand-glow)}.btn-ghost[data-v-4dc6cf51]{background:var(--surface);color:var(--ink2);border-color:var(--border)}.btn-ghost[data-v-4dc6cf51]:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.workspace-shell[data-v-4dc6cf51]{display:flex;height:100dvh;overflow:hidden}.workspace-sidebar[data-v-4dc6cf51]{width:224px;flex:0 0 224px;display:flex;flex-direction:column;min-height:0;background:#191b2b;color:#f1f0fa}.workspace-brand[data-v-4dc6cf51]{display:flex;align-items:center;min-height:76px;padding:20px 18px;gap:10px}.workspace-logo[data-v-4dc6cf51]{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;background:var(--brand);color:var(--on-brand);border-radius:9px}.workspace-brand-copy[data-v-4dc6cf51]{min-width:0}.workspace-brand-copy strong[data-v-4dc6cf51]{display:block;color:#f6f5ff;font-size:16px;font-weight:650}.workspace-brand-copy span[data-v-4dc6cf51]{display:block;margin-top:3px;color:#a2a6be;font-size:10px;letter-spacing:.7px}.workspace-nav[data-v-4dc6cf51]{flex:1;min-height:0;overflow-y:auto;padding:0 12px 16px;scrollbar-width:thin;scrollbar-color:#4b506a transparent;color-scheme:dark}.workspace-nav-group-title[data-v-4dc6cf51]{color:#a2a6be;font-size:12px;padding:14px 12px 8px}.workspace-nav-group+.workspace-nav-group[data-v-4dc6cf51]{margin-top:10px}.workspace-nav-item[data-v-4dc6cf51]{display:flex;align-items:center;height:40px;margin:3px 0;padding:0 12px;gap:10px;border-radius:7px;color:#bfc3d8;text-decoration:none;font-size:14px;white-space:nowrap}.workspace-nav-item .workspace-icon[data-v-4dc6cf51]{width:18px;height:18px;flex-shrink:0}.workspace-nav-item[data-v-4dc6cf51]:hover{background:#272a40;color:#fff}.workspace-nav-item.is-active[data-v-4dc6cf51]{background:var(--brand);color:var(--on-brand);font-weight:600}.workspace-nav-active-dot[data-v-4dc6cf51]{width:5px;height:5px;margin-left:auto;border-radius:50%;background:var(--on-brand)}.workspace-sidebar-foot[data-v-4dc6cf51]{flex-shrink:0;padding:12px;border-top:1px solid #2a2d42}.workspace-health[data-v-4dc6cf51]{display:flex;align-items:center;gap:8px;min-height:24px;margin:0 10px 6px;font-size:12px;color:#bfc3d8;white-space:nowrap}.workspace-health i[data-v-4dc6cf51]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.workspace-health .is-ok[data-v-4dc6cf51]{background:#72c8a8}.workspace-health .is-bad[data-v-4dc6cf51]{background:#ff949b}.workspace-utility[data-v-4dc6cf51]{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;margin-bottom:6px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#bfc3d8;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}.workspace-utility[data-v-4dc6cf51]:hover{background:#272a40;color:#fff}.workspace-user-menu[data-v-4dc6cf51]{position:relative}.workspace-user-trigger[data-v-4dc6cf51]{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap}.workspace-user-trigger[data-v-4dc6cf51]:hover{border-color:var(--brand);color:var(--brand)}.workspace-avatar[data-v-4dc6cf51]{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:6px;background:#424057;color:#ddd6ff;font-size:13px}.workspace-user-copy[data-v-4dc6cf51]{display:grid;gap:1px;flex:1;min-width:0}.workspace-user-copy strong[data-v-4dc6cf51]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:550}.workspace-user-copy small[data-v-4dc6cf51]{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-account-menu[data-v-4dc6cf51]{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;padding:6px;border:1px solid #3b3d54;border-radius:8px;background:#25283b;box-shadow:var(--shadow-lg);z-index:110}.workspace-account-menu button[data-v-4dc6cf51]{width:100%;border:0;border-radius:5px;padding:10px;background:transparent;color:#d5d7e7;font:inherit;font-size:13px;text-align:left;cursor:pointer}.workspace-account-menu button[data-v-4dc6cf51]:hover{background:#39354e}.workspace-account-menu .is-danger[data-v-4dc6cf51]:hover{color:#ff949b}.workspace-menu-divider[data-v-4dc6cf51]{height:1px;margin:5px;background:#3b3d54}.workspace-main[data-v-4dc6cf51]{flex:1;min-width:0;overflow:auto;padding:0 24px 28px;scrollbar-gutter:stable;background:var(--page)}.workspace-topline[data-v-4dc6cf51]{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;margin-bottom:16px;border-bottom:1px solid var(--border);background:var(--page)}.workspace-breadcrumb[data-v-4dc6cf51]{display:flex;align-items:center;gap:12px;min-width:0}.workspace-breadcrumb h1[data-v-4dc6cf51]{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:15px;font-weight:600}.workspace-page-tools[data-v-4dc6cf51],#workspace-page-tools[data-v-4dc6cf51]{display:flex;align-items:center;gap:10px}.workspace-health-top[data-v-4dc6cf51]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap;padding:4px 10px;border-radius:6px;background:var(--surface)}.workspace-health-top i[data-v-4dc6cf51]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.workspace-health-top .is-ok[data-v-4dc6cf51]{background:#72c8a8}.workspace-health-top .is-bad[data-v-4dc6cf51]{background:#ff949b}.workspace-theme-btn[data-v-4dc6cf51]{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink2);font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}.workspace-theme-btn[data-v-4dc6cf51]:hover{border-color:var(--brand);color:var(--brand)}.workspace-theme-btn .workspace-icon[data-v-4dc6cf51]{width:14px;height:14px;flex-shrink:0}.workspace-nav-button[data-v-4dc6cf51]{display:grid;place-items:center;min-width:34px;min-height:34px;padding:6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink2);font:inherit;font-size:12px;cursor:pointer}.workspace-nav-button[data-v-4dc6cf51]:hover{border-color:var(--brand);color:var(--brand)}.workspace-mobile-close[data-v-4dc6cf51],.workspace-backdrop[data-v-4dc6cf51]{display:none}.workspace-shell[data-v-4dc6cf51] :is(button,a,summary):focus-visible{outline:2px solid var(--brand);outline-offset:3px}.is-sidebar-collapsed .workspace-sidebar[data-v-4dc6cf51]{width:64px;flex-basis:64px}.is-sidebar-collapsed .workspace-brand[data-v-4dc6cf51]{padding:20px 14px}.is-sidebar-collapsed .workspace-brand-copy[data-v-4dc6cf51],.is-sidebar-collapsed .workspace-nav-group-title[data-v-4dc6cf51],.is-sidebar-collapsed .workspace-nav-item>span[data-v-4dc6cf51],.is-sidebar-collapsed .workspace-health>span[data-v-4dc6cf51],.is-sidebar-collapsed .workspace-utility>span[data-v-4dc6cf51]{display:none}.is-sidebar-collapsed .workspace-nav[data-v-4dc6cf51]{padding-inline:8px}.is-sidebar-collapsed .workspace-nav-group+.workspace-nav-group[data-v-4dc6cf51]{padding-top:10px;border-top:1px solid #34364e}.is-sidebar-collapsed .workspace-nav-item[data-v-4dc6cf51]{justify-content:center;padding:0}.is-sidebar-collapsed .workspace-sidebar-foot[data-v-4dc6cf51]{padding:8px}.is-sidebar-collapsed .workspace-health[data-v-4dc6cf51]{justify-content:center;margin-inline:0}.is-sidebar-collapsed .workspace-utility[data-v-4dc6cf51]{justify-content:center;padding:0}@media (min-width: 1700px){.workspace-main[data-v-4dc6cf51]{padding-inline:max(24px,calc((100vw - 1750px)/2))}}@media (max-width: 1100px){.workspace-main[data-v-4dc6cf51]{padding-inline:20px}}@media (max-width: 900px){.workspace-sidebar[data-v-4dc6cf51]{position:fixed;inset:0 auto 0 0;width:260px;max-width:calc(100vw - 48px);transform:translate(-100%);transition:transform .18s ease;z-index:100;box-shadow:var(--shadow-lg)}.is-menu-open .workspace-sidebar[data-v-4dc6cf51]{transform:translate(0)}.workspace-backdrop[data-v-4dc6cf51]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;border:0;background:#0f172a70}.workspace-mobile-close[data-v-4dc6cf51]{display:grid;margin-left:auto;background:#292b42;border-color:#3b3d54;color:#fff;min-height:44px}.workspace-main[data-v-4dc6cf51]{width:100%;padding:0 16px 24px}.workspace-topline[data-v-4dc6cf51]{gap:8px;min-height:56px}.workspace-breadcrumb[data-v-4dc6cf51]{gap:8px}.workspace-page-tools[data-v-4dc6cf51],#workspace-page-tools[data-v-4dc6cf51]{gap:6px}.workspace-mobile-toggle[data-v-4dc6cf51]{min-height:44px;min-width:44px}}@media (prefers-reduced-motion: reduce){.workspace-sidebar[data-v-4dc6cf51]{transition:none}}@media (max-width: 700px){.workspace-topline[data-v-4dc6cf51]{flex-wrap:wrap;padding-block:6px}.workspace-breadcrumb[data-v-4dc6cf51]{flex-basis:100%}.workspace-page-tools[data-v-4dc6cf51]{min-width:0;max-width:100%;flex-wrap:wrap}.workspace-health-top>span[data-v-4dc6cf51],.workspace-theme-btn>span[data-v-4dc6cf51],.workspace-user-copy[data-v-4dc6cf51]{display:none}}:root{color-scheme:light;--page: #f6f7fb;--surface: #ffffff;--surface-hover: #f8f9fc;--surface-elevated: #ffffff;--ink: #22253b;--ink2: #575e75;--muted: #71788d;--grid: #eef0f5;--baseline: #cbd5e2;--border: #e5e7ef;--border-soft: #eef0f5;--brand: #7863d9;--brand-light: #f0ecfb;--brand-dark: #6650c5;--brand-bright: #927ee9;--on-brand: #ffffff;--brand-glow: rgba(120, 99, 217, .1);--success: #14795c;--success-bg: #eaf6ef;--warning: #9b650c;--warning-bg: #fff5df;--danger: #c23943;--danger-bg: #fceef0;--delta-up: #14795c;--delta-down: #c23943;--delta-up-bg: #eaf6ef;--delta-down-bg: #fceef0;--nav-active: #7863d9;--nav-ink: #575e75;--nav-bg: #ffffff;--nav-border: #e5e7ef;--sk: #eef1f6;--sk-shimmer: rgba(255, 255, 255, .6);--scrollbar: #d1d5db;--scrollbar-hover: #9ca3af;--shadow-sm: 0 1px 2px rgba(23, 36, 59, .03);--shadow-md: 0 4px 14px rgba(23, 36, 59, .06);--shadow-lg: 0 12px 36px rgba(23, 36, 59, .14);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 10px;--control-height: 36px;--control-radius: 7px;--font: system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif}:root[data-theme=cockpit]{color-scheme:dark;--page: #0e1522;--surface: #172130;--surface-hover: #1d2a3c;--surface-elevated: #202e41;--ink: #f1f5f9;--ink2: #cbd5e1;--muted: #a0aec2;--grid: #29374a;--baseline: #40516a;--border: #334358;--border-soft: #29374a;--brand: #60a5fa;--brand-light: #1d3a63;--brand-dark: #3b82f6;--brand-bright: #93c5fd;--on-brand: #12243e;--brand-glow: rgba(96, 165, 250, .16);--success: #6ed3ae;--success-bg: rgba(110, 211, 174, .12);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--danger: #ff949b;--danger-bg: rgba(255, 148, 155, .12);--delta-up: #6ed3ae;--delta-down: #ff949b;--delta-up-bg: rgba(110, 211, 174, .12);--delta-down-bg: rgba(255, 148, 155, .12);--nav-active: #60a5fa;--nav-ink: #bac6d8;--nav-bg: #131d2b;--nav-border: #29374a;--sk: #1e293b;--sk-shimmer: rgba(56, 189, 248, .06);--scrollbar: #334155;--scrollbar-hover: #475569;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 10px}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;font-family:var(--font);background:var(--page);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}:where(button,input,select,textarea){font:inherit}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:3px}:where(.btn,.primary-btn,.secondary-btn,.refresh-btn){min-height:var(--control-height);border-radius:var(--control-radius)}:where(.btn-primary,.primary-btn){color:var(--on-brand)}:where(input,textarea)::placeholder{color:var(--muted);opacity:.8}:where(button,input,select,textarea):disabled{cursor:not-allowed}::selection{background:var(--brand-glow);color:var(--brand-dark)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}.layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{height:60px;flex-shrink:0;background:var(--nav-bg);border-bottom:1px solid var(--nav-border);display:flex;align-items:center;padding:0 28px;gap:32px;box-shadow:var(--shadow-sm);position:relative;z-index:10;transition:background .3s ease,border-color .3s ease}.topbar .brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar .brand-logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;box-shadow:0 2px 8px var(--brand-glow)}.topbar .brand-text{display:flex;flex-direction:column;line-height:1.2}.topbar .brand-name{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.2px}.topbar .brand-sub{font-size:11px;color:var(--muted);margin-top:2px}.top-nav{display:flex;align-items:center;gap:4px;flex:1;height:100%;overflow-x:auto;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}.top-nav .nav-item{display:flex;align-items:center;gap:8px;padding:0 16px;height:100%;white-space:nowrap;flex-shrink:0;color:var(--nav-ink);text-decoration:none;font-size:13.5px;font-weight:500;position:relative;transition:color .2s ease;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.top-nav .nav-item:hover{color:var(--ink)}.top-nav .nav-item.active{color:var(--nav-active);border-bottom-color:var(--nav-active);font-weight:600}.topbar-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.user-box{display:flex;align-items:center;gap:8px}.user-name{font-size:13px;color:var(--ink2);white-space:nowrap}.role-badge{margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;background:var(--brand-glow);color:var(--brand);white-space:nowrap}.etl-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:6px 12px;border-radius:999px;background:var(--border-soft)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.ok{background:var(--success);box-shadow:0 0 8px var(--success-bg)}.status-dot.bad{background:var(--danger);box-shadow:0 0 8px var(--danger-bg)}.theme-toggle{font-family:var(--font);font-size:12.5px;color:var(--ink2);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 14px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s ease;font-weight:500}.theme-toggle:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-glow)}.main{flex:1;overflow-y:auto;padding:24px 28px 48px}.page-header{margin-bottom:20px;display:flex;align-items:flex-end;justify-content:space-between}.page-title{font-size:22px;font-weight:700;letter-spacing:.2px;color:var(--ink)}.page-sub{font-size:13px;color:var(--muted);margin-top:6px}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease,transform .2s ease}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}:root[data-layout=side] .layout{flex-direction:row}:root[data-layout=side] .topbar{display:none}:root[data-layout=side] .sidebar{display:flex}.sidebar{display:none;width:220px;flex-shrink:0;background:var(--nav-bg);border-right:1px solid var(--nav-border);flex-direction:column;padding:20px 12px 16px;transition:background .3s ease,border-color .3s ease;position:relative}:root[data-theme=cockpit] .sidebar:before{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:linear-gradient(180deg,transparent 0%,var(--brand) 20%,var(--brand) 80%,transparent 100%);opacity:.3}.sidebar .brand{padding:4px 12px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--nav-border);margin-bottom:12px}.sidebar .brand-logo{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;box-shadow:0 0 16px var(--brand-glow)}.sidebar .brand-text{display:flex;flex-direction:column;line-height:1.2}.sidebar .brand-name{font-size:16px;font-weight:700;color:var(--ink)}.sidebar .brand-sub{font-size:12px;color:var(--muted);margin-top:3px}.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}.side-nav .nav-item{display:flex;align-items:center;padding:11px 14px;white-space:nowrap;border-radius:8px;cursor:pointer;color:var(--nav-ink);text-decoration:none;font-size:15px;font-weight:500;transition:all .2s ease;position:relative}.side-nav .nav-item:hover{background:var(--brand-glow);color:var(--ink)}.side-nav .nav-item.active{background:var(--brand-glow);color:var(--nav-active);font-weight:600}:root[data-theme=cockpit] .side-nav .nav-item.active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--brand);border-radius:0 3px 3px 0;box-shadow:0 0 10px var(--brand)}.side-nav .nav-icon{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px}.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--nav-border);display:flex;flex-direction:column;gap:10px}.sidebar-foot .etl-status,.sidebar-foot .user-box{justify-content:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow-sm)}:root[data-theme=cockpit] .card{background:var(--surface)}.card h3{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:14px;display:flex;align-items:center;gap:8px}.card h3:before{content:"";width:3px;height:14px;background:var(--brand);border-radius:2px;flex-shrink:0}.card .hint{font-size:12px;color:var(--muted);font-weight:400;margin-left:4px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}.grid-2-1{grid-template-columns:2fr 1fr}.grid-1-2{grid-template-columns:1fr 2fr}@media (max-width: 1200px){.grid-2,.grid-3,.grid-2-1,.grid-1-2{grid-template-columns:1fr}}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;overflow:visible}.kpi-row-wide{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;min-height:98px;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;box-shadow:var(--shadow-sm);position:relative;overflow:visible}.kpi:before{content:"";position:absolute;top:17px;left:0;width:3px;height:18px;border-radius:0 2px 2px 0;background:var(--brand)}.kpi .label{font-size:13px;color:var(--ink2);font-weight:500}.kpi .value{font-size:28px;font-weight:700;letter-spacing:-.5px;margin:10px 0 0;font-variant-numeric:tabular-nums;color:var(--kpi-value-color, var(--ink));line-height:1.25}.kpi .value .unit{font-size:13px;color:var(--muted);font-weight:500;margin-left:6px}.delta-pill{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:999px;align-self:flex-start;font-variant-numeric:tabular-nums}.delta-pill.up{background:var(--delta-up-bg);color:var(--delta-up)}.delta-pill.down{background:var(--delta-down-bg);color:var(--delta-down)}.delta-pill .vs{color:var(--muted);font-weight:400}.kpi .spark{margin-top:0;height:32px}.sk{position:relative;overflow:hidden;background:var(--sk);border-radius:var(--radius-lg);margin-bottom:16px;transition:background .3s ease}.sk:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--sk-shimmer),transparent);animation:shimmer 1.6s infinite}@keyframes shimmer{to{transform:translate(100%)}}.filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:16px;box-shadow:var(--shadow-sm);transition:background .3s ease,border-color .3s ease}.filterbar label{font-size:13px;color:var(--ink2);font-weight:500}.filterbar input[type=date],.filterbar input[type=month],.filterbar select{font-family:var(--font);font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--baseline);border-radius:var(--radius-sm);min-height:var(--control-height);padding:7px 12px;outline:none;color-scheme:inherit;transition:border-color .2s ease,box-shadow .2s ease}.filterbar input:focus,.filterbar select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;padding:5px 13px;border-radius:999px;cursor:pointer;border:1px solid var(--baseline);background:transparent;color:var(--ink2);-webkit-user-select:none;user-select:none;transition:all .2s ease;font-weight:500}.chip:hover{border-color:var(--brand);color:var(--brand)}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;box-shadow:0 2px 8px var(--brand-glow)}.chip-all{border-style:dashed}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}table.data th{text-align:left;padding:11px 14px;color:var(--ink2);font-weight:600;font-size:13px;border-bottom:1px solid var(--baseline);white-space:nowrap;background:var(--surface-hover);position:sticky;top:0}table.data td{padding:11px 14px;border-bottom:1px solid var(--border-soft);white-space:nowrap;color:var(--ink)}table.data td.num,table.data th.num{text-align:right}table.data tbody tr{transition:background .15s ease}table.data tbody tr:hover{background:var(--surface-hover)}table.data tbody tr:hover td{color:var(--ink)}.bar-cell{display:inline-block;height:6px;border-radius:3px;background:var(--brand);vertical-align:middle;margin-right:8px}.loading,.error,.empty{padding:40px;text-align:center;color:var(--muted);font-size:13px}.error{color:var(--danger)}.status-tag{display:inline-block;font-size:11px;padding:2px 10px;border-radius:999px;font-weight:600}.status-tag.success{background:var(--success-bg);color:var(--success)}.status-tag.failed{background:var(--danger-bg);color:var(--danger)}.status-tag.partial{background:var(--warning-bg);color:var(--warning)}@media (max-width: 1280px){.topbar{padding:0 16px;gap:16px}.top-nav .nav-item{padding:0 11px;gap:6px}}@media (max-width: 900px){.topbar{padding:0 16px;gap:16px}.top-nav .nav-item{padding:0 10px;font-size:12.5px}.main{padding:18px 16px 36px}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--space-unit: 8px;--control-height: 36px;--content-radius: 8px;--text-body: 14px;--text-caption: 12px}.workspace-toolbar{min-width:0;margin-bottom:16px;padding:16px;border:1px solid var(--border);border-radius:var(--content-radius);background:var(--surface)}.workspace-toolbar-before{margin-bottom:12px}.workspace-toolbar-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.workspace-toolbar-fields{display:flex;align-items:flex-end;flex-wrap:wrap;flex:1;min-width:0;gap:12px}.workspace-toolbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.workspace-toolbar-fields>label{display:grid;gap:6px;flex:1 1 140px;min-width:0;color:var(--ink2);font-size:var(--text-caption)}.workspace-toolbar-fields :is(input,select){width:100%;min-height:var(--control-height);padding:7px 10px;border:1px solid var(--border);border-radius:6px;color:var(--ink);background:var(--surface);font:inherit;font-size:13px}.workspace-toolbar :is(button,input,select):focus-visible{outline:2px solid var(--brand);outline-offset:2px}.workspace-toolbar-actions .workspace-icon{width:16px;height:16px}.workspace-data-state{display:grid;justify-items:center;align-content:center;gap:12px;min-height:240px;padding:40px 24px;border:1px solid var(--border);border-radius:var(--content-radius);background:var(--surface);text-align:center;color:var(--ink2)}.workspace-data-state>strong{font-size:16px;color:var(--ink);font-weight:600}.workspace-data-state>p{max-width:520px;font-size:14px;line-height:1.7}.workspace-state-symbol{display:grid;place-items:center;width:44px;height:44px;background:var(--surface-hover);color:var(--muted);border-radius:12px;font-size:24px}.workspace-data-state.is-error .workspace-state-symbol{color:var(--danger);background:var(--danger-bg)}.workspace-state-actions{margin-top:4px}.workspace-state-actions a{display:inline-flex;align-items:center;text-decoration:none}.workspace-data-status{display:flex;align-items:center;gap:8px}.workspace-demo-badge{border:1px solid var(--border);border-radius:4px;padding:2px 6px;color:var(--warning);background:var(--warning-bg);font-size:12px;white-space:nowrap}.workspace-popover{position:relative}.workspace-popover>summary{display:flex;align-items:center;min-height:34px;padding:6px 8px;border-radius:6px;color:var(--ink2);list-style:none;cursor:pointer;font-size:12px;white-space:nowrap}.workspace-popover>summary::-webkit-details-marker{display:none}.workspace-popover>summary:hover,.workspace-popover[open]>summary{color:var(--brand);background:var(--brand-light)}.workspace-popover-content{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:320px;max-width:calc(100vw - 32px);padding:18px;border:1px solid var(--border);border-radius:8px;background:var(--surface-elevated);box-shadow:var(--shadow-lg);font-size:13px;line-height:1.7}.workspace-popover-content>strong{display:block;color:var(--ink);font-weight:600}.workspace-popover-content p{margin-top:10px;color:var(--muted);overflow-wrap:anywhere}.workspace-popover-content dl{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;margin-top:12px}.workspace-popover-content dt{color:var(--muted)}.workspace-popover-content dd{margin:0;color:var(--ink)}:where(.card){border-radius:var(--content-radius);box-shadow:none}:where(.filterbar,.intg-filter,.excel-toolbar){border-radius:var(--content-radius)}:where(table.data,.biz-table,.excel-grid){font-variant-numeric:tabular-nums}:where(table.data th){font-size:13px}:where(table.data td){font-size:14px}:where(.workspace-main button:disabled){cursor:not-allowed}@media (max-width: 700px){.workspace-toolbar{padding:12px}.workspace-toolbar-fields{flex-basis:100%;gap:10px}.workspace-toolbar-actions{width:100%}.workspace-toolbar-actions button{flex:1;min-height:44px}.workspace-toolbar-fields :is(input,select){min-height:44px}.workspace-popover>summary{min-height:44px;padding-inline:6px}.workspace-popover-content{width:min(300px,calc(100vw - 80px))}}
