:root{--bg:oklch(99% 0 0);--canvas:oklch(97% 0 0);--surface:oklch(100% 0 0);--surface-2:oklch(97.5% 0 0);--surface-3:oklch(95.5% 0 0);--border:oklch(90% 0 0);--border-strong:oklch(82% 0 0);--text:oklch(20% 0 0);--text-2:oklch(42% 0 0);--text-3:oklch(58% 0 0);--text-4:oklch(72% 0 0);--primary:oklch(52% .18 260);--primary-hover:oklch(47% .19 260);--primary-soft:oklch(95% .03 260);--primary-text:oklch(98% .005 260);--success:oklch(62% .15 155);--danger:oklch(58% .19 28);--danger-soft:oklch(96% .03 28);--s1:oklch(58% .18 260);--s2:oklch(62% .15 155);--s3:oklch(68% .16 50);--s4:oklch(58% .19 28);--s5:oklch(55% .17 300);--s6:oklch(62% .14 200);--s7:oklch(68% .15 120);--s8:oklch(60% .16 350);--radius:6px;--radius-sm:4px;--shadow-sm:0 1px 2px oklch(20% .01 260/.04);--shadow-pop:0 8px 24px oklch(20% .01 260/.1), 0 2px 6px oklch(20% .01 260/.06);--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace}[data-theme=v2]{--bg:oklch(15% .01 260);--canvas:oklch(13% .008 260);--surface:oklch(18% .012 260);--surface-2:oklch(21% .013 260);--surface-3:oklch(24% .014 260);--border:oklch(28% .012 260);--border-strong:oklch(36% .014 260);--text:oklch(95% .005 260);--text-2:oklch(75% .008 260);--text-3:oklch(58% .008 260);--text-4:oklch(45% .008 260);--primary:oklch(72% .17 260);--primary-hover:oklch(78% .17 260);--primary-soft:oklch(28% .08 260);--primary-text:oklch(12% .01 260);--danger-soft:oklch(28% .08 28);--shadow-pop:0 8px 24px oklch(0% 0 0/.4)}[data-palette=terracotta]{--bg:oklch(98.5% .005 60);--canvas:oklch(96.5% 0 0);--surface:oklch(100% 0 0);--surface-2:oklch(97.5% .007 55);--surface-3:oklch(95.5% .01 50);--border:oklch(90% .01 50);--border-strong:oklch(82% .014 50);--primary:oklch(58% .14 40);--primary-hover:oklch(52% .15 38);--primary-soft:oklch(94% .03 40);--primary-text:oklch(99% .005 60);--s1:oklch(58% .14 40);--s2:oklch(55% .13 170);--s3:oklch(65% .14 85);--s4:oklch(50% .13 15);--s5:oklch(56% .13 260);--s6:oklch(62% .11 200);--s7:oklch(62% .12 130);--s8:oklch(54% .13 330)}[data-palette=sage]{--bg:oklch(97.5% .008 160);--canvas:oklch(96% 0 0);--surface:oklch(99.5% .004 160);--surface-2:oklch(96.5% .012 160);--surface-3:oklch(94% .016 160);--border:oklch(89% .014 160);--border-strong:oklch(80% .018 160);--primary:oklch(48% .09 170);--primary-hover:oklch(43% .1 170);--primary-soft:oklch(93% .03 170);--primary-text:oklch(99% .005 160);--s1:oklch(48% .1 170);--s2:oklch(55% .13 50);--s3:oklch(52% .12 260);--s4:oklch(54% .15 20);--s5:oklch(56% .13 310);--s6:oklch(60% .11 210);--s7:oklch(62% .12 110);--s8:oklch(54% .13 0)}[data-palette=sand]{--bg:oklch(97.5% .012 85);--canvas:oklch(96% 0 0);--surface:oklch(99.5% .006 85);--surface-2:oklch(96% .016 80);--surface-3:oklch(93.5% .02 75);--border:oklch(88% .018 75);--border-strong:oklch(78% .022 70);--primary:oklch(52% .12 55);--primary-hover:oklch(46% .13 55);--primary-soft:oklch(93% .03 60);--primary-text:oklch(99% .005 85);--s1:oklch(52% .12 55);--s2:oklch(55% .13 170);--s3:oklch(60% .14 110);--s4:oklch(50% .15 20);--s5:oklch(54% .13 300);--s6:oklch(58% .12 220);--s7:oklch(55% .11 150);--s8:oklch(52% .13 340)}[data-palette=slate]{--bg:oklch(97.5% .008 240);--canvas:oklch(96% 0 0);--surface:oklch(99.5% .004 240);--surface-2:oklch(96% .012 240);--surface-3:oklch(93.5% .016 240);--border:oklch(88% .014 240);--border-strong:oklch(78% .018 240);--primary:oklch(48% .11 230);--primary-hover:oklch(42% .12 230);--primary-soft:oklch(93% .025 240);--primary-text:oklch(99% .005 240);--s1:oklch(48% .12 230);--s2:oklch(55% .13 170);--s3:oklch(62% .14 85);--s4:oklch(54% .15 20);--s5:oklch(52% .13 305);--s6:oklch(58% .11 200);--s7:oklch(60% .12 140);--s8:oklch(54% .14 350)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.app-header{z-index:100;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:24px;height:56px;padding:0 20px;display:flex;position:sticky;top:0}.header-right-group{align-items:center;gap:20px;margin-left:auto;display:flex}.header-label-tools{border-right:1px solid var(--border);align-items:center;gap:6px;padding-right:12px;display:flex}.header-btn{border:1px solid var(--border);background:var(--surface);height:28px;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.header-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong,var(--text-4))}.header-btn:disabled{opacity:.55;cursor:default}.header-btn-ghost{color:var(--text-3);background:0 0;border-color:#0000}.header-btn-split-main{border-top-right-radius:0;border-bottom-right-radius:0;padding-right:8px}.header-btn-split-caret{color:var(--text-3);border-left:none;border-top-left-radius:0;border-bottom-left-radius:0;padding:0 6px}.save-split-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:200;min-width:240px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f}.save-split-item{cursor:pointer;border-bottom:1px solid var(--border);padding:8px 12px}.save-split-item:last-child{border-bottom:none}.save-split-item:hover{background:var(--surface-2)}.save-split-item-name{color:var(--text);font-size:12.5px;font-weight:600}.save-split-item-hint{color:var(--text-3);margin-top:2px;font-size:11px}.brand{align-items:center;gap:8px;display:flex}.chrono-brand{cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:6px;margin:-3px -6px;padding:3px 6px;display:flex}.chrono-brand:hover{background:var(--surface-2)}.chrono-brand-gear{color:var(--text-4);opacity:1;transition:color .12s}.chrono-brand:hover .chrono-brand-gear{color:var(--text-2)}.brand-name{letter-spacing:-.01em;font-size:13px;font-weight:600}.chrono-brand-name{letter-spacing:-.015em;font-size:20px;font-weight:700}.nav{gap:2px;margin-left:8px;display:flex}.nav a{color:var(--text-2);border-radius:var(--radius-sm);cursor:pointer;padding:5px 10px;font-size:12.5px;font-weight:500;text-decoration:none}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{background:var(--surface-3);color:var(--text)}.header-right{align-items:center;gap:10px;margin-left:auto;display:flex}.kbd{font-family:var(--font-mono);color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:3px;padding:2px 5px;font-size:10.5px}.user-chip{background:var(--surface-3);border:1px solid var(--border);width:26px;height:26px;color:var(--text-2);border-radius:50%;place-items:center;font-size:11px;font-weight:600;display:grid}.user-chip-lg{width:34px;height:34px;font-size:13px}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:500;line-height:1.2;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-sm{padding:3px 8px;font-size:12px}.btn-xs{padding:2px 6px;font-size:11.5px}.btn-icon{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.btn-icon:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-icon.active{color:var(--primary)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:var(--primary-text)}.btn-danger-solid:hover:not(:disabled){background:var(--danger);border-color:var(--danger);filter:brightness(.92)}.input,.select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);outline:none;padding:5px 8px;font-size:12.5px;line-height:1.3}.input:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.select{appearance:none;padding-right:22px}.label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:500;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-flat{box-shadow:none}.page{max-width:1100px;margin:0 auto;padding:32px 24px 80px}.page-header{justify-content:space-between;align-items:flex-end;margin-bottom:20px;display:flex}.page-title{letter-spacing:-.02em;margin:0;padding-left:10px;font-size:22px;font-weight:600;position:relative}.page-title:before{content:"";background:var(--primary);border-radius:2px;width:3px;position:absolute;top:4px;bottom:4px;left:0}.page-subtitle{color:var(--text-3);margin-top:2px;font-size:12.5px}.page-back{color:var(--text-2);cursor:pointer;align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.page-back:hover{color:var(--text)}.list-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:10px 14px;display:flex}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--surface-2)}.list-row-name{color:var(--text);letter-spacing:-.005em;flex:1;font-size:15px;font-weight:500}.list-row-meta{color:var(--text-3);font-size:12px;font-family:var(--font-mono)}.list-row-actions{align-items:center;gap:4px;display:flex}.role-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-3);color:var(--text-3);border-radius:3px;padding:2px 6px;font-size:10.5px;font-weight:600}.role-badge-editor{background:var(--primary-soft);color:var(--primary)}.label-swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.08)}.label-swatch-sm{border-radius:3px;flex-shrink:0;width:10px;height:10px;display:inline-block;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.08)}.empty{text-align:center;color:var(--text-3);padding:60px 20px}.empty-title{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:500}.analysis{grid-template-columns:288px 1fr;height:calc(100vh - 56px);min-height:0;display:grid;overflow:hidden}[data-sidebar-right=true] .analysis{grid-template-columns:1fr 288px}[data-sidebar-right=true] .sidebar{border-right:none;border-left:1px solid var(--border);order:2}.sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:0;display:flex}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto}.sidebar-section{border-bottom:1px solid var(--border);padding:12px 14px 12px 23px}.sidebar-section-title{color:var(--primary);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;margin:0 0 10px -9px;font-size:10.5px;font-weight:700;display:flex}.sidebar-section-title:before{content:"";background:var(--primary);opacity:.85;border-radius:2px;flex-shrink:0;width:3px;height:10px;display:inline-block}.sidebar-section-count{color:var(--text-4);letter-spacing:.02em;font-weight:500;font-family:var(--font-mono);text-transform:none;margin-left:auto;font-size:10px}.sidebar-footer{border-top:1px solid var(--border);background:var(--surface);gap:6px;padding:10px 12px;display:flex}.sidebar-footer .btn{flex:1;justify-content:center}.date-field{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;align-items:center;width:100%;min-height:28px;padding:5px 20px 5px 8px;font-size:12.5px;line-height:1.3;display:flex;position:relative}.date-field:hover{border-color:var(--border-strong)}.date-field-value{color:var(--text);flex:1;font-weight:500}.date-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.date-field-caret{color:var(--text-3);position:absolute;top:50%;right:6px;transform:translateY(-50%)}.date-range-ghost{color:var(--text-3);letter-spacing:.01em;justify-content:space-between;align-items:center;padding:2px 4px 2px 2px;font-size:12px;display:flex}.date-range-ghost-text{flex:1}.date-range-ghost-sep{color:var(--text-4);margin:0 3px}.date-range-ghost-edit{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-4);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:10px;transition:opacity .15s,color .15s,background .15s}.date-range-ghost:hover .date-range-ghost-edit{opacity:1}.date-range-ghost-edit:hover{color:var(--text);background:var(--surface-2)}.date-range-clean{color:var(--text-3);letter-spacing:.01em;align-items:center;gap:4px;padding:0 2px;font-size:11.5px;display:flex}.date-range-clean-input{font-size:inherit;font-family:var(--font-mono);color:inherit;cursor:pointer;letter-spacing:inherit;background:0 0;border:1px solid #0000;border-radius:3px;outline:none;margin:-1px -3px;padding:1px 3px;transition:background .12s,color .12s}.date-range-clean-input:hover{color:var(--text-2);background:var(--surface-2)}.date-range-clean-input:focus{border-color:var(--primary);background:var(--surface);color:var(--text)}.date-range-clean-sep{color:var(--text-4);opacity:.7;margin:0 2px}.date-range-meta{color:var(--text-4);letter-spacing:.01em;align-items:center;gap:4px;margin-top:6px;padding:0 2px;font-size:11.5px;display:flex}.date-range-meta-sep{color:var(--text-4);opacity:.7;margin:0 2px}.date-range-meta-btn{font:inherit;color:inherit;cursor:pointer;letter-spacing:inherit;background:0 0;border:none;border-radius:3px;margin:-1px -3px;padding:1px 3px}.date-range-meta-btn:hover{color:var(--text-2);background:var(--surface-2)}.agg-chip{font-size:10px;font-weight:500;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;margin-right:2px;padding:2px 5px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.agg-chip:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.date-popover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);z-index:200;max-height:280px;margin-top:4px;padding:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.date-popover-item{border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;padding:5px 8px;font-size:12.5px;display:flex}.date-popover-item:hover{background:var(--surface-2)}.date-popover-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.date-popover-item-agg{font-family:var(--font-mono);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.date-grid .field{flex-direction:column;gap:3px;display:flex}.date-grid .label{margin:0;font-size:10px}.dim-item{border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;gap:1px;margin:0 -4px;padding:6px 8px;display:flex}.dim-item-row{align-items:center;gap:8px;font-size:12.5px;display:flex}.dim-item:hover,.dim-item.active{background:var(--surface-2)}.dim-name{color:var(--text);flex:1;margin-left:-4px;font-weight:500}.dim-item-row .icon-chevron,.dim-item-row svg{color:var(--text-4);flex-shrink:0}.dim-clear{color:var(--text-4);border-radius:3px;flex-shrink:0;padding:0 2px;font-size:14px;line-height:1}.dim-clear:hover{color:var(--text);background:var(--surface-3)}.dim-summary-stack{align-items:center;gap:6px;padding-left:4px;display:flex}.dim-summary-text{min-width:0;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.dim-item.filled .dim-summary-text{color:var(--primary)}.dim-summary-count{color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);letter-spacing:.02em;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px}.dim-item.active .dim-summary-count,.dim-item:hover .dim-summary-count{background:var(--surface)}.dim-summary-stack.various .dim-summary-text,.date-field.varied .date-field-value,.agg-chip.varied{color:var(--primary);font-style:italic}.pct-action.various{font-style:italic}.compare-group-check.indeterminate{color:var(--primary)}.dim-dropdown{border:1px solid var(--border);border-radius:var(--radius-sm);background:0 0;max-height:220px;margin:4px -4px 2px;padding:6px;overflow-y:auto}.dim-search{border:1px solid var(--border);border-radius:4px;width:100%;margin-bottom:4px;padding:4px 6px;font-size:12px}.dim-empty-msg{padding:4px 6px;font-size:11px}.dim-value{border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:4px 6px;font-size:12.5px;display:flex}.dim-value:hover{background:var(--surface-2)}.dim-value input{accent-color:var(--primary);margin:0}.chrono-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.chrono-title{letter-spacing:-.01em;color:var(--primary);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.chrono-title>span:first-of-type{color:var(--text)}.chrono-header-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.checkbox-group{align-items:center;gap:10px;display:flex}.compare-row{justify-content:flex-start;align-items:center;gap:12px;display:flex}.checkbox-label{color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12.5px;display:flex}.checkbox-label input{accent-color:var(--primary);margin:0}.past-period-group{color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:6px;padding:3px 4px 3px 6px;font-size:12.5px;transition:background .15s,border-color .15s;display:inline-flex}.past-period-group input{accent-color:var(--primary);margin:0}.past-period-group.active{background:var(--primary-soft);border-color:color-mix(in oklch, var(--primary) 18%, transparent);color:var(--text)}.past-period-group.active .agg-chip{background:var(--surface);border-color:var(--border);color:var(--text-2)}.compare-group{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px;transition:border-color .15s}.compare-group.active{border-top-color:color-mix(in oklch, var(--primary) 30%, var(--border))}.compare-group-checks{align-items:center;gap:14px;padding-right:20px;display:flex}.compare-group-check{color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.compare-group-check input{accent-color:var(--primary);margin:0}.compare-group-checks>div{margin-left:auto}.divider-v{background:var(--border);width:1px;height:16px}.tabbar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:2px;height:34px;padding:0 8px;display:flex;overflow-x:auto}.tab{border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-2);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-bottom:none;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:500;display:inline-flex;position:relative;top:1px}.tab:hover{background:var(--surface-2);color:var(--text)}.tab.active{background:var(--bg);border-color:var(--border);color:var(--text);box-shadow:inset 0 2px 0 var(--primary)}.tab-close{width:14px;height:14px;color:var(--text-4);border-radius:3px;place-items:center;display:grid}.tab-close:hover{background:var(--surface-3);color:var(--text)}.graph-area{background:var(--canvas);flex:1;min-height:0;padding:14px;overflow-y:auto}.graph-grid{grid-template-columns:repeat(auto-fit,minmax(max(360px,33.3333% - 8px),1fr));grid-auto-rows:384px;gap:12px;display:grid}.graph-grid.focus{grid-template-columns:1fr;grid-auto-rows:1fr;height:100%}.graph-grid.focus .graph-card:not(.focused){display:none}.graph-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.graph-card:hover{border-color:var(--border-strong)}.graph-card.focused{height:100%;min-height:0}.graph-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.graph-card.dragging{opacity:.4}.graph-card.drag-over{box-shadow:inset 0 0 0 2px var(--primary)}.graph-header{align-items:flex-start;gap:8px;padding:10px 12px 6px;display:flex}.graph-title-group{flex:1;min-width:0}.graph-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0 0 1px;font-size:13px;font-weight:600;overflow:hidden}.graph-subtitle{color:var(--text-3);font-size:11px;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.graph-tray{opacity:.3;align-items:center;gap:1px;transition:opacity .1s;display:flex}.graph-card:hover .graph-tray,.graph-card .graph-tray.always-on{opacity:1}.graph-tray.tray-disabled{pointer-events:none;opacity:.25}.graph-kpi{align-items:baseline;gap:8px;padding:0 12px 4px;display:flex}.graph-kpi-value{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--text);font-size:20px;font-weight:600}.graph-kpi-delta{font-family:var(--font-mono);border-radius:3px;padding:1px 5px;font-size:11.5px;font-weight:500}.graph-kpi-delta.up{color:var(--success);background:oklch(95% .04 155)}.graph-kpi-delta.down{color:var(--danger);background:var(--danger-soft)}[data-theme=v2] .graph-kpi-delta.up{background:oklch(28% .08 155)}.chart-box{flex:1;min-height:120px;position:relative}.chart-box svg{width:100%;height:100%;display:block}.chart-state{place-items:center;padding:12px;display:grid}.chart-state-inner{text-align:center;flex-direction:column;align-items:center;gap:6px;max-width:240px;display:flex}.chart-state-icon{background:var(--surface-2);width:32px;height:32px;color:var(--text-3);border-radius:50%;place-items:center;margin-bottom:2px;display:grid}.chart-state-icon.error{background:var(--danger-soft);color:var(--danger)}.chart-state-title{color:var(--text);font-size:12.5px;font-weight:600}.chart-state-msg{color:var(--text-3);margin-bottom:4px;font-size:11.5px;line-height:1.4}.chart-state-loading{opacity:.85}.graph-legend{color:var(--text-2);flex-wrap:wrap;gap:4px 10px;padding:4px 12px 10px;font-size:11px;display:flex}.legend-dot{vertical-align:-1px;border-radius:2px;width:8px;height:8px;margin-right:4px;display:inline-block}.tooltip{pointer-events:none;color:oklch(98% .005 260);font-size:11px;font-family:var(--font-mono);z-index:50;box-shadow:var(--shadow-pop);white-space:nowrap;background:oklch(18% .01 260);border-radius:4px;padding:6px 8px;position:absolute}.tooltip-row{align-items:center;gap:10px;display:flex}.tooltip-label{color:oklch(72% .006 260)}.tooltip-date{border-bottom:1px solid oklch(28% .008 260);margin-bottom:4px;padding-bottom:4px;font-weight:600}.ctx-menu{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);min-width:180px;padding:4px;position:absolute}.ctx-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:6px;padding:5px 8px;font-size:12.5px;display:flex;position:relative}.ctx-item:hover{background:var(--surface-2)}.ctx-divider{background:var(--border);height:1px;margin:4px 0}.series-legend{flex-wrap:wrap;gap:3px;margin-bottom:8px;display:flex}.series-dot{cursor:pointer;border:none;border-radius:3px;outline:1px solid #0000;width:16px;height:16px;padding:0;position:relative}.series-dot:hover{outline-color:var(--border-strong)}.series-dot.various{outline-style:dashed;outline-color:var(--text-3)}.series-dot.various:hover{outline-color:var(--border-strong)}.series-dot.selected{outline:2px solid var(--text);outline-offset:1px}.series-dot-label{color:oklch(98% .005 260);font-size:10.5px;font-family:var(--font-mono);white-space:nowrap;pointer-events:none;opacity:0;z-index:10;background:oklch(18% .01 260);border-radius:3px;padding:3px 6px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.series-dot:hover .series-dot-label{opacity:1}.pct-actions{flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;display:flex}.pct-action{color:var(--text-2);font-family:inherit;font-size:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:2px 0;font-weight:500;transition:color .12s}.pct-action:hover:not(:disabled){color:var(--text)}.pct-action.active{color:var(--primary);font-weight:600}.pct-action:disabled{color:var(--text-4);cursor:not-allowed}.selection-overlay{color:oklch(98% .005 260);border-radius:var(--radius);box-shadow:var(--shadow-pop);z-index:100;background:oklch(18% .01 260);align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex;position:fixed;bottom:20px;right:20px}.selection-overlay .btn{color:oklch(98% .005 260);background:0 0;border:1px solid oklch(35% .01 260)}.selection-overlay .btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.modal-backdrop{z-index:1000;background:oklch(20% .01 260/.4);place-items:center;padding:40px 20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:8px;flex-direction:column;width:100%;max-width:480px;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.modal-title{font-size:14px;font-weight:600}.modal-body{padding:14px 16px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:10px 16px;display:flex}.modal-large{max-width:640px}.sql-block{border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono);color:var(--text);white-space:pre;background:oklch(97% .005 260);max-height:360px;margin:0;padding:12px;font-size:11.5px;line-height:1.55;overflow:auto}.chart-type-toggle{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.chart-type-toggle button{color:var(--text-2);cursor:pointer;background:0 0;border:0;align-items:center;padding:3px 6px;display:flex}.chart-type-toggle button.active,.chart-type-toggle button:hover:not(.active){background:var(--surface-2);color:var(--text)}.toast{color:oklch(98% .005 260);z-index:2000;box-shadow:var(--shadow-pop);background:oklch(18% .01 260);border-radius:6px;padding:8px 14px;font-size:12.5px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.form-group{margin-bottom:14px}.form-help{color:var(--text-3);margin-top:4px;font-size:11.5px}.error-box{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);border:1px solid oklch(85% .08 28);margin-bottom:10px;padding:8px 10px;font-size:12.5px}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}.spinner-sm{border-width:1.5px;width:10px;height:10px}@keyframes spin{to{transform:rotate(360deg)}}.settings-tabs{border-bottom:1px solid var(--border);gap:2px;padding:0 12px;display:flex}.settings-tab{color:var(--text-2);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-size:12.5px;font-weight:500}.settings-tab:hover{color:var(--text)}.settings-tab.active{color:var(--text);border-color:var(--primary)}.tweaks-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:260px;box-shadow:var(--shadow-pop);z-index:500;font-size:12.5px;position:fixed;bottom:16px;right:16px}.tweaks-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;font-weight:600;display:flex}.tweaks-body{padding:10px 12px}.tweaks-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.tweaks-row:last-child{margin-bottom:0}.tweaks-row .label{margin:0}.mono{font-family:var(--font-mono)}.text-dim{color:var(--text-3)}.login-page{background:var(--surface-2);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{flex-direction:column;gap:16px;width:360px;max-width:100%;padding:24px;display:flex}.login-brand{color:var(--primary);justify-content:center;align-items:center;gap:12px;margin:8px 0 12px;display:flex}.login-brand .brand-name{letter-spacing:-.02em;font-size:28px;font-weight:700}.login-error{color:var(--danger,#d33);font-size:12.5px;line-height:1.4}.auth-splash{background:var(--surface-2);place-items:center;min-height:100vh;display:grid}.auth-splash-inner{color:var(--text-3);font-size:13px}.user-chip-btn{font:inherit;cursor:pointer}.user-chip-btn:hover{filter:brightness(.92)}
