@phenyxhealth/data-analytics 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Chart2DSubplot.d.ts +12 -0
- package/dist/components/Chart3DScatter.d.ts +12 -0
- package/dist/components/Chart3DSubplot.d.ts +12 -0
- package/dist/components/Chart3DSurface.d.ts +10 -0
- package/dist/components/ChartBar.d.ts +8 -0
- package/dist/components/ChartBoxPlot.d.ts +9 -0
- package/dist/components/ChartHeatMap.d.ts +8 -0
- package/dist/components/ChartHistogram.d.ts +7 -0
- package/dist/components/ChartLine.d.ts +8 -0
- package/dist/components/ChartMultiBar.d.ts +7 -0
- package/dist/components/ChartParallelCoords.d.ts +10 -0
- package/dist/components/ChartPie.d.ts +7 -0
- package/dist/components/ChartScatter.d.ts +10 -0
- package/dist/components/ChartScatterPlotly.d.ts +11 -0
- package/dist/components/ChartSunburst.d.ts +10 -0
- package/dist/components/ChartTable.d.ts +7 -0
- package/dist/components/ChartViolin.d.ts +11 -0
- package/dist/components/Chip.d.ts +6 -0
- package/dist/components/DataExplorer.d.ts +2 -0
- package/dist/components/DimensionStudio.d.ts +10 -0
- package/dist/components/RadioButtonGroup.d.ts +14 -0
- package/dist/components/SearchableSelect.d.ts +19 -0
- package/dist/components/ViewBuilder.d.ts +10 -0
- package/dist/components/ViewCard.d.ts +11 -0
- package/dist/data-analytics.css +1 -0
- package/dist/index-CGKlljJK.js +1 -0
- package/dist/index-DWXFNxcN.cjs +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.es.js +1 -0
- package/dist/plotly.min-DYqaAskA.js +108905 -0
- package/dist/plotly.min-wrSXr6b4.cjs +3789 -0
- package/dist/types/index.d.ts +53 -0
- package/dist/utils/data.d.ts +63 -0
- package/dist/utils/plotly.d.ts +8 -0
- package/dist/vite.svg +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DataRecord, ChartType } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
xField: string;
|
|
5
|
+
yField: string;
|
|
6
|
+
innerChartType: ChartType;
|
|
7
|
+
innerGroupBy: string;
|
|
8
|
+
innerNumericField?: string;
|
|
9
|
+
innerColorBy?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function Chart2DSubplot({ data, xField, yField, innerChartType, innerGroupBy, innerNumericField, innerColorBy, }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
xField: string;
|
|
5
|
+
yField: string;
|
|
6
|
+
zField: string;
|
|
7
|
+
colorBy?: string;
|
|
8
|
+
isDark?: boolean;
|
|
9
|
+
dimensions?: DimensionDefinition[];
|
|
10
|
+
}
|
|
11
|
+
export declare function Chart3DScatter({ data, xField, yField, zField, colorBy, isDark, dimensions }: Props): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
xField: string;
|
|
5
|
+
yField: string;
|
|
6
|
+
zField: string;
|
|
7
|
+
colorBy: string;
|
|
8
|
+
isDark?: boolean;
|
|
9
|
+
dimensions?: DimensionDefinition[];
|
|
10
|
+
}
|
|
11
|
+
export declare function Chart3DSubplot({ data, xField, yField, zField, colorBy, isDark, dimensions }: Props): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
xField: string;
|
|
5
|
+
yField: string;
|
|
6
|
+
isDark?: boolean;
|
|
7
|
+
dimensions?: DimensionDefinition[];
|
|
8
|
+
}
|
|
9
|
+
export declare function Chart3DSurface({ data, xField, yField, isDark, dimensions }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DataRecord } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
numericField: string;
|
|
5
|
+
groupBy: string;
|
|
6
|
+
groupBy2?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function ChartBoxPlot({ data, numericField, groupBy, groupBy2 }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
axes: string[];
|
|
5
|
+
dimensions: DimensionDefinition[];
|
|
6
|
+
colorBy?: string;
|
|
7
|
+
isDark?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function ChartParallelCoords({ data, axes, dimensions, colorBy, isDark }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
xField: string;
|
|
5
|
+
yField: string;
|
|
6
|
+
colorBy?: string;
|
|
7
|
+
dimensions?: DimensionDefinition[];
|
|
8
|
+
}
|
|
9
|
+
export declare function ChartScatter({ data, xField, yField, colorBy, dimensions }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
xField: string;
|
|
5
|
+
yField: string;
|
|
6
|
+
colorBy?: string;
|
|
7
|
+
isDark?: boolean;
|
|
8
|
+
dimensions?: DimensionDefinition[];
|
|
9
|
+
}
|
|
10
|
+
export declare function ChartScatterPlotly({ data, xField, yField, colorBy, isDark, dimensions }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DataRecord } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
level1: string;
|
|
5
|
+
level2?: string;
|
|
6
|
+
level3?: string;
|
|
7
|
+
isDark?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function ChartSunburst({ data, level1, level2, level3, isDark }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
numericField: string;
|
|
5
|
+
groupBy: string;
|
|
6
|
+
groupBy2?: string;
|
|
7
|
+
isDark?: boolean;
|
|
8
|
+
dimensions?: DimensionDefinition[];
|
|
9
|
+
}
|
|
10
|
+
export declare function ChartViolin({ data, numericField, groupBy, groupBy2, isDark, dimensions }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DimensionDefinition, DerivedDimension } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
dimensions: DimensionDefinition[];
|
|
4
|
+
derived: DerivedDimension[];
|
|
5
|
+
onAdd: (d: DerivedDimension) => void;
|
|
6
|
+
onRemove: (id: string) => void;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function DimensionStudio({ dimensions, derived, onAdd, onRemove, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface RadioOption {
|
|
2
|
+
value: string;
|
|
3
|
+
label: string;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
interface RadioButtonGroupProps {
|
|
7
|
+
options: RadioOption[];
|
|
8
|
+
value: string;
|
|
9
|
+
onChange: (value: string) => void;
|
|
10
|
+
name: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function RadioButtonGroup({ options, value, onChange, name, disabled }: RadioButtonGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DimensionDefinition } from '../types/index.ts';
|
|
2
|
+
export interface OptionItem {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
group?: string;
|
|
6
|
+
}
|
|
7
|
+
interface SearchableSelectProps {
|
|
8
|
+
options: OptionItem[];
|
|
9
|
+
value: string;
|
|
10
|
+
onChange: (value: string) => void;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
label?: string;
|
|
13
|
+
searchThreshold?: number;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function SearchableSelect({ options, value, onChange, placeholder, label, searchThreshold, disabled, }: SearchableSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
/** Convert DimensionDefinition[] to OptionItem[] with auto-grouping */
|
|
18
|
+
export declare function dimensionsToOptions(dims: DimensionDefinition[], blankLabel?: string): OptionItem[];
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DimensionDefinition, ViewConfig, DataRecord } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
dimensions: DimensionDefinition[];
|
|
4
|
+
data: DataRecord[];
|
|
5
|
+
editingView?: ViewConfig;
|
|
6
|
+
onSave: (view: ViewConfig) => void;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function ViewBuilder({ dimensions, data, editingView, onSave, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DataRecord, DimensionDefinition, ViewConfig } from '../types/index.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
view: ViewConfig;
|
|
4
|
+
data: DataRecord[];
|
|
5
|
+
dimensions: DimensionDefinition[];
|
|
6
|
+
onEdit: () => void;
|
|
7
|
+
onRemove: () => void;
|
|
8
|
+
isDark?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function ViewCard({ view, data, dimensions, onEdit, onRemove, isDark }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,400&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap";.da-explorer{--da-accent: #0369a1;--da-accent-hover: #075985;--da-accent-2: #0891b2;--da-accent-rgb: 3, 105, 161;--da-bg: #ffffff;--da-bg-secondary: #f0f7ff;--da-bg-tertiary: #dbeafe;--da-text: #0c1a2e;--da-text-secondary: #4a6080;--da-text-tertiary: #2d4a6b;--da-border: #bfdbfe;--da-border-light: #dbeafe;--da-border-header: #93c5fd;--da-btn-bg: #ffffff;--da-btn-text: #0c1a2e;--da-btn-border: #93c5fd;--da-btn-hover: #eff6ff;--da-danger: #dc2626;--da-danger-border: #fca5a5;--da-danger-hover: #fef2f2;--da-input-bg: #ffffff;--da-input-border: #93c5fd;--da-chip-bg: #f0f7ff;--da-chip-border: #93c5fd;--da-modal-bg: #ffffff;--da-modal-shadow: 0 8px 48px rgba(3, 105, 161, .18), 0 2px 12px rgba(0, 0, 0, .08);--da-overlay: rgba(5, 15, 30, .55);--da-empty-border: #bfdbfe;--da-empty-text: #7aa3c8;--da-card-shadow: 0 1px 4px rgba(3, 105, 161, .08), 0 4px 16px rgba(3, 105, 161, .05);--da-card-shadow-hover: 0 4px 20px rgba(3, 105, 161, .16), 0 1px 4px rgba(3, 105, 161, .1);--da-table-total-border: #93c5fd;--da-tooltip-bg: #ffffff;--da-tooltip-text: #0c1a2e}.da-explorer.da-dark{--da-accent: #38bdf8;--da-accent-hover: #7dd3fc;--da-accent-2: #22d3ee;--da-accent-rgb: 56, 189, 248;--da-bg: #061525;--da-bg-secondary: #0a1e35;--da-bg-tertiary: #0f2744;--da-text: #e2eeff;--da-text-secondary: #7eaacf;--da-text-tertiary: #aac7e0;--da-border: #163354;--da-border-light: #0f2744;--da-border-header: #1e4570;--da-btn-bg: #0a1e35;--da-btn-text: #e2eeff;--da-btn-border: #1e4570;--da-btn-hover: #0f2744;--da-danger: #f87171;--da-danger-border: #7f1d1d;--da-danger-hover: #1a0505;--da-input-bg: #0a1e35;--da-input-border: #1e4570;--da-chip-bg: #0a1e35;--da-chip-border: #1e4570;--da-modal-bg: #061525;--da-modal-shadow: 0 8px 48px rgba(0, 0, 0, .7);--da-overlay: rgba(0, 0, 0, .78);--da-empty-border: #163354;--da-empty-text: #3a6080;--da-card-shadow: 0 2px 8px rgba(0, 0, 0, .4);--da-card-shadow-hover: 0 6px 24px rgba(0, 0, 0, .55);--da-table-total-border: #1e4570;--da-tooltip-bg: #0a1e35;--da-tooltip-text: #e2eeff}.da-explorer{--ds-interactive-default: #B200B2;--ds-interactive-hover: #990099;--ds-interactive-pressed: #800080;--ds-interactive-focus: #E500E5;--ds-interactive-disable: rgba(178, 0, 178, .4);--ds-interactive-on-hard: #4D004D;--ds-interactive-on-soft: #FFF2FF;--ds-interactive-tonal-default: #FFE5FF;--ds-interactive-tonal-hover: #FFCCFF;--ds-interactive-tonal-pressed: #FFB2FF;--ds-interactive-light: #FAFAFA;--ds-interactive-dark: #050505;--ds-neutral-20: #FAFAFA;--ds-neutral-50: #F2F2F2;--ds-neutral-100: #E5E5E5;--ds-neutral-200: #CCCCCC;--ds-neutral-300: #B2B2B2;--ds-neutral-400: #999999;--ds-neutral-500: #7F7F7F;--ds-neutral-600: #666666;--ds-neutral-700: #4D4D4D;--ds-neutral-800: #333333;--ds-neutral-900: #1A1A1A;--ds-neutral-950: #0D0D0D;--ds-semantic-dodger-blue: #1E90FF;--ds-semantic-crimson: #DC143C;--ds-semantic-teal: #008080;--ds-semantic-golden-rod: #DAA520;--ds-semantic-medium-slate-blue: #7B68EE;--ds-semantic-sea-green: #2E8B57;--ds-semantic-orange-red: #FF4500;--ds-semantic-dark-turquoise: #00CED1;--ds-semantic-dark-orange: #FF8C00;--ds-semantic-forest-green: #228B22;--ds-semantic-medium-violet-red: #C71585;--ds-semantic-dark-cyan: #008B8B;--ds-semantic-tomato: #FF6347;--ds-semantic-steel-blue: #4682B4;--ds-semantic-deep-pink: #FF1493;--ds-semantic-olive-drab: #6B8E23;--ds-semantic-saddle-brown: #8B4513;--ds-semantic-fire-brick: #B22222;--ds-semantic-slate-blue: #6A5ACD;--ds-state-not-started: #7191AD;--ds-state-in-progress: #1E88E5;--ds-state-done: #009BE0;--ds-state-reviewed: #8E38FF;--ds-state-validated: #00B9BF;--ds-state-completed: #43A047;--ds-state-peer-reviewed: #7A70FF;--ds-state-on-request: #DA9C00;--ds-state-start-proposed: #0062D2;--ds-state-start-confirmed: #1976D2;--ds-state-restart-proposed: #4E22FF;--ds-state-restart-confirmed:#2D3FFF;--ds-state-ready-to-start: #00ABD1;--ds-state-interrupted: #FF6F00;--ds-state-canceled: #DC143C;--ds-system-failure: #FF0000;--ds-system-success: #008000;--ds-system-caution: #FFA500;--ds-bg-level-01: #FCFCFC;--ds-bg-level-02: #F7F7F7;--ds-bg-level-03: #F1F1F1;--ds-brand-level-01: #990099;--ds-brand-level-02: #660066;--ds-brand-level-03: #4D004D;--ds-brand-accent: #FFE5FF;--ds-spacing-0: 0px;--ds-spacing-4: 4px;--ds-spacing-6: 6px;--ds-spacing-8: 8px;--ds-spacing-10: 10px;--ds-spacing-12: 12px;--ds-spacing-16: 16px;--ds-spacing-24: 24px;--ds-radius-tiny: 2px;--ds-radius-small: 4px;--ds-radius-medium: 8px;--ds-radius-large: 12px;--ds-radius-x-large: 16px;--ds-icon-tiny: 16px;--ds-icon-small: 20px;--ds-icon-large: 24px;--ds-label-small-size: 11px;--ds-label-small-line: 16px;--ds-label-small-spacing: .5px;--ds-label-small-weight: 400;--ds-label-small-strong-weight: 500;--ds-label-medium-size: 12px;--ds-label-medium-line: 16px;--ds-label-medium-spacing: .5px;--ds-label-medium-weight: 400;--ds-label-medium-strong-weight: 500;--ds-label-large-size: 14px;--ds-label-large-line: 24px;--ds-label-large-spacing: .1px;--ds-label-large-weight: 400;--ds-label-large-strong-weight: 500;--ds-label-upper-size: 11px;--ds-label-upper-line: 16px;--ds-label-upper-spacing: .5px;--ds-label-upper-weight: 400;--ds-label-upper-strong-weight: 600;--ds-label-tiny-upper-size: 9px;--ds-label-tiny-upper-line: 16px;--ds-label-tiny-upper-spacing: .5px;--ds-label-tiny-upper-weight: 400;--ds-label-tiny-upper-strong-weight: 600;--ds-title-large-size: 22px;--ds-title-large-line: 28px;--ds-title-large-spacing: 0px;--ds-title-large-weight: 500;--ds-title-medium-size: 16px;--ds-title-medium-line: 24px;--ds-title-medium-spacing: .15px;--ds-title-medium-weight: 600;--ds-title-small-size: 14px;--ds-title-small-line: 20px;--ds-title-small-spacing: .1px;--ds-title-small-weight: 600;--ds-headline-large-size: 32px;--ds-headline-large-line: 40px;--ds-headline-large-spacing: 0px;--ds-headline-large-weight: 500;--ds-headline-medium-size: 28px;--ds-headline-medium-line: 36px;--ds-headline-medium-spacing: 0px;--ds-headline-medium-weight: 500;--ds-headline-small-size: 24px;--ds-headline-small-line: 32px;--ds-headline-small-spacing: 0px;--ds-headline-small-weight: 500;--ds-body-large-size: 16px;--ds-body-large-line: 24px;--ds-body-large-spacing: .5px;--ds-body-large-weight: 400;--ds-body-medium-size: 14px;--ds-body-medium-line: 20px;--ds-body-medium-spacing: .25px;--ds-body-medium-weight: 400;--ds-body-small-size: 12px;--ds-body-small-line: 16px;--ds-body-small-spacing: .4px;--ds-body-small-weight: 400;--ds-elevation-01: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--ds-elevation-02: 0px 1px 3px 0px rgba(0, 0, 0, .3), 0px 4px 8px 3px rgba(0, 0, 0, .15);--ds-elevation-03: 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 6px 10px 4px rgba(0, 0, 0, .15)}.da-explorer.da-dark{--ds-interactive-default: #CC00CC;--ds-interactive-hover: #B200B2;--ds-interactive-pressed: #990099;--ds-interactive-focus: #FF00FF;--ds-interactive-disable: rgba(204, 0, 204, .4);--ds-interactive-on-hard: #FFF2FF;--ds-interactive-on-soft: #4D004D;--ds-interactive-tonal-default: #4D004D;--ds-interactive-tonal-hover: #330033;--ds-interactive-tonal-pressed: #1A001A;--ds-neutral-20: #050505;--ds-neutral-50: #000000;--ds-neutral-100: #1A1A1A;--ds-neutral-200: #333333;--ds-neutral-300: #4D4D4D;--ds-neutral-400: #666666;--ds-neutral-500: #7F7F7F;--ds-neutral-600: #999999;--ds-neutral-700: #B2B2B2;--ds-neutral-800: #CCCCCC;--ds-neutral-900: #E5E5E5;--ds-neutral-950: #F2F2F2;--ds-system-failure: #FF4D4D;--ds-system-success: #4DA74D;--ds-system-caution: #FFC14D;--ds-bg-level-01: #2A2A2B;--ds-bg-level-02: #1E1E1F;--ds-bg-level-03: #121212;--ds-icon-tiny: 14px;--ds-icon-small: 18px;--ds-icon-large: 22px}.da-explorer{font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--da-text);background:var(--ds-bg-level-03);width:100%;box-sizing:border-box;border-top:3px solid var(--da-accent)}.da-explorer *,.da-explorer *:before,.da-explorer *:after{box-sizing:border-box}.da-explorer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-spacing-16);width:100%;background:var(--ds-bg-level-02);box-sizing:border-box;margin-bottom:0;padding:var(--ds-spacing-16) var(--ds-spacing-24);border-bottom:1px solid var(--ds-neutral-200)}.da-explorer-header>div:first-child{min-width:0;overflow:hidden}.da-explorer-header>div:last-child{flex-shrink:0}.da-explorer-header h2{margin:0 0 var(--ds-spacing-4) 0;font-family:Roboto,sans-serif;font-size:var(--ds-headline-medium-size);font-weight:var(--ds-headline-medium-weight);line-height:var(--ds-headline-medium-line);letter-spacing:var(--ds-headline-medium-spacing);color:var(--ds-neutral-950);-webkit-text-fill-color:unset;background:none;-webkit-background-clip:unset;background-clip:unset;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.da-explorer.da-dark .da-explorer-header h2{background:linear-gradient(135deg,#7dd3fc,#67e8f9);-webkit-background-clip:text;background-clip:text}.da-explorer-stats{font-family:Roboto,sans-serif;font-size:var(--ds-label-large-size);font-weight:var(--ds-label-large-strong-weight);line-height:var(--ds-label-large-line);letter-spacing:var(--ds-label-large-spacing);color:var(--ds-neutral-700);font-variant-numeric:tabular-nums}.da-dashboards-bar{display:flex;align-items:flex-end;gap:0;height:56px;margin-bottom:0;padding:0 var(--ds-spacing-24);border-bottom:1px solid var(--ds-neutral-200);background:var(--ds-bg-level-02);overflow-x:auto;scrollbar-width:none}.da-dashboards-bar::-webkit-scrollbar{display:none}.da-dashboard-tab{display:flex;align-items:center;gap:5px;padding:8px 16px;border:none;border-bottom:2px solid transparent;background:transparent;cursor:pointer;font-size:.83rem;font-weight:500;font-family:inherit;color:var(--da-text-secondary);white-space:nowrap;transition:color .15s,border-color .15s,background .15s;position:relative;-webkit-user-select:none;user-select:none;margin-bottom:-1px}.da-dashboard-tab:hover{color:var(--da-accent);background:rgba(var(--da-accent-rgb),.04)}.da-dashboard-tab.da-active{color:var(--da-accent);font-weight:600;border-bottom-color:var(--da-accent)}.da-dashboard-tab-name{pointer-events:none}.da-dashboard-tab-input{font-size:.83rem;font-weight:600;font-family:inherit;padding:2px 6px;border:1px solid var(--da-accent);border-radius:4px;background:var(--da-input-bg);color:var(--da-text);width:130px;outline:none;box-shadow:0 0 0 3px rgba(var(--da-accent-rgb),.12)}.da-dashboard-tab-actions{display:flex;gap:1px;opacity:0;transition:opacity .12s}.da-dashboard-tab:hover .da-dashboard-tab-actions,.da-dashboard-tab.da-active .da-dashboard-tab-actions{opacity:1}.da-dashboard-tab-btn{padding:2px 5px;border:none;background:none;color:var(--da-text-secondary);cursor:pointer;border-radius:4px;font-size:11px;line-height:1.4;transition:background .12s,color .12s}.da-dashboard-tab-btn:hover{background:var(--da-bg-secondary);color:var(--da-text)}.da-dashboard-tab-btn.da-danger:hover{background:var(--da-danger-hover);color:var(--da-danger)}.da-dashboard-add-btn{padding:8px 14px;border:none;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--da-text-secondary);cursor:pointer;font-size:.83rem;font-family:inherit;transition:color .15s,background .15s;white-space:nowrap;margin-left:6px;margin-bottom:-1px}.da-dashboard-add-btn:hover{color:var(--da-accent);background:rgba(var(--da-accent-rgb),.04)}.da-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--da-btn-border);border-radius:6px;background:var(--da-btn-bg);color:var(--da-btn-text);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s;letter-spacing:.01em}.da-btn:hover{background:var(--da-btn-hover);border-color:var(--da-accent)}.da-btn-primary.da-btn-sm,.da-btn-secondary.da-btn-sm,.da-btn-auxiliary.da-btn-sm{padding-top:var(--ds-spacing-4);padding-bottom:var(--ds-spacing-4)}.da-btn-primary.da-btn-md,.da-btn-secondary.da-btn-md,.da-btn-auxiliary.da-btn-md{padding-top:var(--ds-spacing-8);padding-bottom:var(--ds-spacing-8)}.da-btn-primary.da-btn-lg,.da-btn-secondary.da-btn-lg,.da-btn-auxiliary.da-btn-lg{padding-top:var(--ds-spacing-10);padding-bottom:var(--ds-spacing-10)}.da-btn-icon-only.da-btn-sm{padding:2px}.da-btn-icon-only.da-btn-sm .da-icon{font-size:16px;width:16px;height:16px}.da-btn-icon-only.da-btn-md{padding:var(--ds-spacing-8)}.da-btn-icon-only.da-btn-lg{padding:var(--ds-spacing-10)}.da-btn-sm .da-icon{font-size:var(--ds-icon-tiny)}.da-icon{font-family:Material Symbols Outlined;font-style:normal;font-weight:400;font-size:var(--ds-icon-small);line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";display:inline-flex;align-items:center;justify-content:center}.da-btn-primary{display:inline-flex;align-items:center;gap:var(--ds-spacing-8);background:var(--ds-interactive-default);color:var(--ds-interactive-light);border:2px solid transparent;border-radius:var(--ds-radius-medium);padding:var(--ds-spacing-10) var(--ds-spacing-24);font-family:Roboto,sans-serif;font-size:var(--ds-label-large-size);font-weight:var(--ds-label-large-strong-weight);line-height:var(--ds-label-large-line);letter-spacing:var(--ds-label-large-spacing);box-shadow:none;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s}.da-btn-primary:hover{background:var(--ds-interactive-hover);box-shadow:var(--ds-elevation-02)}.da-btn-primary:active{background:var(--ds-interactive-pressed);box-shadow:none}.da-btn-primary:focus-visible{outline:none;border-color:var(--ds-interactive-focus)}.da-btn-primary:disabled,.da-btn-primary[disabled]{opacity:.4;cursor:not-allowed}.da-btn-primary .da-icon{font-size:var(--ds-icon-small)}.da-btn-primary.da-btn-icon-only{padding:var(--ds-spacing-10);gap:0}.da-btn-secondary{display:inline-flex;align-items:center;gap:var(--ds-spacing-8);background:var(--ds-interactive-tonal-default);color:var(--ds-interactive-on-hard);border:1px solid var(--ds-neutral-200);border-radius:var(--ds-radius-medium);padding:var(--ds-spacing-10) var(--ds-spacing-24);font-family:Roboto,sans-serif;font-size:var(--ds-label-large-size);font-weight:var(--ds-label-large-strong-weight);line-height:var(--ds-label-large-line);letter-spacing:var(--ds-label-large-spacing);box-shadow:none;cursor:pointer;transition:background .15s,border-color .15s}.da-btn-secondary:hover{background:var(--ds-interactive-tonal-hover)}.da-btn-secondary:active{background:var(--ds-interactive-tonal-pressed)}.da-btn-secondary:focus-visible{outline:2px solid var(--ds-interactive-focus);outline-offset:2px}.da-btn-secondary:disabled,.da-btn-secondary[disabled]{opacity:.4;cursor:not-allowed}.da-btn-secondary .da-icon{font-size:var(--ds-icon-small);color:var(--ds-interactive-on-hard)}.da-btn-secondary.da-btn-icon-only{padding:var(--ds-spacing-10);gap:0}.da-btn-auxiliary{display:inline-flex;align-items:center;gap:var(--ds-spacing-8);background:var(--ds-neutral-50);color:var(--ds-neutral-800);border:1px solid var(--ds-neutral-300);border-radius:var(--ds-radius-medium);padding:var(--ds-spacing-10) var(--ds-spacing-24);font-family:Roboto,sans-serif;font-size:var(--ds-label-large-size);font-weight:var(--ds-label-large-strong-weight);line-height:var(--ds-label-large-line);letter-spacing:var(--ds-label-large-spacing);box-shadow:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.da-btn-auxiliary:hover{background:var(--ds-neutral-200);border-color:var(--ds-neutral-400)}.da-btn-auxiliary:active{background:var(--ds-neutral-100);color:var(--ds-neutral-600)}.da-btn-auxiliary:focus-visible{outline:none;border-color:var(--ds-interactive-focus)}.da-btn-auxiliary:disabled,.da-btn-auxiliary[disabled]{opacity:.4;cursor:not-allowed}.da-btn-auxiliary .da-icon{font-size:var(--ds-icon-small);color:var(--ds-neutral-700)}.da-btn-auxiliary.da-btn-icon-only{padding:var(--ds-spacing-10);gap:0}.da-btn-tiny{display:inline-flex;align-items:center;justify-content:center;padding:0;width:16px;height:16px;background:var(--ds-neutral-50);border:none;border-radius:var(--ds-radius-tiny);cursor:pointer;transition:background .15s}.da-btn-tiny .da-icon{font-size:16px;color:var(--ds-neutral-950)}.da-btn-tiny:hover{background:var(--ds-neutral-100)}.da-btn-tiny:active{background:var(--ds-neutral-20)}.da-btn-tiny:active .da-icon{color:var(--ds-neutral-500)}.da-btn-tiny:disabled,.da-btn-tiny[disabled]{opacity:.4;cursor:not-allowed}.da-textfield{position:relative;display:inline-flex;flex-direction:column;width:100%}.da-textfield-label{font-family:Roboto,sans-serif;font-size:var(--ds-label-medium-size);font-weight:var(--ds-label-medium-weight);line-height:var(--ds-label-medium-line);letter-spacing:var(--ds-label-medium-spacing);color:var(--ds-neutral-950);margin-bottom:var(--ds-spacing-4)}.da-textfield-input{width:100%;padding:var(--ds-spacing-6) var(--ds-spacing-12);border:1px solid var(--ds-neutral-300);border-radius:var(--ds-radius-small);background:var(--ds-neutral-20);color:var(--ds-neutral-700);font-family:Roboto,sans-serif;font-size:var(--ds-body-medium-size);font-weight:var(--ds-body-medium-weight);line-height:var(--ds-body-medium-line);letter-spacing:var(--ds-body-medium-spacing);outline:none;transition:border-color .15s,background .15s}.da-textfield-input::placeholder{color:var(--ds-neutral-400)}.da-textfield-input:hover{background:var(--ds-neutral-100)}.da-textfield-input:active{border-color:var(--ds-neutral-700)}.da-textfield-input:not(:placeholder-shown){color:var(--ds-neutral-950)}.da-textfield-input:focus{border-color:var(--ds-interactive-focus);background:var(--ds-neutral-20)}.da-textfield-input:disabled{opacity:.4;cursor:not-allowed}.da-textfield.da-textfield-error .da-textfield-input{border-color:var(--ds-system-failure)}.da-textfield.da-textfield-error .da-textfield-input:focus{border-color:var(--ds-system-failure)}.da-textfield-select-wrapper{position:relative;width:100%}.da-textfield-select-wrapper select.da-textfield-input{appearance:none;padding-right:calc(var(--ds-spacing-16) + 24px);cursor:pointer}.da-textfield-select-wrapper .da-icon{position:absolute;right:var(--ds-spacing-12);top:50%;transform:translateY(-50%);font-size:var(--ds-icon-large);color:var(--ds-neutral-700);pointer-events:none}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background:var(--ds-neutral-950);color:var(--ds-neutral-20);font-family:Roboto,sans-serif;font-size:var(--ds-label-small-size);font-weight:var(--ds-label-small-weight);line-height:var(--ds-label-small-line);letter-spacing:var(--ds-label-small-spacing);padding:var(--ds-spacing-4) var(--ds-spacing-8);border-radius:var(--ds-radius-small);box-shadow:var(--ds-elevation-02);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1100}[data-tooltip]:hover:after{opacity:1}.da-separator{width:100%;height:1px;background:var(--ds-neutral-200);border:none;margin:0;flex-shrink:0}.da-btn-ghost{background:transparent;border-color:transparent;color:var(--da-text-secondary);font-size:16px;padding:4px 8px;line-height:1}.da-btn-ghost:hover{background:var(--da-bg-secondary);border-color:var(--da-border);color:var(--da-text)}.da-input{padding:7px 10px;border:1px solid var(--da-input-border);border-radius:6px;font-size:.85rem;font-family:inherit;background:var(--da-input-bg);color:var(--da-text);outline:none;transition:border-color .15s}.da-input:focus{border-color:var(--da-accent)}.da-btn-sm{padding:4px 10px;font-size:.78rem}.da-btn-danger{color:var(--da-danger);border-color:var(--da-danger-border)}.da-btn-danger:hover{background:var(--da-danger-hover);border-color:var(--da-danger)}body:has(.da-modal-overlay){overflow:hidden}.da-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.da-modal{background:var(--ds-neutral-50);border-radius:var(--ds-radius-medium);border:none;padding:0;max-width:560px;width:90%;max-height:88vh;overflow:hidden;box-shadow:var(--ds-elevation-03);display:flex;flex-direction:column}.da-confirm-modal{max-width:400px}.da-confirm-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ds-spacing-16) var(--ds-spacing-24);flex-shrink:0}.da-confirm-body{padding:0 var(--ds-spacing-24) var(--ds-spacing-16)}.da-confirm-body p{margin:0;font-family:Roboto,sans-serif;font-size:var(--ds-body-medium-size);font-weight:var(--ds-body-medium-weight);line-height:var(--ds-body-medium-line);letter-spacing:var(--ds-body-medium-spacing);color:var(--ds-neutral-700)}.da-share-modal{max-width:480px;padding:0}.da-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ds-spacing-16) var(--ds-spacing-24);border-bottom:1px solid var(--ds-neutral-200);flex-shrink:0}.da-modal-title{margin:0;font-size:var(--ds-title-medium-size);font-weight:var(--ds-title-medium-weight);line-height:var(--ds-title-medium-line);letter-spacing:var(--ds-title-medium-spacing);color:var(--ds-neutral-950)}.da-modal-close{background:none;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--da-text-secondary);padding:2px 6px;border-radius:4px}.da-modal-close:hover{background:var(--da-bg-secondary);color:var(--da-text)}.da-share-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px}.da-share-desc{margin:0;font-size:.85rem;color:var(--da-text-secondary);line-height:1.5}.da-share-url-row{display:flex;gap:8px;align-items:center}.da-share-url-input{flex:1;min-width:0;font-size:.78rem;font-family:Menlo,Consolas,monospace;color:var(--da-text)}.da-share-actions{display:flex}.da-share-email-btn{width:100%;justify-content:center}.da-share-note{margin:0;font-size:.75rem;color:var(--da-text-secondary);opacity:.75;line-height:1.5}.da-view-builder{display:flex;flex-direction:column;gap:0;flex:1;overflow:hidden}.da-view-builder-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ds-spacing-16) var(--ds-spacing-24);flex-shrink:0}.da-modal-subtitle{margin:2px 0 0;font-family:Roboto,sans-serif;font-size:var(--ds-label-medium-size);font-weight:var(--ds-label-medium-weight);line-height:var(--ds-label-medium-line);letter-spacing:var(--ds-label-medium-spacing);color:var(--ds-neutral-600)}.da-view-builder-body{flex:1;overflow-y:auto;padding:var(--ds-spacing-16) var(--ds-spacing-24);display:flex;flex-direction:column;gap:var(--ds-spacing-16)}.da-view-builder h3{margin:0;font-family:Roboto,sans-serif;font-size:var(--ds-title-medium-size);font-weight:var(--ds-title-medium-weight);line-height:var(--ds-title-medium-line);letter-spacing:var(--ds-title-medium-spacing);color:var(--ds-neutral-950)}.da-filters-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--ds-spacing-8)}.da-filters-header strong{font-family:Roboto,sans-serif;font-size:var(--ds-label-medium-size);font-weight:var(--ds-label-medium-weight);line-height:var(--ds-label-medium-line);letter-spacing:var(--ds-label-medium-spacing);color:var(--ds-neutral-950)}.da-filter-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:10px;padding:12px;background:var(--da-bg-secondary);border-radius:8px;border:1px solid var(--da-border)}.da-filter-values{display:flex;flex-wrap:wrap;gap:5px;flex:1}.da-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--da-chip-bg);border:1px solid var(--da-chip-border);border-radius:20px;font-size:.76rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .12s;color:var(--da-text-secondary)}.da-filter-chip:has(input:checked){background:var(--da-accent);color:#fff;border-color:var(--da-accent);box-shadow:0 1px 4px rgba(var(--da-accent-rgb),.3)}.da-filter-chip input{display:none}.da-multibar-fields{display:flex;flex-direction:column;gap:var(--ds-spacing-16)}.da-multibar-fields-label{display:block;font-size:.78rem;font-weight:600;color:var(--da-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.da-multibar-hint{display:block;font-size:.76rem;color:var(--da-empty-text);margin-top:6px}.da-view-builder-actions{display:flex;gap:var(--ds-spacing-16);justify-content:flex-end;padding:var(--ds-spacing-16) var(--ds-spacing-24);border-top:1px solid var(--ds-neutral-200);flex-shrink:0}.da-size-selector{display:flex;flex-direction:column;gap:var(--ds-spacing-4)}.da-size-selector-label{font-family:Roboto,sans-serif;font-size:var(--ds-label-medium-size);font-weight:var(--ds-label-medium-weight);line-height:var(--ds-label-medium-line);letter-spacing:var(--ds-label-medium-spacing);color:var(--ds-neutral-950)}.da-size-options{display:flex;gap:8px}.da-size-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;border:1.5px solid var(--da-border);border-radius:8px;background:var(--da-bg);color:var(--da-text-secondary);font-size:.76rem;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.da-size-option:hover{border-color:var(--da-accent);color:var(--da-accent);background:rgba(var(--da-accent-rgb),.04)}.da-size-option--active{border-color:var(--da-accent);background:rgba(var(--da-accent-rgb),.08);color:var(--da-accent);font-weight:600}.da-size-icon{display:block;border:1.5px solid currentColor;border-radius:3px;background:rgba(var(--da-accent-rgb),.1)}.da-size-icon--small{width:20px;height:14px}.da-size-icon--standard{width:34px;height:14px}.da-size-icon--full{width:50px;height:14px}.da-views-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px;padding:var(--ds-spacing-24)}.da-radio-group{display:flex;gap:4px}.da-radio-btn{flex:1;text-align:center;font-family:Roboto,sans-serif;font-size:var(--ds-label-medium-size);font-weight:var(--ds-label-medium-weight);line-height:var(--ds-label-medium-line);letter-spacing:var(--ds-label-medium-spacing);color:var(--ds-neutral-950);background:var(--ds-neutral-20);border:1px solid var(--ds-neutral-200);border-radius:var(--ds-radius-tiny);padding:var(--ds-spacing-4) var(--ds-spacing-8);cursor:pointer;transition:background .12s,color .12s,border-color .12s;outline:none;margin-left:-1px}.da-radio-btn:first-child{margin-left:0}.da-radio-btn:hover{background:var(--ds-interactive-tonal-hover)}.da-radio-btn:active{background:var(--ds-interactive-tonal-pressed)}.da-radio-btn:focus-visible{border-color:var(--ds-interactive-focus);z-index:1}.da-radio-btn--selected{background:var(--ds-interactive-default);color:var(--ds-interactive-light);border-color:var(--ds-interactive-default);z-index:1}.da-radio-btn--selected:hover{background:var(--ds-interactive-hover);border-color:var(--ds-interactive-hover)}.da-radio-btn--selected:active{background:var(--ds-interactive-pressed);border-color:var(--ds-interactive-pressed)}.da-radio-btn--selected:focus-visible{background:var(--ds-interactive-pressed);border-color:var(--ds-interactive-focus)}.da-radio-btn:disabled{opacity:.4;cursor:not-allowed}.da-ss-container{position:relative;width:100%}.da-ss-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;text-align:left;appearance:none}.da-ss-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.da-ss-placeholder{color:var(--ds-neutral-400)}.da-ss-trigger .da-icon{font-size:var(--ds-icon-small);color:var(--ds-neutral-700);flex-shrink:0;margin-left:var(--ds-spacing-4)}.da-ss-dropdown{position:absolute;top:calc(100% + 4px);left:0;width:100%;background:var(--ds-neutral-20);border:1px solid var(--ds-neutral-200);border-radius:var(--ds-radius-small);box-shadow:var(--ds-elevation-02);z-index:200;overflow:hidden}.da-ss-search-row{display:flex;align-items:center;gap:var(--ds-spacing-4);padding:var(--ds-spacing-6) var(--ds-spacing-8);border-bottom:1px solid var(--ds-neutral-200)}.da-ss-search-icon{font-size:var(--ds-icon-tiny)!important;color:var(--ds-neutral-400);flex-shrink:0}.da-ss-search-input{flex:1;border:none;outline:none;background:transparent;font-family:Roboto,sans-serif;font-size:var(--ds-body-small-size);font-weight:var(--ds-body-small-weight);line-height:var(--ds-body-small-line);color:var(--ds-neutral-900);padding:0}.da-ss-search-input::placeholder{color:var(--ds-neutral-400)}.da-ss-options{list-style:none;margin:0;padding:var(--ds-spacing-4) 0;max-height:240px;overflow-y:auto}.da-ss-option{padding:var(--ds-spacing-6) var(--ds-spacing-12);font-family:Roboto,sans-serif;font-size:var(--ds-body-small-size);font-weight:var(--ds-body-small-weight);line-height:var(--ds-body-small-line);letter-spacing:var(--ds-body-small-spacing);color:var(--ds-neutral-800);cursor:pointer;transition:background .1s}.da-ss-option:hover,.da-ss-option--highlighted{background:var(--ds-neutral-100)}.da-ss-option--selected{color:var(--ds-interactive-default);font-weight:var(--ds-label-medium-strong-weight)}.da-ss-highlight{background:var(--ds-interactive-tonal-default);color:inherit;border-radius:var(--ds-radius-tiny);padding:0 1px}.da-ss-empty{padding:var(--ds-spacing-16) var(--ds-spacing-12);text-align:center;font-family:Roboto,sans-serif;font-size:var(--ds-body-small-size);color:var(--ds-neutral-400)}.da-ss-group{list-style:none}.da-ss-group ul{list-style:none;margin:0;padding:0}.da-ss-group-label{display:block;padding:var(--ds-spacing-6) var(--ds-spacing-12) var(--ds-spacing-4);font-family:Roboto,sans-serif;font-size:var(--ds-label-tiny-upper-size);font-weight:var(--ds-label-tiny-upper-strong-weight);line-height:var(--ds-label-tiny-upper-line);letter-spacing:var(--ds-label-tiny-upper-spacing);text-transform:uppercase;color:var(--ds-neutral-500)}.da-ss-inline{display:inline-flex}.da-view-card{background:var(--ds-bg-level-01);border:1px solid var(--ds-neutral-200);border-radius:var(--ds-radius-medium);overflow:visible;box-shadow:none;transition:none}.da-view-card:hover{box-shadow:none;transform:none}.da-view-card--small{grid-column:span 1}.da-view-card--standard{grid-column:span 2}.da-view-card--full{grid-column:1 / -1}@media(max-width:800px){.da-view-card--standard,.da-view-card--full{grid-column:1 / -1}}.da-view-card-header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--ds-spacing-12) var(--ds-spacing-16);background:var(--ds-neutral-50);border-bottom:1px solid var(--ds-neutral-200);border-radius:var(--ds-radius-medium) var(--ds-radius-medium) 0 0}.da-view-card-header h3{margin:0 0 3px;font-family:Roboto,sans-serif;font-size:var(--ds-title-large-size);font-weight:var(--ds-title-large-weight);line-height:var(--ds-title-large-line);letter-spacing:var(--ds-title-large-spacing);color:var(--ds-neutral-950)}.da-view-card-meta{font-family:Roboto,sans-serif;font-size:var(--ds-label-medium-size);font-weight:var(--ds-label-medium-weight);line-height:var(--ds-label-medium-line);letter-spacing:var(--ds-label-medium-spacing);color:var(--ds-neutral-700)}.da-view-card-body{padding:var(--ds-spacing-12);overflow:hidden}.da-table{width:100%;border-collapse:collapse;font-family:Roboto,sans-serif;font-size:var(--ds-body-small-size);line-height:var(--ds-body-small-line);letter-spacing:var(--ds-body-small-spacing);color:var(--ds-neutral-900);font-variant-numeric:tabular-nums}.da-table th{background:var(--ds-neutral-50);padding:var(--ds-spacing-8) var(--ds-spacing-12);text-align:left;font-size:var(--ds-label-small-size);font-weight:var(--ds-label-small-strong-weight);line-height:var(--ds-label-small-line);letter-spacing:var(--ds-label-small-spacing);text-transform:uppercase;color:var(--ds-neutral-700);border-bottom:1px solid var(--ds-neutral-200)}.da-table td{padding:var(--ds-spacing-6) var(--ds-spacing-12);border-bottom:1px solid var(--ds-neutral-100);font-variant-numeric:tabular-nums}.da-table tbody tr:hover{background:var(--ds-neutral-50)}.da-table-total td{border-top:2px solid var(--ds-neutral-300);background:var(--ds-neutral-50);font-weight:var(--ds-label-medium-strong-weight)}.da-empty-state{text-align:center;padding:64px var(--ds-spacing-24);font-family:Roboto,sans-serif;font-size:var(--ds-body-medium-size);font-weight:var(--ds-body-medium-weight);line-height:var(--ds-body-medium-line);letter-spacing:var(--ds-body-medium-spacing);color:var(--ds-neutral-400);border:1.5px dashed var(--ds-neutral-300);border-radius:var(--ds-radius-medium);background:var(--ds-neutral-50)}.da-hm-wrap{display:flex;flex-direction:column}.da-hm-info{text-align:center;font-family:Roboto,sans-serif;font-size:var(--ds-label-small-size);font-weight:var(--ds-label-small-weight);line-height:var(--ds-label-small-line);letter-spacing:var(--ds-label-small-spacing);color:var(--ds-neutral-600);padding:var(--ds-spacing-4) 0;min-height:22px;font-variant-numeric:tabular-nums}.da-bp-tooltip{background:var(--ds-neutral-950);border:none;border-radius:var(--ds-radius-small);padding:var(--ds-spacing-4) var(--ds-spacing-8);font-family:Roboto,sans-serif;font-size:var(--ds-label-small-size);line-height:var(--ds-label-small-line);letter-spacing:var(--ds-label-small-spacing);color:var(--ds-neutral-20);min-width:140px;box-shadow:var(--ds-elevation-02)}.da-bp-tooltip strong{display:block;margin-bottom:2px;color:var(--ds-neutral-20)}.da-bp-tooltip-n{display:block;font-size:var(--ds-label-small-size);color:var(--ds-neutral-400);margin-bottom:var(--ds-spacing-4)}.da-bp-tooltip table{width:100%;border-collapse:collapse}.da-bp-tooltip td:first-child{opacity:.65;padding-right:12px}.da-bp-tooltip td:last-child{text-align:right;font-weight:var(--ds-label-small-strong-weight);font-variant-numeric:tabular-nums;color:var(--ds-neutral-20)}.da-bp-legend{display:flex;flex-wrap:wrap;gap:var(--ds-spacing-4) var(--ds-spacing-12);justify-content:center;padding:var(--ds-spacing-4) 0 var(--ds-spacing-8);font-family:Roboto,sans-serif;font-size:var(--ds-label-small-size);font-weight:var(--ds-label-small-weight);line-height:var(--ds-label-small-line);color:var(--ds-neutral-600)}.da-bp-legend-item{display:flex;align-items:center;gap:5px}.da-bp-legend-swatch{width:10px;height:10px;border-radius:var(--ds-radius-tiny);flex-shrink:0}.da-dark .recharts-default-tooltip{background-color:var(--ds-neutral-950)!important;border:none!important;color:var(--ds-neutral-20)!important;border-radius:var(--ds-radius-small)!important;box-shadow:var(--ds-elevation-02)!important;padding:var(--ds-spacing-4)!important}.da-dark .recharts-tooltip-item{color:var(--ds-neutral-20)!important}.da-dark .recharts-cartesian-grid line{stroke:var(--ds-neutral-300)}.da-dark .recharts-text{fill:var(--ds-neutral-600)}.da-dark .recharts-legend-item-text{color:var(--ds-neutral-600)!important}.recharts-default-tooltip{background-color:var(--ds-neutral-950)!important;border:none!important;border-radius:var(--ds-radius-small)!important;box-shadow:var(--ds-elevation-02)!important;padding:var(--ds-spacing-4)!important;color:var(--ds-neutral-20)!important}.recharts-tooltip-item{color:var(--ds-neutral-20)!important}.da-subplot2d-wrap{display:flex;flex-direction:column;gap:8px}.da-subplot2d-legend{display:flex;flex-wrap:wrap;gap:var(--ds-spacing-4) var(--ds-spacing-12);padding:var(--ds-spacing-4) var(--ds-spacing-8);border-bottom:1px solid var(--ds-neutral-200)}.da-subplot2d-legend-item{display:flex;align-items:center;gap:var(--ds-spacing-4);font-family:Roboto,sans-serif;font-size:var(--ds-label-small-size);font-weight:var(--ds-label-small-weight);line-height:var(--ds-label-small-line);color:var(--ds-neutral-600)}.da-subplot2d-legend-swatch{width:10px;height:10px;border-radius:var(--ds-radius-tiny);flex-shrink:0}.da-subplot2d{overflow:auto;gap:2px}.da-subplot2d-colheader{font-family:Roboto,sans-serif;font-size:var(--ds-label-small-size);font-weight:var(--ds-label-small-strong-weight);line-height:var(--ds-label-small-line);letter-spacing:var(--ds-label-small-spacing);color:var(--ds-neutral-800);text-align:center;padding:var(--ds-spacing-4) var(--ds-spacing-6);border-bottom:1px solid var(--ds-neutral-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.da-subplot2d-rowheader{font-family:Roboto,sans-serif;font-size:var(--ds-label-small-size);font-weight:var(--ds-label-small-strong-weight);line-height:var(--ds-label-small-line);letter-spacing:var(--ds-label-small-spacing);color:var(--ds-neutral-800);writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);text-align:center;padding:var(--ds-spacing-6) var(--ds-spacing-4);border-right:1px solid var(--ds-neutral-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:130px}.da-subplot2d-cell{background:var(--ds-bg-level-01);border:1px solid var(--ds-neutral-200);border-radius:var(--ds-radius-small);overflow:hidden;position:relative;min-width:140px;transition:border-color .15s}.da-subplot2d-cell:hover{border-color:var(--ds-neutral-400)}.da-subplot2d-count{position:absolute;bottom:2px;right:4px;font-family:Roboto,sans-serif;font-size:var(--ds-label-tiny-upper-size);color:var(--ds-neutral-500);font-variant-numeric:tabular-nums;pointer-events:none}.da-subplot2d-nodata{display:flex;align-items:center;justify-content:center;height:175px;font-family:Roboto,sans-serif;font-size:var(--ds-label-medium-size);color:var(--ds-neutral-400);opacity:.5}.da-subplot2d-table{padding:4px 6px;display:flex;flex-direction:column;gap:2px;height:175px;overflow:hidden}.da-subplot2d-table-row{display:flex;justify-content:space-between;align-items:center;gap:var(--ds-spacing-4);font-family:Roboto,sans-serif;font-size:var(--ds-label-tiny-upper-size)}.da-subplot2d-table-name{color:var(--ds-neutral-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.da-subplot2d-table-count{color:var(--ds-neutral-950);font-weight:var(--ds-label-small-strong-weight);font-variant-numeric:tabular-nums;flex-shrink:0}.da-studio-modal{max-width:500px;width:100%}.da-studio-header{background:linear-gradient(135deg,rgba(var(--da-accent-rgb),.06) 0%,transparent 100%)}.da-studio-header-inner{display:flex;align-items:center;gap:12px}.da-studio-header-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:rgba(var(--da-accent-rgb),.12);border:1px solid rgba(var(--da-accent-rgb),.25);color:var(--da-accent);font-size:18px;font-weight:700;flex-shrink:0}.da-studio-header-sub{margin:3px 0 0;font-size:.75rem;color:var(--da-text-secondary);font-weight:400}.da-studio-body{padding:0 var(--ds-spacing-24);display:flex;flex-direction:column;gap:var(--ds-spacing-16);flex:1;overflow-y:auto}.da-studio-section-label{display:flex;align-items:center;gap:8px}.da-studio-type-chip{display:inline-flex;align-items:center;gap:6px;background:#0891b21a;color:var(--da-accent-2);border:1px solid rgba(8,145,178,.3);border-radius:20px;padding:3px 10px 3px 8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.da-studio-type-dot{width:6px;height:6px;border-radius:50%;background:var(--da-accent-2);flex-shrink:0}.da-studio-form{padding:0;margin:0}.da-studio-form .da-btn-primary{margin-top:4px}.da-studio-date-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:var(--ds-spacing-8)}.da-studio-connector{display:flex;align-items:center;justify-content:center;padding-bottom:var(--ds-spacing-4)}.da-studio-connector-icon{font-size:var(--ds-icon-small)!important;color:var(--ds-neutral-500)}.da-studio-unit-row{display:flex;gap:6px;flex-wrap:wrap}.da-studio-unit-btn{flex:1;min-width:60px;padding:6px 10px;border-radius:6px;border:1px solid var(--da-border);background:var(--da-bg);color:var(--da-text-secondary);font-size:.82rem;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.da-studio-unit-btn:hover{border-color:var(--da-accent);color:var(--da-accent);background:rgba(var(--da-accent-rgb),.05)}.da-studio-unit-btn--active{border-color:var(--da-accent);background:rgba(var(--da-accent-rgb),.1);color:var(--da-accent);font-weight:600}.da-studio-add-btn{width:100%;justify-content:center;background:linear-gradient(135deg,var(--da-accent) 0%,var(--da-accent-2) 100%);color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(var(--da-accent-rgb),.28)}.da-studio-add-btn:hover{background:linear-gradient(135deg,var(--da-accent-hover) 0%,var(--da-accent) 100%);box-shadow:0 4px 14px rgba(var(--da-accent-rgb),.38)}.da-studio-add-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.da-studio-list{border-top:1px solid var(--da-border);padding-top:16px;display:flex;flex-direction:column;gap:8px}.da-studio-list-title{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--da-text-secondary);margin:0 0 2px}.da-studio-list-count{display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--da-accent-rgb),.12);color:var(--da-accent);border-radius:10px;font-size:10px;font-weight:700;min-width:18px;height:18px;padding:0 5px}.da-studio-item{display:flex;align-items:center;gap:10px;background:var(--da-bg-secondary);border:1px solid var(--da-border);border-left:3px solid var(--da-accent);border-radius:8px;padding:9px 12px;box-shadow:var(--da-card-shadow);transition:box-shadow .15s}.da-studio-item:hover{box-shadow:var(--da-card-shadow-hover)}.da-studio-item-icon{width:28px;height:28px;border-radius:7px;background:rgba(var(--da-accent-rgb),.1);color:var(--da-accent);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.da-studio-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.da-studio-item-name{font-size:13px;font-weight:600;color:var(--da-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.da-studio-item-desc{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;overflow:hidden}.da-studio-field-chip{font-size:10px;background:var(--da-bg-tertiary);color:var(--da-text-secondary);border:1px solid var(--da-border);border-radius:4px;padding:1px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px;font-family:Menlo,Consolas,monospace;font-size:9px}.da-studio-item-arrow{font-size:11px;color:var(--da-accent);flex-shrink:0}.da-studio-item-unit{font-size:10px;font-weight:600;color:var(--da-accent-2);background:#0891b21a;border:1px solid rgba(8,145,178,.2);border-radius:4px;padding:1px 5px;flex-shrink:0}.da-btn-has-badge{position:relative}.da-btn-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--da-accent);color:#fff;border-radius:10px;font-size:10px;font-weight:700;min-width:16px;height:16px;padding:0 4px;margin-left:4px;line-height:1}.da-parcoords-axes{display:flex;flex-direction:column;gap:4px;background:var(--da-bg-secondary);border:1px solid var(--da-border);border-radius:8px;padding:10px 12px}.da-parcoords-axes-header{font-size:11px;font-weight:600;color:var(--da-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.da-parcoords-empty{font-size:12px;color:var(--da-text-muted);margin:4px 0;font-style:italic}.da-parcoords-axis-item{display:flex;align-items:center;gap:8px;background:var(--da-bg);border:1px solid var(--da-border);border-radius:6px;padding:5px 8px}.da-parcoords-axis-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--da-accent);color:#fff;border-radius:50%;font-size:10px;font-weight:700;flex-shrink:0}.da-parcoords-axis-label{flex:1;font-size:12px;color:var(--da-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.da-parcoords-axis-actions{display:flex;gap:3px;flex-shrink:0}.da-parcoords-add-row{display:flex;gap:6px;align-items:center;margin-top:4px}.da-parcoords-add-row select{flex:1;min-width:0}
|