@import url(https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,800;0,14..32,900;1,14..32,400&family=JetBrains+Mono:wght@400;500;600&display=swap);:root{--c-bg:#0b1020;--c-bg-mid:#101827;--c-surface:#111a2b;--c-surface-el:#162238;--c-card:#18243a;--c-card-hi:#20314d;--c-overlay:#263754;--c-border:#273853;--c-border-soft:#1d2b43;--c-border-hi:#3a5278;--c-brand:#6366f1;--c-brand-hi:#818cf8;--c-brand-glow:#6366f155;--c-brand-dim:#6366f122;--c-brand-faint:#6366f10d;--c-teal:#14b8a6;--c-teal-dim:#14b8a620;--c-teal-glow:#14b8a644;--c-sky:#38bdf8;--c-sky-dim:#38bdf815;--c-violet:#a78bfa;--c-violet-dim:#a78bfa15;--c-amber:#f59e0b;--c-amber-dim:#f59e0b1a;--c-rose:#f43f5e;--c-rose-dim:#f43f5e15;--c-green:#10b981;--c-green-dim:#10b98115;--c-brand-text:#a5b0ff;--c-green-text:#10b981;--c-rose-text:#fb7185;--c-amber-text:#f59e0b;--c-sky-text:#38bdf8;--c-violet-text:#a78bfa;--c-teal-text:#14b8a6;--c-text:#eef4ff;--c-text-hi:#fff;--c-text-mid:#a7b4cc;--c-text-dim:#7c8ca6;--c-text-faint:#52627b;--font-mono:"JetBrains Mono","Fira Code",ui-monospace,monospace;--font-sans:"Inter",system-ui,-apple-system,sans-serif;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:20px;--fs-3xl:24px;--fs-4xl:30px;--fs-5xl:36px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:999px;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-standard:cubic-bezier(0.4,0,0.2,1);--dur-fast:120ms;--dur-base:180ms;--dur-slow:280ms;--g-brand:linear-gradient(135deg,#6366f1,#14b8a6);--g-brand-rev:linear-gradient(135deg,#14b8a6,#6366f1);--g-surface:linear-gradient(160deg,#18243a,#121c2e);--g-header:linear-gradient(180deg,#111a2b,#0f1726);--z-base:0;--z-raised:10;--z-sticky:40;--z-drawer:90;--z-modal:1300;--z-popover:1500;--z-tooltip:1700;--z-toast:1900;--z-skip-link:2000;--sh-sm:0 1px 3px #0000002e,0 1px 2px #0000001f;--sh-md:0 8px 20px #0000003d,0 2px 6px #00000029;--sh-lg:0 18px 46px #00000052,0 6px 16px #0003;--sh-xl:0 28px 72px #0000006b,0 8px 24px #0000003d;--sh-glow:0 0 0 1px #6366f128,0 8px 32px #6366f11a;--sh-card:0 1px 4px #00000029,0 8px 24px #00000029}[data-theme=light]{--c-bg:#f4f7fb;--c-bg-mid:#eef3f9;--c-surface:#fff;--c-surface-el:#f8fafc;--c-card:#fff;--c-card-hi:#f1f5f9;--c-overlay:#e8eef7;--c-border:#d7e0ec;--c-border-soft:#e6edf5;--c-border-hi:#b7c6da;--c-brand:#4f46e5;--c-brand-hi:#6366f1;--c-brand-glow:#4f46e526;--c-brand-dim:#4f46e51f;--c-brand-faint:#4f46e50d;--c-teal:#0f9488;--c-teal-dim:#0f948817;--c-teal-glow:#0f948826;--c-sky:#0284c7;--c-sky-dim:#0284c714;--c-violet:#7c3aed;--c-violet-dim:#7c3aed14;--c-amber:#b77905;--c-amber-dim:#b7790517;--c-rose:#e11d48;--c-rose-dim:#e11d4812;--c-green:#059669;--c-green-dim:#05966912;--c-brand-text:#4338ca;--c-green-text:#047857;--c-rose-text:#be123c;--c-amber-text:#92600a;--c-sky-text:#0369a1;--c-violet-text:#6d28d9;--c-teal-text:#0c7970;--c-text:#142033;--c-text-hi:#0b1220;--c-text-mid:#52637a;--c-text-dim:#5f6d82;--c-text-faint:#a7b4c4;--g-brand:linear-gradient(135deg,#4f46e5,#0f9488);--g-brand-rev:linear-gradient(135deg,#0f9488,#4f46e5);--g-surface:linear-gradient(160deg,#fff,#f8fafc);--g-header:linear-gradient(180deg,#fff,#f4f7fb);--sh-sm:0 1px 2px #0f172a0f,0 1px 1px #0f172a0a;--sh-md:0 8px 20px #0f172a14,0 2px 6px #0f172a0d;--sh-lg:0 18px 40px #0f172a1f,0 6px 16px #0f172a14;--sh-xl:0 28px 72px #0f172a2e,0 8px 24px #0f172a1a;--sh-glow:0 0 0 1px #4f46e51c,0 8px 28px #4f46e512;--sh-card:0 1px 3px #0f172a0d,0 8px 24px #0f172a0f}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%;scrollbar-gutter:stable}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11","ss01";background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);font-size:14px;line-height:1.5;overflow-y:scroll}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--c-border-hi)}::-webkit-scrollbar-corner{background:#0000}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.scroll-x-fade{background:linear-gradient(to right,var(--c-bg) 30%,#0000) 0,linear-gradient(to left,var(--c-bg) 30%,#0000) 100%,radial-gradient(farthest-side at 0 50%,#00000038,#0000) 0,radial-gradient(farthest-side at 100% 50%,#00000038,#0000) 100%;background-attachment:local,local,scroll,scroll;background-repeat:no-repeat;background-size:34px 100%,34px 100%,14px 100%,14px 100%;overflow-x:auto;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){.scroll-x-fade{scroll-behavior:auto}}[role=tab]:focus-visible{border-radius:8px;outline:2px solid var(--c-brand);outline-offset:-3px}select option{background:var(--c-surface);color:var(--c-text)}input::placeholder,textarea::placeholder{color:var(--c-text-dim);font-weight:400}button{font-family:inherit}:focus-visible{border-radius:6px;outline:2px solid var(--c-brand);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideRight{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 0 0 #0000}}@keyframes tab-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}.f-input{background:var(--c-surface-el);border:1px solid var(--c-border);border-radius:8px;color:var(--c-text);font-family:inherit;font-size:13px;outline:none;padding:9px 13px;transition:border-color .15s,box-shadow .15s,background .15s;width:100%}.f-input:hover{background:var(--c-card);border-color:var(--c-border-hi)}.f-input:focus{background:var(--c-surface);border-color:var(--c-brand);box-shadow:0 0 0 3px var(--c-brand-faint),0 0 0 1px color-mix(in srgb,var(--c-brand) 25%,#0000)}.f-input:disabled{cursor:not-allowed;opacity:.46}.f-select{appearance:none;background:var(--c-surface-el);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23506080' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;border:1px solid var(--c-border);border-radius:8px;color:var(--c-text);cursor:pointer;font-family:inherit;font-size:13px;outline:none;padding:9px 32px 9px 13px;transition:border-color .15s,box-shadow .15s,background .15s;width:100%}.f-select:hover{background:var(--c-card);border-color:var(--c-border-hi)}.f-select:focus{border-color:var(--c-brand);box-shadow:0 0 0 3px var(--c-brand-faint)}.btn{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:7px;letter-spacing:-.008em;overflow:hidden;padding:8px 15px;position:relative;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,filter .15s;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.38;pointer-events:none}.btn:active:not(:disabled){filter:brightness(.98)}.btn-primary{background:linear-gradient(135deg,var(--c-brand) 0,#7c7ff5 50%,var(--c-brand-hi) 100%);border:1px solid color-mix(in srgb,var(--c-brand) 80%,#0000);box-shadow:0 1px 0 #ffffff1f inset,0 4px 14px var(--c-brand-glow);color:#fff}.btn-primary:before{background:linear-gradient(135deg,#ffffff1a,#0000 50%);content:"";inset:0;pointer-events:none;position:absolute}.btn-primary:hover:not(:disabled){box-shadow:0 1px 0 #ffffff26 inset,0 8px 24px var(--c-brand-glow);filter:brightness(1.08)}.btn-ghost{background:var(--c-surface-el);border:1px solid var(--c-border);color:var(--c-text-mid)}.btn-ghost:hover:not(:disabled){background:var(--c-overlay);border-color:var(--c-border-hi);color:var(--c-text)}.btn-quiet{background:#0000;border:1px solid #0000;color:var(--c-text-mid)}.btn-quiet:hover:not(:disabled){background:var(--c-overlay);border-color:var(--c-border);color:var(--c-text)}.btn-danger{background:var(--c-rose-dim);border:1px solid color-mix(in srgb,var(--c-rose) 22%,#0000);color:var(--c-rose)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--c-rose) 16%,#0000);border-color:color-mix(in srgb,var(--c-rose) 44%,#0000)}.btn-sm{border-radius:6px;font-size:12px;gap:5px;min-height:24px;min-width:24px;padding:5px 11px}.btn-lg{border-radius:8px;font-size:14px;padding:11px 22px}.btn-icon{border-radius:8px;height:32px;justify-content:center;padding:0;width:32px}.nav-item{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--c-text-dim);cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:500;gap:10px;line-height:1;margin-bottom:2px;padding:8px 12px;position:relative;text-align:left;transition:background .14s,color .14s,border-color .14s;width:100%}.nav-item:hover{background:color-mix(in srgb,var(--c-overlay) 67%,#0000);border-color:color-mix(in srgb,var(--c-border) 53%,#0000);color:var(--c-text-mid)}.nav-item.active{background:linear-gradient(135deg,var(--c-brand-faint) 0,color-mix(in srgb,var(--c-teal-dim) 60%,#0000) 100%);border-color:color-mix(in srgb,var(--c-brand) 19%,#0000);color:var(--c-text);font-weight:600}.nav-item.active:before{background:linear-gradient(180deg,var(--c-brand),var(--c-teal));border-radius:0 2px 2px 0;bottom:7px;box-shadow:0 0 8px var(--c-brand-glow);content:"";left:-1px;position:absolute;top:7px;width:3px}.card{background:var(--g-surface);border:1px solid var(--c-border);border-radius:8px;transition:border-color .18s,box-shadow .18s}.card-hover:hover{border-color:var(--c-border-hi);box-shadow:var(--sh-md)}.kpi-card{background:var(--g-surface);border:1px solid var(--c-border);border-radius:8px;overflow:hidden;padding:18px 20px 16px;position:relative;transition:border-color .2s,box-shadow .2s}.kpi-card:hover{border-color:var(--c-border-hi);box-shadow:var(--sh-md)}.chart-card{animation:fadeUp .3s ease both;background:var(--g-surface);border:1px solid var(--c-border);border-radius:8px;box-shadow:var(--sh-card);min-width:0;overflow:hidden;padding:18px 20px;transition:border-color .2s,box-shadow .2s}.chart-card:hover{border-color:var(--c-border-hi);box-shadow:var(--sh-md)}.skeleton{animation:shimmer 1.8s linear infinite;background:linear-gradient(90deg,var(--c-surface-el) 0,color-mix(in srgb,var(--c-overlay) 80%,#0000) 50%,var(--c-surface-el) 100%);background-size:200% 100%;border-radius:6px}.skeleton-block{background:var(--c-surface-el);border:1px solid color-mix(in srgb,var(--c-border) 53%,#0000);border-radius:8px;overflow:hidden;position:relative}.skeleton-block:after{animation:shimmer 2s linear infinite;background:linear-gradient(90deg,#0000 0,color-mix(in srgb,var(--c-overlay) 50%,#0000) 50%,#0000 100%);background-size:200% 100%;content:"";inset:0;position:absolute}.data-table{border-collapse:initial;border-spacing:0;font-size:12px;width:100%}.data-table thead th{background:var(--c-surface-el);border-bottom:1px solid var(--c-border);color:var(--c-text-dim);font-size:10px;font-weight:700;letter-spacing:.07em;padding:10px 16px;position:sticky;text-align:left;text-transform:uppercase;top:0;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.data-table thead th.sortable{cursor:pointer;transition:color .14s,background .14s}.data-table thead th.sortable:hover{background:var(--c-overlay);color:var(--c-text)}.data-table .table-sort-button{align-items:center;appearance:none;background:#0000;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:6px;letter-spacing:inherit;min-height:24px;padding:0;text-transform:inherit;width:100%}.data-table .table-sort-button:focus-visible{border-radius:6px;outline:2px solid var(--c-brand);outline-offset:3px}.data-table tbody td{border-bottom:1px solid var(--c-border-soft);color:var(--c-text);padding:9px 16px;transition:background .1s;white-space:nowrap}.data-table tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--c-bg) 27%,#0000)}.data-table tbody tr:hover td{background:color-mix(in srgb,var(--c-overlay) 40%,#0000)}.data-table tbody tr:last-child td{border-bottom:none}.data-table td.num{font-feature-settings:"tnum";color:var(--c-teal-text);font-family:var(--font-mono);font-weight:500;text-align:right}.data-table td.row-num{color:var(--c-text-dim);font-family:var(--font-mono);font-size:11px;text-align:center;-webkit-user-select:none;user-select:none;width:40px}.table-scroll{border-radius:inherit;box-shadow:inset -18px 0 18px -22px color-mix(in srgb,var(--c-brand) 70%,#0000);max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-gutter:stable}.table-scroll .data-table{min-width:max-content}.data-table td.table-actions-sticky,.data-table th.table-actions-sticky{background:var(--c-surface-el);box-shadow:-12px 0 18px -18px color-mix(in srgb,var(--c-brand) 70%,#0000);position:sticky;right:0;z-index:3}.data-table tbody tr:nth-child(2n) td.table-actions-sticky{background:color-mix(in srgb,var(--c-bg) 18%,var(--c-surface-el))}.data-table tbody tr:hover td.table-actions-sticky{background:color-mix(in srgb,var(--c-overlay) 35%,var(--c-surface-el))}.data-table thead th.table-actions-sticky{z-index:4}.plotly-chart-frame--modal .modebar{background:color-mix(in srgb,var(--c-card) 88%,#0000)!important;border:1px solid var(--c-border);border-radius:8px;box-shadow:0 6px 18px #0f172a14;display:flex!important;flex-wrap:wrap;gap:3px;justify-content:flex-end;max-width:min(240px,calc(100% - 16px));padding:4px;right:8px!important;top:8px!important}.plotly-chart-frame--modal .modebar-group{display:flex!important;gap:2px;padding-left:0!important}.plotly-chart-frame--modal .modebar-btn{align-items:center;border-radius:6px;display:inline-flex!important;height:24px!important;justify-content:center;width:24px!important}.plotly-chart-frame--modal .modebar-btn svg{height:15px!important;width:15px!important}.plotly-chart-frame--modal .modebar-btn:hover{background:var(--c-overlay)!important}.plotly-chart-frame--modal .modebar-btn.active{background:color-mix(in srgb,var(--c-brand) 14%,#0000)!important}.tag{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:600;gap:5px;letter-spacing:.03em;line-height:1.5;padding:3px 10px}.tag-brand{background:var(--c-brand-dim);border:1px solid color-mix(in srgb,var(--c-brand) 16%,#0000);color:var(--c-brand-text)}.tag-green{background:var(--c-green-dim);border:1px solid color-mix(in srgb,var(--c-green) 19%,#0000);color:var(--c-green-text)}.tag-rose{background:var(--c-rose-dim);border:1px solid color-mix(in srgb,var(--c-rose) 19%,#0000);color:var(--c-rose-text)}.tag-amber{background:var(--c-amber-dim);border:1px solid color-mix(in srgb,var(--c-amber) 19%,#0000);color:var(--c-amber-text)}.tag-sky{background:var(--c-sky-dim);border:1px solid color-mix(in srgb,var(--c-sky) 19%,#0000);color:var(--c-sky-text)}.tag-violet{background:var(--c-violet-dim);border:1px solid color-mix(in srgb,var(--c-violet) 19%,#0000);color:var(--c-violet-text)}.tag-neutral{background:var(--c-overlay);border:1px solid var(--c-border);color:var(--c-text-mid)}.upload-zone{background:var(--c-brand-faint);border:1.5px dashed var(--c-border);border-radius:8px;cursor:pointer;padding:20px 16px;position:relative;text-align:center;transition:background-color .2s,border-color .2s,box-shadow .2s}.upload-zone:hover{background:var(--c-brand-dim);border-color:color-mix(in srgb,var(--c-brand) 53%,#0000);box-shadow:0 0 0 1px color-mix(in srgb,var(--c-brand) 13%,#0000),0 6px 24px var(--c-brand-glow)}.chat-msg{animation:fadeUp .2s ease}.stream-cursor:after{animation:blink .9s ease infinite;color:var(--c-brand);content:"▋";display:inline-block;margin-left:2px}.divider-h{background:linear-gradient(90deg,#0000,color-mix(in srgb,var(--c-border) 67%,#0000),#0000);border:none;height:1px;margin:2px 0}.gradient-text{-webkit-text-fill-color:#0000;background:var(--g-brand);-webkit-background-clip:text;background-clip:text}.text-numeric{font-feature-settings:"tnum";font-family:var(--font-mono)}.dashboard-canvas{display:flex;flex-direction:column;gap:16px}.report-dashboard-canvas{gap:10px}.page-wrap{max-width:1540px;min-width:0;padding:26px 30px;width:100%}.data-source-page{max-width:none;overflow-x:clip}.data-source-page-header{margin-bottom:28px;min-width:0}.data-source-page-heading{align-items:center;display:flex;gap:14px;margin-bottom:6px;min-width:0}.data-source-page-icon{flex:0 0 40px}.data-source-page-heading-copy{min-width:0}.data-source-page-heading-copy .page-subtitle{overflow-wrap:anywhere}.data-source-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));min-width:0;width:100%}.data-source-panel-card{min-width:0;padding:22px 24px;width:100%}.data-source-row{min-width:0;padding:10px 14px;width:100%}.data-source-modal-overlay{padding:20px}.data-source-modal{min-width:0}.data-source-modal-header{min-width:0;padding:18px 22px 16px}.data-source-modal-body{min-width:0;padding:18px 22px}.data-source-modal-footer{min-width:0;padding:14px 22px}.data-source-connection-form{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.page-header{grid-gap:14px;align-items:center;background:var(--c-surface);border:1px solid var(--c-border-soft);border-radius:0 0 12px 12px;box-shadow:var(--sh-sm);display:grid;gap:14px;grid-template-columns:minmax(0,1fr) max-content;margin:-26px -30px 16px;min-height:72px;min-width:0;padding:10px 12px;position:sticky;top:0;z-index:var(--z-sticky)}.page-header-main{align-items:center;display:flex;flex:1 1 auto;gap:12px}.page-header-copy,.page-header-main{min-width:0;overflow:hidden}.page-header-actions{align-items:center;display:flex;flex:0 0 auto;gap:8px;justify-content:flex-end;white-space:nowrap}.page-header-action-group{align-items:center;display:flex;flex:0 0 auto;gap:6px}.page-header-action-group-secondary{justify-content:flex-end}.page-header-action-group-primary{justify-content:flex-end;padding-left:0}.page-header-actions .btn{min-height:38px;padding:8px 13px}.report-export-actions{align-items:center;display:inline-flex;flex:0 0 auto}.report-export-actions .btn{border-radius:0;margin-left:-1px}.report-export-actions .btn:first-child{border-radius:8px 0 0 8px;margin-left:0}.report-export-actions .btn:last-child{border-radius:0 8px 8px 0}.page-header .page-title{font-size:20px}.page-header .page-subtitle,.page-header .page-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-header .page-subtitle{font-size:12px;line-height:1.3;margin-top:2px}.workflow-bar{align-items:center;border:1px solid var(--c-border-soft);border-radius:8px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin:-6px 0 18px;padding:12px 16px}.workflow-bar-main{align-items:center;display:flex;flex:1 1 420px;gap:12px;min-width:260px}.workflow-bar-icon{align-items:center;border:1px solid var(--c-border-soft);border-radius:8px;display:inline-flex;flex-shrink:0;height:34px;justify-content:center;width:34px}.workflow-bar-title{color:var(--c-text);font-size:13px;font-weight:800;letter-spacing:-.02em}.workflow-bar-meta{align-items:center;color:var(--c-text-mid);display:flex;flex-wrap:wrap;font-size:11px;gap:8px;margin-top:2px}.workflow-bar-meta span{max-width:260px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-bar-meta span+span:before{background:var(--c-text-faint);border-radius:999px;content:"";display:inline-block;height:4px;margin-right:8px;vertical-align:2px;width:4px}.workflow-field{align-items:center;display:flex;flex:0 1 320px;gap:8px}.workflow-field>span{color:var(--c-text-dim);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.page-title{color:var(--c-text);font-size:24px;font-weight:800;letter-spacing:-.05em;line-height:1.15}.page-subtitle{color:var(--c-text-dim);font-size:13px;letter-spacing:-.01em;margin-top:4px}.section-label{color:var(--c-text-dim);font-size:11px;font-weight:700;letter-spacing:.1em;padding:0 0 8px;text-transform:uppercase}.kpi-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:18px}.chart-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid-3{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.chart-grid-3>*,.chart-grid>*{min-width:0}.sidebar-rail{transition:width .22s cubic-bezier(.4,0,.2,1)}.sidebar-account-actions{align-items:center;display:flex;flex:0 0 auto;gap:6px}.sidebar-signout-button{align-items:center;appearance:none;background:#0000;border:0;border-radius:6px;color:var(--c-rose-text);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;justify-content:center;line-height:1;min-height:32px;padding:0 5px;transition:color .14s,background-color .14s;white-space:nowrap}.sidebar-signout-button:hover{background:var(--c-rose-dim);color:var(--c-rose)}.rail-btn{align-items:center;appearance:none;background:#0000;border:1px solid #0000;border-radius:9px;color:var(--c-text-dim);cursor:pointer;display:inline-flex;height:32px;justify-content:center;line-height:0;padding:0;transition:background-color .14s,border-color .14s,color .14s,box-shadow .14s;width:40px}.rail-btn:hover{background:var(--c-overlay);border-color:var(--c-border);color:var(--c-text-mid)}.rail-btn:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}.rail-btn.is-brand:hover{background:var(--c-brand-faint);border-color:color-mix(in srgb,var(--c-brand) 38%,#0000);color:var(--c-brand)}.rail-btn.is-danger:hover{background:var(--c-rose-dim);border-color:color-mix(in srgb,var(--c-rose) 34%,#0000);color:var(--c-rose)}.rail-toggle{background:var(--c-surface-el);border-color:var(--c-border);border-radius:999px;height:24px;width:44px}.rail-toggle:hover{background:var(--c-brand-faint);border-color:color-mix(in srgb,var(--c-brand) 38%,#0000);box-shadow:0 2px 8px var(--c-brand-glow);color:var(--c-brand)}.rail-btn svg,.rail-nav .nav-item svg{height:18px;width:18px}.rail-toggle svg{height:14px;width:14px}.rail-footer{align-items:center;border-top:1px solid var(--c-border);display:flex;flex-direction:column;gap:4px;padding:8px 0 10px}.admin-users-surface{container:admin-users/inline-size;min-width:0}.admin-user-section-head,.admin-users-surface{max-width:100%;width:100%}.admin-user-section-head>.btn{flex:0 0 auto}.admin-user-filter-fields,.admin-user-filter-row{align-items:end;display:flex;gap:12px;min-width:0}.admin-user-filter-fields{flex:1 1 auto;overflow-x:auto;padding-bottom:2px}.admin-user-filter-field{flex:1 0 200px;max-width:100%;min-width:180px}.admin-user-filter-field-compact{flex-basis:140px;min-width:120px}.admin-user-filter-reload{flex:0 0 auto;min-width:132px}@container admin-users (max-width: 650px){.admin-user-section-head{align-items:stretch!important;flex-direction:column;gap:12px!important}.admin-user-section-head>.btn{width:100%}.admin-user-pagination{align-items:stretch!important;flex-direction:column}.admin-user-pagination>:last-child{justify-content:space-between}}.sidebar-overlay{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;inset:0;position:fixed;z-index:var(--z-drawer)}.back-to-top-button{align-items:center;animation:fadeUp .16s ease both;background:var(--c-surface);border:1px solid color-mix(in srgb,var(--c-brand) 32%,var(--c-border));border-radius:12px;bottom:24px;box-shadow:var(--sh-md);color:var(--c-brand-text);cursor:pointer;display:inline-flex;height:42px;justify-content:center;padding:0;position:fixed;right:24px;transition:transform .14s,color .14s,border-color .14s,background-color .14s;width:42px;z-index:var(--z-sticky)}.back-to-top-button:hover{background:var(--c-brand-faint);border-color:var(--c-brand);color:var(--c-brand);transform:translateY(-2px)}.back-to-top-button:active{transform:translateY(0)}@media (max-width:1024px){.page-wrap{padding:20px}.kpi-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.chart-grid{gap:14px;grid-template-columns:minmax(0,1fr)}.chart-grid-3{gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.page-header{align-items:stretch;gap:8px;grid-template-columns:minmax(0,1fr);margin:-20px -20px 14px}.page-header-main{width:100%}.page-header-actions{justify-content:flex-start;white-space:normal;width:100%}.page-header-action-group{flex-wrap:wrap}}@media (max-width:768px){.page-wrap{padding:16px 14px}.page-header{align-items:stretch;flex-direction:column;gap:8px;margin:-16px -14px 14px;min-height:0;padding:10px}.page-header-main{min-width:0;padding-left:50px;width:100%}.page-header-actions{align-items:center;flex-wrap:wrap;justify-content:flex-start;width:100%}.page-header-action-group{flex-wrap:wrap;justify-content:flex-start;width:auto}.page-header-actions .f-select{max-width:none!important}.workflow-bar{align-items:stretch;gap:12px;margin:-4px 0 16px}.workflow-bar-main{flex-basis:100%;min-width:0}.workflow-field{align-items:stretch;flex-basis:100%;flex-direction:column;gap:6px;width:100%}.workflow-bar-meta span{max-width:100%}.page-title{font-size:20px}.kpi-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.chart-grid-3{gap:12px;grid-template-columns:minmax(0,1fr)}.data-table tbody td,.data-table thead th{font-size:11px;padding:7px 10px}}@media (max-width:640px){.kpi-grid{gap:10px;grid-template-columns:1fr}.page-wrap{padding:14px 12px}.page-header{margin:-14px -12px 14px}.data-table td.table-actions-sticky,.data-table th.table-actions-sticky{box-shadow:none;position:static;right:auto}}@media (max-width:480px){.data-source-page-header{margin-bottom:20px}.data-source-page-heading{align-items:flex-start;gap:10px}.data-source-panel-card{padding:16px 14px}.data-source-row{gap:8px!important;padding:10px}.data-source-modal-overlay{padding:10px}.data-source-modal-header{padding:14px 16px 12px}.data-source-modal-body{padding:14px 16px}.data-source-modal-footer{flex-wrap:wrap;padding:12px 16px}.data-source-modal-footer .btn-primary{flex:1 1 100%;min-width:0!important;width:100%}.data-source-connection-form{grid-template-columns:minmax(0,1fr)}}.safe-bottom{padding-bottom:env(safe-area-inset-bottom,0)}.safe-top{padding-top:env(safe-area-inset-top,0)}.pb-safe{padding-bottom:max(12px,env(safe-area-inset-bottom,12px))}@media print{.app-header-bar,.sidebar-overlay,.sidebar-rail{display:none}body{background:#fff;color:#000}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.skip-link{background:var(--c-brand);border-radius:0 0 8px 0;color:#fff;font-size:13px;font-weight:700;left:-9999px;padding:10px 16px;position:absolute;text-decoration:none;top:0;z-index:var(--z-skip-link)}.skip-link:focus,.skip-link:focus-visible{left:0;outline:2px solid var(--c-text-hi);outline-offset:2px}#main-content:focus{outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}