*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body{max-width:100%;overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app,.app-main,.demo-section{min-width:0;max-width:100%}img,svg,video{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}:root{--brand: #4f46e5;--brand-600: #4338ca;--brand-500: #6366f1;--brand-400: #818cf8;--brand-300: #a5b4fc;--brand-100: #e0e7ff;--brand-50: #eef2ff;--success: #16a34a;--success-700: #15803d;--success-light: #dcfce7;--success-border: #86efac;--warning: #d97706;--warning-700: #b45309;--warning-light: #fef3c7;--warning-border: #fcd34d;--danger: #dc2626;--danger-700: #b91c1c;--danger-light: #fee2e2;--danger-border: #fca5a5;--neutral: #6b7280;--neutral-light: #f3f4f6;--gray-950: #030712;--gray-900: #111827;--gray-800: #1f2937;--gray-700: #374151;--gray-600: #4b5563;--gray-500: #6b7280;--gray-400: #9ca3af;--gray-300: #d1d5db;--gray-200: #e5e7eb;--gray-100: #f3f4f6;--gray-50: #f9fafb;--white: #ffffff;--bg: #f1f5f9;--surface: #ffffff;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-16: 4rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1);--header-h: 64px;--sidebar-w: 240px;--nav-h: 44px;--t-fast: .15s ease;--t-normal: .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-fade-in{animation:fadeIn .3s ease both}.animate-slide-in{animation:slideInLeft .25s ease both}.animate-slide-up{animation:slideInUp .3s ease both}.animate-pulse{animation:pulse 1.5s ease-in-out infinite}#root,.app{display:flex;flex-direction:column;min-height:100vh;background:var(--bg);color:var(--text)}.app-header{position:sticky;top:0;z-index:100;height:var(--header-h);background:var(--gray-900);border-bottom:1px solid var(--gray-800);display:flex;align-items:center;padding:0 var(--sp-6);gap:var(--sp-6);box-shadow:var(--shadow-md);flex-shrink:0}.app-brand{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.app-logo{width:36px;height:36px;background:linear-gradient(135deg,var(--brand-500),var(--brand-600));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:var(--white);font-family:var(--font-mono);letter-spacing:-.05em;flex-shrink:0}.app-title{font-size:18px;font-weight:700;color:var(--white);letter-spacing:-.02em;line-height:1.2;margin:0}.app-subtitle{font-size:11px;color:var(--brand-300);font-weight:500;line-height:1;margin:0}.app-dataset-info{display:flex;gap:var(--sp-3);margin-left:auto;align-items:center}.dataset-badge{display:flex;align-items:center;gap:var(--sp-2);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-full);font-size:12px;font-weight:500;color:var(--gray-300);white-space:nowrap}.dataset-badge-icon{font-size:14px}.app-nav{height:var(--nav-h);background:var(--gray-900);border-bottom:1px solid var(--gray-800);display:flex;align-items:flex-end;padding:0 var(--sp-6);gap:0;flex-shrink:0;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav-tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:transparent;border:none;border-bottom:3px solid transparent;color:var(--gray-400);font-size:13px;font-weight:500;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast);margin-bottom:-1px;height:100%;white-space:nowrap;flex-shrink:0}.app-nav-tab:hover{color:var(--gray-200);border-bottom-color:var(--gray-600)}.app-nav-tab--active{color:var(--white);border-bottom-color:var(--brand-400);font-weight:600}.app-main{flex:1;overflow:hidden;display:flex;flex-direction:column}.demo-section{padding:var(--sp-6);flex:1;overflow-y:auto;animation:fadeIn .25s ease both}.demo-section-header{margin-bottom:var(--sp-6)}.demo-section-header h2{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.02em;margin-bottom:var(--sp-1)}.demo-section-header p{font-size:14px;color:var(--text-secondary);line-height:1.6}.demo-loading{display:flex;align-items:center;justify-content:center;padding:var(--sp-12);color:var(--text-muted);font-size:14px;gap:var(--sp-3)}.demo-loading:before{content:"";width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:var(--radius-full);animation:spin .8s linear infinite;flex-shrink:0}.demo-error{padding:var(--sp-6);background:var(--danger-light);border:1px solid var(--danger-border);border-radius:var(--radius-lg);color:var(--danger-700);font-size:14px}.demo-section--builder{padding:0;overflow:hidden;display:flex;flex-direction:column}.analytics-builder{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:var(--bg)}.analytics-builder-toolbar{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap;min-height:52px}.toolbar-brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;color:var(--brand-600);font-size:14px;flex-shrink:0}.toolbar-logo{font-size:18px}.toolbar-title{font-size:14px;font-weight:700}.toolbar-label{font-size:12px;color:var(--text-muted);margin-right:var(--sp-1);flex-shrink:0}.toolbar-dataset-select{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;background:var(--white);color:var(--text);min-width:200px;cursor:pointer;transition:border-color var(--t-fast)}.toolbar-dataset-select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #4f46e51a}.toolbar-actions{display:flex;gap:var(--sp-2);margin-left:auto}.analytics-builder-body{display:flex;flex:1;overflow:hidden}.analytics-builder-sidebar{width:var(--sidebar-w);min-width:180px;max-width:280px;border-right:1px solid var(--border);overflow-y:auto;background:var(--surface);flex-shrink:0;scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.analytics-builder-sidebar::-webkit-scrollbar{width:4px}.analytics-builder-sidebar::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}.analytics-builder-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.analytics-builder-tabs{display:flex;gap:0;padding:var(--sp-2) var(--sp-4) 0;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.analytics-tab{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast);white-space:nowrap}.analytics-tab:hover{color:var(--brand)}.analytics-tab--active{color:var(--brand-600);border-bottom-color:var(--brand);font-weight:600}.analytics-builder-workspace{flex:1;overflow:auto;padding:var(--sp-4)}.field-panel{padding:var(--sp-3)}.field-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}.field-panel-title{font-weight:700;font-size:12px;color:var(--text);text-transform:uppercase;letter-spacing:.06em}.field-panel-meta{font-size:11px;color:var(--text-muted)}.field-panel-search{margin-bottom:var(--sp-3)}.field-search-input{width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:12px;background:var(--gray-50);color:var(--text);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.field-search-input:focus{outline:none;border-color:var(--brand-400);background:var(--white);box-shadow:0 0 0 3px #6366f11a}.field-panel-empty{padding:var(--sp-6) 0;text-align:center;color:var(--text-muted);font-size:12px}.field-panel-hint{font-size:11px;color:var(--gray-400)}.field-group{margin-bottom:var(--sp-3)}.field-group-header{display:flex;align-items:center;width:100%;background:transparent;border:none;padding:var(--sp-1) 0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);cursor:pointer;transition:color var(--t-fast)}.field-group-header:hover{color:var(--text)}.field-group-count{background:var(--gray-100);border-radius:var(--radius-full);padding:1px 7px;font-size:10px;margin:0 var(--sp-2);color:var(--text-secondary)}.field-group-chevron{margin-left:auto;font-size:9px;transition:transform var(--t-fast)}.field-group-items{display:flex;flex-direction:column;gap:2px;padding-top:var(--sp-1)}.field-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);background:var(--gray-50);border:1px solid transparent;font-size:12px;color:var(--text-secondary);transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast);cursor:grab;-webkit-user-select:none;user-select:none}.field-item:hover{background:var(--brand-50);border-color:var(--brand-300);color:var(--brand-600)}.field-item:active{cursor:grabbing}.field-type-badge{width:18px;height:18px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--white);flex-shrink:0}.field-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.field-chip{display:inline-flex;align-items:center;gap:var(--sp-1);background:var(--brand);color:var(--white);border-radius:var(--radius-sm);padding:3px var(--sp-2);font-size:11px;font-weight:500;max-width:200px;cursor:grab;transition:background-color var(--t-fast),transform var(--t-fast);-webkit-user-select:none;user-select:none}.field-chip:hover{background:var(--brand-600)}.field-chip:active{cursor:grabbing}.field-chip--dragging{opacity:.45;transform:rotate(1deg)}.field-chip--overlay{opacity:.95;box-shadow:var(--shadow-lg);pointer-events:none;transform:rotate(2deg) scale(1.02)}.field-chip-drag{cursor:grab;opacity:.6;font-size:12px}.field-chip-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.field-chip-agg{background:#00000040;border:none;color:#ffffffe6;font-size:10px;border-radius:3px;padding:0 3px;cursor:pointer;font-family:var(--font-mono)}.field-chip-agg:hover{background:#0006}.field-chip-remove{background:transparent;border:none;color:#fff9;font-size:14px;padding:0;line-height:1;cursor:pointer;transition:color var(--t-fast)}.field-chip-remove:hover{color:var(--white)}.drop-zone{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);background:var(--white);transition:border-color var(--t-fast),background-color var(--t-fast),box-shadow var(--t-fast)}.drop-zone--over{border-color:var(--brand);background:var(--brand-50);box-shadow:0 0 0 4px #4f46e51f}.drop-zone--full{opacity:.6;pointer-events:none}.drop-zone--has-items{border-style:solid;border-color:var(--gray-200)}.drop-zone-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--gray-100);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--gray-50);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.drop-zone-count{font-size:10px;background:var(--gray-200);padding:1px 6px;border-radius:var(--radius-full);color:var(--text-secondary)}.drop-zone-content{display:flex;flex-wrap:wrap;gap:var(--sp-1);padding:var(--sp-2);min-height:44px;align-items:flex-start;align-content:flex-start}.drop-zone--vertical .drop-zone-content{flex-direction:column}.drop-zone-placeholder{font-size:11px;color:var(--gray-400);padding:var(--sp-1);width:100%;pointer-events:none}.pivot-builder{display:flex;flex-direction:column;gap:var(--sp-4)}.pivot-builder-zones{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-3)}.pivot-builder-options{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-3);background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap}.pivot-option-label{display:flex;align-items:center;gap:var(--sp-2);font-size:12px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.pivot-option-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--brand);cursor:pointer}.pivot-builder-result{min-height:200px}.pivot-loading,.pivot-error,.pivot-empty{padding:var(--sp-10);text-align:center;color:var(--text-muted);font-size:13px}.pivot-error{color:var(--danger-700)}.pivot-table-wrapper{border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm)}.pivot-table-meta{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-4);font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--gray-50)}.pivot-duration{font-family:var(--font-mono);font-size:10px;color:var(--gray-400)}.pivot-table-scroll{overflow:auto;max-height:520px;scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.pivot-table{border-collapse:collapse;width:100%;font-size:12px}.pivot-th{position:sticky;top:0;z-index:2;background:var(--gray-900);color:var(--white);padding:var(--sp-2) var(--sp-3);text-align:right;white-space:nowrap;border-right:1px solid rgba(255,255,255,.08);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.pivot-th:first-child{text-align:left}.pivot-th--total{background:var(--gray-800)}.pivot-th--row-key{text-align:left;min-width:120px}.pivot-td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--gray-100);vertical-align:middle}.pivot-td--label{font-weight:500;text-align:left;color:var(--text)}.pivot-td--value{text-align:right;font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.pivot-td--null{color:var(--gray-300)}.pivot-td--total{font-weight:700;color:var(--text)}.pivot-row:nth-child(2n) td{background:var(--gray-50)}.pivot-row--total td{background:#f0fdf4!important;font-weight:700;border-top:2px solid var(--success-border)}.pivot-row--total td:not(.pivot-td--label),.pivot-row--subtotal td:not(.pivot-td--label){text-align:right;font-family:var(--font-mono);font-size:12px}.pivot-row--subtotal td{background:var(--brand-50)!important;font-weight:600;border-top:1px solid var(--brand-300)}.pivot-table--hover .pivot-row:hover td{background:var(--brand-50)!important;transition:background-color .1s}.pivot-truncated{padding:var(--sp-2) var(--sp-4);font-size:11px;color:var(--text-muted);background:var(--gray-50);text-align:center;border-top:1px solid var(--border)}.kpi-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--neutral);border-radius:var(--radius-xl);padding:var(--sp-4);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--sp-3);transition:box-shadow var(--t-normal),transform var(--t-normal)}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-card--good{border-left-color:var(--success)}.kpi-card--warning{border-left-color:var(--warning)}.kpi-card--critical{border-left-color:var(--danger)}.kpi-card--neutral{border-left-color:var(--brand-400)}.kpi-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-2)}.kpi-card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);line-height:1.3}.kpi-card-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.kpi-card-status-dot{width:8px;height:8px;border-radius:var(--radius-full);display:inline-block;flex-shrink:0}.kpi-card--good .kpi-card-status-dot{background:var(--success);box-shadow:0 0 6px #16a34a66}.kpi-card--warning .kpi-card-status-dot{background:var(--warning);box-shadow:0 0 6px #d9770666}.kpi-card--critical .kpi-card-status-dot{background:var(--danger);box-shadow:0 0 6px #dc262666}.kpi-card--neutral .kpi-card-status-dot{background:var(--brand-400)}.kpi-card-refresh-btn{background:transparent;border:none;font-size:13px;cursor:pointer;color:var(--text-muted);padding:2px;border-radius:var(--radius-sm);transition:color var(--t-fast),background-color var(--t-fast);line-height:1}.kpi-card-refresh-btn:hover{color:var(--brand);background:var(--brand-50)}.kpi-card-value{font-size:30px;font-weight:800;line-height:1.1;color:var(--text);letter-spacing:-.03em}.kpi-card--good .kpi-card-value{color:var(--success-700)}.kpi-card--warning .kpi-card-value{color:var(--warning-700)}.kpi-card--critical .kpi-card-value{color:var(--danger-700)}.kpi-card-description{font-size:11px;color:var(--text-muted);margin-top:var(--sp-1)}.kpi-card-error{font-size:12px;color:var(--danger-700);background:var(--danger-light);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm)}.kpi-card-trend{display:flex;align-items:center;gap:var(--sp-1);font-size:12px;margin-top:var(--sp-1)}.kpi-trend-icon{font-size:10px}.kpi-trend-value{font-weight:700}.kpi-trend-label{color:var(--text-muted);font-size:11px}.kpi-card-delta{display:flex;align-items:center;gap:var(--sp-1);font-size:12px;margin-top:var(--sp-1);font-weight:500}.kpi-delta-arrow{font-size:10px}.kpi-delta-pct{font-weight:700}.kpi-delta-label{color:var(--text-muted);font-size:11px;font-weight:400}.kpi-progress-wrapper{margin-top:var(--sp-2)}.kpi-progress-bar{height:6px;background:var(--gray-100);border-radius:var(--radius-full);overflow:hidden}.kpi-progress-fill{height:100%;border-radius:var(--radius-full);transition:width .6s cubic-bezier(.16,1,.3,1)}.kpi-card--good .kpi-progress-fill{background:var(--success)}.kpi-card--warning .kpi-progress-fill{background:var(--warning)}.kpi-card--critical .kpi-progress-fill{background:var(--danger)}.kpi-card--neutral .kpi-progress-fill{background:var(--brand)}.kpi-progress-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted);margin-top:3px}.kpi-card-footer{display:flex;justify-content:space-between;font-size:10px;color:var(--gray-400);border-top:1px solid var(--gray-100);padding-top:var(--sp-2);margin-top:auto}.kpi-card-stale{font-size:10px;color:var(--text-muted);font-style:italic}.kpi-card-skeleton{height:28px;background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.kpi-dashboard-header{margin-bottom:var(--sp-5)}.kpi-dashboard-title{font-size:18px;font-weight:700;margin:0 0 var(--sp-1);letter-spacing:-.02em}.kpi-dashboard-desc{font-size:13px;color:var(--text-muted);margin:0}.kpi-dashboard-empty{text-align:center;padding:var(--sp-12);color:var(--text-muted);font-size:14px}.kpi-drag-handle{position:absolute;top:var(--sp-2);right:var(--sp-2);cursor:grab;color:var(--gray-300);font-size:12px}.kpi-demo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);margin-bottom:var(--sp-8)}.demo-stats-row{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-3);margin-top:var(--sp-4)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-4);text-align:center;transition:box-shadow var(--t-normal),transform var(--t-normal)}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stat-value{font-size:22px;font-weight:800;color:var(--brand-600);letter-spacing:-.03em;line-height:1.2}.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--sp-1);font-weight:500}.chart-builder{display:grid;grid-template-columns:280px 1fr;gap:var(--sp-4)}.chart-builder-controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4);overflow-y:auto;max-height:600px;scrollbar-width:thin}.chart-control-group{display:flex;flex-direction:column;gap:var(--sp-2)}.chart-control-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.chart-control-input,.chart-control-select{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--text);background:var(--white);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.chart-control-input:focus,.chart-control-select:focus{outline:none;border-color:var(--brand-400);box-shadow:0 0 0 3px #6366f11a}.chart-type-grid{display:flex;flex-direction:column;gap:var(--sp-1)}.chart-type-category{margin-bottom:var(--sp-1)}.chart-type-category-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-400);margin-bottom:3px;font-weight:600}.chart-type-btn{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);text-align:left;font-size:12px;cursor:pointer;color:var(--text-secondary);transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.chart-type-btn:hover{background:var(--gray-100);border-color:var(--gray-200);color:var(--text)}.chart-type-btn--active{background:var(--brand-50);border-color:var(--brand-300);color:var(--brand-600);font-weight:600}.chart-type-icon{width:18px;text-align:center;font-size:14px}.chart-apply-btn{padding:var(--sp-2) var(--sp-4);background:var(--brand);color:var(--white);border:none;border-radius:var(--radius-md);font-weight:600;font-size:13px;cursor:pointer;transition:background-color var(--t-fast),transform var(--t-fast)}.chart-apply-btn:hover{background:var(--brand-600);transform:translateY(-1px)}.chart-apply-btn:active{transform:translateY(0)}.chart-apply-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.chart-builder-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-5)}.chart-preview-title{font-size:16px;font-weight:700;margin-bottom:var(--sp-1);letter-spacing:-.02em}.chart-preview-desc{font-size:12px;color:var(--text-muted);margin-bottom:var(--sp-4)}.report-scheduler{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-5);max-width:680px}.report-scheduler-title{font-size:16px;font-weight:700;margin:0 0 var(--sp-4);letter-spacing:-.02em}.schedule-list{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5)}.schedule-empty{font-size:12px;color:var(--text-muted);padding:var(--sp-3) 0;margin-bottom:var(--sp-3);border-bottom:1px solid var(--border);text-align:center;font-style:italic}.schedule-row{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--gray-50);border-radius:var(--radius-lg);border:1px solid var(--border);transition:border-color var(--t-fast)}.schedule-row:hover{border-color:var(--gray-300)}.schedule-row--disabled{opacity:.5}.schedule-row-info{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1}.schedule-row-name{font-size:13px;font-weight:600;color:var(--text)}.schedule-row-formats{display:flex;gap:var(--sp-1)}.schedule-format-badge{font-size:10px;background:var(--brand);color:var(--white);padding:1px 6px;border-radius:var(--radius-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.schedule-row-meta{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.schedule-row-actions{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0;margin-left:var(--sp-4)}.schedule-toggle{display:flex;align-items:center;gap:var(--sp-1);font-size:12px;color:var(--text-secondary);cursor:pointer}.schedule-toggle input[type=checkbox]{width:14px;height:14px;accent-color:var(--brand);cursor:pointer}.schedule-remove-btn{background:transparent;border:none;font-size:16px;color:var(--danger);cursor:pointer;padding:2px;border-radius:var(--radius-sm);transition:background-color var(--t-fast);line-height:1}.schedule-remove-btn:hover{background:var(--danger-light)}.schedule-form{border-top:1px solid var(--border);padding-top:var(--sp-5)}.schedule-form-title{font-size:14px;font-weight:700;margin:0 0 var(--sp-4)}.schedule-field{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-4)}.schedule-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.schedule-input{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--text);background:var(--white);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.schedule-input:focus{outline:none;border-color:var(--brand-400);box-shadow:0 0 0 3px #6366f11a}.schedule-input--code{font-family:var(--font-mono)}.schedule-input--error{border-color:var(--danger)}.schedule-input--error:focus{box-shadow:0 0 0 3px #dc26261a}.schedule-hint{font-size:11px;color:var(--text-muted);font-style:italic}.schedule-error{font-size:11px;color:var(--danger-700);background:var(--danger-light);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm)}.schedule-type-tabs{display:flex;gap:var(--sp-2)}.schedule-type-tab{padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);background:transparent;border-radius:var(--radius-md);font-size:12px;font-weight:500;cursor:pointer;transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast);color:var(--text-secondary)}.schedule-type-tab:hover{background:var(--gray-100)}.schedule-type-tab--active{background:var(--brand);color:var(--white);border-color:var(--brand)}.schedule-formats{display:flex;gap:var(--sp-4);flex-wrap:wrap}.schedule-format-option{display:flex;align-items:center;gap:var(--sp-2);font-size:13px;cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.schedule-format-option input[type=checkbox]{width:14px;height:14px;accent-color:var(--brand);cursor:pointer}.schedule-add-btn{padding:var(--sp-2) var(--sp-5);background:var(--brand);color:var(--white);border:none;border-radius:var(--radius-md);font-weight:600;font-size:13px;cursor:pointer;transition:background-color var(--t-fast),transform var(--t-fast)}.schedule-add-btn:hover{background:var(--brand-600);transform:translateY(-1px)}.schedule-add-btn:active{transform:translateY(0)}.schedule-add-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--brand);color:var(--white);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:background-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);white-space:nowrap}.btn-primary:hover{background:var(--brand-600);transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d}.btn-primary:active{transform:translateY(0);box-shadow:none}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--white);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast);white-space:nowrap}.btn-secondary:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--text)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:transparent;color:var(--text-secondary);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast);white-space:nowrap}.btn-ghost:hover{background:var(--gray-100);color:var(--text)}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);font-size:15px;transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast);flex-shrink:0}.btn-icon:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--text)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);background:var(--brand);color:var(--white);border:none;border-radius:var(--radius-md);font-size:12px;font-weight:600;cursor:pointer;transition:background-color var(--t-fast);white-space:nowrap}.toolbar-btn:hover{background:var(--brand-600)}.kpi-workspace{padding:var(--sp-2)}.kpi-empty-state{padding:var(--sp-12);text-align:center;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius-xl)}.kpi-empty-state h3{margin:0 0 var(--sp-2);font-size:16px;font-weight:600}.kpi-empty-state p{color:var(--text-muted);margin:var(--sp-1) 0;font-size:13px}.kpi-code-sample{display:block;background:var(--gray-100);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:12px;margin-top:var(--sp-3);text-align:left;word-break:break-all;color:var(--brand-600)}.report-workspace{display:flex;flex-direction:column;gap:var(--sp-4)}.report-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-4) var(--sp-5)}.report-info h3{margin:0 0 var(--sp-1);font-size:15px;font-weight:700}.report-info p{margin:0;font-size:12px;color:var(--text-muted);line-height:1.6}.report-config-section{background:var(--warning-light);border:1px solid var(--warning-border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);font-size:13px;color:var(--warning-700)}.about-section h2{font-size:24px;font-weight:800;margin:0 0 var(--sp-2);letter-spacing:-.03em}.about-tagline{font-size:16px;color:var(--text-secondary);margin:0 0 var(--sp-8)}.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-bottom:var(--sp-8)}.about-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-5);transition:box-shadow var(--t-normal),transform var(--t-normal)}.about-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.about-card-icon{font-size:32px;margin-bottom:var(--sp-3)}.about-card-title{font-size:15px;font-weight:700;margin:0 0 var(--sp-2);color:var(--text)}.about-card-desc{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.6}.about-tech{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-5)}.about-tech h3{font-size:15px;font-weight:700;margin:0 0 var(--sp-4)}.about-tech ul{margin:0;padding-left:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2);list-style:disc}.about-tech li{font-size:13px;color:var(--text-secondary)}.about-tech strong{color:var(--text);font-weight:600}button,a,[role=button],input,select,textarea{touch-action:manipulation}.app-nav-tab,.btn,.chart-type-btn,.pivot-tab-btn,.analytics-builder-tab,.toolbar-btn,.drop-zone-remove,.kpi-action-btn,.schedule-toggle,.schedule-remove,.marketplace-install-btn,.field-item{min-height:44px}.analytics-builder{height:calc(100dvh - var(--header-h) - var(--nav-h))}@supports not (height: 100dvh){.analytics-builder{height:calc(100vh - var(--header-h) - var(--nav-h))}}.app-header,.app-nav{padding-left:max(var(--sp-6),env(safe-area-inset-left));padding-right:max(var(--sp-6),env(safe-area-inset-right))}.demo-section{padding-bottom:max(var(--sp-6),env(safe-area-inset-bottom))}.app-nav,.analytics-builder-sidebar,.analytics-builder-workspace,.chart-builder-controls,.pivot-table-scroll,.demo-section,.field-panel,.sql-editor-wrapper{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}@media (min-width: 1440px){.demo-section{max-width:1600px;margin-left:auto;margin-right:auto}.kpi-demo-grid{grid-template-columns:repeat(4,1fr)}.demo-stats-row{grid-template-columns:repeat(6,1fr)}.marketplace-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width: 1279px){.marketplace-grid{grid-template-columns:repeat(3,1fr)}.docs-compare-table{font-size:13px}}@media (max-width: 1023px){.kpi-demo-grid{grid-template-columns:repeat(2,1fr)}.demo-stats-row{grid-template-columns:repeat(3,1fr)}.about-grid{grid-template-columns:repeat(2,1fr)}.chart-builder{grid-template-columns:220px 1fr}.marketplace-grid{grid-template-columns:repeat(2,1fr)}:root{--sidebar-w: 210px}}@media (max-width: 1023px) and (min-width: 768px){.analytics-builder-sidebar{width:var(--sidebar-w)}.chart-type-grid{grid-template-columns:1fr}.docs-steps{grid-template-columns:repeat(2,1fr)}}@media (max-width: 767px){:root{--sidebar-w: 100%;--header-h: 52px;--nav-h: 46px}.app-header{padding:0 var(--sp-3);gap:var(--sp-2);padding-left:max(var(--sp-3),env(safe-area-inset-left));padding-right:max(var(--sp-3),env(safe-area-inset-right))}.app-dataset-info{display:none}.app-logo{width:30px;height:30px;font-size:15px}.app-title{font-size:16px}.app-subtitle{font-size:10px}.app-nav{padding:0;padding-left:max(var(--sp-2),env(safe-area-inset-left));padding-right:max(var(--sp-2),env(safe-area-inset-right));overflow-x:auto;overflow-y:hidden;scrollbar-width:none;white-space:nowrap;flex-wrap:nowrap;gap:0}.app-nav::-webkit-scrollbar{display:none}.app-nav-tab{padding:var(--sp-2) var(--sp-3);font-size:12px;flex-shrink:0;min-height:var(--nav-h)}.demo-section{padding:var(--sp-3);padding-bottom:max(var(--sp-6),env(safe-area-inset-bottom))}.demo-section-header{margin-bottom:var(--sp-4)}.demo-section-header h2{font-size:18px}.kpi-demo-grid,.demo-stats-row{grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}.about-grid{grid-template-columns:1fr}.kpi-delta-label{display:none}.analytics-builder{height:auto;min-height:calc(100dvh - var(--header-h) - var(--nav-h));overflow:visible}.analytics-builder-toolbar{padding:var(--sp-2) var(--sp-3);gap:var(--sp-2);flex-wrap:wrap}.toolbar-dataset-select{min-width:0;flex:1;font-size:12px}.toolbar-brand .toolbar-title{display:none}.toolbar-actions{gap:var(--sp-1)}.toolbar-actions .btn{padding:var(--sp-1) var(--sp-2);font-size:11px}.analytics-builder-body{flex-direction:column;overflow:visible}.analytics-builder-sidebar{width:100%;max-width:100%;min-width:0;max-height:180px;border-right:none;border-bottom:1px solid var(--border);overflow-y:auto;overflow-x:hidden}.analytics-builder-main{overflow:visible;min-height:0}.analytics-builder-tabs{padding:var(--sp-2) var(--sp-3) 0;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;gap:0}.analytics-builder-tabs::-webkit-scrollbar{display:none}.analytics-builder-tab{flex-shrink:0;font-size:12px;padding:var(--sp-2) var(--sp-3);min-height:40px}.analytics-builder-workspace{overflow:visible;min-height:500px}.chart-builder{display:flex;flex-direction:column;grid-template-columns:none;height:auto}.chart-builder-controls{max-height:none;overflow-y:visible;border-right:none;border-bottom:1px solid var(--border);padding:var(--sp-3)}.chart-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.chart-type-category{break-inside:avoid}.chart-type-btn{font-size:11px;padding:var(--sp-2);min-height:44px}.chart-builder-preview{min-height:280px;border-top:1px solid var(--border);padding:var(--sp-3)}.chart-control-group{margin-bottom:var(--sp-3)}.chart-apply-btn{width:100%}.pivot-builder-zones{grid-template-columns:1fr 1fr;gap:var(--sp-2)}.pivot-builder-options{flex-wrap:wrap;gap:var(--sp-2)}.pivot-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.pivot-table{min-width:400px}.drop-zone-chip{max-width:120px}.drop-zone-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-form{gap:var(--sp-3)}.schedule-form-grid{grid-template-columns:1fr}.schedule-row{flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.schedule-row-actions{width:100%;display:flex;justify-content:flex-end}.sql-editor-wrapper{padding:var(--sp-3)}.marketplace-grid{grid-template-columns:1fr 1fr;gap:var(--sp-3)}.marketplace-toolbar{flex-direction:column;align-items:stretch;gap:var(--sp-2)}.marketplace-search{width:100%}.marketplace-filters{flex-wrap:wrap}.docs-steps{grid-template-columns:1fr}.docs-arch{flex-direction:column}.docs-hero{padding:var(--sp-6) var(--sp-3)}.docs-hero h1{font-size:22px}.docs-compare-table{font-size:12px;overflow-x:auto;display:block}.docs-code-block{font-size:11px;overflow-x:auto}.docs-highlights{grid-template-columns:1fr 1fr}.docs-roadmap-grid{grid-template-columns:1fr}.canvas-board{min-height:400px}.insight-filters{flex-direction:column;gap:var(--sp-2)}.insight-card{padding:var(--sp-3)}}@media (max-width: 479px){:root{--header-h: 48px;--nav-h: 44px}.app-title{font-size:15px}.app-subtitle{display:none}.app-header{padding:0 var(--sp-2);gap:var(--sp-2)}.app-logo{width:28px;height:28px;font-size:14px}.app-nav-tab{padding:var(--sp-2);font-size:11px;gap:var(--sp-1)}.kpi-demo-grid{grid-template-columns:1fr;gap:var(--sp-2)}.kpi-card{padding:var(--sp-3)}.kpi-card-value{font-size:22px}.demo-stats-row{grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.stat-card{padding:var(--sp-3)}.stat-value{font-size:20px}.pivot-builder-zones{grid-template-columns:1fr;gap:var(--sp-2)}.chart-type-grid{grid-template-columns:repeat(2,1fr)}.chart-type-btn{padding:var(--sp-2) var(--sp-1)}.marketplace-grid{grid-template-columns:1fr}.marketplace-card{padding:var(--sp-3)}.docs-highlights{grid-template-columns:1fr}.docs-hero h1{font-size:18px}.field-panel{padding:var(--sp-2)}.field-item{padding:var(--sp-1) var(--sp-2);font-size:11px;min-height:36px}.field-panel-search input{font-size:12px}.about-grid{grid-template-columns:1fr}.about-card{padding:var(--sp-3)}.analytics-builder-toolbar{padding:var(--sp-2);gap:var(--sp-1)}.toolbar-dataset-select{font-size:11px;padding:var(--sp-1) var(--sp-2)}}@media (max-width: 359px){.app-nav-tab .app-nav-tab-icon{font-size:14px}.app-nav-tab span:last-child{display:none}.chart-type-grid{grid-template-columns:1fr}.analytics-builder-tabs{font-size:11px}.kpi-demo-grid,.demo-stats-row{grid-template-columns:1fr}}@media (max-height: 500px) and (orientation: landscape){:root{--header-h: 44px;--nav-h: 40px}.app-title{font-size:14px}.app-logo{width:26px;height:26px;font-size:13px}.analytics-builder-body{flex-direction:row}.analytics-builder-sidebar{width:180px;max-height:none;height:100%;border-bottom:none;border-right:1px solid var(--border)}.chart-builder-preview{min-height:200px}.kpi-demo-grid{grid-template-columns:repeat(4,1fr)}}@media print{.app-header,.app-nav,.analytics-builder-toolbar,.analytics-builder-sidebar,.analytics-builder-tabs,.chart-builder-controls{display:none!important}.analytics-builder{height:auto;overflow:visible}.analytics-builder-body{flex-direction:column}.analytics-builder-main,.analytics-builder-workspace{overflow:visible}.demo-section{padding:0;overflow:visible}*{box-shadow:none!important;animation:none!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (forced-colors: active){.app-nav-tab--active{border-bottom-color:Highlight}.kpi-card--good{border-left-color:Highlight}.kpi-card--warning{border-left-color:GrayText}.kpi-card--critical{border-left-color:Mark}.drop-zone--active{outline:2px solid Highlight}.btn{border:1px solid ButtonText}.field-item:focus{outline:2px solid Highlight}}@media (prefers-color-scheme: dark){:root{color-scheme:dark light}}.text-muted{color:var(--text-muted)}.font-mono{font-family:var(--font-mono)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pivot-toolbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-3)}.crossfilter-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);background:var(--brand-100);color:var(--brand-600);border:1px solid var(--brand-300);border-radius:var(--radius-full);font-size:12px;font-weight:600}.crossfilter-badge__clear{background:none;border:none;cursor:pointer;color:var(--brand-600);font-size:14px;line-height:1;padding:0 2px;border-radius:50%}.crossfilter-badge__clear:hover{background:var(--brand-300)}.import-trigger-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--surface);color:var(--brand);border:1px solid var(--brand-300);border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.import-trigger-btn:hover{background:var(--brand-50);border-color:var(--brand)}.import-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--sp-4)}.import-panel{background:var(--surface);border-radius:var(--radius-xl);box-shadow:0 20px 60px #0003;width:min(680px,95vw);max-height:90vh;overflow-y:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}.import-panel__header{display:flex;align-items:center;justify-content:space-between}.import-panel__title{font-size:18px;font-weight:700;color:var(--text)}.import-panel__close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);padding:0 6px;line-height:1}.import-panel__close:hover{background:var(--gray-100);color:var(--text)}.import-tabs{display:flex;gap:var(--sp-2);border-bottom:2px solid var(--border);padding-bottom:0}.import-tab{padding:var(--sp-2) var(--sp-4);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color .15s,border-color .15s}.import-tab:hover{color:var(--text)}.import-tab--active{color:var(--brand);border-bottom-color:var(--brand)}.import-tab-content{display:flex;flex-direction:column;gap:var(--sp-3)}.import-hint{font-size:13px;color:var(--text-secondary)}.import-label{font-size:13px;font-weight:600;color:var(--text-secondary);display:block;margin-bottom:4px}.import-input{width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:14px}.import-dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-xl);padding:var(--sp-10);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center;transition:border-color .15s,background .15s;cursor:default}.import-dropzone--active{border-color:var(--brand);background:var(--brand-50)}.import-dropzone__icon{font-size:40px}.import-dropzone__label{font-size:16px;font-weight:600;color:var(--text)}.import-dropzone__sub{font-size:13px;color:var(--text-secondary)}.import-file-badges{display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:center}.import-file-badge{padding:2px 10px;border-radius:var(--radius-full);background:var(--gray-100);color:var(--gray-600);font-size:11px;font-weight:700;letter-spacing:.05em}.import-browse-btn{padding:var(--sp-2) var(--sp-6);background:var(--brand);color:#fff;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:background .15s}.import-browse-btn:hover{background:var(--brand-600)}.import-paste-area{width:100%;min-height:140px;padding:var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:13px;font-family:var(--font-mono);resize:vertical}.import-parse-btn{padding:var(--sp-2) var(--sp-6);background:var(--brand);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;width:fit-content;transition:background .15s}.import-parse-btn:hover:not(:disabled){background:var(--brand-600)}.import-parse-btn:disabled{opacity:.5;cursor:not-allowed}.import-progress{display:flex;align-items:center;gap:var(--sp-3);font-size:13px;color:var(--text-secondary)}.import-progress__bar{height:4px;background:var(--brand);border-radius:2px;transition:width .3s}.import-error{background:var(--danger-light);color:var(--danger-700);border:1px solid var(--danger-border);border-radius:var(--radius-md);padding:var(--sp-3);font-size:13px}.import-preview{display:flex;flex-direction:column;gap:var(--sp-3)}.import-preview__title{font-size:14px;font-weight:700;color:var(--text)}.import-col-types{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.import-col-type-row{display:flex;align-items:center;gap:var(--sp-2);background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px}.import-col-name{font-size:12px;font-weight:600;color:var(--text)}.import-col-select{font-size:12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:1px 4px}.import-preview-table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.import-preview-table{width:100%;border-collapse:collapse;font-size:12px}.import-preview-table th{background:var(--gray-100);padding:6px 10px;text-align:left;font-weight:700;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.import-preview-table td{padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap}.import-preview-table tr:last-child td{border-bottom:none}.import-preview-table tr:hover td{background:var(--brand-50)}.import-preview__more{font-size:12px;color:var(--text-muted);font-style:italic}.import-confirm-btn{padding:var(--sp-3) var(--sp-8);background:var(--success);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:700;cursor:pointer;align-self:flex-start;transition:background .15s}.import-confirm-btn:hover{background:var(--success-700)}.connector-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.connector-status__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.connector-status__text{font-weight:600}.insights-loading{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-8);justify-content:center;font-size:15px;color:var(--text-secondary)}.insights-loading__spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.insights-narrative{display:flex;gap:var(--sp-4);align-items:flex-start;background:linear-gradient(135deg,var(--brand-50),#f0f9ff);border:1px solid var(--brand-300);border-radius:var(--radius-xl);padding:var(--sp-6);margin-bottom:var(--sp-4)}.insights-narrative__icon{font-size:32px;flex-shrink:0}.insights-narrative__title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:var(--sp-2)}.insights-narrative__text{font-size:15px;color:var(--text);line-height:1.7;margin-bottom:var(--sp-2)}.insights-narrative__meta{font-size:12px;color:var(--text-muted)}.insights-filter-tabs{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-4)}.insights-filter-tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-full);font-size:13px;font-weight:600;cursor:pointer;background:var(--surface);color:var(--text-secondary);transition:all .15s}.insights-filter-tab:hover{border-color:var(--border-strong);color:var(--text)}.insights-filter-tab--critical.insights-filter-tab--active{background:var(--danger-light);color:var(--danger-700);border-color:var(--danger-border)}.insights-filter-tab--warning.insights-filter-tab--active{background:var(--warning-light);color:var(--warning-700);border-color:var(--warning-border)}.insights-filter-tab--info.insights-filter-tab--active{background:var(--brand-50);color:var(--brand-600);border-color:var(--brand-300)}.insights-filter-tab--all.insights-filter-tab--active{background:var(--gray-100);color:var(--text);border-color:var(--border-strong)}.insights-filter-tab__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#00000012;border-radius:var(--radius-full);font-size:11px;font-weight:700}.insights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--sp-4)}.insights-empty{grid-column:1 / -1;text-align:center;padding:var(--sp-8);color:var(--text-muted);font-size:14px}.insight-card{border-left:4px solid var(--brand);border-radius:var(--radius-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:0 1px 4px #0000000f;transition:box-shadow .15s,transform .1s}.insight-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.insight-card__header{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.insight-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;line-height:1.5}.insight-badge--chart{background:var(--neutral)!important}.insight-card__title{font-size:14px;font-weight:700;color:var(--text);line-height:1.4}.insight-card__desc{font-size:13px;color:var(--text-secondary);line-height:1.6}.insight-card__footer{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid rgba(0,0,0,.06)}.insight-card__confidence{display:flex;flex-direction:column;gap:4px}.insight-card__confidence-label{font-size:11px;font-weight:600;color:var(--text-muted)}.insight-card__confidence-track{height:4px;background:#00000014;border-radius:2px;overflow:hidden}.insight-card__confidence-bar{height:100%;border-radius:2px;transition:width .4s ease}.insight-card__cols{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.demo-section--canvas{padding:0;height:calc(100vh - 120px);display:flex;flex-direction:column}.demo-section--canvas .demo-section-header{flex-shrink:0;padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--border)}.demo-section--canvas .demo-section-header kbd{display:inline-block;padding:1px 5px;background:var(--gray-100);border:1px solid var(--border-strong);border-radius:3px;font-size:11px;font-family:var(--font-mono)}.demo-canvas{flex:1;min-height:0}.canvas-outer{position:relative;overflow:auto;background:var(--bg);-webkit-user-select:none;user-select:none;outline:none;cursor:default;height:100%}.canvas-outer:focus{outline:2px solid var(--brand);outline-offset:-2px}.canvas-inner{will-change:transform}.canvas-zoom-indicator{position:sticky;top:var(--sp-2);left:var(--sp-2);z-index:10;display:inline-block;background:#ffffffe6;border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;font-size:11px;font-weight:700;color:var(--text-secondary);pointer-events:none;margin:var(--sp-2) 0 0 var(--sp-2)}.canvas-toolbar{position:sticky;bottom:var(--sp-3);left:var(--sp-3);display:inline-flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px 8px;box-shadow:0 2px 8px #0000001f;z-index:20;margin:0 0 var(--sp-3) var(--sp-3)}.canvas-toolbar__btn{padding:4px 8px;background:none;border:none;border-radius:var(--radius-sm);font-size:14px;cursor:pointer;color:var(--text-secondary);transition:background .1s,color .1s}.canvas-toolbar__btn:hover:not(:disabled){background:var(--gray-100);color:var(--text)}.canvas-toolbar__btn:disabled{opacity:.35;cursor:not-allowed}.canvas-toolbar__sep{width:1px;height:20px;background:var(--border);margin:0 4px}.canvas-toolbar__zoom-label{font-size:12px;font-weight:700;color:var(--text-secondary);padding:0 4px;min-width:38px;text-align:center}.canvas-widget{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .15s}.canvas-widget:hover,.canvas-widget--selected{box-shadow:0 4px 20px #00000024}.canvas-widget--selected{outline:2px solid var(--brand);outline-offset:1px}.canvas-widget--locked{opacity:.85;cursor:default!important}.canvas-widget__toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:var(--gray-50);border-bottom:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .15s;height:32px;flex-shrink:0}.canvas-widget:hover .canvas-widget__toolbar,.canvas-widget--selected .canvas-widget__toolbar{opacity:1;pointer-events:all}.canvas-widget__title{font-size:12px;font-weight:600;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.canvas-widget__toolbar-actions{display:flex;gap:2px}.canvas-widget__toolbar-btn{background:none;border:none;cursor:pointer;font-size:12px;padding:2px 5px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:background .1s,color .1s}.canvas-widget__toolbar-btn:hover{background:var(--gray-200);color:var(--text)}.canvas-widget__toolbar-btn--danger:hover{background:var(--danger-light);color:var(--danger)}.canvas-widget__content{flex:1;overflow:hidden;padding:var(--sp-3);display:flex;align-items:stretch}.canvas-widget__placeholder{flex:1;display:flex;align-items:center;justify-content:center;background:var(--gray-50);border-radius:var(--radius-md)}.canvas-widget__type-label{font-size:12px;color:var(--text-muted);font-weight:600;font-family:var(--font-mono)}.canvas-widget__resize-handle{position:absolute;background:transparent;z-index:5}.canvas-widget__resize-handle--nw{top:-3px;left:-3px;width:10px;height:10px}.canvas-widget__resize-handle--ne{top:-3px;right:-3px;width:10px;height:10px}.canvas-widget__resize-handle--sw{bottom:-3px;left:-3px;width:10px;height:10px}.canvas-widget__resize-handle--se{bottom:-3px;right:-3px;width:10px;height:10px}.canvas-widget__resize-handle--n{top:-3px;left:10px;right:10px;height:6px}.canvas-widget__resize-handle--s{bottom:-3px;left:10px;right:10px;height:6px}.canvas-widget__resize-handle--w{top:10px;bottom:10px;left:-3px;width:6px}.canvas-widget__resize-handle--e{top:10px;bottom:10px;right:-3px;width:6px}.canvas-widget--selected .canvas-widget__resize-handle--nw,.canvas-widget--selected .canvas-widget__resize-handle--ne,.canvas-widget--selected .canvas-widget__resize-handle--sw,.canvas-widget--selected .canvas-widget__resize-handle--se{background:var(--brand);border-radius:50%;border:2px solid white;box-shadow:0 0 0 1px var(--brand);width:10px;height:10px}.canvas-rubber-band{position:absolute;border:1.5px solid var(--brand);background:#6366f114;border-radius:2px;pointer-events:none;z-index:9000}.canvas-guides{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.canvas-minimap{position:fixed;bottom:var(--sp-4);right:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 2px 8px #0000001f;overflow:hidden;background:var(--surface);z-index:30;pointer-events:none}.canvas-bar-chart{width:100%;height:100%;display:flex;flex-direction:column;padding:var(--sp-2)}.canvas-bar-chart__bars{flex:1;display:flex;align-items:flex-end;gap:var(--sp-2);padding-bottom:var(--sp-3)}.canvas-bar-chart__bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}.canvas-bar-chart__bar{width:100%;min-height:4px;border-radius:3px 3px 0 0;transition:opacity .15s}.canvas-bar-chart__bar:hover{opacity:.8}.canvas-bar-chart__label{font-size:10px;color:var(--text-secondary);font-weight:600;white-space:nowrap}.canvas-kpi-card{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);text-align:center}.canvas-kpi-card__value{font-size:28px;font-weight:800;color:var(--text);line-height:1}.canvas-kpi-card__label{font-size:12px;color:var(--text-secondary);font-weight:600}.canvas-kpi-card__trend{font-size:13px;font-weight:700;padding:2px 8px;border-radius:var(--radius-full)}.canvas-kpi-card__trend--up{background:var(--success-light);color:var(--success-700)}.canvas-kpi-card__trend--down{background:var(--danger-light);color:var(--danger-700)}.canvas-pivot-placeholder{width:100%;overflow:auto}.canvas-pivot-mini{width:100%;border-collapse:collapse;font-size:12px}.canvas-pivot-mini th{background:var(--gray-100);padding:4px 8px;text-align:left;font-weight:700;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.canvas-pivot-mini td{padding:4px 8px;border-bottom:1px solid var(--border);color:var(--text)}.canvas-pivot-mini tr:last-child td{border-bottom:none}.canvas-pivot-mini tr:hover td{background:var(--brand-50)}.docs-hero{background:linear-gradient(135deg,var(--bg-800) 0%,var(--bg-700) 100%);border-radius:var(--radius-lg);padding:40px;margin-bottom:32px;border:1px solid var(--border)}.docs-hero-title{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.docs-hero-subtitle{font-size:16px;color:var(--text-secondary);margin:0 0 20px}.docs-hero-badges{display:flex;gap:10px;flex-wrap:wrap}.docs-hero-badge{background:var(--brand-50);color:var(--brand);border:1px solid var(--brand-200, #c7d2fe);border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.docs-steps{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.docs-step{display:flex;gap:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px}.docs-step-num{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.docs-step-body{flex:1}.docs-step-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.docs-step-desc{font-size:13px;color:var(--text-secondary);margin:0 0 6px;line-height:1.6}.docs-step-tip{font-size:12px;color:var(--brand);font-style:italic;margin:0}.docs-compare-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:24px;background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.docs-compare-table th{background:var(--bg-800);color:var(--text-primary);font-weight:600;padding:12px 14px;text-align:left;border-bottom:1px solid var(--border)}.docs-compare-table th:not(:first-child){text-align:center}.docs-compare-table td{padding:10px 14px;color:var(--text-secondary);border-bottom:1px solid var(--border-light, var(--border))}.docs-compare-table td:not(:first-child){text-align:center}.docs-compare-table tr:last-child td{border-bottom:none}.docs-compare-table tr:hover td{background:var(--bg-hover, var(--bg-800))}.docs-compare-table td:first-child{font-weight:500;color:var(--text-primary)}.docs-compare-table td:nth-child(2),.docs-compare-table th:nth-child(2){background:var(--brand-50);color:var(--brand);font-weight:600}.docs-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:32px}.docs-highlight{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:var(--radius-md);padding:16px 20px}.docs-highlight--green{border-left-color:var(--success, #22c55e)}.docs-highlight--yellow{border-left-color:var(--warning, #f59e0b)}.docs-highlight--blue{border-left-color:var(--brand, #6366f1)}.docs-highlight-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.docs-highlight-desc{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.docs-arch{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;margin-bottom:32px}.docs-arch-layer{margin-bottom:12px}.docs-arch-layer-label{font-size:11px;font-weight:600;color:var(--text-tertiary, var(--text-secondary));text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.docs-arch-boxes{display:flex;gap:8px;flex-wrap:wrap}.docs-arch-box{background:var(--brand-50);border:1px solid var(--brand-200, #c7d2fe);border-radius:var(--radius-sm, 6px);padding:6px 12px;font-size:12px;font-weight:600;color:var(--brand)}.docs-arch-box--core{background:var(--bg-800);border-color:var(--border);color:var(--text-primary)}.docs-arch-box--engine{background:var(--success-light, #dcfce7);border-color:var(--success-border, #86efac);color:var(--success-text, #166534)}.docs-arch-arrow{text-align:center;color:var(--text-secondary);font-size:18px;margin:4px 0}.docs-code-examples{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.docs-code-block{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.docs-code-block summary{padding:14px 20px;font-size:14px;font-weight:600;color:var(--text-primary);cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.docs-code-block summary::-webkit-details-marker{display:none}.docs-code-block summary:before{content:"▶";font-size:10px;color:var(--text-secondary);transition:transform .2s}.docs-code-block[open] summary:before{transform:rotate(90deg)}.docs-code-block pre{margin:0;padding:16px 20px;background:var(--bg-800);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:12.5px;line-height:1.7;color:var(--text-primary);overflow-x:auto;border-top:1px solid var(--border)}.docs-roadmap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;margin-bottom:32px}.docs-roadmap-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.docs-roadmap-items{display:flex;flex-direction:column;gap:10px}.docs-roadmap-item{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--text-secondary)}.docs-roadmap-item .docs-roadmap-check{width:18px;height:18px;border-radius:4px;border:2px solid var(--border);flex-shrink:0}.docs-section-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid var(--brand);display:inline-block}.sql-editor-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-5);margin-bottom:var(--sp-4)}.sql-results-summary{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-2)}.sql-results-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:3px 10px;background:var(--success-light);border:1px solid var(--success-border);border-radius:var(--radius-full);font-size:12px;font-weight:600;color:var(--success-700)}.marketplace-toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap}.marketplace-search{flex:1;min-width:200px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;background:var(--surface);color:var(--text);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.marketplace-search:focus{outline:none;border-color:var(--brand-400);box-shadow:0 0 0 3px #6366f11a}.marketplace-category-filter{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;background:var(--surface);color:var(--text);cursor:pointer}.marketplace-count{font-size:13px;color:var(--text-muted);white-space:nowrap}.marketplace-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-5)}.marketplace-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);transition:box-shadow var(--t-fast),transform var(--t-fast),border-color var(--t-fast)}.marketplace-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--brand-300)}.marketplace-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}.marketplace-card-meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.marketplace-tier-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:10px;font-weight:700;letter-spacing:.06em}.marketplace-category-badge{font-size:11px;color:var(--text-muted);font-weight:500}.marketplace-card-rating{display:flex;align-items:center;gap:var(--sp-1);flex-shrink:0}.marketplace-stars{color:var(--warning);font-size:11px;letter-spacing:-1px}.marketplace-rating-num{font-size:11px;font-weight:700;color:var(--text-secondary)}.marketplace-card-name{font-size:16px;font-weight:700;color:var(--text);margin:0;line-height:1.3}.marketplace-card-desc{font-size:13px;color:var(--text-secondary);line-height:1.6;flex:1}.marketplace-card-tags{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.marketplace-tag{padding:2px 8px;background:var(--gray-100);border-radius:var(--radius-full);font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.marketplace-card-footer{display:flex;align-items:center;gap:var(--sp-3);font-size:11px;color:var(--text-muted);padding-top:var(--sp-2);border-top:1px solid var(--gray-100);flex-wrap:wrap}.marketplace-card-author{font-weight:500;color:var(--text-secondary)}.marketplace-card-installs,.marketplace-card-version{font-family:var(--font-mono)}.marketplace-install-btn{display:block;width:100%;padding:var(--sp-2) var(--sp-4);background:var(--brand);color:var(--white);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;text-align:center;transition:background-color var(--t-fast),transform var(--t-fast);text-decoration:none}.marketplace-install-btn:hover{background:var(--brand-600);transform:translateY(-1px)}.marketplace-empty{grid-column:1 / -1;text-align:center;color:var(--text-muted);font-size:14px;padding:var(--sp-10)}@media (max-width: 768px){.marketplace-grid{grid-template-columns:1fr}.marketplace-toolbar{flex-direction:column;align-items:stretch}.marketplace-search{min-width:0}}.connectors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-5)}.connector-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3)}.connector-card--info{background:var(--gray-50, #f9fafb);border-style:dashed}.connector-card-header{display:flex;align-items:center;gap:var(--sp-3)}.connector-icon{font-size:24px;line-height:1}.connector-card-header h3{font-size:16px;font-weight:600;color:var(--text-primary)}.connector-desc{font-size:13px;color:var(--text-secondary);line-height:1.6}.connector-form{display:flex;gap:var(--sp-2);flex-wrap:wrap}.connector-input{flex:1;min-width:0;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;background:var(--bg);color:var(--text-primary);transition:border-color var(--t-fast)}.connector-input:focus{outline:none;border-color:var(--brand)}.connector-file-label{flex:1;display:flex;align-items:center;padding:8px 12px;border:1px dashed var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast);min-width:0}.connector-file-label:hover{border-color:var(--brand);color:var(--brand)}.connector-btn{padding:8px 16px;background:var(--brand);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--t-fast),opacity var(--t-fast);white-space:nowrap}.connector-btn:hover:not(:disabled){background:var(--brand-600)}.connector-btn:disabled{opacity:.45;cursor:not-allowed}.connector-status{font-size:12px;font-weight:500;padding:6px 10px;border-radius:var(--radius-sm)}.connector-status--ok{background:var(--success-light);color:var(--success-700)}.connector-status--err{background:var(--danger-light);color:var(--danger-700)}.connector-hint{font-size:11px;color:var(--text-muted)}.connector-badge{display:inline-block;padding:3px 10px;background:var(--brand-100);color:var(--brand-600);border-radius:12px;font-size:11px;font-weight:600;align-self:flex-start}@media (max-width: 640px){.connectors-grid{grid-template-columns:1fr}.connector-form{flex-direction:column}}@media (max-width: 640px){.app-header{flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);height:auto;min-height:var(--header-h)}.app-dataset-info{flex-wrap:wrap;gap:var(--sp-2)}.app-nav{padding:0 var(--sp-2);overflow-x:auto;-webkit-overflow-scrolling:touch;height:auto;min-height:44px;align-items:center}.app-nav-tab{padding:var(--sp-2) var(--sp-3);font-size:12px;min-height:44px;white-space:nowrap}.demo-section{padding:var(--sp-3)}.demo-section-header{margin-bottom:var(--sp-3)}.kpi-demo-grid{grid-template-columns:1fr;gap:var(--sp-3)}.demo-stats-row{flex-wrap:wrap;gap:var(--sp-2)}.demo-stats-row>*{flex:1 1 calc(50% - var(--sp-2));min-width:120px}.ab-layout{flex-direction:column}.ab-field-panel{width:100%;max-height:200px;overflow-y:auto;border-right:none;border-bottom:1px solid var(--gray-200)}}@media (min-width: 641px) and (max-width: 1024px){.kpi-demo-grid{grid-template-columns:repeat(2,1fr)}.demo-stats-row>*{flex:1 1 calc(33% - var(--sp-2))}.app-nav-tab{padding:var(--sp-2) var(--sp-3);font-size:12px}}.collab-wrapper{position:relative}.collab-content{width:100%}.collab-fab{position:absolute;top:var(--sp-3, 12px);right:var(--sp-3, 12px);display:flex;gap:var(--sp-2, 8px);z-index:50}.collab-fab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.15);background:var(--gray-900, #111827);color:var(--gray-200, #e5e7eb);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--t-fast, .15s),transform var(--t-fast, .15s);white-space:nowrap;box-shadow:0 2px 8px #0000004d}.collab-fab-btn:hover{background:var(--gray-700, #374151);transform:translateY(-1px)}.collab-fab-btn--active{background:var(--brand, #4f46e5);border-color:transparent;color:#fff}.collab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger, #dc2626);color:#fff;font-size:11px;font-weight:700}.collab-panel{position:absolute;top:0;right:0;width:340px;max-width:calc(100vw - 32px);max-height:80vh;overflow-y:auto;background:var(--gray-900, #111827);border:1px solid var(--gray-700, #374151);border-radius:var(--radius-lg, 12px);box-shadow:0 8px 32px #0006;z-index:60;display:flex;flex-direction:column}.collab-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4, 16px);border-bottom:1px solid var(--gray-800, #1f2937)}.collab-panel-header h3{color:var(--white, #fff);font-size:15px;font-weight:600}.collab-panel-close{background:transparent;border:none;color:var(--gray-400, #9ca3af);cursor:pointer;font-size:16px;padding:4px;border-radius:var(--radius-sm, 4px);transition:color var(--t-fast, .15s)}.collab-panel-close:hover{color:var(--white, #fff)}.collab-share-row{display:flex;gap:var(--sp-2, 8px);padding:var(--sp-3, 12px) var(--sp-4, 16px);border-bottom:1px solid var(--gray-800, #1f2937)}.collab-share-input{flex:1;padding:6px 10px;background:var(--gray-800, #1f2937);border:1px solid var(--gray-700, #374151);border-radius:var(--radius-md, 8px);color:var(--gray-300, #d1d5db);font-size:12px;min-width:0}.collab-copy-btn{padding:6px 12px;background:var(--brand, #4f46e5);color:#fff;border:none;border-radius:var(--radius-md, 8px);font-size:12px;font-weight:600;cursor:pointer;transition:background var(--t-fast, .15s)}.collab-copy-btn:hover{background:var(--brand-600, #4338ca)}.collab-thread{flex:1;overflow-y:auto;padding:var(--sp-2, 8px) var(--sp-4, 16px);display:flex;flex-direction:column;gap:var(--sp-3, 12px)}.collab-empty{text-align:center;color:var(--gray-500, #6b7280);font-size:13px;padding:var(--sp-6, 24px) 0}.collab-comment{background:var(--gray-800, #1f2937);border:1px solid var(--gray-700, #374151);border-radius:var(--radius-md, 8px);padding:var(--sp-3, 12px)}.collab-comment--resolved{opacity:.55}.collab-comment-meta{display:flex;align-items:center;gap:var(--sp-2, 8px);flex-wrap:wrap;margin-bottom:var(--sp-1, 4px)}.collab-author{font-size:13px;font-weight:600;color:var(--brand-300, #a5b4fc)}.collab-time{font-size:11px;color:var(--gray-500, #6b7280)}.collab-resolved-badge{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--success, #16a34a);background:var(--success-light, #dcfce7);padding:1px 6px;border-radius:4px}.collab-comment-text{font-size:13px;color:var(--gray-300, #d1d5db);line-height:1.5;margin-bottom:var(--sp-2, 8px)}.collab-comment-actions{display:flex;gap:var(--sp-2, 8px)}.collab-action-btn{background:transparent;border:1px solid var(--gray-600, #4b5563);border-radius:var(--radius-sm, 4px);color:var(--gray-400, #9ca3af);font-size:11px;font-weight:500;padding:2px 8px;cursor:pointer;transition:border-color var(--t-fast, .15s),color var(--t-fast, .15s)}.collab-action-btn:hover{border-color:var(--gray-400, #9ca3af);color:var(--white, #fff)}.collab-action-btn--danger:hover{border-color:var(--danger, #dc2626);color:var(--danger, #dc2626)}.collab-new-comment{padding:var(--sp-3, 12px) var(--sp-4, 16px) var(--sp-4, 16px);border-top:1px solid var(--gray-800, #1f2937);display:flex;flex-direction:column;gap:var(--sp-2, 8px)}.collab-author-input,.collab-textarea{width:100%;background:var(--gray-800, #1f2937);border:1px solid var(--gray-700, #374151);border-radius:var(--radius-md, 8px);color:var(--gray-200, #e5e7eb);font-size:13px;padding:8px 12px;resize:vertical;transition:border-color var(--t-fast, .15s)}.collab-author-input:focus,.collab-textarea:focus{outline:none;border-color:var(--brand-400, #818cf8)}.collab-author-input::placeholder,.collab-textarea::placeholder{color:var(--gray-500, #6b7280)}.collab-submit-btn{align-self:flex-end;padding:8px 20px;background:var(--brand, #4f46e5);color:#fff;border:none;border-radius:var(--radius-md, 8px);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--t-fast, .15s),opacity var(--t-fast, .15s)}.collab-submit-btn:hover:not(:disabled){background:var(--brand-600, #4338ca)}.collab-submit-btn:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 640px){.collab-fab{position:fixed;bottom:var(--sp-4, 16px);right:var(--sp-3, 12px);top:auto;flex-direction:column;align-items:flex-end}.collab-panel{position:fixed;bottom:80px;right:var(--sp-3, 12px);top:auto;width:calc(100vw - 24px);max-height:60vh}}.ai-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:start}.ai-stat-section,.ai-claude-section{display:flex;flex-direction:column;gap:var(--sp-4)}.ai-section-header{display:flex;flex-direction:column;gap:var(--sp-1)}.ai-section-header h3{font-size:16px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ai-section-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600}.ai-section-badge--stat{background:var(--neutral-light);color:var(--neutral)}.ai-section-badge--ai{background:var(--brand-100);color:var(--brand-600)}.ai-section-desc{font-size:13px;color:var(--text-secondary);line-height:1.6}.ai-loading-row{display:flex;align-items:center;gap:var(--sp-2);font-size:13px;color:var(--text-muted);padding:var(--sp-4)}.ai-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--brand-300);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.ai-spinner--sm{width:12px;height:12px;margin-right:4px}@keyframes spin{to{transform:rotate(360deg)}}.ai-narrative{background:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--radius-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.ai-narrative strong{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--brand-600)}.ai-narrative p{font-size:14px;color:var(--text-primary);line-height:1.6}.ai-meta{font-size:11px;color:var(--text-muted)}.ai-filter-tabs{display:flex;gap:var(--sp-2);flex-wrap:wrap}.ai-filter-tab{display:inline-flex;align-items:center;gap:var(--sp-1);padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:transparent;font-size:12px;font-weight:500;cursor:pointer;color:var(--text-secondary);transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.ai-filter-tab:hover{background:var(--neutral-light);color:var(--text-primary)}.ai-filter-tab--active.ai-filter-tab--all{background:var(--gray-800);color:#fff;border-color:var(--gray-800)}.ai-filter-tab--active.ai-filter-tab--critical{background:var(--danger-light);color:var(--danger-700);border-color:var(--danger-border)}.ai-filter-tab--active.ai-filter-tab--warning{background:var(--warning-light);color:var(--warning-700);border-color:var(--warning-border)}.ai-filter-tab--active.ai-filter-tab--info{background:var(--brand-50);color:var(--brand-600);border-color:var(--brand-300)}.ai-filter-count{background:#0000001a;border-radius:9px;padding:0 5px;font-size:11px;font-weight:700;min-width:18px;text-align:center}.ai-cards-grid{display:flex;flex-direction:column;gap:var(--sp-3);max-height:600px;overflow-y:auto;padding-right:var(--sp-1)}.insight-card{border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);background:var(--surface);transition:box-shadow var(--t-fast)}.insight-card:hover{box-shadow:var(--shadow-sm)}.insight-card--critical{border-left:4px solid var(--danger)}.insight-card--warning{border-left:4px solid var(--warning)}.insight-card--info{border-left:4px solid var(--brand)}.insight-card-header{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.insight-type-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;background:var(--neutral-light);color:var(--neutral);padding:1px 7px;border-radius:4px}.ai-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 7px;border-radius:4px}.ai-badge--critical{background:var(--danger-light);color:var(--danger-700)}.ai-badge--warning{background:var(--warning-light);color:var(--warning-700)}.ai-badge--info{background:var(--brand-50);color:var(--brand-600)}.insight-chart-hint{font-size:11px;color:var(--text-muted);margin-left:auto}.insight-title{font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.4}.insight-description{font-size:13px;color:var(--text-secondary);line-height:1.6}.insight-meta{display:flex;gap:var(--sp-4);font-size:11px;color:var(--text-muted)}.ai-empty{font-size:13px;color:var(--text-muted);text-align:center;padding:var(--sp-8) 0}.ai-key-row{display:flex;flex-direction:column;gap:var(--sp-2)}.ai-key-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px}.ai-key-field{display:flex;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--t-fast)}.ai-key-field:focus-within{border-color:var(--brand)}.ai-key-input{flex:1;padding:9px 12px;border:none;font-size:13px;font-family:var(--font-mono);background:var(--bg);color:var(--text-primary);min-width:0}.ai-key-input:focus{outline:none}.ai-key-input::placeholder{color:var(--text-muted);font-family:inherit}.ai-key-toggle{padding:0 12px;background:var(--neutral-light);border:none;border-left:1px solid var(--border);cursor:pointer;font-size:14px;transition:background var(--t-fast)}.ai-key-toggle:hover{background:var(--gray-200)}.ai-key-hint{font-size:11px;color:var(--text-muted);line-height:1.5}.ai-link-text{font-family:var(--font-mono);font-size:11px;color:var(--brand)}.ai-model-row{display:flex;flex-direction:column;gap:var(--sp-2)}.ai-model-options{display:flex;gap:var(--sp-2);flex-wrap:wrap}.ai-model-option{display:flex;flex-direction:column;gap:2px;flex:1;min-width:140px;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;background:var(--surface);transition:border-color var(--t-fast),background var(--t-fast)}.ai-model-option:hover{border-color:var(--brand-300);background:var(--brand-50)}.ai-model-option--active{border-color:var(--brand);background:var(--brand-50)}.ai-model-radio{position:absolute;opacity:0;width:0;height:0}.ai-model-name{font-size:13px;font-weight:600;color:var(--text-primary)}.ai-model-cost{font-size:11px;color:var(--text-muted);line-height:1.4}.ai-model-option--active .ai-model-name{color:var(--brand-600)}.ai-model-option--active .ai-model-cost{color:var(--brand)}.ai-usage-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--neutral-light);border-radius:var(--radius-sm);font-size:11px}.ai-usage-item{color:var(--text-muted);font-family:var(--font-mono)}.ai-usage-item--cached{color:var(--success);font-weight:600}.ai-usage-item--cost{color:var(--brand-600);font-weight:700;margin-left:auto}.ai-usage-item--free{color:var(--success);font-weight:700;margin-left:auto}.ai-provider-row{display:flex;flex-direction:column;gap:var(--sp-2)}.ai-provider-options{display:flex;gap:var(--sp-3);flex-wrap:wrap}.ai-provider-option{display:flex;align-items:center;gap:var(--sp-2);flex:1;min-width:200px;padding:var(--sp-3) var(--sp-4);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;background:var(--surface);transition:border-color var(--t-fast),background var(--t-fast)}.ai-provider-option:hover{border-color:var(--brand-300);background:var(--brand-50)}.ai-provider-option--active{border-color:var(--brand);background:var(--brand-50)}.ai-provider-option--active .ai-model-name{color:var(--brand-600)}.ai-provider-option--active .ai-model-cost{color:var(--brand)}.ai-provider-icon{font-size:18px}.ai-ollama-config{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-md)}.ai-ollama-info strong{display:block;font-size:14px;color:#15803d;margin-bottom:var(--sp-1)}.ai-ollama-info p{font-size:13px;color:var(--text-secondary);margin:0 0 var(--sp-2);line-height:1.5}.ai-ollama-steps{margin:0;padding-left:20px;font-size:13px;color:var(--text-secondary);line-height:2}.ai-ollama-steps code{background:#dcfce7;padding:1px 6px;border-radius:4px;font-family:var(--font-mono);font-size:12px;color:#166534}.ai-error-help{margin-top:var(--sp-2);font-size:12px}.ai-error-help summary{cursor:pointer;font-weight:600;color:var(--error)}.ai-error-help ol{margin:var(--sp-2) 0 0 16px;line-height:1.8}.ai-error-help code{background:#fee2e2;padding:1px 5px;border-radius:3px;font-family:var(--font-mono);font-size:11px}.ai-controls{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.ai-analyse-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:10px 20px;background:var(--brand);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--t-fast),opacity var(--t-fast)}.ai-analyse-btn:hover:not(:disabled){background:var(--brand-600)}.ai-analyse-btn:disabled{opacity:.5;cursor:not-allowed}.ai-cancel-btn,.ai-rerun-btn{padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;background:transparent;color:var(--text-secondary);transition:background var(--t-fast),color var(--t-fast)}.ai-cancel-btn:hover,.ai-rerun-btn:hover{background:var(--neutral-light);color:var(--text-primary)}.ai-error{background:var(--danger-light);border:1px solid var(--danger-border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);font-size:13px;color:var(--danger-700);line-height:1.5}.ai-output-wrapper{background:var(--gray-50, #f9fafb);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);max-height:600px;overflow-y:auto;font-size:14px;line-height:1.7;color:var(--text-primary)}.ai-thinking{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-muted);font-size:13px;font-style:italic}.ai-cursor{display:inline-block;animation:blink 1s step-end infinite;color:var(--brand);font-size:16px;vertical-align:middle}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.ai-markdown h2{font-size:16px;font-weight:700;margin:20px 0 8px;color:var(--text-primary)}.ai-markdown h3{font-size:14px;font-weight:700;margin:16px 0 6px;color:var(--text-primary)}.ai-markdown h4{font-size:13px;font-weight:600;margin:12px 0 4px;color:var(--text-secondary)}.ai-markdown p{margin:6px 0}.ai-markdown li{margin:4px 0 4px 20px;list-style:disc}.ai-markdown br{display:block;height:4px;content:""}.ai-markdown strong{font-weight:700}.ai-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4);text-align:center;background:var(--gray-50, #f9fafb);border:1px dashed var(--border);border-radius:var(--radius-lg)}.ai-empty-icon{font-size:36px}.ai-empty-state p{font-size:13px;color:var(--text-secondary);line-height:1.6;max-width:360px}.ai-compare-note{font-size:12px;color:var(--text-muted);font-style:italic}@media (max-width: 1024px){.ai-panel{grid-template-columns:1fr}.ai-cards-grid{max-height:400px}}.lp{--lp-bg: #ffffff;--lp-ink: #0b1220;--lp-ink-soft: #334155;--lp-ink-muted: #64748b;--lp-line: #e2e8f0;--lp-line-soft: #eef2f7;--lp-brand: #4f46e5;--lp-brand-2: #7c3aed;--lp-accent: #0ea5e9;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--lp-ink);background:var(--lp-bg)}.lp-container{max-width:1180px;margin:0 auto;padding:0 24px}.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:8px;border:1px solid transparent;font-weight:600;font-size:14px;letter-spacing:-.005em;line-height:1.2;cursor:pointer;transition:transform .08s ease,box-shadow .15s ease,background .15s ease,color .15s ease;text-decoration:none}.lp-btn:active{transform:translateY(1px)}.lp-btn--primary{background:linear-gradient(180deg,#4f46e5,#4338ca);color:#fff;box-shadow:0 1px #fff3 inset,0 8px 22px -10px #4f46e58c}.lp-btn--primary:hover{background:linear-gradient(180deg,#4338ca,#3730a3)}.lp-btn--secondary{background:#fff;color:var(--lp-ink);border-color:var(--lp-line);box-shadow:0 1px 2px #0f172a0a}.lp-btn--secondary:hover{border-color:#cbd5e1;background:#f8fafc}.lp-btn--ghost{background:transparent;color:var(--lp-ink)}.lp-btn--ghost:hover{background:#0f172a0d}.lp-btn--lg{padding:14px 24px;font-size:15px;border-radius:10px}.lp-btn--block{width:100%}.lp-nav{position:sticky;top:0;z-index:50;background:#ffffffd9;backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s,background .2s}.lp-nav--scrolled{border-bottom-color:var(--lp-line);background:#fffffff0}.lp-nav__inner{max-width:1180px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:32px}.lp-nav__brand{display:flex;align-items:center;gap:10px;font-weight:700}.lp-nav__logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#6366f1,#4338ca);color:#fff;display:grid;place-items:center;font-weight:700;font-size:15px;box-shadow:0 4px 14px -4px #4f46e599}.lp-nav__logo--sm{width:28px;height:28px;font-size:13px}.lp-nav__name{display:flex;flex-direction:column;line-height:1.1;font-size:16px}.lp-nav__by{font-size:11px;font-weight:500;color:var(--lp-ink-muted);letter-spacing:.02em}.lp-nav__links{display:flex;align-items:center;gap:24px;margin-left:24px;flex:1}.lp-nav__links a{font-size:14px;color:var(--lp-ink-soft);font-weight:500;transition:color .15s}.lp-nav__links a:hover{color:var(--lp-ink)}.lp-nav__cta{display:flex;align-items:center;gap:8px}.lp-hero{position:relative;padding:80px 0 32px;overflow:hidden}.lp-hero__bg{position:absolute;top:-120px;right:0;bottom:0;left:0;background:radial-gradient(60% 50% at 50% 0%,rgba(99,102,241,.13),transparent 70%),radial-gradient(50% 45% at 80% 10%,rgba(124,58,237,.1),transparent 70%),radial-gradient(40% 40% at 20% 0%,rgba(14,165,233,.08),transparent 70%);pointer-events:none;z-index:0}.lp-hero__inner{position:relative;z-index:1;text-align:center}.lp-hero__pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:600;border:1px solid #c7d2fe}.lp-hero__dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #22c55e2e}.lp-hero__title{margin-top:28px;font-size:clamp(34px,5.2vw,60px);line-height:1.06;letter-spacing:-.025em;font-weight:800;color:var(--lp-ink)}.lp-hero__title-accent{background:linear-gradient(120deg,#4f46e5,#7c3aed,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent}.lp-hero__subtitle{max-width:720px;margin:22px auto 0;font-size:18px;line-height:1.55;color:var(--lp-ink-soft)}.lp-hero__cta-row{display:flex;gap:12px;justify-content:center;margin-top:36px;flex-wrap:wrap}.lp-hero__legal{margin-top:18px;font-size:12.5px;color:var(--lp-ink-muted)}.lp-hero__visual{margin:56px auto 0;max-width:1080px}.lp-hero__visual-window{background:#fff;border-radius:14px;border:1px solid var(--lp-line);box-shadow:0 30px 60px -20px #0f172a33,0 12px 24px -12px #0f172a1f;overflow:hidden}.lp-hero__visual-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f8fafc;border-bottom:1px solid var(--lp-line)}.lp-hero__visual-dot{width:10px;height:10px;border-radius:50%;background:var(--lp-line-soft)}.lp-hero__visual-dot--r{background:#ef4444}.lp-hero__visual-dot--y{background:#f59e0b}.lp-hero__visual-dot--g{background:#22c55e}.lp-hero__visual-url{margin-left:12px;font-size:12px;color:var(--lp-ink-muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.lp-hero__visual-body{padding:22px;background:linear-gradient(180deg,#fff,#f8fafc)}.lp-mock{display:flex;flex-direction:column;gap:18px}.lp-mock__kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.lp-mock__kpi{background:#fff;border:1px solid var(--lp-line);border-radius:12px;padding:14px 16px;text-align:left}.lp-mock__kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--lp-ink-muted);font-weight:600}.lp-mock__kpi-value{font-size:24px;font-weight:700;color:var(--lp-ink);margin-top:6px;letter-spacing:-.01em}.lp-mock__kpi-delta{font-size:12px;font-weight:600;margin-top:4px;display:inline-flex;gap:4px;align-items:center}.lp-mock__kpi-delta--up,.lp-mock__kpi-delta--down-good{color:#16a34a}.lp-mock__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lp-mock__card{background:#fff;border:1px solid var(--lp-line);border-radius:12px;padding:16px}.lp-mock__card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.lp-mock__card-title{font-weight:600;font-size:14px;color:var(--lp-ink)}.lp-mock__card-tag{font-size:11px;color:var(--lp-ink-muted);padding:3px 8px;border-radius:999px;background:#f1f5f9}.lp-mock__card-tag--good{background:#dcfce7;color:#15803d}.lp-mock__bars{height:160px;display:flex;align-items:flex-end;gap:14px;padding:0 4px}.lp-mock__bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.lp-mock__bar{width:100%;border-radius:6px 6px 0 0;min-height:6px;background:var(--lp-brand);transition:filter .2s}.lp-mock__bar-col span{font-size:11px;color:var(--lp-ink-muted);font-weight:600}.lp-mock__line{width:100%;height:160px;display:block}.lp-logos{padding:36px 0 8px}.lp-logos__label{text-align:center;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--lp-ink-muted)}.lp-logos__row{margin-top:18px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:36px;opacity:.7}.lp-logos__item{font-size:15px;font-weight:800;letter-spacing:.18em;color:var(--lp-ink-soft);font-family:Inter,sans-serif}.lp-section{padding:88px 0}.lp-section__head{max-width:760px;margin:0 auto 48px;text-align:center}.lp-section__eyebrow{display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-brand);font-weight:700}.lp-section__title{margin-top:10px;font-size:clamp(26px,3.2vw,38px);line-height:1.18;letter-spacing:-.02em;font-weight:800;color:var(--lp-ink)}.lp-section__lede{margin-top:14px;font-size:16px;color:var(--lp-ink-soft);line-height:1.6}.lp-outcomes{background:#f8fafc;border-top:1px solid var(--lp-line);border-bottom:1px solid var(--lp-line)}.lp-outcomes__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.lp-outcome{background:#fff;border:1px solid var(--lp-line);border-radius:14px;padding:24px;text-align:left;transition:transform .15s,box-shadow .15s}.lp-outcome:hover{transform:translateY(-2px);box-shadow:0 12px 30px -16px #0f172a26}.lp-outcome__value{font-size:36px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(120deg,#4f46e5,#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent}.lp-outcome__label{margin-top:8px;font-size:14px;font-weight:600;color:var(--lp-ink)}.lp-outcome__sub{margin-top:4px;font-size:12.5px;color:var(--lp-ink-muted)}.lp-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lp-feature{background:#fff;border:1px solid var(--lp-line);border-radius:14px;padding:26px 22px;transition:border-color .2s,transform .2s,box-shadow .2s}.lp-feature:hover{border-color:#c7d2fe;transform:translateY(-3px);box-shadow:0 14px 32px -18px #4f46e566}.lp-feature__tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lp-brand);background:#eef2ff;border:1px solid #c7d2fe;padding:3px 10px;border-radius:999px}.lp-feature__title{margin-top:14px;font-size:17px;font-weight:700;color:var(--lp-ink);line-height:1.3}.lp-feature__desc{margin-top:8px;font-size:14px;color:var(--lp-ink-soft);line-height:1.55}.lp-feature__points{margin-top:16px;display:grid;gap:6px}.lp-feature__points li{font-size:13px;color:var(--lp-ink-soft);display:flex;align-items:center;gap:8px}.lp-feature__check{width:18px;height:18px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:11px;font-weight:700;display:grid;place-items:center}.lp-solutions{background:linear-gradient(180deg,#fff,#f8fafc)}.lp-solution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lp-solution{background:#fff;border:1px solid var(--lp-line);border-radius:14px;padding:26px;position:relative}.lp-solution__icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#eef2ff,#f5f3ff);display:grid;place-items:center;font-size:22px}.lp-solution__audience{margin-top:16px;font-size:17px;font-weight:700;color:var(--lp-ink)}.lp-solution__outcome{margin-top:6px;font-size:14px;color:var(--lp-ink-soft);line-height:1.55}.lp-solution__uses{margin-top:14px;display:grid;gap:4px;font-size:13px;color:var(--lp-ink-soft)}.lp-compare__tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--lp-line);border-radius:14px;box-shadow:0 10px 30px -20px #0f172a26}.lp-compare__table{width:100%;border-collapse:collapse;min-width:720px}.lp-compare__table thead th{background:#f8fafc;padding:16px 18px;text-align:left;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--lp-ink-muted);border-bottom:1px solid var(--lp-line)}.lp-compare__table thead th.lp-compare__us{color:var(--lp-brand);background:#eef2ff}.lp-compare__table tbody tr+tr{border-top:1px solid var(--lp-line-soft)}.lp-compare__table tbody th{text-align:left;font-weight:600;font-size:14px;color:var(--lp-ink);padding:14px 18px;background:#fff}.lp-compare__table tbody td{padding:14px 18px;font-size:14px;color:var(--lp-ink-soft)}.lp-compare__table .lp-compare__us-cell{background:#eef2ff;color:var(--lp-brand);font-weight:700}.lp-security{background:#0b1220;color:#e2e8f0}.lp-security .lp-section__title{color:#f1f5f9}.lp-security .lp-section__lede{color:#cbd5e1}.lp-security .lp-section__eyebrow{color:#a5b4fc}.lp-security__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lp-secitem{display:flex;gap:14px;padding:22px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;border-radius:12px}.lp-secitem__check{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#6366f140,#7c3aed33);display:grid;place-items:center;font-size:18px;flex-shrink:0}.lp-secitem__title{font-size:15px;font-weight:700;color:#f1f5f9}.lp-secitem__desc{margin-top:4px;font-size:13px;color:#94a3b8;line-height:1.55}.lp-quotes__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.lp-quote{background:#fff;border:1px solid var(--lp-line);border-radius:14px;padding:26px;display:flex;flex-direction:column;gap:16px}.lp-quote__body{font-size:15px;line-height:1.55;color:var(--lp-ink);font-style:italic}.lp-quote__cap{border-top:1px solid var(--lp-line-soft);padding-top:14px;display:flex;flex-direction:column;gap:2px}.lp-quote__author{font-weight:700;font-size:14px;color:var(--lp-ink)}.lp-quote__role{font-size:12.5px;color:var(--lp-ink-muted)}.lp-pricing__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.lp-price{background:#fff;border:1px solid var(--lp-line);border-radius:16px;padding:30px 26px;display:flex;flex-direction:column;gap:18px;position:relative}.lp-price--highlight{border-color:var(--lp-brand);box-shadow:0 20px 50px -24px #4f46e573;transform:scale(1.02)}.lp-price__badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--lp-brand);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:999px}.lp-price__name{font-size:18px;font-weight:700;color:var(--lp-ink)}.lp-price__price{display:flex;align-items:baseline;gap:6px}.lp-price__amount{font-size:38px;font-weight:800;color:var(--lp-ink);letter-spacing:-.02em}.lp-price__cadence{font-size:13px;color:var(--lp-ink-muted)}.lp-price__features{flex:1;display:grid;gap:10px}.lp-price__features li{display:flex;align-items:flex-start;gap:8px;font-size:14px;color:var(--lp-ink-soft);line-height:1.4}.lp-price__features li span{color:#16a34a;font-weight:700;flex-shrink:0;margin-top:1px}.lp-cta{position:relative;padding:80px 0;background:radial-gradient(80% 80% at 50% 0%,rgba(99,102,241,.22),transparent 70%),linear-gradient(135deg,#0b1220,#1e1b4b);color:#f1f5f9}.lp-cta__inner{text-align:center}.lp-cta__title{font-size:clamp(24px,3vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1.2;color:#fff}.lp-cta__sub{margin-top:14px;font-size:16px;color:#cbd5e1;max-width:620px;margin-left:auto;margin-right:auto;line-height:1.55}.lp-cta__row{margin-top:28px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.lp-cta .lp-btn--ghost{color:#fff;border:1px solid rgba(255,255,255,.25)}.lp-cta .lp-btn--ghost:hover{background:#ffffff14}.lp-footer{background:#0b1220;color:#94a3b8;padding:48px 0 36px;border-top:1px solid #1e293b}.lp-footer__inner{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start}.lp-footer__brand{display:flex;align-items:center;gap:12px}.lp-footer__name{font-size:16px;font-weight:700;color:#f1f5f9}.lp-footer__by{font-size:12px;color:#64748b;margin-top:2px}.lp-footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.lp-footer__col h4{color:#f1f5f9;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:12px}.lp-footer__col a,.lp-footer__col button.lp-footer__link{display:block;background:none;border:0;color:#94a3b8;font-size:14px;padding:4px 0;text-align:left;cursor:pointer;transition:color .15s;font-family:inherit}.lp-footer__col a:hover,.lp-footer__col button.lp-footer__link:hover{color:#e2e8f0}.lp-back-bar{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 24px;background:linear-gradient(180deg,#0b1220,#111827);color:#e2e8f0;font-size:13px;border-bottom:1px solid #1e293b}.lp-back-bar__brand{display:flex;align-items:center;gap:10px;font-weight:600;color:#f1f5f9}.lp-back-bar__brand .lp-nav__logo--sm{box-shadow:none}.lp-back-bar__btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.14);color:#f1f5f9;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.lp-back-bar__btn:hover{background:#ffffff1f}@media (max-width: 900px){.lp-nav__links,.lp-nav__cta .lp-btn--ghost{display:none}.lp-hero{padding-top:56px}.lp-hero__visual{margin-top:36px}.lp-mock__kpis{grid-template-columns:repeat(2,1fr)}.lp-mock__row{grid-template-columns:1fr}.lp-outcomes__grid{grid-template-columns:repeat(2,1fr)}.lp-feature-grid,.lp-solution-grid,.lp-security__grid,.lp-quotes__grid,.lp-pricing__grid{grid-template-columns:1fr}.lp-price--highlight{transform:none}.lp-footer__inner{grid-template-columns:1fr}.lp-footer__cols{grid-template-columns:repeat(3,1fr);gap:20px}}@media (max-width: 560px){.lp-section{padding:56px 0}.lp-hero__cta-row .lp-btn{width:100%}.lp-footer__cols{grid-template-columns:1fr 1fr}}.lp-os-card{max-width:640px;margin:0 auto;background:#fff;border:1px solid var(--lp-line);border-radius:16px;padding:36px;box-shadow:0 20px 50px -24px #4f46e540;text-align:center}.lp-os-card__head{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-bottom:18px}.lp-os-card__price{font-size:56px;font-weight:800;letter-spacing:-.025em;color:var(--lp-ink)}.lp-os-card__cad{font-size:14px;color:var(--lp-ink-muted)}.lp-os-card__features{display:grid;gap:12px;text-align:left;margin:24px auto 28px;max-width:460px}.lp-os-card__features li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--lp-ink-soft);line-height:1.45}.lp-os-card__features li span{color:#16a34a;font-weight:700;flex-shrink:0;margin-top:1px}.lp-os-card__cta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}@media (max-width: 560px){.lp-os-card{padding:24px}.lp-os-card__price{font-size:44px}.lp-os-card__cta .lp-btn{width:100%}}.lp-faq{background:linear-gradient(180deg,#fff,#f8fafc)}.lp-faq__list{max-width:760px;margin:0 auto;display:grid;gap:10px}.lp-faq__item{background:#fff;border:1px solid var(--lp-line);border-radius:12px;padding:4px 18px}.lp-faq__item[open]{border-color:#c7d2fe;box-shadow:0 8px 24px -18px #4f46e566}.lp-faq__q{cursor:pointer;font-weight:600;font-size:15px;color:var(--lp-ink);padding:14px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}.lp-faq__q::-webkit-details-marker{display:none}.lp-faq__q:after{content:"+";font-size:20px;color:var(--lp-brand);font-weight:400;line-height:1}.lp-faq__item[open] .lp-faq__q:after{content:"−"}.lp-faq__a{font-size:14px;color:var(--lp-ink-soft);line-height:1.6;padding:0 0 16px;margin:0}.ap-split{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;min-width:0}.ap-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}.ap-tablewrap{overflow-x:auto;min-width:0;max-width:100%;-webkit-overflow-scrolling:touch}.ap-split>*,.ap-two>*{min-width:0}@media (max-width: 880px){.ap-split{grid-template-columns:1fr}}@media (max-width: 720px){.ap-two{grid-template-columns:1fr}}
