:root{--accent: #4f6ef7;--accent-hover: #4561e8;--accent-press: #3a52d6;--accent-soft: #eaeefe;--accent-softer: #f3f5ff;--accent-ink: #ffffff;--accent-2: #7c3aed;--accent-3: #8b5cf6;--accent-4: #f59e0b;--grad-brand: linear-gradient(135deg, #4f6ef7 0%, #7c3aed 100%);--grad-brand-hover: linear-gradient(135deg, #4561e8 0%, #6d28d9 100%);--grad-brand-soft: linear-gradient(135deg, #eaeefe 0%, #f0eafe 100%);--grad-sheen: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.55) 50%, transparent 80%);--bg: #f4f5fb;--bg-2: #eef1fb;--sidebar: #ffffff;--panel: #ffffff;--panel-2: #f6f7fc;--panel-1: #f6f7fc;--surface: #ffffff;--bubble: #eef1fb;--border: #e8ebf4;--border-strong: #d8deee;--text: #1e2233;--fg: #1e2233;--muted: #6b7280;--faint: #9aa3b2;--good: #16a34a;--good-bg: #e7f7ee;--good-border: #b7ebcb;--bad: #ef4444;--bad-bg: #fdecec;--bad-border: #f6c6c6;--warn: #d97706;--warn-bg: #fef4e6;--warn-border: #f6dca8;--info: #4f6ef7;--info-bg: #eaeefe;--info-border: #cdd7fb;--chip: #eef1fb;--glass-bg: rgba(255, 255, 255, .62);--glass-bg-strong: rgba(255, 255, 255, .78);--glass-border: rgba(255, 255, 255, .65);--glass-blur: 16px;--sans: "Inter", ui-sans-serif, -apple-system, "Segoe UI", system-ui, sans-serif;--display: var(--sans);--serif: var(--sans);--mono: "Cascadia Code", "SF Mono", Consolas, monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 30px;--fs-4xl: 40px;--lh-tight: 1.2;--lh-snug: 1.4;--lh-normal: 1.6;--lh-relaxed: 1.7;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 28px;--radius-pill: 999px;--radius: 12px;--shadow-xs: 0 1px 2px rgba(30, 40, 80, .05);--shadow-sm: 0 2px 8px rgba(40, 50, 100, .06);--shadow-md: 0 8px 24px rgba(40, 50, 110, .1);--shadow-lg: 0 18px 48px rgba(40, 50, 110, .16);--shadow-glow: 0 8px 26px rgba(79, 110, 247, .35);--shadow-glow-strong: 0 12px 40px rgba(108, 76, 252, .42);--z-base: 1;--z-dropdown: 200;--z-sticky: 300;--z-overlay: 1000;--z-modal: 2000;--z-toast: 3000;--dur-fast: .14s;--dur-base: .24s;--dur-slow: .4s;--dur-slower: .8s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-emphasized: cubic-bezier(.2, .7, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--chat-max: 1400px;--composer-max: 1000px;--term-bg: #070b16;--term-dim: #3f4c6b;--term-scroll: #2a3354}[data-theme=dark]{--accent-soft: rgba(79, 110, 247, .18);--accent-softer: rgba(79, 110, 247, .1);--grad-brand-soft: linear-gradient(135deg, rgba(79,110,247,.18) 0%, rgba(124,58,237,.18) 100%);--grad-sheen: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.1) 50%, transparent 80%);--bg: #0d1120;--bg-2: #10152a;--sidebar: #12172b;--panel: #171d33;--panel-2: #1c2340;--panel-1: #1c2340;--surface: #171d33;--bubble: #1f2745;--border: #283155;--border-strong: #3a4573;--text: #e7eaf4;--fg: #e7eaf4;--muted: #a2abc7;--faint: #717aaa;--good: #34d399;--good-bg: rgba(52,211,153,.14);--good-border: rgba(52,211,153,.32);--bad: #f87171;--bad-bg: rgba(248,113,113,.14);--bad-border: rgba(248,113,113,.34);--warn: #fbbf24;--warn-bg: rgba(251,191,36,.14);--warn-border: rgba(251,191,36,.32);--info: #7c9dff;--info-bg: rgba(124,157,255,.14);--info-border: rgba(124,157,255,.34);--chip: #1f2745;--glass-bg: rgba(23, 29, 51, .6);--glass-bg-strong: rgba(23, 29, 51, .82);--glass-border: rgba(255, 255, 255, .08);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .34);--shadow-md: 0 8px 24px rgba(0, 0, 0, .44);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:radial-gradient(1100px 700px at 8% -10%,rgba(79,110,247,.1),transparent 60%),radial-gradient(1000px 680px at 100% 0%,rgba(124,58,237,.08),transparent 55%),var(--bg);background-attachment:fixed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}::selection{background:var(--accent-soft);color:var(--accent-press)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--faint);background-clip:content-box}.terminal::-webkit-scrollbar-thumb,.trace-result::-webkit-scrollbar-thumb{background:var(--term-scroll);background-clip:content-box}@keyframes jvFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes jvFadeIn{0%{opacity:0}to{opacity:1}}@keyframes jvScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes jvPopIn{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes jvFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes jvBob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}@keyframes jvGlow{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes jvSpinSlow{to{transform:rotate(360deg)}}@keyframes jvSheen{0%{background-position:-150% 0}to{background-position:250% 0}}@keyframes jvShimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes jvAurora{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(2%,-2%,0) scale(1.08)}to{transform:translateZ(0) scale(1)}}@keyframes jvPulseRing{0%{box-shadow:0 0 #4f6ef773}70%{box-shadow:0 0 0 10px #4f6ef700}to{box-shadow:0 0 #4f6ef700}}.jv-in{animation:jvFadeUp var(--dur-slow) var(--ease-emphasized) both;animation-delay:var(--d, 0ms)}.jv-in-scale{animation:jvScaleIn var(--dur-base) var(--ease-emphasized) both;animation-delay:var(--d, 0ms)}.jv-in-fade{animation:jvFadeIn var(--dur-slow) var(--ease-standard) both;animation-delay:var(--d, 0ms)}.hover-lift{transition:transform var(--dur-base) var(--ease-emphasized),box-shadow var(--dur-base) var(--ease-standard)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border)}.skeleton{background:linear-gradient(90deg,var(--panel-2) 25%,#eef0f7 37%,var(--panel-2) 63%);background-size:400px 100%;animation:jvShimmer 1.3s ease-in-out infinite;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.app{display:flex;flex-direction:column;height:100vh;background:transparent}.topbar{display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--border);position:relative;z-index:var(--z-sticky)}.brand{display:flex;align-items:center;gap:8px;min-width:0}.brand-mark{width:38px;height:38px;flex:0 0 auto;display:block}.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-name{font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--text);line-height:1.05}.brand-subtitle{font-size:12px;color:var(--muted);line-height:1.2}.brand-compact .brand-mark{width:36px;height:36px}.brand-compact .brand-copy{display:block}.brand-compact .brand-name{font-size:16px}.tag{font-size:var(--fs-base);color:var(--muted)}.spacer{flex:1}.pill{font-size:var(--fs-base);padding:5px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--muted)}.pill.admin{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-soft);font-weight:500}.tabs{display:flex;gap:4px}.tab{padding:6px 14px;border-radius:999px;cursor:pointer;font-size:var(--fs-base);font-weight:500;border:1px solid transparent;color:var(--muted);transition:background .15s,color .15s}.tab:hover{color:var(--accent);background:var(--accent-soft)}.tab.active{background:var(--grad-brand);color:var(--accent-ink);box-shadow:var(--shadow-glow)}.tab.active:hover{background:var(--grad-brand-hover);color:var(--accent-ink)}.btn{position:relative;overflow:hidden;background:var(--grad-brand);color:var(--accent-ink);border:none;padding:9px 18px;border-radius:var(--radius-pill);cursor:pointer;font-size:var(--fs-md);font-weight:var(--fw-semibold);font-family:inherit;box-shadow:var(--shadow-glow);transition:transform var(--dur-fast) var(--ease-emphasized),box-shadow var(--dur-base) var(--ease-standard),filter var(--dur-fast)}.btn:hover{background:var(--grad-brand-hover);transform:translateY(-1px);box-shadow:var(--shadow-glow-strong)}.btn:active{transform:translateY(0) scale(.98)}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--grad-sheen);background-size:200% 100%;background-position:-150% 0;opacity:0;pointer-events:none}.btn:hover:after{opacity:1;animation:jvSheen .9s var(--ease-standard)}.btn.ghost{background:var(--panel);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-xs)}.btn.ghost:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn.ghost:after{display:none}.btn.sm{padding:6px 13px;font-size:var(--fs-sm)}.btn.danger{background:var(--bad);color:#fff;box-shadow:var(--shadow-sm)}.btn.danger:hover{background:#dc2626}.btn.good{background:linear-gradient(135deg,#16a34a,#0ea5a3);color:#fff;box-shadow:0 8px 22px #16a34a52}.btn.good:hover{filter:brightness(1.05)}.btn.danger:after,.btn.good:after{display:none}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn:disabled:after{display:none}.workspace{flex:1;display:flex;overflow:hidden}.hidden{display:none!important}.chat-center{flex:1;display:flex;overflow:hidden}.muted{color:var(--muted)}.chat-shell{display:flex;width:100%;height:100%}.sidebar-backdrop{display:none}.chat-history{flex:0 0 260px;display:flex;flex-direction:column;background:var(--sidebar);border-right:1px solid var(--border);overflow:hidden;transition:flex-basis .28s cubic-bezier(.4,0,.2,1),opacity .22s ease,border-color .28s ease}.chat-history.collapsed{flex-basis:0;opacity:0;border-color:transparent;pointer-events:none}.history-head{display:flex;align-items:center;gap:8px;padding:14px 8px 8px}.history-head .new-chat{flex:1;margin:0;justify-content:flex-start;text-align:left;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-md);font-size:var(--fs-md);background:var(--accent-soft);color:var(--accent-press);border:1px solid transparent;font-weight:var(--fw-semibold);box-shadow:none}.history-head .new-chat:hover{background:var(--grad-brand);color:var(--accent-ink);border-color:transparent;box-shadow:var(--shadow-glow);transform:translateY(-1px)}.history-head .new-chat:after{display:none}.history-head>.btn.ghost.sm:not(.new-chat){flex:0 0 auto;border-color:transparent;color:var(--muted);padding:6px 9px}.history-head>.btn.ghost.sm:not(.new-chat):hover{background:var(--panel);color:var(--text)}.history-list{flex:1;overflow-y:auto;padding:4px 0 12px;display:flex;flex-direction:column}.history-group{display:flex;flex-direction:column;margin-bottom:4px}.history-group-label{display:flex;align-items:center;gap:4px;width:100%;background:none;border:none;font-family:inherit;text-align:left;font-size:12px;font-weight:500;color:var(--muted);padding:8px 14px 4px;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap}.history-group-label:hover{color:var(--text)}.group-chevron{flex:0 0 auto;font-size:13px;color:var(--faint);transition:transform .18s ease;display:inline-block;transform:rotate(0)}.group-chevron.open{transform:rotate(90deg)}.history-item{display:flex;align-items:center;gap:0;padding:7px 12px 7px 10px;cursor:pointer;color:var(--muted);transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-fast);border-radius:var(--radius-sm);margin:1px 6px}.history-item:hover{background:var(--accent-softer);color:var(--text);transform:translate(2px)}.history-item.active{background:var(--accent-soft);color:var(--accent-press)}.history-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.history-title{font-size:13px;overflow:hidden;display:flex;align-items:center;gap:5px}.history-title-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.history-item-module{font-size:11px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-del{flex:0 0 auto;background:transparent;border:none;color:var(--faint);cursor:pointer;font-size:11px;line-height:1;padding:2px 4px;border-radius:4px;opacity:0}.history-item:hover .history-del{opacity:.8}.history-del:hover{color:var(--bad);background:#c0392f1a;opacity:1}.history-menu-btn{flex:0 0 auto;background:transparent;border:none;color:var(--faint);cursor:pointer;padding:3px;border-radius:6px;opacity:0;display:inline-flex;align-items:center;transition:color var(--dur-fast),background var(--dur-fast),opacity var(--dur-fast)}.history-item:hover .history-menu-btn,.history-item.active .history-menu-btn{opacity:.7}.history-menu-btn:hover,.history-menu-btn.open{color:var(--accent);background:var(--accent-soft);opacity:1}.history-head>.btn.ghost.sm.active{background:var(--accent-soft);color:var(--accent)}.select-toolbar{display:flex;flex-direction:column;gap:9px;padding:10px 12px;margin:2px 6px 4px;border-radius:var(--radius-md);background:var(--accent-softer);border:1px solid var(--border)}.select-toolbar-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.select-all{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.select-all input{cursor:pointer;accent-color:var(--accent)}.select-count{font-size:11px;color:var(--faint);white-space:nowrap}.select-toolbar-actions{display:flex;gap:6px}.select-btn{flex:1;padding:6px 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text);transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.select-btn.cancel:hover{border-color:var(--accent);color:var(--accent)}.select-btn.del{background:var(--bad);color:#fff;border-color:transparent}.select-btn.del:hover:not(:disabled){background:#dc2626}.select-btn.del:disabled{opacity:.4;cursor:not-allowed}.history-check{flex:0 0 auto;margin-right:8px;cursor:pointer;accent-color:var(--accent)}.history-item.selected{background:var(--accent-soft);color:var(--accent-press)}.history-rename-input{width:100%;font-family:inherit;font-size:13px;color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:6px;padding:4px 8px;box-shadow:0 0 0 3px var(--accent-soft)}.history-rename-input:focus{outline:none}.chat-menu{z-index:calc(var(--z-overlay) + 100);min-width:150px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:5px;display:flex;flex-direction:column;animation:fadeSlideIn .12s ease}.chat-menu-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;font-family:inherit;font-size:var(--fs-base);color:var(--text);text-align:left;padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.chat-menu-item:hover{background:var(--accent-soft);color:var(--accent-press)}.chat-menu-item.danger:hover{background:var(--bad-bg);color:var(--bad)}.sidebar-brand{display:flex;align-items:center;gap:8px;padding:16px 12px 8px 14px}.sidebar-brand .brand{flex:1;min-width:0}.sidebar-brand .brand-name{font-size:17px}.sidebar-collapse{flex:0 0 auto;background:transparent;border:none;color:var(--faint);cursor:pointer;padding:5px;border-radius:8px;display:inline-flex;align-items:center;transition:background var(--dur-fast),color var(--dur-fast)}.sidebar-collapse:hover{background:var(--accent-soft);color:var(--accent)}.side-nav-item{display:flex;align-items:center;gap:10px;width:calc(100% - 16px);margin:1px 8px;padding:9px 12px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--muted);text-align:left;transition:background var(--dur-fast),color var(--dur-fast)}.side-nav-item:hover{background:var(--accent-softer);color:var(--text)}.side-nav-item.active{background:var(--accent-soft);color:var(--accent-press);font-weight:var(--fw-semibold)}.side-nav-item svg{flex:0 0 auto}.side-nav-item.sub{font-size:var(--fs-base);padding-left:22px}.side-caret{margin-left:auto;transition:transform var(--dur-base);color:var(--faint);font-size:15px}.side-caret.open{transform:rotate(90deg)}.side-section-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--faint);padding:10px 16px 6px}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding:8px 0;display:flex;flex-direction:column}.side-subnav{display:flex;flex-direction:column;animation:jvFadeUp var(--dur-fast) var(--ease-standard) both}.user-card{display:flex;align-items:center;gap:10px;margin:6px 8px 2px;padding:8px 10px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast)}.user-card:hover{background:var(--accent-softer)}.user-card.static{cursor:default}.user-card.static:hover{background:transparent}.context-rail{flex:0 0 320px;width:320px;height:100%;overflow-y:auto;border-left:1px solid var(--border);background:var(--bg);padding:52px 16px 16px;display:flex;flex-direction:column;gap:14px;animation:jvFadeUp var(--dur-slow) var(--ease-emphasized) both}.rail-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-xs)}.rail-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:12px}.rail-metrics{display:flex;flex-direction:column;gap:10px}.rail-metric{display:flex;flex-direction:column;gap:2px}.rail-metric-label{font-size:var(--fs-xs);color:var(--faint)}.rail-metric-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text);letter-spacing:-.01em}.rail-conf{display:flex;flex-wrap:wrap;gap:6px}.rail-badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:3px 9px;border-radius:var(--radius-pill)}.rail-badge.reuse{color:var(--good);background:var(--good-bg)}.rail-badge.gen{color:var(--accent);background:var(--accent-soft)}.rail-badge.ok{color:var(--good);background:var(--good-bg)}.rail-badge.warn{color:var(--warn);background:var(--warn-bg)}.rail-reason{font-size:var(--fs-sm);color:var(--muted);margin-top:8px;line-height:1.5}.rail-meta{font-size:var(--fs-xs);color:var(--faint);margin-top:8px}.rail-chips{display:flex;flex-wrap:wrap;gap:6px}.rail-followups{display:flex;flex-direction:column;gap:6px}.rail-followup{text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 11px;font-size:var(--fs-sm);color:var(--text);cursor:pointer;font-family:inherit;transition:border-color var(--dur-fast),background var(--dur-fast),transform var(--dur-fast)}.rail-followup:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-press);transform:translate(2px)}.rail-followup:disabled{opacity:.5;cursor:default}.rail-actions{display:flex;flex-direction:column;gap:6px}.rail-action{display:flex;align-items:center;gap:9px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:9px 12px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);cursor:pointer;font-family:inherit;transition:border-color var(--dur-fast),background var(--dur-fast)}.rail-action:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-press)}.rail-action svg{flex:0 0 auto;color:var(--accent)}.rail-sql-toggle{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:0;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text);cursor:pointer}.rail-sql-toggle .side-caret{margin-left:auto}.rail-sql-toggle svg{color:var(--accent)}.rail-sql{margin:10px 0 0;padding:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--mono);font-size:var(--fs-sm);color:#3a4a2e;white-space:pre-wrap;overflow-x:auto}@media (max-width: 1200px){.context-rail{display:none}}.topright{position:fixed;top:12px;right:16px;z-index:var(--z-sticky);display:flex;gap:8px;transition:right var(--dur-base) var(--ease-standard)}.topright.shifted{right:636px}.topright .btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-press)}.chat-top{padding-right:200px}.user-avatar{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-md);background:var(--grad-brand)}.user-meta{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{font-size:var(--fs-xs);color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-caret{color:var(--faint);transition:transform var(--dur-base)}.user-caret.open{transform:rotate(180deg)}.user-signout{margin:2px 8px 4px;padding:8px 12px;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:var(--fs-base);color:var(--bad);font-weight:var(--fw-medium);transition:background var(--dur-fast)}.user-signout:hover{background:var(--bad-bg)}.chat{flex:1;display:flex;flex-direction:column;background:var(--panel);overflow:hidden;min-width:0}.chat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 22px;background:var(--panel);position:relative}.sidebar-toggle{flex:0 0 auto;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .18s,color .18s,border-color .18s}.sidebar-toggle:hover{background:var(--panel-2);color:var(--text);border-color:var(--border-strong)}.sidebar-chevron{transition:transform .28s cubic-bezier(.4,0,.2,1);display:block}.sidebar-chevron.flipped{transform:rotate(180deg)}.module-label{display:flex;align-items:center;padding:4px 12px;background:var(--panel);border:1px solid var(--border);border-radius:999px;font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;box-shadow:var(--shadow-sm)}.module-picker{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:20px}.module-picker h2{margin:0;font-size:22px;font-weight:600;color:var(--text);font-family:var(--display)}.module-picker-sub{margin:0;color:var(--muted);font-size:14px}.module-picker-empty{color:var(--muted);font-size:14px;text-align:center;max-width:320px}.module-cards{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:640px;width:100%}.module-card{position:relative;background:var(--panel);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;min-width:140px;max-width:200px;flex:1;cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:8px;transition:border-color var(--dur-base),box-shadow var(--dur-base),transform var(--dur-base) var(--ease-emphasized)}.module-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-md)}.module-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-glow)}.module-card-check{flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.module-card-name{font-size:14px;font-weight:600;color:var(--text)}.chat-log{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0;padding:24px 0 8px;display:flex;flex-direction:column;gap:26px;scroll-behavior:smooth}.chat-top-question{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:min(46%,520px);background:var(--accent-soft);border:1px solid var(--info-border);border-radius:var(--radius-pill);padding:7px 20px;font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--accent-press);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .2s var(--ease-standard);pointer-events:none}.chat-top-question.show{opacity:1}.msg{width:100%;max-width:var(--chat-max);margin:0 auto;padding:0 20px;line-height:var(--lh-relaxed);font-size:var(--fs-md);animation:jvFadeUp var(--dur-slow) var(--ease-emphasized) both}.msg.user{display:flex;flex-direction:column;align-items:flex-end}.msg.user:before{display:none}.msg.user .msg-body{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:14px;padding:9px 14px;max-width:76%;font-size:var(--fs-md);white-space:pre-wrap;line-height:1.55}.msg.bot{display:block;color:var(--text)}.msg.bot:before{content:"VidAI";display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.msg.bot>div:first-child{line-height:1.65}.msg .small{color:var(--muted);font-size:var(--fs-base);margin-top:10px}.bot-result{display:flex;flex-direction:column;margin-top:12px;min-width:0;max-width:100%}.bot-section{padding:14px 0;min-width:0;max-width:100%;border-top:1px solid var(--border)}.bot-section:first-child{border-top:none;padding-top:0}.bot-footer{display:flex;flex-direction:row;align-items:center;gap:10px 18px;flex-wrap:wrap}.footer-meta{display:flex;align-items:center;gap:12px 16px;flex:0 1 auto;min-width:0;flex-wrap:wrap}.footer-meta .route-badge{font-size:var(--fs-sm);padding:4px 12px}.footer-meta .sql-disclosure .sql{min-width:0;max-width:min(760px,100%);overflow-x:auto}.followups-chips{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 auto}.sql-meta-row{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap}.meta-hover{position:relative;display:inline-flex;align-items:baseline}.meta-summary{font-size:12px;color:var(--faint);cursor:default;border-bottom:1px dashed var(--border);padding-bottom:1px}.meta-tooltip{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px;box-shadow:var(--shadow-md);z-index:50;font-size:12px;color:var(--muted);white-space:nowrap;min-width:220px;display:none;flex-direction:column;gap:4px;animation:fadeSlideIn .15s ease}.meta-hover:hover .meta-tooltip{display:flex}.sql-disclosure summary{cursor:pointer;font-size:var(--fs-base);color:var(--muted);list-style:none;display:flex;align-items:center;gap:5px;-webkit-user-select:none;user-select:none}.sql-disclosure summary:before{content:"▶";font-size:9px;transition:transform .2s}.sql-disclosure[open] summary:before{transform:rotate(90deg)}.sql-disclosure summary::-webkit-details-marker{display:none}.meta-valid{color:var(--good)}.meta-warn{color:var(--warn)}.meta-body{margin-top:6px;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:3px}.meta-reason{color:var(--faint);font-style:italic}.tables-used-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:0}.tables-used-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-right:2px}.table-chip{font-size:11px;font-weight:600;font-family:var(--mono, monospace);color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:6px;padding:2px 8px;white-space:nowrap}.suggestion-chip{flex-shrink:0;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:7px 16px 7px 12px;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap;font-family:inherit;transition:border-color .18s,background .18s,color .18s;display:flex;align-items:center;gap:6px}.suggestion-chip:before{content:"→";font-size:12px;color:var(--accent);transition:transform .18s;display:inline-block}.suggestion-chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.suggestion-chip:hover:before{transform:translate(2px)}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 24px 56px;overflow-y:auto;animation:jvFadeUp var(--dur-slow) var(--ease-emphasized) both}.chat-empty-inner{width:100%;max-width:var(--composer-max);display:flex;flex-direction:column;align-items:stretch;gap:20px}.chat-empty-greeting{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 4px;font-size:var(--fs-3xl);font-weight:var(--fw-bold);letter-spacing:-.02em;color:var(--text);text-align:center}.chat-empty .chat-input{margin-top:0}.empty-suggestions{display:flex;flex-direction:column;align-items:center;gap:12px}.suggestions-panel{display:flex;flex-direction:column;align-items:center;gap:14px;padding:60px 32px 24px}.suggestions-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.suggestions-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:760px}.dialect-mismatch-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;background:#fffbeb;border-bottom:1px solid #fbbf24;color:#92400e;font-size:13px;flex-shrink:0}.dialect-mismatch-banner b{font-weight:700}.dialect-mismatch-banner .btn{background:#f59e0b;color:#fff;border:none;white-space:nowrap}.dialect-mismatch-banner .btn:hover{background:#d97706}.clarify-block{margin-top:10px;padding:14px 16px;background:var(--panel);border:1px solid var(--border-strong);border-left:3px solid var(--warn);border-radius:10px}.clarify-question{font-size:14px;font-weight:500;color:var(--fg);margin-bottom:12px;line-height:1.5}.clarify-options{display:flex;flex-wrap:wrap;gap:8px}.clarify-option-btn{background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;padding:7px 18px;font-size:13px;font-family:inherit;color:var(--fg);cursor:pointer;transition:border-color .18s,background .18s,color .18s}.clarify-option-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.clarify-option-btn:disabled{opacity:.45;cursor:default}.clarify-input-row{display:flex;gap:8px;align-items:center}.clarify-input{flex:1;min-width:0;padding:9px 14px;background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;font-size:13px;font-family:inherit;color:var(--fg);transition:border-color .18s,box-shadow .18s}.clarify-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.clarify-input:disabled{opacity:.55}.clarify-picker{display:flex;flex-direction:column;gap:8px}.clarify-pick-list{max-height:220px;overflow-y:auto;border:1px solid var(--border-strong);border-radius:12px;padding:4px;background:var(--bg)}.clarify-pick-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;font-size:13px;cursor:pointer}.clarify-pick-row:hover{background:var(--accent-soft)}.clarify-pick-row input{cursor:pointer}.clarify-pick-all{font-weight:600;border-bottom:1px solid var(--border);border-radius:0}.clarify-chips{display:flex;flex-wrap:wrap;gap:6px}.clarify-chip{border:1px solid var(--border-strong);background:var(--accent-soft);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--fg);cursor:pointer}.clarify-chip:hover{border-color:var(--accent)}.clarify-picker>.btn{align-self:flex-start}.queued-hint{width:100%;max-width:var(--composer-max);margin:0 auto 6px;padding:0 6px;display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted);animation:jvFadeUp var(--dur-base) var(--ease-standard) both}.queued-hint svg{color:var(--accent);flex:0 0 auto}.chat-input{display:flex;align-items:center;gap:8px;width:100%;max-width:var(--composer-max);margin:8px auto 22px;padding:8px 8px 8px 18px;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:2px solid color-mix(in srgb,var(--accent) 55%,#cfd6ea);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 0 0 4px var(--accent-soft);transition:border-color var(--dur-base),box-shadow var(--dur-base)}.chat-input:focus-within{border-color:var(--accent);box-shadow:var(--shadow-lg),0 0 0 4px var(--accent-soft)}.chat>.chat-input{max-width:none;width:auto;margin-top:18px;margin-left:24px;margin-right:24px}.chat-input textarea{flex:1;padding:9px 6px;border:none;background:transparent;color:var(--text);font-size:var(--fs-md);font-family:inherit;resize:none;line-height:1.5;min-height:calc(3em + 18px);max-height:160px;overflow-y:auto}.chat-input textarea:focus{outline:none}.chat-input textarea::placeholder{color:var(--faint)}.chat-input .btn{flex:0 0 auto;width:42px;height:42px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1}.chat-input .btn:not(:disabled){animation:jvPulseRing 2.6s var(--ease-standard) infinite}.chat-input .btn.btn-stop{background:var(--bad);box-shadow:var(--shadow-sm);animation:none}.chat-input .btn.btn-stop:hover{background:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.chat-input .btn.btn-stop:after{display:none}.btn-stop .stop-glyph{width:13px;height:13px;border-radius:3px;background:#fff;display:block}.composer-attachment{display:flex;align-items:center;gap:12px;width:100%;max-width:var(--composer-max);margin:0 auto -2px;padding:8px 14px 10px}.chat>.composer-attachment{max-width:none;width:auto;margin-left:24px;margin-right:24px}.composer-thumb-wrap{position:relative;flex:0 0 auto;line-height:0}.composer-thumb{width:60px;height:60px;object-fit:cover;border-radius:10px;display:block;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border, #d9dced));box-shadow:var(--shadow-sm)}.composer-thumb-remove{position:absolute;top:-7px;right:-7px;border:2px solid var(--glass-bg-strong, #fff);cursor:pointer;width:20px;height:20px;border-radius:50%;font-size:11px;line-height:1;display:inline-flex;align-items:center;justify-content:center;background:var(--bad);color:#fff;box-shadow:var(--shadow-sm);transition:transform var(--dur-base)}.composer-thumb-remove:hover{transform:scale(1.12)}.composer-attachment-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.composer-thumb-name{font-size:13px;font-weight:600;color:var(--text);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-attachment-hint{font-size:11.5px;color:var(--muted)}.chat-input .btn.composer-attach{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--muted);box-shadow:none;animation:none;transition:background var(--dur-base),color var(--dur-base)}.chat-input .btn.composer-attach:hover,.chat-input .btn.composer-attach.has-image{background:var(--accent-soft);color:var(--accent)}.chat-input.drag-over{border-color:var(--accent);box-shadow:var(--shadow-lg),0 0 0 4px var(--accent-soft)}.msg-image-attach{display:block;margin-bottom:8px;padding:0;line-height:0;cursor:pointer;background:none;border-radius:12px;overflow:hidden;width:fit-content;border:1px solid color-mix(in srgb,var(--text) 12%,transparent);box-shadow:var(--shadow-sm);transition:transform var(--dur-base),box-shadow var(--dur-base)}.msg-image-attach:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.msg-image-attach img{display:block;max-width:240px;max-height:200px;object-fit:cover}.msg.user .msg-image-attach{margin-left:auto}.img-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:32px;background:#0a0e1ac7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:jvFadeIn var(--dur-base) var(--ease-standard)}.img-lightbox img{width:auto;height:auto;max-width:min(92vw,560px);max-height:88vh;object-fit:contain;border-radius:12px;box-shadow:var(--shadow-lg);cursor:default;background:#fff}.img-lightbox-close{position:fixed;top:18px;right:22px;width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;font-size:18px;line-height:1;color:#fff;display:inline-flex;align-items:center;justify-content:center;background:#ffffff29;transition:background var(--dur-base)}.img-lightbox-close:hover{background:#ffffff4d}.msg-image-chip{display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.msg.user .msg-image-chip{background:#ffffff38;color:#fff}.toggle-row{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:var(--composer-max);margin:0 auto;padding:8px 12px 14px;font-size:12px;color:var(--muted)}.switch{position:relative;width:36px;height:20px;background:var(--border-strong);border-radius:999px;cursor:pointer;transition:background .15s}.switch.on{background:var(--accent)}.knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:var(--shadow-sm)}.switch.on .knob{left:18px}.sql{font-family:var(--mono);font-size:var(--fs-base);white-space:pre-wrap;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:12px;color:#3a4a2e}details>summary{color:var(--accent);font-weight:500}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.card h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.kv{font-size:13px;color:var(--text)}.chip{display:inline-block;background:var(--chip);border:1px solid var(--border);border-radius:8px;padding:3px 8px;margin:3px 4px 0 0;font-size:12px}.chip .sc{color:var(--accent);margin-left:6px}table.grid{width:100%;border-collapse:collapse;font-size:13px;border-radius:10px;overflow:visible}table.grid th,table.grid td{border:1px solid var(--border);padding:7px 11px;text-align:left;overflow:visible}table.grid th{background:var(--panel-2);color:var(--text);font-weight:600}table.grid th:first-child{border-top-left-radius:10px}table.grid th:last-child{border-top-right-radius:10px}table.grid tbody tr:last-child td:first-child{border-bottom-left-radius:10px}table.grid tbody tr:last-child td:last-child{border-bottom-right-radius:10px}table.grid tbody tr:nth-child(2n){background:var(--panel-2)}table.grid tbody tr:hover{background:var(--accent-soft)}.data-table{display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%}.record-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;border:1px solid var(--border);border-radius:var(--radius-md);padding:4px 14px;background:var(--panel)}.record-field{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--border);min-width:0}.record-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.record-value{font-size:var(--fs-md, 14px);font-weight:var(--fw-medium);color:var(--text);word-break:break-word}@media (max-width: 560px){.record-card{grid-template-columns:1fr}}.dt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.dt-search{flex:0 0 auto;width:min(260px,55%);padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--panel);color:var(--text);font-size:var(--fs-sm);font-family:inherit;transition:border-color var(--dur-fast),box-shadow var(--dur-base)}.dt-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dt-count{font-size:var(--fs-xs);color:var(--faint);white-space:nowrap}.dt-limit{font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;color:var(--accent-press);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-pill);padding:2px 9px}.dt-toolbar-right{display:flex;align-items:center;gap:8px}.dt-action{display:inline-flex;align-items:center;gap:5px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:5px 11px;font-size:var(--fs-xs);font-weight:var(--fw-medium);font-family:inherit;color:var(--muted);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.dt-action:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-press)}.dt-action svg{flex:0 0 auto}.dt-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color var(--dur-fast),background var(--dur-fast)}.dt-th:hover,.dt-th.sorted{color:var(--accent)}.dt-sort{margin-left:6px;font-size:9px;color:var(--faint)}.dt-th.sorted .dt-sort{color:var(--accent)}table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums}.dt-pager{display:flex;align-items:center;justify-content:center;gap:14px;font-size:var(--fs-sm);color:var(--muted);padding:2px 0}.dt-pager button{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:5px 12px;font-size:var(--fs-sm);font-family:inherit;color:var(--text);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}.dt-pager button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-press)}.dt-pager button:disabled{opacity:.4;cursor:not-allowed}.dt-pager-goto{width:56px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:5px 8px;font-size:var(--fs-sm);font-family:inherit;color:var(--text);text-align:center;transition:border-color var(--dur-fast)}.dt-pager-goto:focus{outline:none;border-color:var(--accent)}.dt-pager-goto::-webkit-outer-spin-button,.dt-pager-goto::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dt-pager-goto{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.result-topic{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text);letter-spacing:-.01em;line-height:1.4}.result-topic:first-letter{text-transform:uppercase}.exec-summary{background:var(--grad-brand-soft);border:1px solid var(--info-border);border-radius:var(--radius-lg);padding:16px 18px}.exec-summary-tag{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:8px}.exec-headline{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text);line-height:1.4;margin-bottom:12px}.exec-grid{display:flex;flex-direction:column;gap:8px}.exec-item{display:flex;flex-direction:column;gap:2px}.exec-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.exec-value{font-size:var(--fs-md);color:var(--text);line-height:1.55}.report-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.report-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;background:var(--panel);box-shadow:var(--shadow-xs);border-left:3px solid var(--accent)}.report-card.report-risks{border-left-color:var(--bad)}.report-card.report-opps{border-left-color:var(--good)}.report-card.report-recs{border-left-color:var(--accent)}.report-card.report-forecast{border-left-color:var(--accent-2)}.report-card.report-rootcause{border-left-color:var(--warn)}.report-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}.report-text{margin:0;font-size:var(--fs-md);color:var(--text);line-height:1.6}.report-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.report-list li{font-size:var(--fs-md);color:var(--text);line-height:1.5}.rail-dq{display:flex;align-items:center;gap:8px}.rail-dq-badge{font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:3px 10px;border-radius:var(--radius-pill);background:var(--panel-2);color:var(--muted)}.rail-dq-badge.good{color:var(--good);background:var(--good-bg)}.rail-dq-badge.fair{color:var(--warn);background:var(--warn-bg)}.rail-dq-badge.poor{color:var(--bad);background:var(--bad-bg)}.rail-dq-score{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text)}.rail-dq-notes{margin:10px 0 0;padding-left:16px;display:flex;flex-direction:column;gap:4px}.rail-dq-notes li{font-size:var(--fs-sm);color:var(--muted);line-height:1.45}.route-badge{display:inline-block;padding:6px 12px;border-radius:999px;font-weight:600;font-size:13px}.route-badge.reuse{background:#1a7f551f;color:var(--good);border:1px solid rgba(26,127,85,.3)}.route-badge.generate{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent)}.db-badge{display:inline-flex;align-items:center;gap:5px;max-width:240px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:500;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-4);text-align:left}.field-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--muted)}.field-control{position:relative;display:flex;align-items:center}.field-icon{position:absolute;left:13px;color:var(--faint);pointer-events:none;transition:color var(--dur-fast)}.field-control input{width:100%;padding:12px 40px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:var(--fs-md);font-family:inherit;transition:border-color var(--dur-fast),box-shadow var(--dur-base)}.field-control input::placeholder{color:var(--faint)}.field-control input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.field-control:focus-within .field-icon{color:var(--accent)}.grad-text{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.alert{font-size:var(--fs-base);padding:10px 14px;border-radius:var(--radius-md);border:1px solid transparent;margin:4px 0;animation:jvFadeUp var(--dur-base) var(--ease-standard) both}.alert-danger{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-border)}.alert-success{color:var(--good);background:var(--good-bg);border-color:var(--good-border)}.alert-warn{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.alert-info{color:var(--accent-press);background:var(--info-bg);border-color:var(--info-border)}.auth{display:grid;grid-template-columns:1.05fr .95fr;height:100vh;width:100%;overflow:hidden}.auth-main{display:flex;align-items:center;justify-content:center;padding:var(--space-6);position:relative}.auth-card{width:min(440px,100%);border-radius:var(--radius-2xl);padding:40px 38px;background:var(--glass-bg-strong);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;text-align:center}.auth-logo{width:76px;height:76px;margin:0 auto 18px;border-radius:22px;display:flex;align-items:center;justify-content:center;background:var(--grad-brand-soft);box-shadow:var(--shadow-glow);animation:jvFloat 5s var(--ease-standard) infinite}.auth-logo-mark{width:46px;height:46px;display:block}.auth-title{font-size:var(--fs-3xl);font-weight:var(--fw-bold);margin:0 0 6px;letter-spacing:-.02em}.auth-subtitle{color:var(--muted);font-size:var(--fs-md);margin:0 0 28px}.auth-submit{width:100%;margin-top:8px;padding:13px;font-size:var(--fs-lg);gap:8px;display:inline-flex;align-items:center;justify-content:center}.auth-hint{display:flex;flex-direction:column;gap:4px;margin-top:22px;font-size:var(--fs-sm);color:var(--muted);line-height:1.6}.auth-hint b{color:var(--text);font-size:var(--fs-base)}.auth-hint code{font-family:var(--mono);color:var(--accent);font-size:var(--fs-sm)}.auth-aside{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:48px;background:linear-gradient(160deg,#eef1fe,#f1eefe 45%,#fdf4fb)}.auth-aside-glow{position:absolute;inset:-25% -10% auto -10%;height:75%;background:radial-gradient(50% 60% at 30% 30%,rgba(124,58,237,.2),transparent 70%),radial-gradient(50% 60% at 70% 40%,rgba(79,110,247,.22),transparent 70%);filter:blur(8px);animation:jvAurora 16s var(--ease-standard) infinite}.auth-aside-inner{position:relative;z-index:1;width:100%;max-width:460px;display:flex;flex-direction:column;gap:28px}.auth-hero-title{font-size:clamp(34px,4vw,48px);font-weight:800;letter-spacing:-.03em;margin:0;line-height:1.05}.auth-hero-sub{font-size:var(--fs-lg);color:var(--text);margin:12px 0 0;font-weight:var(--fw-medium)}.auth-hero-tagline{font-size:var(--fs-md);color:var(--muted);margin:12px 0 0;line-height:1.6;max-width:360px}.auth-orb{position:relative;height:320px;margin:4px 0}.orb-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.orb-core{position:relative;z-index:3;width:130px;height:130px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:radial-gradient(circle at 35% 30%,#6d8bff,#4f6ef7 45%,#7c3aed);box-shadow:0 20px 60px #4f6ef780,inset 0 -8px 24px #7c3aed8c;animation:jvFloat 6s ease-in-out infinite}.orb-core svg{filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}.orb-core-mark{width:68px;height:68px;display:block}.orb-core-mark path{fill:#fff}.auth-logo-mark path:nth-of-type(2),.auth-logo-mark path:nth-of-type(3),.orb-core-mark path:nth-of-type(2),.orb-core-mark path:nth-of-type(3){transform-box:fill-box;transform-origin:center;animation:eyeBlink 2.8s ease-in-out infinite}.orb-ring{position:absolute;border-radius:50%;border:1.5px solid rgba(79,110,247,.25)}.orb-ring-1{width:200px;height:200px;border-top-color:#7c3aed80;animation:jvSpinSlow 18s linear infinite}.orb-ring-2{width:270px;height:270px;border-left-color:#4f6ef773;animation:jvSpinSlow 26s linear infinite reverse}.orb-ring-3{width:330px;height:330px;border-style:dashed;border-color:#7c3aed29;animation:jvSpinSlow 40s linear infinite}.orb-platform{position:absolute;bottom:4px;width:230px;height:46px;border-radius:50%;background:radial-gradient(closest-side,rgba(79,110,247,.35),transparent 75%);filter:blur(4px)}.orb-card{position:absolute;z-index:4;display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);min-width:132px}.orb-card-label{font-size:var(--fs-xs);color:var(--muted)}.orb-card-value{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text)}.orb-card-delta{font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.orb-card-delta.up{color:var(--good)}.orb-card-1{top:14px;left:-8px;animation:jvBob 7s ease-in-out infinite}.orb-card-2{top:56px;right:-8px;animation:jvBob 8s ease-in-out infinite .6s}.auth-badge{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.auth-badge-icon{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}.auth-badge-copy{display:flex;flex-direction:column;gap:2px}.auth-badge-copy b{font-size:var(--fs-md);color:var(--text)}.auth-badge-copy span{font-size:var(--fs-sm);color:var(--muted);line-height:1.45}@media (max-width: 900px){.auth{grid-template-columns:1fr}.auth-aside{display:none}.auth-main{padding:20px}}.pw-wrap{position:relative}.pw-wrap input{padding-right:40px}.pw-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;color:var(--muted);padding:4px;line-height:0;display:flex;align-items:center;border-radius:6px;transition:color var(--dur-fast)}.pw-eye:hover{color:var(--accent)}.err{color:var(--bad);font-size:13px;margin-top:10px}.hint{font-size:12px;color:var(--muted);margin-top:18px;line-height:1.7}.users{padding:28px;overflow-y:auto;max-width:900px;margin:0 auto;width:100%}.users h2{margin:0 0 16px;font-family:var(--display);font-weight:600}.users-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px}.userform{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.userform input,.userform select{padding:9px 11px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-family:inherit}.cselect{position:relative;display:inline-block;min-width:82px}.cselect-trigger{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:border-color .15s,box-shadow .15s}.cselect-trigger:hover{border-color:var(--accent)}.cselect.open .cselect-trigger{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.cselect-chevron{flex-shrink:0;color:var(--muted);transition:transform .18s ease}.cselect.open .cselect-chevron{transform:rotate(180deg)}.cselect-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);z-index:200;max-height:300px;overflow-y:auto;animation:fadeSlideIn .12s ease}.cselect-option{display:block;width:100%;padding:8px 14px;text-align:left;font-family:inherit;font-size:12px;font-weight:500;color:var(--text);background:transparent;border:none;cursor:pointer;transition:background .1s}.cselect-option:hover{background:var(--accent-soft, color-mix(in srgb, var(--accent) 10%, var(--panel)))}.cselect-option.selected{color:var(--accent);font-weight:600}.cselect-option-row{display:flex;align-items:center;transition:background .1s}.cselect-option-row:hover{background:var(--accent-soft, color-mix(in srgb, var(--accent) 10%, var(--panel)))}.cselect-option-row.selected .cselect-option-label{color:var(--accent);font-weight:600}.cselect-option-label{flex:1;padding:8px 14px;text-align:left;font-family:inherit;font-size:12px;font-weight:500;color:var(--text);background:transparent;border:none;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cselect-option-x{flex-shrink:0;padding:6px 10px;background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:12px;line-height:1;border-radius:6px}.cselect-option-x:hover{color:var(--bad);background:#c0392f1f}.ms-root{position:relative;display:inline-block;min-width:180px}.ms-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:border-color .15s}.ms-trigger:hover,.ms-root.open .ms-trigger{border-color:var(--accent)}.ms-root.open .ms-trigger{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.ms-placeholder{color:var(--muted)}.ms-chevron{flex-shrink:0;color:var(--muted);transition:transform .18s ease}.ms-root.open .ms-chevron{transform:rotate(180deg)}.ms-menu{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);z-index:300;overflow:hidden;max-height:280px;overflow-y:auto;animation:fadeSlideIn .12s ease}.ms-section-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--panel-2)}.ms-clear{background:none;border:none;color:var(--accent);font-size:11px;cursor:pointer;padding:0;font-family:inherit}.ms-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 14px;text-align:left;font-family:inherit;font-size:12px;color:var(--text);background:transparent;border:none;cursor:pointer;transition:background .1s}.ms-item:hover{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.ms-item.on{background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent);font-weight:600}.ms-tick{font-size:11px;color:var(--accent);font-weight:700}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .65s linear infinite;display:inline-block;transform-origin:center center}.muted-sm{font-size:12px;color:var(--muted)}.thinking-bubble{width:100%;max-width:var(--chat-max);margin:0 auto;padding:8px 20px;display:flex;flex-direction:column;gap:8px;animation:fadeSlideIn .2s ease}.thinking-row{display:flex;align-items:center;gap:12px}.thinking-logo{flex:0 0 auto;width:24px;height:24px;display:block;filter:drop-shadow(0 2px 6px rgba(79,110,247,.4))}.thinking-logo svg{width:100%;height:100%;display:block}.thinking-logo svg path:nth-of-type(2),.thinking-logo svg path:nth-of-type(3){transform-box:fill-box;transform-origin:center;animation:eyeBlink 2.8s ease-in-out infinite}@keyframes eyeBlink{0%{transform:translate(0) scaleY(1)}12%{transform:translate(-2.5px) scaleY(1)}22%{transform:translate(-2.5px) scaleY(.08)}30%{transform:translate(-2.5px) scaleY(1)}42%{transform:translate(0) scaleY(1)}54%{transform:translate(2.5px) scaleY(1)}64%{transform:translate(2.5px) scaleY(.08)}72%{transform:translate(2.5px) scaleY(1)}84%{transform:translate(0) scaleY(1)}92%{transform:translate(0) scaleY(.08)}to{transform:translate(0) scaleY(1)}}.thinking-track{flex:1;display:flex;align-items:center;min-width:0}.thinking-node{display:flex;align-items:center}.thinking-node:not(:last-child){flex:1}.thinking-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--border-strong);position:relative;transition:background .3s,width .3s,height .3s}.thinking-node.done .thinking-dot{background:var(--good)}.thinking-node.done .thinking-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:3px;height:3px;border-radius:50%;background:#fff}.thinking-node.active .thinking-dot{width:11px;height:11px;background:var(--grad-brand);animation:jvPulseRing 1.6s var(--ease-standard) infinite}.thinking-connector{flex:1;height:2px;margin:0 2px;background:var(--border);border-radius:9px;overflow:hidden}.thinking-connector.filled{background:var(--good)}.thinking-connector.flowing{background:linear-gradient(90deg,var(--good),var(--accent),var(--accent-2));background-size:200% 100%;animation:jvSheen 1s linear infinite}.thinking-count{flex:0 0 auto;font-size:var(--fs-xs);color:var(--faint);font-variant-numeric:tabular-nums}.thinking-stage{font-size:var(--fs-base);color:var(--muted);min-height:1.2em;padding-left:36px}.tw-cursor{display:inline-block;width:2px;height:1em;background:var(--text);margin-left:1px;vertical-align:text-bottom;animation:twBlink .55s step-end infinite}@keyframes twBlink{0%,to{opacity:1}50%{opacity:0}}.access-pickers{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.mod-access-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;background:var(--panel);border:1px solid var(--border);border-radius:10px}.mod-access-label{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.access-select{display:inline-block;min-width:180px;max-width:100%}.access-select-wide{width:min(540px,100%)}.access-select .cselect{width:100%}.access-select .cselect-trigger{padding:7px 10px;font-size:var(--fs-base)}.access-select-inline{margin-left:10px;vertical-align:middle}.mod-chips{display:flex;flex-wrap:wrap;gap:6px}.mod-chip{padding:5px 12px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.mod-chip:hover{border-color:var(--accent);color:var(--text)}.mod-chip.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-weight:600}.mod-edit-panel{display:flex;flex-direction:column;gap:8px}.metric-big{font-size:40px;font-weight:700;color:var(--accent)}.datasource-page{flex:1;overflow-y:auto;padding:36px;display:flex;justify-content:center}.datasource-container{width:100%;max-width:900px;padding-bottom:20px;animation:jvFadeUp var(--dur-slow) var(--ease-emphasized) both}.datasource-container h2{margin-bottom:8px;font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.02em}.datasource-container .desc{color:var(--muted);margin-bottom:24px;line-height:1.6;max-width:620px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.ds-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}.ds-server-list{display:flex;flex-direction:column;gap:8px}.ds-server-card{display:flex;flex-direction:column;gap:3px;text-align:left;cursor:pointer;padding:12px 14px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-xs);font-family:inherit;transition:transform var(--dur-fast) var(--ease-emphasized),box-shadow var(--dur-base),border-color var(--dur-base)}.ds-server-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.ds-server-card.active{border-color:var(--accent);box-shadow:var(--shadow-glow);background:var(--accent-softer)}.ds-server-top{display:flex;align-items:center;gap:7px}.ds-server-name{flex:1;min-width:0;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-type-badge{flex:0 0 auto;font-size:9px;font-weight:var(--fw-bold);letter-spacing:.05em;padding:2px 7px;border-radius:var(--radius-pill)}.ds-type-badge.sqlserver{color:#1d4ed8;background:#e6edff}.ds-type-badge.hana{color:#7c3aed;background:#efe7fe}.ds-server-host{font-size:var(--fs-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-server-user{font-size:var(--fs-xs);color:var(--faint)}.ds-detail{border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);animation:jvFadeUp var(--dur-base) var(--ease-emphasized) both}.ds-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.ds-detail-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text)}.ds-detail-sub{font-size:var(--fs-sm);color:var(--muted);margin-top:2px}.ds-detail-actions{display:flex;gap:8px;flex:0 0 auto}.ds-current{margin:14px 0;padding:12px 14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft, rgba(79,110,247,.06))}.ds-current-label{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-semibold);color:var(--faint);margin-bottom:8px}.ds-current-active{color:var(--good);text-transform:none;letter-spacing:0;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.ds-current-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ds-current-server{font-weight:var(--fw-semibold);color:var(--text)}.ds-current-sep{color:var(--muted)}.ds-current-db{min-width:180px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm, 8px);background:var(--panel);color:var(--text);font-size:var(--fs-base)}.ds-current-hint{margin-top:8px;font-size:var(--fs-sm);color:var(--muted)}.ds-detail-meta{display:flex;flex-wrap:wrap;gap:6px 18px;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:var(--fs-base);color:var(--muted)}.ds-detail-meta b{color:var(--faint);font-weight:var(--fw-semibold);margin-right:5px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.ds-db-head{display:flex;align-items:center;justify-content:space-between;margin:16px 0 10px}.ds-db-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text);display:flex;align-items:center;gap:8px}.ds-db-count{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);padding:1px 9px}.ds-db-chips{display:flex;flex-wrap:wrap;gap:8px}.ds-db-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 8px 6px 13px;border-radius:var(--radius-pill);background:var(--panel-2);border:1px solid var(--border);font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text)}.ds-db-x{background:transparent;border:none;cursor:pointer;color:var(--faint);font-size:12px;line-height:1;padding:2px 5px;border-radius:50%;transition:color var(--dur-fast),background var(--dur-fast)}.ds-db-x:hover{color:var(--bad);background:var(--bad-bg)}.ds-db-add{display:flex;gap:8px;margin-top:12px}.ds-db-add input{flex:1;padding:9px 13px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:var(--fs-md);font-family:inherit}.ds-db-add input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.ds-discovered{margin-top:16px;padding-top:14px;border-top:1px dashed var(--border)}.ds-discovered-head{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:10px}.ds-discover-chip{padding:6px 13px;border-radius:var(--radius-pill);border:1px dashed var(--border-strong);background:var(--panel);color:var(--accent);font-size:var(--fs-base);font-weight:var(--fw-medium);cursor:pointer;font-family:inherit;transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast)}.ds-discover-chip:hover:not(:disabled){background:var(--accent-soft);border-style:solid;border-color:var(--accent);transform:translateY(-1px)}.ds-discover-chip.have,.ds-discover-chip:disabled{color:var(--good);border-style:solid;border-color:var(--good-border);background:var(--good-bg);cursor:default}.ds-form{border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-sm)}.ds-form-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0 0 18px}.ds-tested-ok{align-self:center;color:var(--good);font-size:var(--fs-base);font-weight:var(--fw-semibold)}.ds-empty{border-radius:var(--radius-xl);padding:48px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:var(--shadow-sm)}.ds-empty-icon{font-size:40px}.ds-empty p{color:var(--muted);margin:0}.db-picker{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px 12px;box-shadow:var(--shadow-xs)}.db-picker .cselect-trigger{border:none;background:transparent;padding:0 2px;box-shadow:none;font-weight:var(--fw-semibold);color:var(--text)}.db-picker .cselect.open .cselect-trigger{box-shadow:none}.db-indicator-text{font-weight:var(--fw-semibold);color:var(--text)}.db-applied{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--faint);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px 13px;cursor:default}.db-applied .conn-dot.connected{opacity:.55}.picker-db{display:flex;align-items:center;gap:10px;margin-bottom:2px}.picker-db-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--muted)}.picker-db-fixed{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text);padding:6px 14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-pill)}.mod-edit-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.form-section{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.form-section label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500}.form-section input,.form-section select{padding:10px 13px;background:var(--panel);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;font-family:inherit}.form-section input:focus,.form-section select:focus{outline:none;border-color:var(--accent)}.form-section input:disabled,.form-section select:disabled{opacity:.5;cursor:not-allowed}.cselect.disabled .cselect-trigger{opacity:.5;cursor:not-allowed}.combo-wrap{position:relative;display:flex;align-items:center}.combo-wrap input{flex:1;padding-right:34px}.combo-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:14px;line-height:1;padding:4px 6px;border-radius:6px}.combo-x:hover{color:var(--bad);background:#c0392f1a}.config-info{padding:12px 16px;background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:8px}.config-info-label{display:flex;align-items:center;gap:6px}.conn-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.conn-dot.connected{background:var(--good);box-shadow:0 0 0 2px #1a7f5533}.conn-dot.unconfigured{background:var(--muted)}.db-indicator{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:3px 8px;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.btn.disabled-hint{opacity:.45;cursor:not-allowed}.no-saved-hint{font-size:12px;color:var(--muted);padding:8px 10px;background:var(--bg);border:1px dashed var(--border);border-radius:8px;line-height:1.5}.saved-conn-list{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.saved-conn-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;background:var(--bg);transition:background .15s,border-color .15s}.saved-conn-item:hover,.saved-conn-item.active{background:var(--panel);border-color:var(--accent)}.saved-conn-label{font-size:13px;color:var(--fg);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-conn-x{background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:13px;padding:2px 6px;border-radius:5px;flex-shrink:0;line-height:1}.saved-conn-x:hover{color:var(--bad);background:#c0392f1a}.session-expired-banner{background:var(--warn);color:#fff;text-align:center;padding:12px 20px;font-size:14px;font-weight:500}.reauth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#28231c8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.reauth-card{background:var(--panel);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);padding:36px 40px;width:min(420px,92vw);animation:slideUp .22s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}.reauth-icon{display:flex;justify-content:center;color:var(--accent);margin-bottom:12px}.reauth-title{font-size:20px;font-weight:700;color:var(--text);margin:0 0 8px;text-align:center}.reauth-desc{font-size:13px;color:var(--muted);text-align:center;margin:0 0 24px;line-height:1.55}.reauth-label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:500;color:var(--muted);margin-bottom:14px}.reauth-input{padding:10px 13px;background:var(--panel);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;font-family:inherit;width:100%}.reauth-input:focus{outline:none;border-color:var(--accent)}.reauth-err{font-size:13px;color:var(--bad);margin-bottom:12px;padding:8px 12px;background:#c0392f14;border-radius:8px}.reauth-actions{display:flex;gap:10px;margin-top:8px}.reauth-actions .btn{flex:1}.ds-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:1000;display:flex;align-items:center;justify-content:center}.ds-confirm-modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);padding:28px 32px;min-width:320px;max-width:420px;text-align:center}.ds-confirm-title{font-size:17px;font-weight:600;color:var(--text);margin:0 0 8px}.ds-confirm-desc{font-size:13px;color:var(--muted);margin:0 0 24px;line-height:1.5}.ds-confirm-cards{display:flex;gap:12px}.ds-confirm-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 12px;border-radius:12px;border:1.5px solid var(--border);cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,transform .1s;background:var(--bg);color:var(--text)}.ds-confirm-card:hover{transform:translateY(-2px)}.ds-confirm-card-icon{font-size:22px;line-height:1}.ds-confirm-card.yes{border-color:var(--bad);color:var(--bad)}.ds-confirm-card.yes:hover{background:#c0392f14;border-color:var(--bad)}.ds-confirm-card.no{border-color:var(--border-strong)}.ds-confirm-card.no:hover{background:var(--panel-2);border-color:var(--accent);color:var(--accent)}.success-msg{padding:13px;background:#1a7f551a;border:1px solid var(--good);border-radius:10px;color:var(--good);margin-bottom:16px;font-size:14px}.error-msg{padding:13px;background:#c0392f1a;border:1px solid var(--bad);border-radius:10px;color:var(--bad);margin-bottom:16px;font-size:14px}.button-row{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.ds-view-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:20px}.ds-view-row{display:flex;align-items:baseline;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);font-size:14px}.ds-view-row:last-child{border-bottom:none}.ds-view-label{width:100px;flex-shrink:0;font-size:12px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.ds-view-value{color:var(--text);word-break:break-all}.ds-switch-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.btn.active-chip{background:var(--accent);color:#fff;border-color:var(--accent)}.info-box{padding:16px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.info-box h4{margin-bottom:12px;font-size:14px;font-weight:600}.info-box ul{margin:0;padding-left:20px;font-size:13px;line-height:1.8;color:var(--muted)}.modules-page{flex:1;overflow-y:auto;padding:28px;max-width:900px;margin:0 auto;width:100%}.modules-head{display:flex;align-items:center;justify-content:space-between}.modules-head h2{margin:0;font-family:var(--display);font-weight:600}.mod-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.golden{margin-top:14px;border-top:1px dashed var(--border);padding-top:14px}.golden-form{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.golden-form input,.golden-form textarea,.golden-form select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:9px 11px;font-size:13px;font-family:inherit}.golden-form textarea{font-family:var(--mono);font-size:12px}.golden-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--border)}.result-view{display:flex;flex-direction:column;gap:12px;margin-top:4px;min-width:0;max-width:100%}.insight-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:stretch}.insight-chip{position:relative;display:flex;flex-direction:column;gap:4px;overflow:hidden;padding:14px 16px;border-radius:var(--radius-lg);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-emphasized),box-shadow var(--dur-base);animation:jvFadeUp var(--dur-slow) var(--ease-emphasized) both}.insight-chip:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}.insight-chip:nth-child(6n+1):before{background:#4f6ef7}.insight-chip:nth-child(6n+2):before{background:#8b5cf6}.insight-chip:nth-child(6n+3):before{background:#f59e0b}.insight-chip:nth-child(6n+4):before{background:#06b6d4}.insight-chip:nth-child(6n+5):before{background:#22c55e}.insight-chip:nth-child(6n):before{background:#f0455a}.insight-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.insight-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:var(--fw-semibold)}.insight-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text);letter-spacing:-.01em}.insight-narrative{padding:14px 16px;margin-top:2px;background:var(--accent-soft);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-lg)}.insight-narrative-head{display:flex;align-items:center;gap:7px;margin-bottom:10px;font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--accent-press)}.insight-narrative-head svg{color:var(--accent);flex:0 0 auto}.insight-narrative p{position:relative;padding-left:17px;margin:0 0 7px;font-size:14px;line-height:1.6;color:var(--text)}.insight-narrative p:before{content:"";position:absolute;left:3px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.insight-narrative p:last-child{margin-bottom:0}.insight-narrative strong{font-weight:var(--fw-bold);color:var(--accent-press)}.signal-list{padding:12px 16px;margin-top:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-lg)}.signal-list-head{display:flex;align-items:center;gap:7px;margin-bottom:9px;font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.signal-list-head svg{color:var(--accent);flex:0 0 auto}.signal-list p{margin:0 0 7px;font-size:14px;line-height:1.55;color:var(--text)}.signal-list p:last-child{margin-bottom:0}.signal-list strong{font-weight:var(--fw-bold);color:var(--accent-press)}.signal-tag{display:inline-block;margin-right:8px;padding:1px 8px;font-size:11px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,currentColor 14%,transparent);border:1px solid color-mix(in srgb,currentColor 32%,transparent)}.signal-spike{color:#059669}.signal-decline{color:#dc2626}.signal-volatility,.signal-anomaly,.signal-outlier{color:#d97706}.signal-concentration,.signal-pareto,.signal-longtail,.signal-seasonality{color:var(--accent-press)}[data-theme=dark] .signal-spike{color:#34d399}[data-theme=dark] .signal-decline{color:#f87171}[data-theme=dark] .signal-volatility,[data-theme=dark] .signal-anomaly,[data-theme=dark] .signal-outlier{color:#fbbf24}.view-tabs{display:flex;flex-wrap:wrap;gap:6px}.view-tab{padding:5px 13px;font-size:12px;cursor:pointer;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--muted);transition:background .15s,color .15s,border-color .15s}.view-tab:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.view-tab.active{background:var(--grad-brand);border-color:transparent;color:var(--accent-ink);box-shadow:var(--shadow-glow)}.view-body{animation:viewIn .28s ease}@keyframes viewIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.dual-chart{display:flex;flex-direction:column;gap:12px}.dual-chart-panel{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.dual-chart-label{font-size:11px;font-weight:600;color:var(--muted);padding:10px 14px 0;text-transform:uppercase;letter-spacing:.05em}.chart-box{background:transparent;border:none;border-radius:0;padding:8px 4px 4px;overflow:hidden;min-width:0;max-width:100%}.chart-box .apexcharts-canvas{max-width:100%}.dual-chart-panel .chart-box{padding:4px 8px 8px}.pivot-controls{display:flex;flex-wrap:wrap;gap:14px;background:var(--panel-soft, var(--panel));border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin:0 4px 10px}.pivot-field{display:flex;flex-direction:column;gap:4px}.pivot-field label{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.pivot-field select{font-size:13px;font-weight:600;color:var(--text, var(--accent-ink));background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:6px 8px;min-width:120px;cursor:pointer;transition:border-color .15s}.pivot-field select:hover,.pivot-field select:focus{border-color:var(--accent);outline:none}.pivot-grid td,.pivot-grid th{font-variant-numeric:tabular-nums;white-space:nowrap}.pivot-grid tfoot td{border-top:2px solid var(--border);background:var(--panel-soft, var(--panel))}.pivot-grid tbody td:last-child,.pivot-grid tfoot td:last-child{background:var(--panel-soft, var(--panel))}.dual-chart-panel .table-scroll{border:none;border-radius:0;max-height:400px}.chart-caption{font-size:11px;color:#9ca3af;padding:2px 4px}.chart-caption strong{color:#374151;font-weight:600}.table-scroll{max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:12px}.table-scroll .grid{margin:0}.table-scroll thead th{position:sticky;top:0;z-index:2;background:var(--panel-2)}.table-scroll thead th:first-child,.table-scroll tbody td:first-child{position:sticky;left:0;z-index:1;background:var(--panel-2)}.table-scroll tbody tr:nth-child(2n) td:first-child{background:var(--panel-2)}.table-scroll tbody tr:hover td:first-child{background:var(--accent-soft)}.table-scroll thead th:first-child{z-index:3}.table-scroll tfoot td{position:sticky;bottom:0;z-index:2;background:var(--panel-2);font-weight:var(--fw-semibold);border-top:2px solid var(--border-strong)}.table-scroll tfoot td:first-child{left:0;z-index:3}.table-scroll .matrix-grid thead tr:nth-child(2) th{top:31px}.table-scroll .matrix-grid thead tr:nth-child(2) th:first-child{left:auto;z-index:2}.split-sections{display:flex;flex-direction:column;gap:14px}.split-section{border:1px solid var(--border);border-radius:12px;overflow:hidden}.split-section-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel-2)}.split-section-title{font-size:13px;font-weight:600;color:var(--text)}.split-section-kpi{font-size:11px;color:var(--muted);flex:1}.split-section-tabs{display:flex;gap:4px;margin-left:auto}.split-tab{font-size:11px;font-weight:500;padding:3px 10px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:all .15s}.split-tab:hover{background:var(--panel);color:var(--text)}.split-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.split-chart-full{padding:12px 8px 4px;background:var(--panel-1)}.split-section .table-scroll{border:none;border-radius:0;max-height:360px}.progress-list{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.progress-row{display:flex;flex-direction:column;gap:4px}.progress-meta{display:flex;justify-content:space-between;align-items:baseline}.progress-name{font-size:12px;font-weight:500;color:var(--text)}.progress-val{font-size:11px;color:var(--muted);white-space:nowrap;margin-left:8px}.progress-track{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;transition:width .5s ease}.apexcharts-tooltip{border:1px solid #e5e7eb!important;background:#fff!important;box-shadow:0 4px 16px #0000001a!important}.apexcharts-tooltip-title{background:#f9fafb!important;border-bottom:1px solid #e5e7eb!important;color:#374151!important}.apexcharts-tooltip-text{color:#111827!important}.apexcharts-legend-text{color:#93a0c0!important}.workspace.with-preview .chat-center{justify-content:stretch}.preview-drawer{width:620px;flex:0 0 620px;height:100%;border-left:1px solid var(--border);background:var(--term-bg);display:flex;flex-direction:column;animation:slideIn .22s ease-out}@keyframes slideIn{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}.preview-bar{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--border);background:var(--panel);font-size:13px;font-weight:600}.preview-drawer .trace-wrap{flex:1}.preview-drawer .trace-head{display:none}.trace-wrap{display:flex;flex-direction:column;overflow:hidden;background:var(--term-bg)}.trace-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.trace-title{font-family:var(--mono);font-size:13px;color:var(--muted);letter-spacing:.5px}.trace-status{font-size:12px;color:var(--muted)}.trace-status.live{color:var(--good)}.terminal{flex:1;overflow-y:auto;padding:14px 16px;font-family:var(--mono);font-size:var(--fs-base);line-height:1.55;background:var(--term-bg)}.t-line{display:flex;align-items:flex-start;gap:10px;white-space:pre-wrap;word-break:break-word;animation:traceIn .18s ease-out}@keyframes traceIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.t-time{color:var(--term-dim);flex:0 0 56px;text-align:right;-webkit-user-select:none;user-select:none}.t-gutter{flex:0 0 34px;text-align:right;opacity:.8;-webkit-user-select:none;user-select:none}.t-text{flex:1}.t-dim{color:var(--term-dim)}.t-stage{margin-top:10px}.t-stagebar{color:#4f8cff;flex:0 0 auto}.t-stage .t-time{flex:0 0 56px}.trace-result{border-top:1px solid var(--border);padding:12px 16px;max-height:240px;overflow:auto;background:var(--panel)}.trace-result-head{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#28231c66;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:460px;max-height:86vh;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:var(--shadow-lg)}.modal h3{margin:0 0 14px;font-family:var(--display);font-weight:600}.modal label{display:block;font-size:var(--fs-base);color:var(--muted);margin:12px 0 4px}.modal input[type=text],.modal input:not([type]),.modal select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px;font-family:inherit}.filefield{margin-top:12px}.filerow{display:flex;align-items:center;gap:10px}.filerow input[type=file]{font-size:12px;color:var(--muted)}.ok-badge{color:var(--good);font-size:12px}.userform input,.userform select,.golden-form input,.golden-form textarea,.golden-form select{transition:border-color var(--dur-fast),box-shadow var(--dur-base)}.userform input:focus,.userform select:focus,.form-section input:focus,.form-section select:focus,.reauth-input:focus,.golden-form input:focus,.golden-form textarea:focus,.golden-form select:focus,.modal input:focus,.modal select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}@media (max-width: 1200px){.chat-top{padding-right:150px}}@media (max-width: 1024px){.chat-shell{position:relative}.chat-history{position:absolute;top:0;bottom:0;left:0;width:264px;z-index:var(--z-overlay);box-shadow:var(--shadow-lg);transform:translate(0);transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .22s ease}.chat-history.collapsed{transform:translate(-100%);flex-basis:264px}.sidebar-backdrop{display:block;position:absolute;top:0;right:0;bottom:0;left:0;background:#0f142870;z-index:calc(var(--z-overlay) - 1);animation:fadeIn .2s ease}.preview-drawer{width:min(480px,46vw);flex-basis:min(480px,46vw)}.topright.shifted{right:calc(min(480px,46vw) + 16px)}.msg,.thinking-bubble,.suggestions-panel{padding-left:22px;padding-right:22px}}@media (max-width: 768px){.chat-top{padding-right:84px;padding-left:12px;gap:8px;flex-wrap:wrap;min-height:52px}.preview-toggle{display:none!important}.topright{top:10px;right:12px;gap:6px}.topright .btn.sm{padding:6px 12px;font-size:var(--fs-sm)}.chat-top-question{display:none!important}.module-label,.db-applied{max-width:44vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.msg,.thinking-bubble,.suggestions-panel{padding-left:16px;padding-right:16px}.msg{font-size:var(--fs-md)}.chat-input{margin-left:12px;margin-right:12px;width:auto}.toggle-row{padding-left:12px;padding-right:12px}.msg.user .msg-body{max-width:88%}.ds-grid{grid-template-columns:1fr}.datasource-page,.users,.modules-page{padding:20px 16px}.page-head,.ds-detail-head{flex-direction:column;align-items:stretch}.datasource-container h2{font-size:var(--fs-xl)}.dialect-mismatch-banner{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px;font-size:var(--fs-sm)}.preview-drawer{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;flex-basis:auto;z-index:var(--z-overlay)}.topright{z-index:calc(var(--z-overlay) + 1)}.topright.shifted{right:12px}.modal{width:min(460px,92vw)}.reauth-card{padding:28px 22px}table.grid{font-size:12px}table.grid th,table.grid td{padding:6px 8px}.table-scroll{max-height:60vh}.result-topic{font-size:var(--fs-lg)}.view-tab{padding:7px 12px}.dt-toolbar{flex-wrap:wrap;gap:8px}.module-picker{padding:28px 16px;gap:16px}.module-picker h2{font-size:var(--fs-xl)}.module-cards{flex-direction:column;max-width:none}.module-card{max-width:none;min-width:0;width:100%}.picker-db{flex-direction:column;align-items:stretch;gap:6px}.picker-db .cselect{width:100%}.ds-form{padding:18px 16px}.access-select,.access-select-wide,.access-select .cselect{width:100%;max-width:none}.access-select-inline{margin-left:0}.mod-access-row,.mod-edit-row{align-items:stretch}.button-row .btn{flex:1 1 auto}.ds-confirm-cards{flex-direction:column}}@media (max-width: 480px){.msg,.thinking-bubble,.suggestions-panel{padding-left:12px;padding-right:12px}.insight-strip{grid-template-columns:1fr 1fr}.report-sections{grid-template-columns:1fr}.chat-history{width:min(280px,84vw)}.sidebar-brand .brand-subtitle{display:none}.module-cards{flex-direction:column}.module-card{max-width:none}.userform{flex-direction:column;align-items:stretch}.userform input,.userform select{width:100%}}.settings-shell{flex:1;display:flex;min-height:0;overflow:hidden}.settings-nav{width:264px;flex:none;border-right:1px solid var(--border);background:var(--sidebar);padding:var(--space-4) var(--space-3) var(--space-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5)}.settings-nav-head{display:flex;align-items:center;gap:var(--space-2);padding:2px 4px var(--space-4);border-bottom:1px solid var(--border)}.settings-back{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--muted);font-size:18px;line-height:1;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.settings-back:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.settings-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent)}.settings-nav-titles{display:flex;flex-direction:column;line-height:1.25}.settings-nav-titles strong{font-size:var(--fs-md);font-weight:var(--fw-semibold)}.settings-nav-titles span{font-size:var(--fs-xs);color:var(--muted)}.settings-nav-group{display:flex;flex-direction:column;gap:2px}.settings-nav-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:0 8px var(--space-1)}.settings-nav-item{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;cursor:pointer;padding:var(--space-2) var(--space-2);border:none;background:transparent;color:var(--text);border-radius:var(--radius-md);transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.settings-nav-item:hover{background:var(--panel-2)}.settings-nav-item.active{background:var(--accent-soft)}.settings-nav-item.active .settings-nav-item-icon,.settings-nav-item.active .settings-nav-item-text strong{color:var(--accent)}.settings-nav-item-icon{display:inline-flex;flex:none;color:var(--muted)}.settings-nav-item-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.settings-nav-item-text strong{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.settings-nav-item-text small{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-content{flex:1;min-width:0;display:flex}.settings-content .datasource-page{flex:1}@media (max-width: 768px){.settings-shell{flex-direction:column}.settings-nav{width:auto;flex-direction:row;gap:var(--space-2);border-right:none;border-bottom:1px solid var(--border);overflow-x:auto;align-items:center;padding:var(--space-2) var(--space-3)}.settings-nav-head{border-bottom:none;padding:0 var(--space-2) 0 0}.settings-nav-group{flex-direction:row;align-items:center;gap:var(--space-1)}.settings-nav-label{display:none}.settings-nav-item{width:auto;white-space:nowrap}.settings-nav-item-text small{display:none}}.settings-page-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.settings-head-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent)}.settings-page-head h2{margin:0}.settings-page-head .desc{margin:2px 0 0}.settings-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm);padding:var(--space-5) var(--space-6) var(--space-6)}.settings-card-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-5)}.theme-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.theme-choice{position:relative;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:var(--space-6) var(--space-4) var(--space-5);border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}.theme-choice:hover{border-color:var(--border-strong)}.theme-choice.active{border-color:var(--accent);background:var(--accent-softer);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.theme-check{position:absolute;top:12px;right:12px;width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);background:transparent;transition:background var(--dur-fast),border-color var(--dur-fast)}.theme-choice.active .theme-check{border-color:var(--accent);background:var(--accent)}.theme-choice.active .theme-check:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid var(--accent-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}.theme-choice-icon{color:var(--accent);margin-bottom:2px}.theme-choice-label{font-weight:var(--fw-semibold);font-size:var(--fs-md)}.theme-choice-hint{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-snug);max-width:16ch}@media (max-width: 640px){.theme-choices{grid-template-columns:1fr}.theme-choice-hint{max-width:none}}
