:root{--bg: #FAF8F5;--bg-raised: #FFFFFF;--bg-sunken: #F4F0EA;--bg-hover: rgba(30, 25, 20, .04);--bg-active: rgba(30, 25, 20, .07);--fg: #1B1917;--fg-muted: #6B655D;--fg-subtle: #9A9389;--fg-inverse: #FAF8F5;--border: #E8E2D8;--border-strong: #D8D0C2;--border-focus: #1B1917;--accent: #B8733A;--accent-soft: #F3E3CF;--accent-fg: #7A4511;--danger: #B23A3A;--success: #4A7A3E;--c1: #B8733A;--c2: #3A6B7A;--c3: #7A4A8A;--c4: #4A7A3E;--c5: #B23A5A;--c6: #8A7A3A;--shadow-sm: 0 1px 2px rgba(30, 25, 20, .04);--shadow-md: 0 1px 3px rgba(30, 25, 20, .06), 0 4px 12px rgba(30, 25, 20, .04);--shadow-lg: 0 2px 8px rgba(30, 25, 20, .08), 0 16px 40px rgba(30, 25, 20, .08);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--font-sans: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-serif: "Instrument Serif", "Source Serif Pro", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--header-h: 52px;--pane-left: 264px;--pane-right: 300px}[data-theme=dark]{--bg: #131210;--bg-raised: #1C1B18;--bg-sunken: #0E0D0B;--bg-hover: rgba(250, 248, 245, .05);--bg-active: rgba(250, 248, 245, .09);--fg: #F0ECE5;--fg-muted: #9A9389;--fg-subtle: #6B655D;--fg-inverse: #131210;--border: #2A2824;--border-strong: #3A3732;--border-focus: #F0ECE5;--accent: #D89863;--accent-soft: #3A2C1E;--accent-fg: #F0D0A8;--danger: #D86868;--success: #7AA870;--c1: #D89863;--c2: #6AA0B0;--c3: #AB8BC0;--c4: #8FB586;--c5: #D97A94;--c6: #C0AE6A;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .2);--shadow-lg: 0 2px 8px rgba(0, 0, 0, .5), 0 16px 40px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--fg);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","ss03";overflow:hidden}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:none;background:none;padding:0}.app{display:grid;grid-template-rows:var(--header-h) 1fr;height:100vh;background:var(--bg)}.app-body{display:grid;grid-template-columns:var(--pane-left) 1fr var(--pane-right);overflow:hidden;border-top:1px solid var(--border)}.header{display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--bg)}.brand{display:flex;align-items:center;gap:8px;padding-right:14px;border-right:1px solid var(--border);height:28px}.brand-mark{width:22px;height:22px;display:grid;place-items:center}.brand-name{font-family:var(--font-serif);font-size:20px;font-weight:400;letter-spacing:-.01em;line-height:1}.breadcrumb{display:flex;align-items:center;gap:8px;color:var(--fg-muted);font-size:13px}.breadcrumb .sep{color:var(--fg-subtle)}.breadcrumb .current{color:var(--fg)}.breadcrumb .chart-title{font-family:var(--font-serif);font-size:17px;color:var(--fg);padding:2px 6px;margin:0 -6px;border-radius:4px;border:1px solid transparent;background:transparent;min-width:100px}.breadcrumb .chart-title:hover{background:var(--bg-hover)}.breadcrumb .chart-title:focus{outline:none;background:var(--bg-raised);border-color:var(--border-strong)}.header-spacer{flex:1}.prompt-bar{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-md);width:320px;transition:border-color .15s,box-shadow .15s}.prompt-bar:focus-within{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--bg-active)}.prompt-bar input{flex:1;border:none;background:transparent;outline:none;font-size:13px}.prompt-bar input::placeholder{color:var(--fg-subtle)}.prompt-bar .kbd{font-family:var(--font-mono);font-size:11px;color:var(--fg-subtle);padding:1px 5px;border:1px solid var(--border);border-radius:3px;background:var(--bg)}.prompt-bar .sparkle{color:var(--accent);font-size:13px}.header-actions{display:flex;align-items:center;gap:4px}.icon-btn{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--radius-md);color:var(--fg-muted);transition:background .1s,color .1s}.icon-btn:hover{background:var(--bg-hover);color:var(--fg)}.icon-btn:active{background:var(--bg-active)}.icon-btn.active{color:var(--fg);background:var(--bg-active)}.btn{height:30px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-md);font-size:13px;font-weight:500;transition:background .12s,border-color .12s,transform .05s}.btn:active{transform:translateY(.5px)}.btn-ghost{color:var(--fg-muted)}.btn-ghost:hover{background:var(--bg-hover);color:var(--fg)}.btn-secondary{background:var(--bg-raised);border:1px solid var(--border);color:var(--fg)}.btn-secondary:hover{border-color:var(--border-strong)}.btn-primary{background:var(--fg);color:var(--fg-inverse)}.btn-primary:hover{opacity:.9}.pane{overflow-y:auto;overflow-x:hidden;background:var(--bg)}.pane-left{border-right:1px solid var(--border)}.pane-right{border-left:1px solid var(--border);background:var(--bg-sunken)}.pane-section{padding:14px 14px 16px}.pane-section+.pane-section{border-top:1px solid var(--border)}.pane-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle);margin:0 0 8px;display:flex;align-items:center;justify-content:space-between}.dataset-list{display:flex;flex-direction:column;gap:2px}.dataset-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-md);color:var(--fg);text-align:left;width:100%;transition:background .1s}.dataset-item:hover{background:var(--bg-hover)}.dataset-item.active{background:var(--bg-raised);border:1px solid var(--border);padding:5px 7px}.dataset-item .icon{color:var(--fg-muted);display:grid;place-items:center}.dataset-item .meta{flex:1;min-width:0}.dataset-item .name{font-size:13px;font-weight:500}.dataset-item .rowcount{font-family:var(--font-mono);font-size:11px;color:var(--fg-subtle)}.field-group+.field-group{margin-top:14px}.field-group-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-subtle);margin:0 0 6px}.field{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--radius-md);cursor:grab;-webkit-user-select:none;user-select:none;font-size:13px;color:var(--fg);transition:background .1s}.field:hover{background:var(--bg-hover)}.field:active{cursor:grabbing}.field.dragging{opacity:.4}.field .type-badge{width:16px;height:16px;display:grid;place-items:center;font-family:var(--font-mono);font-size:10px;font-weight:600;border-radius:3px;flex-shrink:0}.field .type-badge.dimension{background:var(--accent-soft);color:var(--accent-fg)}.field .type-badge.measure{background:color-mix(in oklab,var(--c2) 20%,transparent);color:var(--c2)}.field .type-badge.temporal{background:color-mix(in oklab,var(--c3) 20%,transparent);color:var(--c3)}.field .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field .grip{color:var(--fg-subtle);opacity:0;transition:opacity .1s}.field:hover .grip{opacity:1}.canvas{overflow-y:auto;padding:24px 28px 32px;display:flex;flex-direction:column;gap:20px}.canvas-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:-4px}.chart-tabs{display:flex;gap:2px}.chart-tab{height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-md);font-size:12.5px;color:var(--fg-muted);transition:background .1s,color .1s}.chart-tab:hover{background:var(--bg-hover);color:var(--fg)}.chart-tab.active{background:var(--bg-raised);color:var(--fg);border:1px solid var(--border)}.chart-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-xl);padding:24px 28px 26px;box-shadow:var(--shadow-sm);min-height:460px;display:flex;flex-direction:column}.chart-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:18px}.chart-header>:first-child{min-width:240px}.chart-header .title{font-family:var(--font-serif);font-size:22px;line-height:1.15;color:var(--fg);letter-spacing:-.01em;margin:0 0 4px}.chart-header .subtitle{font-size:12.5px;color:var(--fg-muted);font-feature-settings:"tnum"}.chart-legend{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:12px;color:var(--fg-muted)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:10px;height:10px;border-radius:2px}.chart-body{flex:1;min-height:0;position:relative}.empty-state{height:100%;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--fg-muted);border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);padding:40px;text-align:center}.empty-state .serif{font-family:var(--font-serif);font-size:22px;color:var(--fg);letter-spacing:-.01em}.empty-state .hint{font-size:13px;max-width:340px}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;padding:8px 0}.kpi-item{padding:8px 4px}.kpi-label{font-size:12px;color:var(--fg-muted);letter-spacing:.02em;margin-bottom:8px}.kpi-value{font-family:var(--font-serif);font-size:44px;letter-spacing:-.02em;line-height:1;color:var(--fg);font-feature-settings:"tnum","lnum"}.kpi-delta{font-family:var(--font-mono);font-size:12px;margin-top:8px;color:var(--fg-muted)}.kpi-delta .up{color:var(--success)}.kpi-delta .down{color:var(--danger)}.kpi-spark{margin-top:10px}.preview-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.preview-header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);gap:10px}.preview-header .label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle)}.preview-header .count{font-family:var(--font-mono);font-size:11px;color:var(--fg-muted)}.preview-tabs{display:flex;gap:2px;margin-left:auto}.preview-tab{height:22px;padding:0 8px;display:inline-flex;align-items:center;border-radius:4px;font-size:12px;color:var(--fg-muted)}.preview-tab:hover{background:var(--bg-hover);color:var(--fg)}.preview-tab.active{background:var(--bg-sunken);color:var(--fg)}.preview-scroll{max-height:220px;overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px;font-family:var(--font-mono)}.data-table th,.data-table td{padding:6px 14px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}.data-table th{font-weight:500;color:var(--fg-muted);background:var(--bg-sunken);position:sticky;top:0;font-size:11px;letter-spacing:.02em;text-transform:uppercase}.data-table tr:last-child td{border-bottom:none}.data-table td.num{text-align:right;font-feature-settings:"tnum"}.sql-editor{font-family:var(--font-mono);font-size:13px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;color:var(--fg);line-height:1.55;white-space:pre;min-height:120px}.sql-editor .kw{color:var(--c3);font-weight:500}.sql-editor .fn{color:var(--c2)}.sql-editor .str{color:var(--c4)}.sql-editor .num{color:var(--accent)}.shelf{margin-bottom:12px}.shelf-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-subtle);margin-bottom:5px}.shelf-slot{min-height:34px;padding:4px;border-radius:var(--radius-md);border:1px dashed var(--border-strong);background:var(--bg-raised);display:flex;flex-wrap:wrap;gap:4px;align-items:center;transition:border-color .12s,background .12s}.shelf-slot.drop-target{border-color:var(--accent);border-style:solid;background:var(--accent-soft)}.shelf-slot.empty:before{content:"Drop a field";color:var(--fg-subtle);font-size:12px;padding:0 8px}.shelf-slot.empty:has(.field-pill):before{display:none}.field-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 4px 0 8px;border-radius:var(--radius-md);background:var(--bg);border:1px solid var(--border-strong);font-size:12.5px;max-width:100%}.field-pill .pill-type{font-family:var(--font-mono);font-size:9.5px;font-weight:600;padding:1px 4px;border-radius:3px}.field-pill.dim .pill-type{background:var(--accent-soft);color:var(--accent-fg)}.field-pill.mea .pill-type{background:color-mix(in oklab,var(--c2) 20%,transparent);color:var(--c2)}.field-pill.tem .pill-type{background:color-mix(in oklab,var(--c3) 20%,transparent);color:var(--c3)}.field-pill .pill-agg{font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);text-transform:uppercase;border-left:1px solid var(--border);padding-left:5px;margin-left:2px}.field-pill .pill-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-pill .pill-close{width:18px;height:18px;display:grid;place-items:center;border-radius:3px;color:var(--fg-muted);flex-shrink:0}.field-pill .pill-close:hover{background:var(--bg-hover);color:var(--fg)}.field-pill .pill-menu{width:18px;height:18px;display:grid;place-items:center;border-radius:3px;color:var(--fg-subtle)}.field-pill .pill-menu:hover{background:var(--bg-hover);color:var(--fg)}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.type-swatch{aspect-ratio:auto;min-height:62px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-md);background:var(--bg-raised);border:1px solid var(--border);color:var(--fg-muted);transition:border-color .1s,color .1s;position:relative}.type-swatch:hover{border-color:var(--border-strong);color:var(--fg)}.type-swatch.active{border-color:var(--fg);color:var(--fg);background:var(--bg-raised)}.type-swatch.active:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--fg);border-radius:inherit;pointer-events:none}.type-swatch .label{position:static;font-size:10.5px;color:var(--fg-subtle);white-space:nowrap;line-height:1}.type-swatch.active .label{color:var(--fg)}.filter-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--radius-md);background:var(--bg-raised);border:1px solid var(--border);margin-bottom:6px;font-size:12px}.filter-row .field-name{font-weight:500}.filter-row .op{color:var(--fg-muted);font-family:var(--font-mono);font-size:11px}.filter-row .val{color:var(--accent-fg);font-family:var(--font-mono);font-size:11px;padding:1px 5px;background:var(--accent-soft);border-radius:3px}.filter-row .remove{width:18px;height:18px;display:grid;place-items:center;border-radius:3px;color:var(--fg-muted);margin-left:auto}.filter-row .remove:hover{background:var(--bg-hover);color:var(--fg)}.add-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-md);color:var(--fg-muted);font-size:12px;transition:background .1s}.add-btn:hover{background:var(--bg-hover);color:var(--fg)}.select{height:26px;padding:0 6px;font-size:12px;background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;color:var(--fg);cursor:pointer}.tweaks{position:fixed;bottom:16px;right:16px;width:260px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;overflow:hidden;transform-origin:bottom right;animation:tweakIn .18s ease-out}@keyframes tweakIn{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.tweaks-header{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}.tweaks-header .title{font-family:var(--font-serif);font-size:15px;flex:1}.tweaks-body{padding:12px;display:flex;flex-direction:column;gap:12px}.tweak-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.tweak-row .label{font-size:12.5px;color:var(--fg-muted)}.tweak-swatches{display:flex;gap:4px}.tweak-swatch{width:18px;height:18px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .1s}.tweak-swatch:hover{transform:scale(1.1)}.tweak-swatch.active{border-color:var(--fg)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-md);padding:2px;background:var(--bg-sunken)}.seg button{padding:3px 10px;border-radius:4px;font-size:12px;color:var(--fg-muted)}.seg button.active{background:var(--bg-raised);color:var(--fg);box-shadow:var(--shadow-sm)}[data-density=compact]{--header-h: 44px;font-size:13px}[data-density=compact] .pane-section{padding:10px 12px 12px}[data-density=compact] .canvas{padding:16px 20px 24px;gap:14px}[data-density=compact] .chart-card{padding:18px 22px 20px}[data-density=compact] .kpi-value{font-size:36px}.pane::-webkit-scrollbar,.canvas::-webkit-scrollbar,.preview-scroll::-webkit-scrollbar{width:10px;height:10px}.pane::-webkit-scrollbar-thumb,.canvas::-webkit-scrollbar-thumb,.preview-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid var(--bg)}.pane::-webkit-scrollbar-thumb:hover,.canvas::-webkit-scrollbar-thumb:hover{background:var(--fg-subtle)}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--fg);color:var(--fg-inverse);padding:9px 16px;border-radius:999px;font-size:13px;box-shadow:var(--shadow-lg);z-index:80;animation:toastIn .2s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.chart-svg{width:100%;height:100%;overflow:visible}.axis text{font-family:var(--font-mono);font-size:10.5px;fill:var(--fg-subtle)}.axis line{stroke:var(--border)}.axis .domain{stroke:var(--border-strong)}.grid line{stroke:var(--border);stroke-dasharray:2 3}.bar{transition:opacity .15s}.bar:hover{opacity:.85}.line-path{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.area-path{opacity:.08}.tick-label{font-family:var(--font-mono);font-size:10.5px;fill:var(--fg-subtle)}.tooltip{position:fixed;pointer-events:none;background:var(--fg);color:var(--fg-inverse);padding:6px 10px;border-radius:6px;font-size:12px;font-family:var(--font-mono);white-space:nowrap;z-index:100;box-shadow:var(--shadow-md);transform:translate(-50%,-100%) translateY(-8px);opacity:0;transition:opacity .1s}.tooltip.visible{opacity:1}.menu{position:absolute;min-width:160px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;z-index:60;font-size:13px}.menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:4px;width:100%;text-align:left;color:var(--fg)}.menu-item:hover{background:var(--bg-hover)}.menu-item .check{width:12px;color:var(--accent)}.menu-sep{height:1px;background:var(--border);margin:4px 0}.menu-label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle);padding:6px 10px 2px}.saved-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:5px;cursor:pointer;color:var(--fg);position:relative;transition:background .1s}.saved-item:hover{background:var(--bg-hover)}.saved-item .icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--fg-muted);flex-shrink:0}.saved-item .meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.saved-item .meta .name{color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saved-item .meta .rowcount{font-size:10.5px;color:var(--fg-subtle);letter-spacing:.03em}.saved-delete{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--fg-subtle);border-radius:4px;opacity:0;transition:opacity .12s,background .12s,color .12s;flex-shrink:0}.saved-item:hover .saved-delete{opacity:1}.saved-delete:hover{background:color-mix(in oklab,#c94e3a 14%,transparent);color:#c94e3a}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in oklab,var(--fg) 40%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:40px}.modal{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:calc(100vh - 80px);display:flex;flex-direction:column;overflow:hidden}.modal-header{padding:18px 20px 14px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--border)}.modal-title{font-family:var(--font-serif);font-size:22px;color:var(--fg);letter-spacing:-.01em;line-height:1.1}.modal-subtitle{font-size:12.5px;color:var(--fg-muted);margin-top:3px}.modal-tabs{display:flex;gap:2px;padding:10px 16px 0;border-bottom:1px solid var(--border)}.modal-tab{padding:8px 12px;font-size:12.5px;color:var(--fg-muted);border-bottom:2px solid transparent;margin-bottom:-1px;background:none}.modal-tab:hover{color:var(--fg)}.modal-tab.active{color:var(--fg);border-bottom-color:var(--accent)}.modal-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.input-label{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle);margin-top:4px}.text-input,.text-area{width:100%;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit}.text-area{font-family:var(--font-mono);font-size:12px;resize:vertical;min-height:140px}.text-input:focus,.text-area:focus{border-color:var(--accent);outline:none}.modal-error{background:color-mix(in oklab,#c94e3a 12%,transparent);color:#a03826;padding:8px 10px;border-radius:6px;font-size:12.5px}.modal-footer{padding:12px 20px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--border);background:var(--bg-sunken)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:8px;padding:28px 16px;text-align:center;cursor:pointer;color:var(--fg-muted);display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .15s}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 6%,transparent);color:var(--fg)}.dropzone.filled{border-style:solid;border-color:var(--accent)}.connector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.connector-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);text-align:left;cursor:pointer;transition:all .12s}.connector-card:hover{border-color:var(--accent);background:var(--bg-raised)}.connector-name{font-size:13px;color:var(--fg);font-weight:500}.connector-tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle)}.field-search{display:flex;align-items:center;gap:6px;padding:4px 8px;margin:4px 0 8px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--fg-subtle);transition:border-color .12s}.field-search:focus-within{border-color:var(--accent);color:var(--fg)}.field-search input{flex:1;border:0;background:transparent;color:var(--fg);font:inherit;font-size:12.5px;outline:none;padding:2px 0}.field-search input::placeholder{color:var(--fg-subtle)}.field-search button{border:0;background:transparent;padding:2px;color:var(--fg-subtle);cursor:pointer;border-radius:3px;display:grid;place-items:center}.field-search button:hover{color:var(--fg);background:var(--bg)}.field-empty{font-size:12px;color:var(--fg-subtle);padding:8px 4px;font-style:italic}.field.calc{border-left:2px solid var(--accent);padding-left:4px}.calc-badge{display:inline-grid;place-items:center;min-width:18px;height:14px;padding:0 4px;margin-right:2px;font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--accent-fg);background:var(--accent-soft);border-radius:3px;letter-spacing:.04em}.fav-btn{opacity:0;display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border:0;background:transparent;color:var(--fg-subtle);border-radius:3px;cursor:pointer;transition:opacity .12s,color .12s}.field:hover .fav-btn{opacity:1}.fav-btn.on{opacity:1;color:var(--accent)}.fav-btn:hover{color:var(--accent)}.field-del{opacity:0;display:inline-grid;place-items:center;width:16px;height:16px;padding:0;border:0;background:transparent;color:var(--fg-subtle);border-radius:3px;cursor:pointer;transition:opacity .12s,color .12s}.field:hover .field-del{opacity:1}.field-del:hover{color:#b23a5a}.pane-section.profile{padding-bottom:4px}.profile-header{display:flex;align-items:center;gap:6px;padding:4px 0;background:transparent;border:0;color:var(--fg-muted);font:inherit;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;width:100%;text-align:left}.profile-header:hover{color:var(--fg)}.profile-count{margin-left:auto;color:var(--fg-subtle);font-size:10.5px;letter-spacing:0}.profile-body{display:flex;flex-direction:column;gap:8px;margin-top:4px;max-height:360px;overflow-y:auto;padding-right:4px;margin-right:-4px}.profile-field{padding:8px 8px 7px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-md);font-size:11.5px;display:flex;flex-direction:column;gap:4px}.profile-head{display:flex;align-items:center;gap:6px}.profile-name{color:var(--fg);font-size:12px;font-weight:500}.profile-stats{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--fg-muted);font-family:var(--font-mono);font-size:10.5px}.profile-stats .k{color:var(--fg-subtle);margin-right:3px;text-transform:uppercase;letter-spacing:.04em}.profile-stats .range{font-family:var(--font-mono)}.profile-top{display:flex;flex-direction:column;gap:2px;padding-top:2px;border-top:1px dashed var(--border);margin-top:2px}.profile-top-item{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--fg-muted)}.profile-top-item .v{color:var(--fg)}.profile-top-item .c{color:var(--fg-subtle);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.calc-hints{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-md);font-size:11.5px;color:var(--fg-muted);margin-top:-2px}.calc-hints .k{color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.04em;margin-right:6px;font-size:10px}.calc-hints code{font-family:var(--font-mono);font-size:10.5px;background:var(--bg-raised);border:1px solid var(--border);padding:0 4px;border-radius:3px;color:var(--fg)}.text-input.code{font-family:var(--font-mono);font-size:12.5px}.insights-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px 14px;margin-top:10px;display:flex;flex-direction:column;gap:6px}.insights-head{display:flex;align-items:center;gap:6px;color:var(--accent);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:500}.insights-card ul{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:4px}.insights-card li{font-size:12.5px;color:var(--fg);line-height:1.45}.insights-card li.ins-mover::marker{color:var(--accent)}.insights-card li.ins-concentration::marker{color:var(--c2)}.insights-card li.ins-outlier::marker{color:#b23a5a}.compare-delta{font-family:var(--font-mono);font-size:11.5px}.compare-delta.up{color:var(--accent)}.compare-delta.down{color:#b23a5a}.line-path.compare{fill:none;stroke-width:1.5}.canvas-toolbar .btn-ghost.active{background:var(--accent-soft);color:var(--accent-fg)}
