:root{--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--gray-950:#030712;--bg:#fff;--bg-subtle:#fafafb;--fg:#111827;--fg-muted:#6b7280;--fg-subtle:#9ca3af;--card:#fff;--muted:#f3f4f6;--muted-fg:#6b7280;--border:#e5e7eb;--border-row:#f0f1f4;--border-strong:#d1d5db;--hover:#f5f6f8;--active:#e5e7eb;--side:#fbfbfd;--accent:#5b4bff;--accent-hover:#4636e0;--accent-fg:#fff;--accent-soft:#f1efff;--accent-ink:#4636e0;--ring:0 0 0 3px rgba(91,75,255,.2);--info:#2563eb;--info-soft:#eff6ff;--success:#0e9f6e;--success-soft:#ecfdf5;--warning:#d97706;--warning-soft:#fffbeb;--danger:#dc2626;--danger-soft:#fef2f2;--font-sans:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:18px;--text-2xl:20px;--text-3xl:24px;--text-4xl:32px;--text-5xl:44px;--text-6xl:56px;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-0.015em;--tracking-snug:-0.005em;--tracking-normal:0;--tracking-wide:0.06em;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:48px;--space-12:64px;--radius-none:0;--radius-sm:3px;--radius:5px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-pill:999px;--shadow-sm:0 1px 2px 0 rgba(17,24,39,.05);--shadow:0 1px 3px 0 rgba(17,24,39,.07),0 1px 2px -1px rgba(17,24,39,.05);--shadow-md:0 4px 12px -2px rgba(17,24,39,.08),0 2px 4px -2px rgba(17,24,39,.05);--shadow-lg:0 12px 32px -4px rgba(17,24,39,.12),0 4px 8px -4px rgba(17,24,39,.06);--duration-instant:100ms;--duration-fast:150ms;--duration-base:200ms;--duration-slow:300ms;--ease-standard:cubic-bezier(0.4,0,0.2,1);--ease-decelerate:cubic-bezier(0,0,0.2,1);--ease-accelerate:cubic-bezier(0.4,0,1,1);--row-h:34px;--input-h:28px;--btn-h:28px}[data-theme=dark]{--bg:#0b0d12;--bg-subtle:#111318;--fg:#f3f4f6;--fg-muted:#9ca3af;--fg-subtle:#6b7280;--card:#111318;--muted:#1a1d24;--muted-fg:#9ca3af;--border:#23262e;--border-row:#1a1d24;--border-strong:#313540;--hover:#1a1d24;--active:#23262e;--side:#0e1015;--accent:#7c6fff;--accent-hover:#978cff;--accent-soft:#1d1a3d;--accent-ink:#b3aaff;--ring:0 0 0 3px rgba(124,111,255,.3);--info-soft:#0c1a33;--success-soft:#062a1f;--warning-soft:#2b1d07;--danger-soft:#2c0d10;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow:0 1px 3px 0 rgba(0,0,0,.4);--shadow-md:0 4px 12px -2px rgba(0,0,0,.5);--shadow-lg:0 12px 32px -4px rgba(0,0,0,.6)}[data-density=regular]{--row-h:40px;--input-h:34px;--btn-h:34px}[data-density=comfortable]{--row-h:48px;--input-h:40px;--btn-h:40px}*{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:var(--font-sans)}body{margin:0;color:var(--fg);font-size:var(--text-md);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;letter-spacing:var(--tracking-snug)}h1{font-size:var(--text-4xl)}h1,h2{letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h3,h4{line-height:var(--leading-snug)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h5,h6{line-height:var(--leading-snug)}h6{font-size:var(--text-md)}p{margin:0}small{font-size:var(--text-sm);color:var(--fg-muted)}code,kbd,pre{font-family:var(--font-mono);font-size:.92em}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.btn{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:var(--space-2);height:var(--btn-h);padding:0 14px;border:1px solid transparent;border-radius:var(--radius-pill);font-size:var(--text-base);font-weight:500;background:var(--accent);color:var(--accent-fg);-webkit-box-shadow:none;box-shadow:none;white-space:nowrap;-webkit-transition:opacity var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard);transition:opacity var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard)}.btn:hover{background:var(--accent-hover)}.btn:active{opacity:.9}.btn:focus-visible{outline:none;-webkit-box-shadow:var(--ring);box-shadow:var(--ring)}.btn--ink{background:var(--fg);color:var(--bg);-webkit-box-shadow:none;box-shadow:none}.btn--ink:hover{background:var(--fg);opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--secondary{background:var(--card);color:var(--fg);border-color:var(--border-strong)}.btn--secondary:hover{background:var(--hover);opacity:1}.btn--ghost{background:transparent;color:var(--fg);-webkit-box-shadow:none;box-shadow:none}.btn--ghost:hover{background:var(--hover);opacity:1}.btn--accent{background:var(--accent);color:var(--accent-fg)}.btn--destructive{background:var(--danger);color:#fff;-webkit-box-shadow:none;box-shadow:none}.btn--destructive:hover{background:var(--danger);opacity:.9}.btn--sm{height:24px;padding:0 10px;font-size:var(--text-sm)}.btn--lg{height:36px;padding:0 18px;font-size:var(--text-md)}.btn--icon{width:var(--btn-h);padding:0}.input,.select,.textarea{width:100%;height:var(--input-h);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--fg);font:inherit;font-size:var(--text-base);outline:none;-webkit-transition:border-color var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);-webkit-box-shadow:var(--ring);box-shadow:var(--ring)}.textarea{height:auto;min-height:80px;padding:8px 12px;resize:vertical;line-height:var(--leading-normal)}.label{display:block;font-size:var(--text-base);font-weight:500;margin-bottom:6px}.helper{font-size:var(--text-sm);color:var(--fg-muted);margin-top:4px}.helper--error{color:var(--danger)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.card--elevated{border:0;-webkit-box-shadow:var(--shadow-md);box-shadow:var(--shadow-md)}.card-header{padding:18px 20px 12px}.card-title{font-size:var(--text-md);font-weight:600;margin:0 0 2px}.card-desc{font-size:var(--text-base);color:var(--fg-muted);margin:0}.card-body{padding:0 20px 20px}.card-footer{padding:14px 20px;border-top:1px solid var(--border);display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px}.badge,.card-footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.badge{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--muted);color:var(--fg);font-size:var(--text-xs);font-weight:500;border:1px solid var(--border)}.badge--accent{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}.badge--info{background:var(--info-soft);color:var(--info);border-color:transparent}.badge--success{background:var(--success-soft);color:var(--success);border-color:transparent}.badge--warning{background:var(--warning-soft);color:var(--warning);border-color:transparent}.badge--danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge--outline{background:transparent}.switch{position:relative;width:36px;height:20px;border:0;padding:0;border-radius:var(--radius-pill);background:var(--border-strong);cursor:pointer;-webkit-transition:background var(--duration-fast) var(--ease-standard);transition:background var(--duration-fast) var(--ease-standard)}.switch[aria-checked=true]{background:var(--accent)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:#fff;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.25);box-shadow:0 1px 2px rgba(0,0,0,.25);-webkit-transition:-webkit-transform var(--duration-fast) var(--ease-standard);transition:-webkit-transform var(--duration-fast) var(--ease-standard);transition:transform var(--duration-fast) var(--ease-standard);transition:transform var(--duration-fast) var(--ease-standard),-webkit-transform var(--duration-fast) var(--ease-standard)}.switch[aria-checked=true]:after{-webkit-transform:translateX(16px);transform:translateX(16px)}.kbd{font-family:var(--font-mono);font-size:var(--text-xs);padding:2px 6px;border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);color:var(--fg-muted)}.kbd,.tabs{background:var(--muted)}.tabs{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:4px;border-radius:var(--radius-md);gap:2px}.tabs button{height:30px;padding:0 14px;border:0;border-radius:var(--radius);background:transparent;color:var(--fg-muted);font:inherit;font-size:var(--text-base);font-weight:500;white-space:nowrap}.tabs button[aria-selected=true]{background:var(--card);color:var(--fg);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm)}.avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-weight:600;font-size:var(--text-sm);-ms-flex-negative:0;flex-shrink:0}.avatar--sm{width:24px;height:24px;font-size:10px}.avatar--lg{width:40px;height:40px;font-size:var(--text-md)}.avatar--xl{width:56px;height:56px;font-size:var(--text-lg)}.progress{height:6px;background:var(--muted);overflow:hidden}.progress,.progress>div{border-radius:var(--radius-pill)}.progress>div{height:100%;background:var(--accent);-webkit-transition:width var(--duration-slow) var(--ease-standard);transition:width var(--duration-slow) var(--ease-standard)}.skeleton{background:linear-gradient(90deg,var(--muted) 0,var(--hover) 50%,var(--muted) 100%);background-size:200% 100%;border-radius:var(--radius);-webkit-animation:skeleton-shimmer 1.4s linear infinite;animation:skeleton-shimmer 1.4s linear infinite}@-webkit-keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tbl{width:100%;border-collapse:collapse;font-size:var(--text-base)}.tbl th{text-align:left;font-weight:600;color:var(--fg-muted);font-size:10.5px;text-transform:uppercase;letter-spacing:var(--tracking-wide);padding:8px 14px;border-bottom:1px solid var(--border);background:var(--bg-subtle)}.tbl td{height:var(--row-h);padding:0 14px;border-bottom:1px solid var(--border-row)}.tbl tr:last-child td{border-bottom:0}.tbl tr:hover td{background:var(--hover)}.appbar{display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--space-4);height:48px;padding:0 16px;background:var(--bg);border-bottom:1px solid var(--border)}.appbar,.appbar-brand{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.appbar-brand{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:8px;font-weight:600;font-size:var(--text-md);letter-spacing:var(--tracking-snug)}.appbar-brand-mark{width:22px;height:22px;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-fg);display:inline-grid;place-items:center;font-size:11px;font-weight:700}.appbar-search{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:480px}.appbar-search .input{padding-left:32px;height:32px;background:var(--muted);border-color:transparent}.appbar-search .input:focus{background:var(--card);border-color:var(--border-strong)}.appbar-search-icon{left:10px;color:var(--fg-subtle);pointer-events:none}.appbar-search-icon,.appbar-search-kbd{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.appbar-search-kbd{right:8px}.appbar-actions{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:4px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:auto}.appbar-divider{width:1px;height:20px;background:var(--border);margin:0 4px}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border:0;background:transparent;color:var(--fg-muted);border-radius:var(--radius);-webkit-transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);position:relative}.icon-btn:hover{background:var(--hover);color:var(--fg)}.icon-btn[aria-pressed=true]{background:var(--muted);color:var(--fg)}.icon-btn-dot{position:absolute;top:6px;right:7px;width:6px;height:6px;border-radius:999px;background:var(--accent);border:2px solid var(--bg)}.sidenav{width:240px;-ms-flex-negative:0;flex-shrink:0;background:var(--side);border-right:1px solid var(--border);padding:12px 8px;font-size:var(--text-base)}.sidenav,.sidenav-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sidenav-group{gap:1px;padding:4px 0}.sidenav-group+.sidenav-group{border-top:1px solid var(--border);margin-top:8px;padding-top:12px}.sidenav-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--fg-subtle);padding:6px 10px 4px}.sidenav-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;height:28px;padding:0 10px;border-radius:var(--radius);color:var(--fg-muted);text-decoration:none;font-weight:500;-webkit-transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.sidenav-item:hover{background:var(--hover);color:var(--fg)}.sidenav-item[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink)}.sidenav-item .sidenav-icon{width:16px;height:16px;-ms-flex-negative:0;flex-shrink:0;opacity:.9}.sidenav-item .sidenav-count{margin-left:auto;font-size:var(--text-xs);color:var(--fg-subtle);font-variant-numeric:tabular-nums}.sidenav-item[aria-current=page] .sidenav-count{color:var(--accent-ink);opacity:.7}.sidenav-footer{margin-top:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;padding:12px 10px 4px;border-top:1px solid var(--border)}.sidenav-footer .avatar{width:28px;height:28px;font-size:11px}.sidenav-footer-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;line-height:1.2;min-width:0}.sidenav-footer-name{font-size:var(--text-base);font-weight:500;color:var(--fg)}.sidenav-footer-meta{font-size:var(--text-xs);color:var(--fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabs--underline{gap:0;padding:0;border-radius:0;border-bottom:1px solid var(--border)}.tabs--underline,.tabs--underline button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;background:transparent}.tabs--underline button{position:relative;height:40px;padding:0 14px;color:var(--fg-muted);border:0;border-radius:0;font-weight:500;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;white-space:nowrap}.tabs--underline button:hover{color:var(--fg)}.tabs--underline button[aria-selected=true]{color:var(--fg);-webkit-box-shadow:none;box-shadow:none}.tabs--underline button[aria-selected=true]:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px 2px 0 0}.tabs--underline .tab-count{font-size:var(--text-xs);background:var(--muted);color:var(--fg-muted);padding:1px 6px;border-radius:var(--radius-pill);font-variant-numeric:tabular-nums}.tabs--underline button[aria-selected=true] .tab-count{background:var(--accent-soft);color:var(--accent-ink)}.tbl-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.tbl-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}.tbl-toolbar .input{height:32px}.tbl-toolbar .grow{-webkit-box-flex:1;-ms-flex:1;flex:1}.tbl-scroll{max-height:360px;overflow:auto}.tbl-scroll .tbl thead th{position:sticky;top:0;z-index:1}.tbl thead th.upper{background:var(--bg-subtle);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--fg-subtle)}.tbl th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tbl th.sortable .sort-icon{display:inline-block;vertical-align:-2px;margin-left:4px;opacity:.4}.tbl th[aria-sort=ascending] .sort-icon,.tbl th[aria-sort=descending] .sort-icon{opacity:1;color:var(--fg)}.tbl tr[aria-selected=true] td,.tbl tr[aria-selected=true]:hover td{background:var(--accent-soft)}.tbl td.tnum{font-variant-numeric:tabular-nums;text-align:right}.tbl td.shrink{width:1%;white-space:nowrap}.tbl-cell-user{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.tbl-cell-user,.tbl-cell-user-meta{display:-webkit-box;display:-ms-flexbox;display:flex}.tbl-cell-user-meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;line-height:1.25}.tbl-cell-user-name{font-weight:500}.tbl-cell-user-sub{font-size:var(--text-xs);color:var(--fg-muted)}.tbl--compact td{height:30px;padding:0 12px}.tbl--compact th{padding:6px 12px}.tbl-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--fg-muted)}.tbl-footer .grow{-webkit-box-flex:1;-ms-flex:1;flex:1}.delta{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:2px;font-size:var(--text-xs);font-weight:500;font-variant-numeric:tabular-nums}.delta--up{color:var(--success)}.delta--down{color:var(--danger)}.delta--flat{color:var(--fg-muted)}.cell-bar{position:relative;height:6px;border-radius:var(--radius-pill);background:var(--muted);overflow:hidden;min-width:80px}.cell-bar>div{height:100%;background:var(--accent);border-radius:inherit}.stat{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:6px;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0}.stat-label{font-size:var(--text-sm);color:var(--fg-muted);font-weight:500}.stat-value{font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums;line-height:1}.stat-foot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--fg-muted);margin-top:2px}.chart{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px 14px}.chart-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:10px;gap:12px}.chart-title{font-size:var(--text-md);font-weight:600}.chart-sub{font-size:var(--text-sm);color:var(--fg-muted)}.bar-chart{display:grid;grid-template-columns:repeat(var(--cols,12),1fr);gap:6px;-webkit-box-align:end;-ms-flex-align:end;align-items:end;height:140px;padding:6px 0}.bar-chart>.bar{background:var(--muted);border-radius:var(--radius-sm) var(--radius-sm) 0 0;position:relative;min-height:2px;-webkit-transition:background var(--duration-fast) var(--ease-standard);transition:background var(--duration-fast) var(--ease-standard)}.bar-chart>.bar.is-active,.bar-chart>.bar:hover{background:var(--accent)}.bar-chart-axis{display:grid;grid-template-columns:repeat(var(--cols,12),1fr);gap:6px;margin-top:6px;font-size:10px;color:var(--fg-muted)}.bar-chart-axis>span{text-align:center}.spark{display:block;width:100%;height:40px;overflow:visible}.spark path.area{fill:var(--accent-soft);stroke:none}.spark path.line{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.spark circle.dot{fill:var(--accent);stroke:var(--card);stroke-width:2}.line-chart{display:block;width:100%;height:200px}.line-chart .grid line{stroke:var(--border);stroke-width:1}.line-chart .axis text{fill:var(--fg-muted);font-size:10px;font-family:var(--font-sans)}.line-chart .series-line{fill:none;stroke:var(--accent);stroke-width:1.75;stroke-linejoin:round}.line-chart .series-area{fill:var(--accent-soft);opacity:.6}.line-chart .series-line.alt{stroke:var(--fg);stroke-dasharray:3 3}.donut-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:18px}.donut{width:120px;height:120px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.donut circle.track{fill:none;stroke:var(--muted);stroke-width:14}.donut circle.seg{fill:none;stroke-width:14;stroke-linecap:butt}.donut-legend{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:6px;font-size:var(--text-base)}.donut-legend,.donut-legend-row{display:-webkit-box;display:-ms-flexbox;display:flex}.donut-legend-row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.donut-legend-dot{width:8px;height:8px;border-radius:2px}.donut-legend-val{margin-left:auto;color:var(--fg-muted);font-variant-numeric:tabular-nums}.code-block{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;font-family:var(--font-mono);font-size:var(--text-base)}.code-block-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--border);background:var(--bg-subtle);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--fg-muted)}.code-block-head .lang{font-family:var(--font-mono);color:var(--fg);font-weight:500}.code-block-head .actions{margin-left:auto;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:2px}.code-block-body{display:-webkit-box;display:-ms-flexbox;display:flex;background:var(--card);overflow-x:auto;line-height:1.6}.code-block-gutter{-ms-flex-negative:0;flex-shrink:0;padding:12px 10px 12px 14px;text-align:right;color:var(--fg-subtle);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-right:1px solid var(--border);font-variant-numeric:tabular-nums;background:var(--bg-subtle)}.code-block-pre{margin:0;padding:12px 16px;white-space:pre;-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;color:var(--fg)}.tok-com{color:var(--fg-subtle);font-style:italic}.tok-key{color:var(--fg);font-weight:600}.tok-str{color:var(--accent)}.tok-num{color:var(--info)}.tok-fn{color:var(--fg);font-weight:500}.tok-pun{color:var(--fg-muted)}.tok-typ{color:var(--fg);font-weight:500;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}.tok-tag{color:var(--fg);font-weight:600}.tok-attr{color:var(--info)}.editor{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;font-family:var(--font-mono);font-size:var(--text-base);-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.editor,.editor-tabs{display:-webkit-box;display:-ms-flexbox;display:flex}.editor-tabs{gap:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background:var(--bg-subtle);border-bottom:1px solid var(--border);font-family:var(--font-sans);font-size:var(--text-sm);overflow-x:auto}.editor-tab{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:8px 12px;color:var(--fg-muted);border-right:1px solid var(--border);cursor:pointer;white-space:nowrap;position:relative}.editor-tab[aria-selected=true]{color:var(--fg);background:var(--card)}.editor-tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--accent)}.editor-tab .dot-modified{width:6px;height:6px;border-radius:999px;background:var(--fg-muted)}.editor-tab[data-modified=true] .dot-modified{background:var(--accent)}.editor-tab .close-x{width:16px;height:16px;display:inline-grid;place-items:center;border-radius:var(--radius-sm);color:var(--fg-subtle)}.editor-tab .close-x:hover{background:var(--hover);color:var(--fg)}.editor-body{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:240px;overflow:hidden}.editor-gutter{-ms-flex-negative:0;flex-shrink:0;padding:12px 10px 12px 14px;text-align:right;color:var(--fg-subtle);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-right:1px solid var(--border);font-variant-numeric:tabular-nums;background:var(--bg-subtle);line-height:1.6}.editor-gutter .ln{display:block}.editor-gutter .ln.is-current{color:var(--fg)}.editor-gutter .ln.has-add{color:var(--success);position:relative}.editor-gutter .ln.has-mod{color:var(--warning)}.editor-area{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;position:relative;overflow:auto;background:var(--card)}.editor-area pre{margin:0;padding:12px 16px;white-space:pre;line-height:1.6;color:var(--fg)}.editor-line{display:block;padding:0 8px;margin:0 -8px;border-radius:2px}.editor-line.is-current{background:var(--hover)}.editor-caret{display:inline-block;width:1.5px;height:1.1em;background:var(--fg);vertical-align:-2px;-webkit-animation:editor-blink 1s steps(2) infinite;animation:editor-blink 1s steps(2) infinite}@-webkit-keyframes editor-blink{50%{opacity:0}}@keyframes editor-blink{50%{opacity:0}}.editor-status{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:16px;padding:6px 12px;border-top:1px solid var(--border);background:var(--bg-subtle);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--fg-muted)}.editor-status .grow{-webkit-box-flex:1;-ms-flex:1;flex:1}.editor-status .pill{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;padding:1px 6px;border-radius:var(--radius-sm);background:var(--muted);color:var(--fg)}.editor-suggest{position:absolute;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-box-shadow:var(--shadow-md);box-shadow:var(--shadow-md);font-family:var(--font-sans);font-size:var(--text-base);padding:4px;min-width:220px;z-index:4}.editor-suggest-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--fg-muted)}.editor-suggest-item[aria-selected=true]{background:var(--accent-soft);color:var(--fg)}.editor-suggest-kind{width:16px;height:16px;display:inline-grid;place-items:center;background:var(--muted);border-radius:var(--radius-sm);font-size:10px;color:var(--fg-muted)}.editor-suggest-kind,.editor-suggest-name{font-family:var(--font-mono)}.editor-suggest-meta{margin-left:auto;font-size:var(--text-xs);color:var(--fg-subtle)}.diff-add{background:rgba(14,159,110,.1)}.diff-del{background:rgba(220,38,38,.1)}.diff-add-mark{color:var(--success)}.diff-del-mark{color:var(--danger)}.dot{display:inline-block;-ms-flex-negative:0;flex-shrink:0;width:6px;height:6px;border-radius:999px;background:var(--fg-subtle);vertical-align:1px}.dot--ok{background:var(--success)}.dot--warn{background:var(--warning)}.dot--err{background:var(--danger)}.dot--muted{background:var(--border-strong)}.chip{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;height:24px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--card);color:var(--fg-muted);font:inherit;font-size:var(--text-sm);font-weight:500;cursor:pointer;white-space:nowrap;-webkit-transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard);transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.chip:hover{background:var(--hover);color:var(--fg)}.chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}.chip[aria-pressed=true]:hover{opacity:.9}.chip .chip-count{font-variant-numeric:tabular-nums;font-size:10px;color:var(--fg-subtle)}.chip[aria-pressed=true] .chip-count{color:var(--accent-ink);opacity:.7}.chip .chip-x{width:14px;height:14px;display:inline-grid;place-items:center;border-radius:999px;margin-right:-4px;opacity:.6}.chip:hover .chip-x{opacity:1}.schema{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;font-size:var(--text-base)}.schema-search{padding:10px;border-bottom:1px solid var(--border);position:relative}.schema-search .input{height:30px;padding-left:28px;background:var(--card);font-size:var(--text-sm)}.schema-search svg{position:absolute;left:18px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:var(--fg-subtle)}.schema-body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow-y:auto;padding:6px 4px}.schema-group{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-bottom:2px}.schema-group,.schema-group-head{display:-webkit-box;display:-ms-flexbox;display:flex}.schema-group-head{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius);color:var(--fg-muted);font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.schema-group-head:hover{background:var(--hover);color:var(--fg)}.schema-caret{width:10px;height:10px;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:-webkit-transform var(--duration-fast) var(--ease-standard);transition:-webkit-transform var(--duration-fast) var(--ease-standard);transition:transform var(--duration-fast) var(--ease-standard);transition:transform var(--duration-fast) var(--ease-standard),-webkit-transform var(--duration-fast) var(--ease-standard)}.schema-group[aria-expanded=true] .schema-caret{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.schema-group[aria-expanded=false] .schema-cols{display:none}.schema-table{font-weight:500;color:var(--fg);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.schema-table-meta{margin-left:auto;font-size:10px;color:var(--fg-subtle);font-variant-numeric:tabular-nums}.schema-cols{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-left:16px;border-left:1px solid var(--border)}.schema-col,.schema-cols{display:-webkit-box;display:-ms-flexbox;display:flex}.schema-col{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:3px 8px 3px 12px;color:var(--fg-muted);border-radius:0 var(--radius) var(--radius) 0;cursor:pointer;font-size:var(--text-sm)}.schema-col:hover{background:var(--hover);color:var(--fg)}.schema-col[aria-selected=true]{background:var(--accent-soft);color:var(--fg)}.schema-col-name{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.schema-type{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:var(--radius-sm);background:var(--muted);color:var(--fg-muted);-ms-flex-negative:0;flex-shrink:0}.schema-type--int{color:var(--info);background:var(--info-soft)}.schema-type--str{color:var(--accent);background:var(--accent-soft)}.schema-type--ts{color:var(--warning);background:var(--warning-soft)}.schema-pk{font-size:9px;color:var(--accent);font-weight:600;letter-spacing:.04em;-ms-flex-negative:0;flex-shrink:0}.toast-stack{position:fixed;bottom:16px;right:16px;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;gap:8px;z-index:50;pointer-events:none}.toast,.toast-stack{display:-webkit-box;display:-ms-flexbox;display:flex}.toast{pointer-events:auto;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:10px;min-width:280px;max-width:380px;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-box-shadow:var(--shadow-lg);box-shadow:var(--shadow-lg);-webkit-animation:toast-in var(--duration-base) var(--ease-decelerate);animation:toast-in var(--duration-base) var(--ease-decelerate)}@-webkit-keyframes toast-in{0%{-webkit-transform:translateX(20px);transform:translateX(20px);opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}@keyframes toast-in{0%{-webkit-transform:translateX(20px);transform:translateX(20px);opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}.toast-icon{-ms-flex-negative:0;flex-shrink:0;width:18px;height:18px;display:inline-grid;place-items:center;border-radius:999px;color:var(--fg-muted);margin-top:1px}.toast--success .toast-icon{background:var(--success-soft);color:var(--success)}.toast--warning .toast-icon{background:var(--warning-soft);color:var(--warning)}.toast--danger .toast-icon{background:var(--danger-soft);color:var(--danger)}.toast--info .toast-icon{background:var(--info-soft);color:var(--info)}.toast-body{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.toast-title{font-size:var(--text-base);font-weight:600;margin:0 0 2px}.toast-desc{font-size:var(--text-sm);color:var(--fg-muted);margin:0}.toast-close{width:20px;height:20px;border:0;background:transparent;color:var(--fg-subtle);border-radius:var(--radius-sm);display:inline-grid;place-items:center;-ms-flex-negative:0;flex-shrink:0}.toast-close:hover{background:var(--hover);color:var(--fg)}.empty{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:8px;padding:40px 24px;text-align:center;color:var(--fg-muted)}.empty-icon{width:44px;height:44px;display:inline-grid;place-items:center;border-radius:var(--radius-lg);background:var(--muted);color:var(--fg-subtle);margin-bottom:4px}.empty-title{font-size:var(--text-md);font-weight:600;color:var(--fg);margin:0}.empty-sub{font-size:var(--text-sm);color:var(--fg-muted);max-width:320px;margin:0;line-height:var(--leading-snug)}.empty-actions{gap:8px;margin-top:8px}.dash-card,.empty-actions{display:-webkit-box;display:-ms-flexbox;display:flex}.dash-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-transition:border-color var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard)}.dash-card:hover{border-color:var(--border-strong);-webkit-box-shadow:var(--shadow);box-shadow:var(--shadow)}.dash-card-preview{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px;padding:10px;background:var(--bg-subtle);border-bottom:1px solid var(--border);height:120px}.dash-card-mini{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;position:relative;overflow:hidden}.dash-card-mini-label{position:absolute;top:4px;left:6px;font-size:9px;color:var(--fg-subtle);font-weight:500}.dash-card-body{padding:12px 14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px;-webkit-box-flex:1;-ms-flex:1;flex:1}.dash-card-title{font-size:var(--text-base);font-weight:600;color:var(--fg);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card-meta{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--fg-muted)}.dash-card-meta,.ds-card{display:-webkit-box;display:-ms-flexbox;display:flex}.ds-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-transition:border-color var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard)}.ds-card:hover{border-color:var(--border-strong)}.ds-card-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:12px;padding:14px 16px 10px}.ds-card-icon{width:36px;height:36px;border-radius:var(--radius-md);display:inline-grid;place-items:center;-ms-flex-negative:0;flex-shrink:0;font-weight:600;font-size:var(--text-md);letter-spacing:var(--tracking-snug)}.ds-card-icon--postgres{background:#dbeafe;color:#1d4ed8}.ds-card-icon--mysql{background:#fef3c7;color:#b45309}.ds-card-icon--redshift{background:#ede9fe;color:#6d28d9}.ds-card-icon--snowflake{background:#cffafe;color:#0e7490}.ds-card-icon--bigquery{background:#fee2e2;color:#b91c1c}.ds-card-icon--sqlite{background:var(--muted);color:var(--fg)}.ds-card-meta{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.ds-card-title{font-size:var(--text-md);font-weight:600;color:var(--fg);margin:0;line-height:1.3}.ds-card-host,.ds-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-card-host{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-muted);margin:2px 0 0}.ds-card-body{padding:0 16px 12px;display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px;font-size:var(--text-xs);color:var(--fg-muted)}.ds-card-body,.ds-card-body>*{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ds-card-body>*{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:4px}.ds-card-foot{margin-top:auto;padding:8px 10px 8px 16px;border-top:1px solid var(--border);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;background:var(--bg-subtle)}.ds-card-foot .grow{-webkit-box-flex:1;-ms-flex:1;flex:1}.page-head{padding:4px 0 16px}.page-head-meta{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.page-head-title{font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);line-height:1.2;margin:0}.page-head-sub{font-size:var(--text-base);color:var(--fg-muted);margin:4px 0 0}.page-head-actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;-ms-flex-negative:0;flex-shrink:0}.filter-bar,.page-head-actions{display:-webkit-box;display:-ms-flexbox;display:flex}.filter-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:10px;padding:0 0 12px;border-bottom:1px solid var(--border);margin-bottom:16px}.filter-bar-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;-ms-flex-wrap:wrap;flex-wrap:wrap}.filter-bar-search{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:320px}.filter-bar-search .input{height:32px;padding-left:30px}.filter-bar-search svg{position:absolute;left:9px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:var(--fg-subtle);pointer-events:none}.filter-bar-chips{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;-ms-flex-wrap:wrap;flex-wrap:wrap}.editor--sql,.filter-bar-chips{display:-webkit-box;display:-ms-flexbox;display:flex}.editor--sql{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;font-family:var(--font-mono)}.editor--sql .editor-sql-body{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:160px;position:relative}.editor--sql .editor-sql-gutter{-ms-flex-negative:0;flex-shrink:0;padding:10px 10px 10px 14px;background:var(--bg-subtle);border-right:1px solid var(--border);color:var(--fg-subtle);text-align:right;font-variant-numeric:tabular-nums;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:var(--text-base);line-height:1.6;white-space:pre}.editor--sql textarea.editor-sql-area{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;border:0;outline:none;resize:none;background:var(--card);color:var(--fg);padding:10px 14px;font-family:var(--font-mono);font-size:var(--text-base);line-height:1.6;white-space:pre;overflow-x:auto}.editor--sql .editor-sql-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--border);background:var(--bg-subtle);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--fg-muted)}.editor--sql .editor-sql-toolbar .grow{-webkit-box-flex:1;-ms-flex:1;flex:1}.sidenav-brand{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;padding:8px 10px;margin:0 0 8px;border-radius:var(--radius);background:var(--card);border:1px solid var(--border);cursor:pointer;-webkit-transition:background var(--duration-fast) var(--ease-standard);transition:background var(--duration-fast) var(--ease-standard)}.sidenav-brand:hover{background:var(--hover)}.sidenav-brand-mark{width:24px;height:24px;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-fg);display:inline-grid;place-items:center;font-weight:700;font-size:11px;-ms-flex-negative:0;flex-shrink:0}.sidenav-brand-meta{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;line-height:1.2}.sidenav-brand-name{font-size:var(--text-base);font-weight:600;color:var(--fg)}.sidenav-brand-meta-sub,.sidenav-brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidenav-brand-meta-sub{font-size:10px;color:var(--fg-muted)}.sidenav-brand-caret{color:var(--fg-subtle);-ms-flex-negative:0;flex-shrink:0}.stat-strip{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);overflow:hidden}.stat-strip>.stat{border:0;border-radius:0}.stat-strip>.stat+.stat{border-left:1px solid var(--border)}.tabular{font-variant-numeric:tabular-nums}.divider{height:1px;background:var(--border)}@media (prefers-reduced-motion:reduce){*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-transition-duration:.01ms!important;transition-duration:.01ms!important}}#app,body,html{height:100%}body{background:var(--bg)}#app{font-size:var(--text-base)}.mono{font-family:var(--font-mono)}.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--fg-muted)}.subtle{color:var(--fg-subtle)}.page{padding:24px 32px 32px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:16px;min-width:0}.page--fill{height:100%;min-height:0}.page-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:16px}.page-title{font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);line-height:var(--leading-snug)}.page-sub{font-size:var(--text-sm);color:var(--fg-muted);margin-top:2px}.page-actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0}.page-actions,.section-head{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px}.section-head{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;font-size:var(--text-md);font-weight:600;margin-bottom:8px}.section-head small{font-weight:400}@media (max-width:767px){.page{padding:16px}.page-head{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.link{background:none;border:0;padding:0;color:var(--accent-ink);font-weight:500;font-size:inherit}.link:hover{text-decoration:underline}.alert{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:var(--radius-md);font-size:var(--text-base);background:var(--info-soft);color:var(--info)}.alert--danger{background:var(--danger-soft);color:var(--danger)}.alert--success{background:var(--success-soft);color:var(--success)}.alert--warning{background:var(--warning-soft);color:var(--warning)}.alert .alert-body{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;word-break:break-word}.alert .alert-close{background:none;border:0;padding:0;color:inherit;opacity:.7;display:inline-grid}.alert .alert-close:hover{opacity:1}.trigger{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;height:var(--input-h);padding:0 8px 0 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--fg);font:inherit;font-size:var(--text-base);white-space:nowrap;max-width:280px;-webkit-transition:border-color var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),-webkit-box-shadow var(--duration-fast) var(--ease-standard)}.trigger:hover{border-color:var(--border-strong)}.trigger:focus-visible,.trigger[aria-expanded=true]{outline:none;border-color:var(--accent);-webkit-box-shadow:var(--ring);box-shadow:var(--ring)}.trigger:disabled{opacity:.6;cursor:not-allowed}.trigger-label{color:var(--fg-muted)}.trigger-value{font-weight:600;overflow:hidden;text-overflow:ellipsis}.trigger-caret{color:var(--fg-subtle);-ms-flex-negative:0;flex-shrink:0}.segmented{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:2px;padding:2px;background:var(--muted);border-radius:var(--radius-pill)}.segmented button{height:calc(var(--input-h) - 4px);padding:0 12px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--fg-muted);font-size:var(--text-base);font-weight:500}.segmented button:hover{color:var(--fg)}.segmented button[aria-pressed=true]{background:var(--card);color:var(--fg);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm)}.switch-field{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:var(--text-base);font-weight:500;white-space:nowrap;cursor:pointer}.switch{-ms-flex-negative:0;flex-shrink:0}.switch:focus-visible{outline:none;-webkit-box-shadow:var(--ring);box-shadow:var(--ring)}.kpi-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 18px;min-width:0}.kpi-title{font-size:var(--text-md);font-weight:600}.kpi-sub{font-size:var(--text-sm);color:var(--fg-muted)}.kpi-value{font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums;margin-top:14px;line-height:1.2}.kpi-foot{margin-top:6px;font-size:var(--text-xs);color:var(--fg-muted);min-height:16px}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}.tbl tr.is-clickable{cursor:pointer}.tbl td.empty-cell{color:var(--fg-muted);text-align:center;height:64px}.tbl th{white-space:nowrap}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(17,24,39,.4);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:16px;-webkit-animation:modal-fade var(--duration-fast) var(--ease-decelerate);animation:modal-fade var(--duration-fast) var(--ease-decelerate)}.modal,.modal-backdrop{display:-webkit-box;display:-ms-flexbox;display:flex}.modal{width:100%;max-height:calc(100vh - 32px);-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:var(--card);border-radius:var(--radius-lg);-webkit-box-shadow:var(--shadow-lg);box-shadow:var(--shadow-lg);overflow:hidden}.modal-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:12px;padding:20px 20px 12px}.modal-title{font-size:var(--text-lg);font-weight:600}.modal-desc{font-size:var(--text-base);color:var(--fg-muted);margin-top:4px;line-height:var(--leading-snug)}.modal-body{padding:4px 20px 20px;overflow:auto}.modal-foot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border);background:var(--bg-subtle)}@-webkit-keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-bottom:14px}.field .label{margin-bottom:6px}.input:disabled{background:var(--muted);color:var(--fg-subtle)}.input.is-invalid{border-color:var(--danger)}.input.is-invalid:focus{-webkit-box-shadow:0 0 0 3px rgba(220,38,38,.15);box-shadow:0 0 0 3px rgba(220,38,38,.15)}.input-icon{position:relative}.input-icon>.icon{position:absolute;left:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:var(--fg-subtle);pointer-events:none}.input-icon>.input{padding-left:32px}.radio-cards{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px}.radio-card,.radio-cards{display:-webkit-box;display:-ms-flexbox;display:flex}.radio-card{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);cursor:pointer;text-align:left}.radio-card:hover{border-color:var(--border-strong)}.radio-card[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.radio-card:focus-visible{outline:none;-webkit-box-shadow:var(--ring);box-shadow:var(--ring)}.radio-dot{width:16px;height:16px;margin-top:2px;-ms-flex-negative:0;flex-shrink:0;border-radius:999px;border:1px solid var(--border-strong);background:var(--card)}.radio-card[aria-checked=true] .radio-dot{border:5px solid var(--accent)}.radio-card-title{font-weight:500;font-size:var(--text-base);color:var(--fg)}.radio-card-desc{font-size:var(--text-sm);color:var(--fg-muted)}.menu{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:4px;min-width:200px}.menu,.menu-item{display:-webkit-box;display:-ms-flexbox;display:flex}.menu-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;height:30px;padding:0 10px;border:0;border-radius:var(--radius);background:transparent;color:var(--fg);font-size:var(--text-base);text-align:left}.menu-item:focus-visible,.menu-item:hover{outline:none;background:var(--hover)}.menu-item .icon{color:var(--fg-muted)}.menu-item--danger,.menu-item--danger .icon{color:var(--danger)}.menu-item:disabled{opacity:.5;cursor:not-allowed}.menu-sep{height:1px;background:var(--border);margin:4px -4px}.p-component{font-family:var(--font-sans)}.p-popover{border:1px solid var(--border)!important;border-radius:var(--radius-lg)!important;-webkit-box-shadow:var(--shadow-md)!important;box-shadow:var(--shadow-md)!important;margin-top:4px!important}.p-popover:after,.p-popover:before{display:none!important}.p-popover .p-popover-content{padding:0}.p-listbox{border:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;font-size:var(--text-base)}.p-listbox .p-listbox-header{padding:8px 8px 4px}.p-listbox .p-listbox-option{padding:6px 10px;border-radius:var(--radius);font-size:var(--text-base)}.p-listbox .p-listbox-list{padding:4px}.p-listbox .p-inputtext{font-size:var(--text-base);padding:4px 8px}.p-datepicker-panel{border:0!important;font-size:var(--text-base)}.p-datepicker .p-datepicker-day{width:30px;height:30px;font-size:var(--text-base)}.p-progressspinner-circle{stroke:var(--accent)!important;-webkit-animation:p-progressspinner-dash 1.5s ease-in-out infinite!important;animation:p-progressspinner-dash 1.5s ease-in-out infinite!important}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;-webkit-animation:spin .7s linear infinite;animation:spin .7s linear infinite;vertical-align:-2px}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.page-loader{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:48px;color:var(--fg-muted);gap:10px}.public-layout[data-v-9a806b58]{min-height:100vh;background:var(--bg-subtle)}.icon[data-v-715d0cdc]{-ms-flex-negative:0;flex-shrink:0;display:inline-block;vertical-align:middle}.app-sidenav[data-v-44e59fe9]{height:100%}.app-brand[data-v-44e59fe9]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;padding:8px 10px 14px}.app-brand-mark[data-v-44e59fe9]{width:24px;height:24px;border-radius:var(--radius-md);display:inline-grid;place-items:center;background:var(--fg);color:var(--bg);font-size:var(--text-sm);font-weight:600}.app-brand-text[data-v-44e59fe9]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;line-height:1.2}.app-brand-name[data-v-44e59fe9]{font-size:var(--text-md);font-weight:600}.app-brand-sub[data-v-44e59fe9]{font-size:var(--text-sm);color:var(--fg-muted)}.sidenav-item[data-v-44e59fe9]{height:32px}.sidenav-footer .avatar[data-v-44e59fe9]{background:var(--muted);color:var(--fg)}.app-footer-email[data-v-44e59fe9]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidenav-footer-text[data-v-44e59fe9]{-webkit-box-flex:1;-ms-flex:1;flex:1}.app-logout[data-v-44e59fe9],.app-rail[data-v-44e59fe9]{-ms-flex-negative:0;flex-shrink:0}.app-rail[data-v-44e59fe9]{width:64px;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:12px 0;background:var(--side);border-right:1px solid var(--border)}.app-rail__brand[data-v-44e59fe9]{display:inline-grid;place-items:center;width:40px;height:36px;margin-bottom:12px}.app-rail__brand .app-brand-mark[data-v-44e59fe9]{width:28px;height:28px;font-size:var(--text-base)}.app-rail__foot[data-v-44e59fe9],.app-rail__group[data-v-44e59fe9]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:2px}.app-rail__foot[data-v-44e59fe9]{margin-top:auto;gap:8px}.app-rail__item[data-v-44e59fe9]{position:relative;display:inline-grid;place-items:center;width:40px;height:36px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--fg-muted);-webkit-transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.app-rail__item[data-v-44e59fe9]:hover{background:var(--hover);color:var(--fg)}.app-rail__item[data-v-44e59fe9]:focus-visible{outline:none;-webkit-box-shadow:var(--ring);box-shadow:var(--ring)}.app-rail__item[aria-current=page][data-v-44e59fe9]{background:var(--accent-soft);color:var(--accent-ink)}.app-rail__item .icon-btn-dot[data-v-44e59fe9]{top:7px;right:9px;border-color:var(--side)}.app-rail__divider[data-v-44e59fe9]{width:40px;height:1px;background:var(--border)}.app-rail__avatar[data-v-44e59fe9]{background:var(--accent-soft);color:var(--accent-ink)}.app-rail [data-tooltip][data-v-44e59fe9]{position:relative}.app-rail [data-tooltip][data-v-44e59fe9]:focus-visible:after,.app-rail [data-tooltip][data-v-44e59fe9]:hover:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:950;pointer-events:none;padding:4px 8px;border-radius:var(--radius);background:var(--fg);color:var(--bg);font-size:var(--text-sm);font-weight:500;white-space:nowrap;-webkit-box-shadow:var(--shadow-md);box-shadow:var(--shadow-md)}.app-loader[data-v-fb8ff328]{height:100%;min-height:100vh}.app-shell[data-v-fb8ff328]{display:-webkit-box;display:-ms-flexbox;display:flex;height:100vh;overflow:hidden}.app-shell__nav[data-v-fb8ff328]{position:sticky;top:0}.app-shell__main[data-v-fb8ff328]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:auto}.app-shell__mobilebar[data-v-fb8ff328],.app-shell__scrim[data-v-fb8ff328]{display:none}@media (max-width:767px){.app-shell__nav[data-v-fb8ff328]{position:fixed;left:0;top:0;bottom:0;z-index:900;-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:-webkit-transform var(--duration-base) var(--ease-standard);transition:-webkit-transform var(--duration-base) var(--ease-standard);transition:transform var(--duration-base) var(--ease-standard);transition:transform var(--duration-base) var(--ease-standard),-webkit-transform var(--duration-base) var(--ease-standard);-webkit-box-shadow:var(--shadow-lg);box-shadow:var(--shadow-lg)}.app-shell--nav-open .app-shell__nav[data-v-fb8ff328]{-webkit-transform:none;transform:none}.app-shell--nav-open .app-shell__scrim[data-v-fb8ff328]{display:block;position:fixed;inset:0;z-index:800;background:rgba(17,24,39,.4)}.app-shell__mobilebar[data-v-fb8ff328]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--side)}.app-shell__mobile-title[data-v-fb8ff328]{font-weight:600}}