:root{--vg-bg:#fff;--vg-fg:#222;--vg-muted:#6b7280;--vg-border:#e5e7eb;--vg-accent:#2563eb;--vg-accent-weak:#dbeafe;--vg-hover:#f9fafb;--vg-radius:10px;--vg-shadow:0 1px 2px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.06);--vg-chip-bg:#f3f4f6;--vg-surface-1:#fafafa;--vg-surface-2:#f3f4f6;--vg-surface-group:#fbfbff}.vg-theme-light{--vg-bg:#fff;--vg-fg:#222;--vg-muted:#6b7280;--vg-border:#e5e7eb;--vg-accent:#2563eb;--vg-accent-weak:#dbeafe;--vg-hover:#f9fafb;--vg-shadow:0 1px 2px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.06);--vg-chip-bg:#f3f4f6;--vg-surface-1:#fafafa;--vg-surface-2:#f3f4f6;--vg-surface-group:#fbfbff}.vg-theme-dark,.vg-theme-dark-blue{--vg-bg:#0b0f1a;--vg-fg:#e5e7eb;--vg-muted:#9aa3b2;--vg-border:#1f2737;--vg-accent:#60a5fa;--vg-accent-weak:rgba(96,165,250,.25);--vg-hover:#121827;--vg-shadow:0 1px 2px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.35);--vg-chip-bg:#111827;--vg-surface-1:#0f172a;--vg-surface-2:#131c2f;--vg-surface-group:#0d1322}.vg-theme-dark-grey{--vg-bg:#121212;--vg-fg:#f3f4f6;--vg-muted:#9ca3af;--vg-border:#1f1f1f;--vg-accent:#7dd3fc;--vg-accent-weak:rgba(125,211,252,.25);--vg-hover:#1d1d1d;--vg-shadow:0 1px 2px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.35);--vg-chip-bg:#1a1a1a;--vg-surface-1:#181818;--vg-surface-2:#222222;--vg-surface-group:#151515}.vg-theme-midnight{--vg-bg:#0f0a1f;--vg-fg:#f3f4ff;--vg-muted:#b5b0d6;--vg-border:#221b3d;--vg-accent:#a855f7;--vg-accent-weak:rgba(168,85,247,.28);--vg-hover:#1a1233;--vg-shadow:0 1px 3px rgba(0,0,0,.55),0 4px 14px rgba(0,0,0,.4);--vg-chip-bg:#1c1438;--vg-surface-1:#17102e;--vg-surface-2:#211944;--vg-surface-group:#140d29}.vg-theme-forest{--vg-bg:#0f1f14;--vg-fg:#e8f5e9;--vg-muted:#9fb9a5;--vg-border:#1f3525;--vg-accent:#34d399;--vg-accent-weak:rgba(52,211,153,.25);--vg-hover:#16311f;--vg-shadow:0 1px 3px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.3);--vg-chip-bg:#163424;--vg-surface-1:#14291d;--vg-surface-2:#1d3a28;--vg-surface-group:#112016}.vg-theme-ocean{--vg-bg:#f0f6ff;--vg-fg:#102a43;--vg-muted:#486581;--vg-border:#c3dafe;--vg-accent:#0ea5e9;--vg-accent-weak:rgba(14,165,233,.2);--vg-hover:#e1effe;--vg-shadow:0 1px 2px rgba(15,58,93,.08),0 6px 18px rgba(15,58,93,.08);--vg-chip-bg:#dbeafe;--vg-surface-1:#e8f1ff;--vg-surface-2:#d6e4ff;--vg-surface-group:#ecf5ff}.vg-theme-sand{--vg-bg:#fffbf5;--vg-fg:#3b2f2f;--vg-muted:#a58b7b;--vg-border:#f0dfd0;--vg-accent:#d97706;--vg-accent-weak:rgba(217,119,6,.2);--vg-hover:#fff4e6;--vg-shadow:0 1px 2px rgba(149,94,32,.1),0 4px 16px rgba(149,94,32,.08);--vg-chip-bg:#f7ece2;--vg-surface-1:#fff5e6;--vg-surface-2:#fbe7cf;--vg-surface-group:#fdeeda}.vg-theme-dark-base{color-scheme:dark}.vg-container{font:14px/1.4 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:var(--vg-fg)}.vg-toolbar{background:var(--vg-surface-1);padding:10px 12px;border:1px solid var(--vg-border);border-bottom:none;border-radius:var(--vg-radius) var(--vg-radius) 0 0;box-shadow:var(--vg-shadow);position:relative}.vg-toolbar-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.vg-toolbar-actions{margin-left:auto;display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;position:relative}.vg-settings{position:relative;display:inline-flex;align-items:center}.vg-settings-btn{display:inline-flex;align-items:center;gap:6px;font-weight:600}.vg-settings-btn::after{content:"▾";display:inline-block;font-size:10px;color:var(--vg-muted);margin-left:2px;transition:transform .2s ease}.vg-settings-btn[aria-expanded=true]::after{transform:rotate(180deg)}.vg-settings-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;padding:14px;border-radius:10px;border:1px solid var(--vg-border);background:var(--vg-bg);color:var(--vg-fg);box-shadow:0 12px 32px rgba(15,23,42,.18);display:none;z-index:1200;animation:vg-dropdown-in .18s ease-out}.vg-settings-panel.open{display:block}.vg-settings-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.vg-settings-group:last-child{margin-bottom:0}.vg-settings-group label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--vg-muted)}.vg-settings-panel select{padding:8px 10px;border:1px solid var(--vg-border);border-radius:8px;background:var(--vg-bg);color:var(--vg-fg)}.vg-settings-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--vg-fg)}.vg-settings-checkbox input{accent-color:var(--vg-accent)}.vg-settings-divider{height:1px;background:var(--vg-border);margin:10px 0;opacity:.7}.vg-settings-meta{font-size:11px;color:var(--vg-muted);line-height:1.4}@media (max-width:680px){.vg-toolbar-actions{width:100%;justify-content:flex-start}.vg-settings-panel{right:auto;left:0;width:min(260px,90vw)}}.vg-filter{display:flex;gap:0;align-items:stretch;position:relative;background:var(--vg-bg);border-radius:8px;border:1px solid var(--vg-border);transition:all .2s ease}.vg-filter:hover{border-color:var(--vg-accent);box-shadow:0 2px 8px rgba(0,0,0,.08)}.vg-filter:focus-within{border-color:var(--vg-accent);box-shadow:0 0 0 3px var(--vg-accent-weak)}.vg-filter-input{padding:10px 14px;border:none;border-radius:8px 0 0 8px;outline:0;min-width:250px;flex:1;font-size:14px;background:0 0;color:var(--vg-fg);transition:background-color .2s ease}.vg-filter-input::placeholder{color:var(--vg-muted)}.vg-filter-input:focus{background:var(--vg-surface-1)}.vg-regex{color:var(--vg-muted);display:inline-flex;gap:6px;align-items:center}.vg-error{color:#ef4444;font-size:12px;margin-top:6px;padding:6px 12px;background:#fef2f2;border-radius:6px;border:1px solid #fecaca}.vg-filter-mode{position:relative;display:flex;align-items:stretch}.vg-filter-mode-btn{padding:10px 14px;border:none;background:#f8f9fa;border-radius:0 8px 8px 0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;transition:all .2s ease;min-width:110px;justify-content:space-between;user-select:none;position:relative;color:var(--vg-fg);text-transform:uppercase;letter-spacing:.3px}.vg-filter-mode-btn:hover{background:#e9ecef}.vg-filter-mode-btn:active{background:#dee2e6}.vg-filter-mode-btn::before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:1px;background:var(--vg-border)}.vg-filter-mode-btn::after{content:"⌄";font-size:12px;color:var(--vg-muted);transition:transform .2s ease;font-weight:400}.vg-filter-mode.open .vg-filter-mode-btn{background:var(--vg-accent);color:#fff}.vg-filter-mode.open .vg-filter-mode-btn::after{transform:rotate(180deg);color:#fff}.vg-filter-mode-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1px solid var(--vg-border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:1000;min-width:180px;display:none;overflow:hidden;animation:vg-dropdown-in .15s ease-out}.vg-filter-mode.open .vg-filter-mode-dropdown{display:block}@keyframes vg-dropdown-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.vg-filter-mode-option{padding:12px 16px;cursor:pointer;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:500;transition:all .15s ease;color:var(--vg-fg);position:relative}.vg-filter-mode-option:last-child{border-bottom:none}.vg-filter-mode-option:hover{background:#f8f9fa;color:var(--vg-accent)}.vg-filter-mode-option.active{background:var(--vg-accent);color:#fff;font-weight:600}.vg-filter-mode-option.active::after{content:"✓";font-size:14px;font-weight:600}.vg-tree-filter-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--vg-border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:999;max-height:400px;overflow:hidden;display:none;min-width:350px;animation:vg-tree-panel-in .2s ease-out}.vg-tree-filter-panel.show{display:block}@keyframes vg-tree-panel-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.vg-tree-filter-header{padding:16px 20px;border-bottom:1px solid #e2e8f0;font-weight:600;font-size:14px;color:var(--vg-fg);background:#f8f9fa;border-radius:8px 8px 0 0;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px}.vg-tree-filter-header::before{content:"🔍";font-size:16px}.vg-tree-filter-column{border-bottom:1px solid #f1f5f9;transition:background-color .15s ease}.vg-tree-filter-column:last-child{border-bottom:none}.vg-tree-filter-column:hover{background:#fafbfc}.vg-tree-filter-column-name{font-weight:600;font-size:13px;padding:14px 20px;color:var(--vg-fg);cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .15s ease;background:#fff;position:relative}.vg-tree-filter-column-name:hover{background:#f8f9fa;color:var(--vg-accent)}.vg-tree-filter-column-name::before{content:"▶";font-size:10px;transition:transform .2s ease;color:var(--vg-muted);width:12px;text-align:center}.vg-tree-filter-column.expanded .vg-tree-filter-column-name::before{transform:rotate(90deg);color:var(--vg-accent)}.vg-tree-filter-column.expanded .vg-tree-filter-column-name{background:#f8f9fa;border-bottom:1px solid #e2e8f0;color:var(--vg-accent);font-weight:700}.vg-tree-filter-values{display:none!important;background:#fafbfc;max-height:200px;overflow-y:auto;border-top:1px solid #e2e8f0}.vg-tree-filter-column.expanded .vg-tree-filter-values{display:block!important}.vg-tree-filter-value{padding:10px 20px 10px 40px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:space-between;margin:0;transition:all .15s ease;border-left:2px solid transparent;position:relative}.vg-tree-filter-value:hover{background:#f1f5f9;border-left-color:var(--vg-accent)}.vg-tree-filter-value.selected{background:var(--vg-accent);color:#fff;border-left-color:var(--vg-accent);font-weight:600}.vg-tree-filter-value.selected::after{content:"✓";font-size:12px;font-weight:600}.vg-tree-filter-value-count{color:var(--vg-muted);font-size:10px;background:#e2e8f0;padding:2px 8px;border-radius:12px;min-width:20px;text-align:center;font-weight:600;border:1px solid #cbd5e1;transition:all .15s ease}.vg-tree-filter-value:hover .vg-tree-filter-value-count{background:var(--vg-accent);color:#fff;border-color:var(--vg-accent)}.vg-groupby select,.vg-pagesize select{padding:8px 10px;border:1px solid var(--vg-border);border-radius:8px;background:var(--vg-bg);color:var(--vg-fg)}.vg-export{display:inline-flex;gap:8px;align-items:center}.vg-export select{padding:8px 10px;border:1px solid var(--vg-border);border-radius:8px;background:var(--vg-bg);color:var(--vg-fg)}.vg-btn,.vg-export-btn,.vg-group .vg-group-header,.vg-page-btn{transition:box-shadow .15s ease,border-color .15s ease,background-color .15s ease}.vg-export-btn{padding:8px 12px;border:1px solid var(--vg-border);background:linear-gradient(#fff,#fafafa);border-radius:8px;cursor:pointer}.vg-export-btn:hover{border-color:var(--vg-accent);box-shadow:0 0 0 3px var(--vg-accent-weak)}.vg-export-btn:active{background:linear-gradient(#f7f7f7,#fff)}.vg-table-wrap{overflow:auto;border:1px solid var(--vg-border);border-top:none}.vg-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--vg-bg)}.vg-table thead{background:var(--vg-surface-1);position:sticky;top:0;z-index:1}.vg-th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--vg-border);white-space:nowrap;user-select:none}.vg-th.vg-sortable{cursor:pointer;position:relative;padding-right:24px}.vg-th.vg-sortable::after{content:'⇵';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--vg-muted)}.vg-th.vg-asc::after{content:'▲';color:var(--vg-accent)}.vg-th.vg-desc::after{content:'▼';color:var(--vg-accent)}.vg-td{padding:10px 12px;border-bottom:1px solid var(--vg-border);vertical-align:middle}.vg-tr:hover{background:var(--vg-hover)}.vg-striped .vg-table tbody tr:nth-child(2n){background:var(--vg-surface-1)}.vg-theme-dark-base.vg-striped .vg-table tbody tr:nth-child(2n){background:rgba(255,255,255,.04)}.vg-num{text-align:right;font-variant-numeric:tabular-nums}.vg-img{display:block;max-height:36px;object-fit:contain}.vg-link{color:var(--vg-accent);text-decoration:none}.vg-link:hover{text-decoration:underline}.vg-btn{padding:8px 12px;border:1px solid var(--vg-border);background:linear-gradient(#fff,#fafafa);border-radius:8px;cursor:pointer}.vg-btn:hover{border-color:var(--vg-accent);box-shadow:0 0 0 3px var(--vg-accent-weak)}.vg-btn:active{background:linear-gradient(#f7f7f7,#fff)}.vg-pager{border:1px solid var(--vg-border);border-top:none;border-radius:0 0 var(--vg-radius) var(--vg-radius);background:var(--vg-bg);box-shadow:var(--vg-shadow)}.vg-pager-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px}.vg-pager-row{gap:8px}.vg-pager-center{flex:1;display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap}.vg-pager .vg-cols{position:relative}.vg-pager .vg-cols-list{max-height:240px;overflow:auto;background:var(--vg-bg);border:1px solid var(--vg-border);border-radius:8px;padding:6px}.vg-pager-left,.vg-pager-right{display:inline-flex;gap:6px}.vg-page-btn{padding:6px 10px;border:1px solid var(--vg-border);background:linear-gradient(#fff,#fafafa);border-radius:8px;cursor:pointer}.vg-page-btn[disabled]{opacity:.5;cursor:not-allowed}.vg-page-btn:hover:not([disabled]){border-color:var(--vg-accent);box-shadow:0 0 0 3px var(--vg-accent-weak)}.vg-page-btn:active:not([disabled]){background:linear-gradient(#f7f7f7,#fff)}.vg-page-info{color:var(--vg-muted)}.vg-total{color:var(--vg-muted)}.vg-empty{padding:24px;text-align:center;color:var(--vg-muted)}.vg-group{background:var(--vg-surface-group)}.vg-group .vg-group-header{display:inline-flex;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--vg-border);background:linear-gradient(#fff,#fafafa);border-radius:999px;cursor:pointer;margin:6px 0}.vg-group .vg-group-header:hover{border-color:var(--vg-accent);box-shadow:0 0 0 3px var(--vg-accent-weak)}.vg-group .vg-group-header:active{background:linear-gradient(#f7f7f7,#fff)}.vg-group .vg-group-header .vg-caret{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--vg-accent);transform:rotate(0);transition:transform .15s ease}.vg-group .vg-group-header.is-collapsed .vg-caret{transform:rotate(-90deg)}.vg-agg{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:10px}.vg-chip{background:var(--vg-chip-bg);border:1px solid var(--vg-border);padding:4px 8px;border-radius:999px;color:#374151}.vg-tree-th-pad{display:inline-block;width:18px}.vg-tree-cell{white-space:nowrap}.vg-tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:6px;border:none;background:0 0;cursor:pointer;padding:0}.vg-tree-toggle.is-leaf{cursor:default;opacity:.5}.vg-tree-toggle .vg-caret{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--vg-accent);transform:rotate(0);transition:transform .15s ease}.vg-tree-toggle.is-expanded .vg-caret{transform:rotate(180deg)}.vg-tree-spacer{display:inline-block;width:8px;height:8px}.vg-spinner{width:12px;height:12px;border:2px solid var(--vg-border);border-top-color:var(--vg-accent);border-radius:50%;animation:vgspin .8s linear infinite}@keyframes vgspin{to{transform:rotate(360deg)}}.vg-compact .vg-btn,.vg-compact .vg-export select,.vg-compact .vg-export-btn,.vg-compact .vg-filter-input,.vg-compact .vg-group .vg-group-header,.vg-compact .vg-groupby select,.vg-compact .vg-page-btn,.vg-compact .vg-pagesize select{padding:4px 8px;border-radius:6px}.vg-compact .vg-toolbar{padding:6px 8px}.vg-compact .vg-toolbar-row{gap:8px}.vg-compact .vg-td{padding:6px 8px}.vg-compact .vg-th{padding:6px 8px}.vg-compact .vg-img{max-height:28px}.vg-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--vg-border);background:var(--vg-chip-bg);color:inherit}.vg-badge.ok{background:#e6f9ed;border-color:#bbf7d0;color:#166534}.vg-badge.low{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.vg-badge.out{background:#fef2f2;border-color:#fecaca;color:#991b1b}.vg-resize-handle{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;background:0 0;border-right:2px solid transparent;transition:border-color .2s ease}.vg-resize-handle:hover{border-right-color:var(--vg-accent)}.vg-th{position:relative}body.vg-resizing{cursor:col-resize!important;user-select:none!important}.vg-edit-input{width:100%;padding:4px 6px;border:2px solid var(--vg-accent);border-radius:4px;background:var(--vg-bg);color:var(--vg-fg);font:inherit;outline:0}.vg-progress{position:relative;height:20px;background:var(--vg-border);border-radius:10px;overflow:hidden;min-width:60px}.vg-progress-bar{height:100%;background:linear-gradient(90deg,var(--vg-accent),#60a5fa);transition:width .3s ease}.vg-progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:500;color:var(--vg-fg);text-shadow:0 1px 2px rgba(0,0,0,.1)}.vg-rating{color:#fbbf24;font-size:16px;letter-spacing:1px}.vg-badge-default{background:var(--vg-chip-bg);border-color:var(--vg-border)}.vg-badge-success{background:#e6f9ed;border-color:#bbf7d0;color:#166534}.vg-badge-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.vg-badge-error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.vg-badge-info{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.vg-color-indicator{width:24px;height:24px;border-radius:50%;border:2px solid var(--vg-border);display:inline-block;vertical-align:middle}.vg-context-menu{background:var(--vg-bg);border:1px solid var(--vg-border);border-radius:8px;box-shadow:var(--vg-shadow);min-width:120px;padding:4px 0}.vg-context-menu-item{padding:8px 12px;cursor:pointer;color:var(--vg-fg);transition:background-color .15s ease}.vg-context-menu-item:hover{background:var(--vg-hover)}.vg-td:focus,.vg-th:focus{outline:2px solid var(--vg-accent);outline-offset:-2px;background:var(--vg-accent-weak)}.vg-pivot-controls{background:var(--vg-bg);border:1px solid var(--vg-border);border-radius:8px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.vg-pivot-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--vg-border)}.vg-pivot-header-actions{display:flex;gap:8px}.vg-pivot-title h3{margin:0 0 4px 0;color:var(--vg-fg);font-size:18px;font-weight:600}.vg-pivot-title p{margin:0;color:var(--vg-muted);font-size:14px}.vg-pivot-exit{background:#ff4757!important;color:#fff!important;border:none!important;padding:8px 16px!important;border-radius:6px!important;cursor:pointer!important;font-weight:500!important;transition:all .2s ease!important}.vg-pivot-exit:hover{background:#ff3838!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,71,87,.3)}.vg-pivot-workspace{display:flex;gap:20px}.vg-pivot-controls.collapsed .vg-pivot-workspace{display:none}.vg-pivot-controls.collapsed .vg-pivot-header{margin-bottom:0;padding-bottom:0;border-bottom:none}.vg-pivot-fields-panel{flex:0 0 280px;background:var(--vg-surface-1);border-radius:8px;padding:16px;border:1px solid var(--vg-border)}.vg-pivot-fields-panel h4{margin:0 0 12px 0;color:var(--vg-fg);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.vg-pivot-available-fields{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.vg-pivot-field-chip{display:flex;align-items:center;gap:8px;background:var(--vg-bg);border:1px solid var(--vg-border);border-radius:6px;padding:8px 12px;cursor:grab;transition:all .2s ease;user-select:none}.vg-pivot-field-chip:hover{border-color:var(--vg-primary);box-shadow:0 2px 8px rgba(59,130,246,.15);transform:translateY(-1px)}.vg-pivot-field-chip.vg-dragging{opacity:.5;transform:rotate(5deg);cursor:grabbing}.vg-field-icon{font-size:16px;width:20px;text-align:center}.vg-field-label{flex:1;font-weight:500;color:var(--vg-fg)}.vg-field-type{font-size:11px;background:var(--vg-surface-1);color:var(--vg-muted);padding:2px 6px;border-radius:3px;text-transform:uppercase;font-weight:600}.vg-pivot-config-panel{flex:1}.vg-pivot-drop-zones{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.vg-pivot-zone{background:var(--vg-bg);border:2px dashed var(--vg-border);border-radius:8px;padding:16px;min-height:120px;transition:all .2s ease}.vg-pivot-zone.vg-drop-active{border-color:var(--vg-primary);background:rgba(59,130,246,.05);border-style:solid;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.vg-pivot-zone-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--vg-border)}.vg-pivot-zone-icon{font-size:18px}.vg-pivot-zone-title{font-weight:600;color:var(--vg-fg);font-size:14px}.vg-pivot-zone-hint{font-size:12px;color:var(--vg-muted);margin-left:auto}.vg-pivot-field-list{min-height:60px;display:flex;flex-direction:column;gap:8px}.vg-pivot-field-item{background:var(--vg-bg);border:1px solid var(--vg-border);border-radius:6px;padding:8px;display:flex;align-items:center;justify-content:space-between;cursor:grab;transition:all .2s ease}.vg-pivot-field-item:hover{border-color:var(--vg-primary);box-shadow:0 2px 4px rgba(59,130,246,.1)}.vg-pivot-field-item.vg-dragging{opacity:.5;transform:rotate(3deg);cursor:grabbing}.vg-field-item-content{display:flex;align-items:center;gap:8px;flex:1}.vg-field-actions{display:flex;gap:4px}.vg-field-actions button{width:24px;height:24px;border:none;border-radius:4px;background:var(--vg-surface-1);color:var(--vg-muted);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.vg-field-actions button:hover:not(:disabled){background:var(--vg-primary);color:#fff}.vg-field-actions button:disabled{opacity:.3;cursor:not-allowed}.vg-field-remove{background:#dc3545!important;color:#fff!important}.vg-field-remove:hover{background:#c82333!important}.vg-aggregation-select,.vg-filter-operator{background:var(--vg-surface-1);border:1px solid var(--vg-border);border-radius:4px;padding:4px 8px;font-size:12px;margin-left:8px;color:var(--vg-fg)}.vg-filter-value{background:var(--vg-surface-1);border:1px solid var(--vg-border);border-radius:4px;padding:4px 8px;font-size:12px;margin-left:4px;width:100px;color:var(--vg-fg)}.vg-pivot-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;color:var(--vg-muted);text-align:center}.vg-empty-icon{font-size:32px;margin-bottom:8px;opacity:.5}.vg-empty-text{font-size:14px;font-weight:500}.vg-pivot-actions{display:flex;gap:12px;padding-top:16px;border-top:1px solid var(--vg-border)}.vg-pivot-actions .vg-btn{flex:1;padding:12px 16px;border-radius:6px;border:1px solid var(--vg-border);background:var(--vg-bg);color:var(--vg-fg);cursor:pointer;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.vg-pivot-refresh{background:#28a745!important;color:#fff!important;border-color:#28a745!important}.vg-pivot-refresh:hover{background:#218838!important;border-color:#1e7e34!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(40,167,69,.3)}.vg-pivot-clear{background:#ffc107!important;color:#212529!important;border-color:#ffc107!important}.vg-pivot-clear:hover{background:#e0a800!important;border-color:#d39e00!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,193,7,.3)}.vg-pivot-export{background:#17a2b8!important;color:#fff!important;border-color:#17a2b8!important}.vg-pivot-export:hover{background:#138496!important;border-color:#117a8b!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(23,162,184,.3)}@media (max-width:768px){.vg-container{font-size:13px}.vg-toolbar{padding:8px}.vg-toolbar-row{gap:8px;flex-wrap:wrap}.vg-filter{flex:1;min-width:0}.vg-filter-input{min-width:0;padding:8px 12px;font-size:16px}.vg-filter-mode-btn{padding:8px 12px;min-width:80px;font-size:12px}.vg-filter-mode-dropdown{left:0;right:0;min-width:0;width:auto}.vg-filter-mode-option{padding:14px 16px;font-size:14px}.vg-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.vg-table{min-width:100%}.vg-table td,.vg-table th{padding:8px 12px;white-space:nowrap;min-width:80px}.vg-pager{padding:12px 8px;flex-wrap:wrap;gap:8px}.vg-pager-info{order:1;flex:1 0 100%;text-align:center;margin-bottom:8px}.vg-pager-controls{order:2;flex:1;justify-content:center}.vg-pager-select{order:3;flex:0 0 auto}.vg-pager button{min-width:44px;min-height:44px;padding:8px}.vg-tree-filter-panel{left:0;right:0;max-width:none;width:auto;max-height:70vh}.vg-tree-filter-column-name{padding:12px 16px;font-size:14px}.vg-tree-filter-value{padding:12px 16px;font-size:14px}.vg-btn,button{min-height:44px;padding:10px 16px;font-size:14px}.vg-context-menu{min-width:200px;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.15)}.vg-context-menu li{padding:12px 16px;font-size:14px}}@media (max-width:1024px){.vg-pivot-workspace{flex-direction:column}.vg-pivot-fields-panel{flex:none}.vg-pivot-drop-zones{grid-template-columns:1fr;gap:12px}.vg-pivot-actions{flex-direction:column;gap:8px}.vg-pivot-field-item{font-size:13px;padding:8px 12px}}@media (hover:none) and (pointer:coarse){.vg-table td,.vg-table th{position:relative}.vg-sortable:hover::after{display:none}.vg-sortable::after{padding:4px}.vg-table tbody tr:active{background-color:var(--vg-accent-weak)!important}.vg-btn:active,button:active{transform:scale(.98)}}.vg-touch-active{background-color:var(--vg-accent-weak)!important;transform:scale(.98);transition:none!important}.vg-table-wrapper{scrollbar-width:thin;scrollbar-color:var(--vg-border) transparent}.vg-table-wrapper::-webkit-scrollbar{height:8px;width:8px}.vg-table-wrapper::-webkit-scrollbar-track{background:0 0}.vg-table-wrapper::-webkit-scrollbar-thumb{background-color:var(--vg-border);border-radius:4px}.vg-table-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--vg-muted)}.vg-theme-dark-base .vg-pivot-controls{background:var(--vg-bg);border-color:var(--vg-border)}.vg-theme-dark-base .vg-pivot-field-section{background:var(--vg-surface-1);border-color:var(--vg-border)}.vg-theme-dark-base .vg-pivot-field-item{background:var(--vg-bg);border-color:var(--vg-border)}.vg-theme-dark-base .vg-pivot-agg-select,.vg-theme-dark-base .vg-pivot-field-select{background:var(--vg-bg);border-color:var(--vg-border);color:var(--vg-fg)}.vg-theme-dark-base .vg-settings-panel{background:var(--vg-surface-1);border-color:var(--vg-border);box-shadow:0 18px 36px rgba(0,0,0,.45)}.vg-theme-dark-base .vg-settings-divider{background:var(--vg-border);opacity:.4}.vg-theme-dark-base .vg-settings-panel select{background:var(--vg-bg);border-color:var(--vg-border);color:var(--vg-fg)}.vg-theme-dark-base .vg-settings-group label{color:var(--vg-muted)}.vg-theme-dark-base .vg-filter{background:var(--vg-surface-1);border-color:var(--vg-border)}.vg-theme-dark-base .vg-filter:hover{border-color:var(--vg-accent);box-shadow:0 2px 8px rgba(0,0,0,.3)}.vg-theme-dark-base .vg-filter:focus-within{border-color:var(--vg-accent);box-shadow:0 0 0 3px var(--vg-accent-weak)}.vg-theme-dark-base .vg-filter-input{background:0 0;color:var(--vg-fg)}.vg-theme-dark-base .vg-filter-input::placeholder{color:var(--vg-muted)}.vg-theme-dark-base .vg-filter-input:focus{background:var(--vg-surface-2)}.vg-theme-dark-base .vg-filter-mode-btn{background:var(--vg-surface-2);color:var(--vg-fg)}.vg-theme-dark-base .vg-filter-mode-btn::before{background:var(--vg-border)}.vg-theme-dark-base .vg-filter-mode-btn:hover{background:var(--vg-surface-1)}.vg-theme-dark-base .vg-filter-mode.open .vg-filter-mode-btn{background:var(--vg-accent);color:#fff}.vg-theme-dark-base .vg-filter-mode-dropdown,.vg-theme-dark-base .vg-tree-filter-panel{background:var(--vg-surface-1);border-color:var(--vg-border);box-shadow:0 4px 16px rgba(0,0,0,.4)}.vg-theme-dark-base .vg-filter-mode-option{color:var(--vg-fg);border-bottom-color:var(--vg-border)}.vg-theme-dark-base .vg-filter-mode-option:hover{background:var(--vg-surface-2)}.vg-theme-dark-base .vg-filter-mode-option.active{background:var(--vg-accent)}.vg-theme-dark-base .vg-tree-filter-header{background:var(--vg-surface-2);color:var(--vg-fg);border-bottom-color:var(--vg-border)}.vg-theme-dark-base .vg-tree-filter-column{border-bottom-color:var(--vg-border)}.vg-theme-dark-base .vg-tree-filter-column:hover{background:var(--vg-surface-2)}.vg-theme-dark-base .vg-tree-filter-column-name{color:var(--vg-fg);background:var(--vg-surface-1)}.vg-theme-dark-base .vg-tree-filter-column-name:hover{background:var(--vg-surface-2)}.vg-theme-dark-base .vg-tree-filter-column.expanded .vg-tree-filter-column-name{background:var(--vg-surface-2);border-bottom-color:var(--vg-border)}.vg-theme-dark-base .vg-tree-filter-values{background:var(--vg-bg);border-top-color:var(--vg-border)}.vg-theme-dark-base .vg-tree-filter-value:hover{background:var(--vg-surface-2)}.vg-theme-dark-base .vg-tree-filter-value.selected{background:var(--vg-accent)}.vg-theme-dark-base .vg-tree-filter-value-count{background:var(--vg-surface-2);color:var(--vg-muted);border-color:var(--vg-border)}.vg-theme-dark-base .vg-tree-filter-value:hover .vg-tree-filter-value-count{background:var(--vg-accent);color:#fff;border-color:var(--vg-accent)}.vg-theme-dark-base .vg-error{color:#f87171;background:rgba(248,113,113,.1);border-color:#f87171}