html{height:100%;--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}body{color-scheme:light;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium);margin:0;height:100%}app-root{display:block;height:100%}:root[data-theme=dark] body{color-scheme:dark}:root[data-theme=light] body{color-scheme:light}th .resize-handle{position:absolute;top:0;right:0;bottom:0;width:8px;cursor:col-resize;touch-action:none}th .resize-handle:hover,th .resize-handle:active{border-right:3px solid var(--mat-sys-primary)}.agg-col-panel.mat-mdc-select-panel{min-width:300px;max-width:min(460px,90vw);width:max-content}.expand-select-panel .expand-all-option{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:.75rem;width:100%;box-sizing:border-box;padding:.5rem 1rem;border:none;border-bottom:1px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface-container);cursor:pointer;text-align:left;color:var(--mat-sys-on-surface);font:var(--mat-sys-label-large)}.expand-select-panel .expand-all-option:hover{background:var(--mat-sys-surface-container-highest)}.expand-select-panel .expand-all-option mat-icon{flex-shrink:0;color:var(--mat-sys-on-surface-variant);font-size:1.25rem;width:1.25rem;height:1.25rem}.filter-menu.mat-mdc-menu-panel{max-width:none;border-radius:12px}.filter-menu .mat-mdc-menu-content{padding:0}.filter-menu .filter-menu-content{width:280px;max-width:85vw;display:flex;flex-direction:column}.filter-menu .filter-menu-title{padding:.75rem 1rem .25rem;font:var(--mat-sys-title-small);color:var(--mat-sys-on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-menu .filter-mode{display:flex;width:100%;padding:.25rem .75rem .5rem;box-sizing:border-box}.filter-menu .filter-mode .mat-button-toggle{flex:1;font:var(--mat-sys-label-medium)}.filter-menu .filter-mode .mat-button-toggle-button{--mat-standard-button-toggle-height: 34px}.filter-menu .filter-mode .mat-icon{font-size:1.05rem;width:1.05rem;height:1.05rem;margin-right:.35rem}.filter-menu .filter-mode .mat-button-toggle-checked[value=exclude]{color:var(--mat-sys-error)}.filter-menu .option-search{display:flex;align-items:center;gap:.5rem;margin:0 .75rem;padding:.35rem .6rem;border:1px solid var(--mat-sys-outline-variant);border-radius:8px}.filter-menu .option-search mat-icon{flex-shrink:0;color:var(--mat-sys-on-surface-variant);font-size:1.2rem;width:1.2rem;height:1.2rem}.filter-menu .option-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium)}.filter-menu .option-search .search-clear{flex-shrink:0;display:inline-flex;border:none;background:transparent;cursor:pointer;padding:0;color:var(--mat-sys-on-surface-variant)}.filter-menu .option-search .search-clear mat-icon{font-size:1.1rem;width:1.1rem;height:1.1rem}.filter-menu .option-list{max-height:280px;overflow-y:auto;padding:.4rem .5rem;display:flex;flex-direction:column;gap:1px}.filter-menu .value-row{display:flex;align-items:center;gap:.5rem;width:100%;box-sizing:border-box;padding:.4rem .5rem;border:none;border-radius:8px;background:transparent;cursor:pointer;text-align:left;color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium)}.filter-menu .value-row:hover{background:var(--mat-sys-surface-container-highest)}.filter-menu .value-row.selected{background:color-mix(in srgb,var(--mat-sys-primary) 12%,transparent)}.filter-menu .value-row .check-icon{flex-shrink:0;color:var(--mat-sys-on-surface-variant);font-size:1.25rem;width:1.25rem;height:1.25rem}.filter-menu .value-row.selected .check-icon{color:var(--mat-sys-primary)}.filter-menu .value-row .value-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-menu .value-row.select-all .value-label{font:var(--mat-sys-label-large)}.filter-menu .option-divider{height:1px;margin:.25rem;background:var(--mat-sys-outline-variant)}.filter-menu .option-empty{margin:0;padding:1rem;text-align:center;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}.filter-menu .filter-menu-footer{display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .4rem 1rem;border-top:1px solid var(--mat-sys-outline-variant)}.filter-menu .filter-menu-footer .selected-count{color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}app-dashboard-page :host{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}app-dashboard-page .page{flex:1;min-height:0;display:flex}app-dashboard-page .main{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;padding-right:.25rem}app-dashboard-page .config-drawer{flex:0 0 340px;max-width:90vw;border-left:1px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface);overflow:hidden}app-dashboard-page .visual-palette{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:.5rem;margin-bottom:.75rem;border:1px dashed var(--mat-sys-outline-variant);border-radius:10px}app-dashboard-page .visual-palette .palette-label{font:var(--mat-sys-label-medium);color:var(--mat-sys-on-surface-variant);margin-right:.25rem}app-dashboard-page .visual-palette .palette-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:1px solid var(--mat-sys-outline-variant);border-radius:999px;background:var(--mat-sys-surface-container);cursor:grab;color:var(--mat-sys-on-surface);font:var(--mat-sys-label-medium)}app-dashboard-page .visual-palette .palette-chip:hover{background:var(--mat-sys-surface-container-highest)}app-dashboard-page .visual-palette .palette-chip:active{cursor:grabbing}app-dashboard-page .visual-palette .palette-chip mat-icon{font-size:1.15rem;width:1.15rem;height:1.15rem;color:var(--mat-sys-on-surface-variant)}app-dashboard-page .drop-hint{grid-column:1/-1;text-align:center;color:var(--mat-sys-on-surface-variant);padding:2rem;margin:0}app-dashboard-page .filter-banner{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem;padding:.25rem .5rem .25rem .75rem;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary) 12%,transparent);width:fit-content;max-width:100%}app-dashboard-page .filter-banner mat-icon{color:var(--mat-sys-primary)}app-dashboard-page .filter-banner .filter-chip{font:var(--mat-sys-body-small)}app-dashboard-page .dashboard-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}app-dashboard-page .dashboard-header h2{margin:0;font:var(--mat-sys-headline-small)}app-dashboard-page .dashboard-header .spacer{flex:1}app-dashboard-page .widget-grid{display:grid;align-items:stretch;padding-bottom:1rem}app-dashboard-page .widget-grid.editing{background-image:linear-gradient(to right,var(--mat-sys-outline-variant) 1px,transparent 1px),linear-gradient(to bottom,var(--mat-sys-outline-variant) 1px,transparent 1px);background-size:calc((100% + 12px) / 12) 102px;background-position:-1px -1px;border-radius:8px}app-dashboard-page .tile{position:relative;min-width:0;min-height:0}app-dashboard-page .tile app-dashboard-widget{display:block;height:100%}app-dashboard-page .tile-drag{position:absolute;top:0;left:0;right:0;height:18px;z-index:3;display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--mat-sys-on-surface-variant);background:color-mix(in srgb,var(--mat-sys-primary) 12%,transparent);border-radius:12px 12px 0 0}app-dashboard-page .tile-drag:active{cursor:grabbing}app-dashboard-page .tile-drag mat-icon{font-size:.9rem;width:.9rem;height:.9rem}app-dashboard-page .tile-resize{position:absolute;right:2px;bottom:2px;width:18px;height:18px;z-index:3;cursor:nwse-resize;border-right:3px solid var(--mat-sys-primary);border-bottom:3px solid var(--mat-sys-primary);border-bottom-right-radius:6px;opacity:.7}app-dashboard-page .tile-resize:hover{opacity:1}app-dashboard-page .tile-field-drop{position:absolute;inset:18px 0 0;z-index:2;pointer-events:none}app-dashboard-page .tile-field-drop.hidden{display:none}app-dashboard-page .widget-grid.field-dragging .tile-field-drop:not(.hidden){pointer-events:auto}app-dashboard-page .widget-grid.field-dragging .tile-field-drop:not(.hidden):hover{background:color-mix(in srgb,var(--mat-sys-primary) 10%,transparent);outline:2px dashed var(--mat-sys-primary);outline-offset:-2px}app-dashboard-page .widget-grid.editing .tile{outline:1px dashed var(--mat-sys-outline);outline-offset:2px;border-radius:12px}app-dashboard-page .widget-grid.editing .tile app-dashboard-widget{padding-top:18px;display:block}app-dashboard-page .widget-grid.editing .tile.selected{outline:2px solid var(--mat-sys-primary)}@media(max-width:720px){app-dashboard-page .widget-grid{display:flex;flex-direction:column;gap:1rem}app-dashboard-page .tile{grid-column:auto!important;grid-row:auto!important;min-height:220px}app-dashboard-page .widget-grid.editing{background-image:none}}app-dashboard-page .state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--mat-sys-on-surface-variant)}app-dashboard-page .state mat-icon{font-size:2.5rem;width:2.5rem;height:2.5rem}app-dashboard-page .state p{margin:0}app-dashboard-page .state.error{color:var(--mat-sys-error)}app-dashboard-widget{--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #4a3aa7;--series-8: #e34948;--viz-other: #898781;display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) app-dashboard-widget{--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767}}:root[data-theme=dark] app-dashboard-widget{--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767}app-dashboard-widget .widget-card{height:100%;box-sizing:border-box;display:flex;flex-direction:column;padding:.6rem .7rem;gap:.2rem;overflow:hidden;container-type:size;container-name:widget-card}app-dashboard-widget .widget-card:hover .widget-delete{opacity:1}app-dashboard-widget .stat-card .widget-subtitle{display:none}app-dashboard-widget .stat-card .stat-value{flex:1;display:flex;align-items:center}app-dashboard-widget .widget-header{display:flex;align-items:flex-start;gap:.4rem}app-dashboard-widget .widget-titles{flex:1;display:flex;flex-direction:column;min-width:0;gap:.1rem}app-dashboard-widget .widget-title{font:var(--mat-sys-title-small)}app-dashboard-widget .widget-subtitle{color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-label-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}app-dashboard-widget .widget-delete{opacity:0;transition:opacity .12s;width:28px;height:28px;padding:2px}app-dashboard-widget .widget-delete mat-icon{font-size:1.1rem;width:1.1rem;height:1.1rem}app-dashboard-widget .state{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;color:var(--mat-sys-on-surface-variant)}app-dashboard-widget .state.error{color:var(--mat-sys-error)}app-dashboard-widget .stat-value{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:2.5rem;font-weight:600;line-height:1.1;padding:0}@container widget-card (max-height: 140px){app-dashboard-widget .stat-value{font-size:1.75rem;padding:0}app-dashboard-widget .widget-subtitle{display:none}}app-dashboard-widget .bar-chart{display:flex;flex-direction:column;gap:6px}app-dashboard-widget .bar-row{display:flex;align-items:center;gap:.5rem}app-dashboard-widget .bar-label{flex:0 0 110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}app-dashboard-widget .bar-track{flex:1}app-dashboard-widget .bar-fill{height:14px;background:var(--series-1);border-radius:0 4px 4px 0;min-width:2px;transition:opacity .12s}app-dashboard-widget .bar-row:hover .bar-fill{opacity:.8}app-dashboard-widget .bar-value{flex:0 0 56px;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small);font-variant-numeric:tabular-nums}app-dashboard-widget .line-chart{display:flex;flex-direction:column}app-dashboard-widget .line-chart svg{width:100%;height:auto}app-dashboard-widget .grid{stroke:var(--mat-sys-outline-variant);stroke-width:1}app-dashboard-widget .baseline{stroke:var(--mat-sys-outline);stroke-width:1}app-dashboard-widget .line-path{fill:none;stroke:var(--series-1);stroke-width:2;stroke-linejoin:round}app-dashboard-widget .line-dot{fill:var(--series-1);stroke:var(--mat-sys-surface);stroke-width:2}app-dashboard-widget .line-labels{display:flex;justify-content:space-between;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}app-dashboard-widget .donut-chart{display:flex;align-items:center;gap:1rem}app-dashboard-widget .donut-chart svg{flex:0 0 130px;width:130px;height:130px}app-dashboard-widget [data-slice="0"]{stroke:var(--series-1);background:var(--series-1)}app-dashboard-widget [data-slice="1"]{stroke:var(--series-2);background:var(--series-2)}app-dashboard-widget [data-slice="2"]{stroke:var(--series-3);background:var(--series-3)}app-dashboard-widget [data-slice="3"]{stroke:var(--series-4);background:var(--series-4)}app-dashboard-widget [data-slice="4"]{stroke:var(--series-5);background:var(--series-5)}app-dashboard-widget [data-slice="5"]{stroke:var(--series-6);background:var(--series-6)}app-dashboard-widget [data-slice="6"]{stroke:var(--series-7);background:var(--series-7)}app-dashboard-widget [data-slice="7"]{stroke:var(--series-8);background:var(--series-8)}app-dashboard-widget .donut-other{stroke:var(--viz-other);background:var(--viz-other)}app-dashboard-widget .donut-slice{transition:opacity .12s}app-dashboard-widget .donut-slice:hover{opacity:.8}app-dashboard-widget .donut-legend{flex:1;min-width:0;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}app-dashboard-widget .donut-legend li{display:flex;align-items:center;gap:.5rem}app-dashboard-widget .legend-chip{flex-shrink:0;width:10px;height:10px;border-radius:2px}app-dashboard-widget .legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--mat-sys-body-small)}app-dashboard-widget .legend-value{color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small);font-variant-numeric:tabular-nums}app-dashboard-widget .widget-config{opacity:0;transition:opacity .12s;width:28px;height:28px;padding:2px}app-dashboard-widget .widget-config mat-icon{font-size:1.1rem;width:1.1rem;height:1.1rem}app-dashboard-widget .widget-card:hover .widget-config{opacity:1}app-dashboard-widget .configure-prompt{flex-direction:column;gap:.5rem;flex:1}app-dashboard-widget .configure-prompt mat-icon{font-size:2rem;width:2rem;height:2rem;opacity:.6}app-dashboard-widget .column-chart{flex:1;min-height:120px;display:flex;align-items:flex-end;gap:6px;padding-top:.5rem}app-dashboard-widget .column-chart .column{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px}app-dashboard-widget .column-chart .column-fill{width:70%;max-width:42px;min-height:2px;border-radius:4px 4px 0 0;background:var(--series-1);transition:opacity .12s}app-dashboard-widget .column-chart .column:hover .column-fill{opacity:.8}app-dashboard-widget .column-chart .column-value{font:var(--mat-sys-label-small);font-variant-numeric:tabular-nums;color:var(--mat-sys-on-surface-variant)}app-dashboard-widget .column-chart .column-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--mat-sys-label-small);color:var(--mat-sys-on-surface-variant)}app-dashboard-widget .area-fill{fill:color-mix(in srgb,var(--series-1) 22%,transparent);stroke:none}app-dashboard-widget .gauge-chart{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}app-dashboard-widget .gauge-chart svg{width:100%;max-width:220px}app-dashboard-widget .gauge-chart .gauge-bg{fill:none;stroke:var(--mat-sys-surface-container-highest);stroke-width:12;stroke-linecap:round}app-dashboard-widget .gauge-chart .gauge-val{fill:none;stroke:var(--series-1);stroke-width:12;stroke-linecap:round}app-dashboard-widget .gauge-chart .gauge-value{font-size:2rem;font-weight:600;line-height:1;margin-top:-.5rem}app-dashboard-widget .gauge-chart .gauge-max{color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}app-dashboard-widget .clickable{cursor:pointer}app-dashboard-widget .bar-row.clickable:hover,app-dashboard-widget .tm-tile.clickable:hover,app-dashboard-widget .donut-legend li.clickable:hover{opacity:.82}app-dashboard-widget .ms-wrap{flex:1;min-height:0;display:flex;flex-direction:column;gap:.4rem}app-dashboard-widget .ms-column-chart{flex:1;min-height:110px;display:flex;align-items:flex-end;gap:8px;padding-top:.5rem}app-dashboard-widget .ms-column-chart .ms-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:3px}app-dashboard-widget .ms-column-chart .ms-col-stack{flex:1;display:flex;flex-direction:column-reverse;align-items:center;justify-content:flex-start}app-dashboard-widget .ms-column-chart .ms-col-stack.clustered{flex-direction:row;align-items:flex-end;justify-content:center;gap:2px}app-dashboard-widget .ms-column-chart .ms-seg{width:72%;max-width:44px;min-height:2px;border-radius:3px 3px 0 0}app-dashboard-widget .ms-column-chart .ms-col-stack.clustered .ms-seg{flex:1;width:auto;max-width:18px}app-dashboard-widget .ms-column-chart .ms-col-label{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--mat-sys-label-small);color:var(--mat-sys-on-surface-variant)}app-dashboard-widget .ms-bar-chart{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px}app-dashboard-widget .ms-bar-chart .ms-bar-row{display:flex;align-items:center;gap:.5rem}app-dashboard-widget .ms-bar-chart .ms-bar-label{flex:0 0 90px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--mat-sys-body-small);color:var(--mat-sys-on-surface-variant)}app-dashboard-widget .ms-bar-chart .ms-bar-track{flex:1;display:flex;height:14px}app-dashboard-widget .ms-bar-chart .ms-bar-track.clustered{flex-direction:column;height:auto;gap:2px}app-dashboard-widget .ms-bar-chart .ms-bar-seg{height:100%;min-width:1px}app-dashboard-widget .ms-bar-chart .ms-bar-track.clustered .ms-bar-seg{height:7px;border-radius:0 3px 3px 0}app-dashboard-widget .ms-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem .75rem}app-dashboard-widget .ms-legend li{display:inline-flex;align-items:center;gap:.3rem;font:var(--mat-sys-body-small);color:var(--mat-sys-on-surface-variant);max-width:140px}app-dashboard-widget .ms-legend li .legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}app-dashboard-widget .treemap{position:relative;flex:1;min-height:120px}app-dashboard-widget .tm-tile{position:absolute;box-sizing:border-box;border:1px solid var(--mat-sys-surface);border-radius:3px;overflow:hidden;padding:3px 5px;display:flex;flex-direction:column;color:#fff;transition:opacity .12s}app-dashboard-widget .tm-tile .tm-label{font:var(--mat-sys-label-small);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.45)}app-dashboard-widget .tm-tile .tm-value{font:var(--mat-sys-label-small);text-shadow:0 1px 2px rgba(0,0,0,.45)}app-dashboard-widget .widget-table-wrap{flex:1;overflow:auto;min-height:0}app-dashboard-widget .widget-table{width:100%;border-collapse:collapse;font:var(--mat-sys-body-small)}app-dashboard-widget .widget-table th{position:sticky;top:0;padding:.3rem .5rem;text-align:right;background:var(--mat-sys-surface-container);border-bottom:1px solid var(--mat-sys-outline-variant);font-weight:600;white-space:nowrap}app-dashboard-widget .widget-table td{padding:.3rem .5rem;border-bottom:1px solid var(--mat-sys-outline-variant)}app-dashboard-widget .widget-table tr.clickable{cursor:pointer}app-dashboard-widget .widget-table .wt-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}app-dashboard-widget .widget-table .wt-value{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}app-dashboard-widget .widget-table tr:hover td{background:var(--mat-sys-surface-container)}app-measures-dialog .measures-body{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem;min-width:480px}app-measures-dialog .list-header{display:flex;align-items:center;justify-content:space-between;font:var(--mat-sys-title-small)}app-measures-dialog .hint{margin:0;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}app-measures-dialog .measure-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}app-measures-dialog .measure-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--mat-sys-outline-variant);border-radius:10px}app-measures-dialog .measure-info{flex:1;min-width:0;display:flex;flex-direction:column}app-measures-dialog .measure-name{font:var(--mat-sys-title-small)}app-measures-dialog .measure-meta{color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}app-measures-dialog .draft-editor{display:flex;flex-direction:column;gap:.75rem}app-measures-dialog .full-width{width:100%}app-measures-dialog .test-row{display:flex;align-items:center;gap:.75rem}app-measures-dialog .test-value{font:var(--mat-sys-title-small);color:var(--mat-sys-primary)}app-measures-dialog .test-table{color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}app-measures-dialog .dax-input{font-family:Cascadia Code,Consolas,SFMono-Regular,Menlo,monospace;font-size:.85rem;resize:vertical}app-measures-dialog .test-error{color:var(--mat-sys-error);font:var(--mat-sys-body-small)}app-measures-dialog .error{color:var(--mat-sys-error);margin:0}app-measures-dialog .draft-actions{display:flex;justify-content:flex-end;gap:.5rem}app-widget-config-panel :host{display:flex;flex-direction:column;height:100%;min-height:0}app-widget-config-panel .cfg-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem 1rem;border-bottom:1px solid var(--mat-sys-outline-variant)}app-widget-config-panel .cfg-header .cfg-title{flex:1;font:var(--mat-sys-title-small)}app-widget-config-panel .cfg-body{flex:1;min-height:0;overflow-y:auto;padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.6rem}app-widget-config-panel .cfg-section{font:var(--mat-sys-label-medium);color:var(--mat-sys-on-surface-variant);margin-top:.25rem}app-widget-config-panel .visual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}app-widget-config-panel .visual-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:.5rem .25rem;border:1px solid var(--mat-sys-outline-variant);border-radius:8px;background:transparent;cursor:pointer;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-label-small)}app-widget-config-panel .visual-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}app-widget-config-panel .visual-chip mat-icon{color:var(--mat-sys-on-surface-variant)}app-widget-config-panel .visual-chip:hover{background:var(--mat-sys-surface-container-highest)}app-widget-config-panel .visual-chip.active{border-color:var(--mat-sys-primary);color:var(--mat-sys-primary);background:color-mix(in srgb,var(--mat-sys-primary) 10%,transparent)}app-widget-config-panel .visual-chip.active mat-icon{color:var(--mat-sys-primary)}app-widget-config-panel .full{width:100%}app-widget-config-panel .cfg-row{display:flex;gap:.5rem}app-widget-config-panel .cfg-row .grow{flex:1;min-width:0}app-widget-config-panel .source-toggle .visual-chip{flex:1;flex-direction:row;justify-content:center;padding:.4rem .5rem}app-widget-config-panel .dax-input{font-family:Cascadia Code,Consolas,SFMono-Regular,Menlo,monospace;font-size:.8rem;resize:vertical}app-widget-config-panel .dax-test-row{align-items:center}app-widget-config-panel .dax-test-row .dax-test-value{font:var(--mat-sys-title-small);color:var(--mat-sys-primary)}app-widget-config-panel .dax-test-row .dax-test-error{color:var(--mat-sys-error);font:var(--mat-sys-body-small)}app-widget-config-panel .cfg-field-header{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}app-widget-config-panel .cfg-mini-label{font:var(--mat-sys-label-medium);color:var(--mat-sys-on-surface-variant)}app-widget-config-panel .cfg-dax-toggle{border:1px solid var(--mat-sys-outline-variant);border-radius:999px;background:transparent;padding:.15rem .6rem;font:var(--mat-sys-label-small);color:var(--mat-sys-on-surface-variant);cursor:pointer}app-widget-config-panel .cfg-dax-toggle.active{border-color:var(--mat-sys-primary);color:var(--mat-sys-primary);background:color-mix(in srgb,var(--mat-sys-primary) 10%,transparent)}app-widget-config-panel .cfg-hint{margin:0;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-body-small)}app-widget-config-panel .field-list{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem;border:1px dashed var(--mat-sys-outline-variant);border-radius:10px;min-height:2.2rem}app-widget-config-panel .field-list-hint{margin-top:-.25rem}app-widget-config-panel .field-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border:1px solid var(--mat-sys-outline-variant);border-radius:999px;background:var(--mat-sys-surface-container);cursor:grab;-webkit-user-select:none;user-select:none}app-widget-config-panel .field-chip:active{cursor:grabbing}app-widget-config-panel .field-chip mat-icon{font-size:1rem;width:1rem;height:1rem;color:var(--mat-sys-on-surface-variant);flex-shrink:0}app-widget-config-panel .field-chip .field-chip-text{display:flex;flex-direction:column;line-height:1.15}app-widget-config-panel .field-chip .field-chip-label{font:var(--mat-sys-label-medium)}app-widget-config-panel .field-chip .field-chip-preview{font:var(--mat-sys-label-small);color:var(--mat-sys-on-surface-variant)}app-widget-config-panel .field-chip.cdk-drag-preview{box-shadow:0 4px 12px #0003}app-widget-config-panel .field-chip.cdk-drag-placeholder{opacity:.3}app-widget-config-panel .well-field.cdk-drop-list-dragging ::ng-deep .mat-mdc-form-field-flex,app-widget-config-panel .well-field.cdk-drop-list-receiving ::ng-deep .mat-mdc-form-field-flex{outline:2px dashed var(--mat-sys-primary);outline-offset:2px;border-radius:4px}
