osi-cards-lib 1.5.45 → 1.5.46
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/fesm2022/osi-cards-lib.mjs +705 -503
- package/fesm2022/osi-cards-lib.mjs.map +1 -1
- package/index.d.ts +128 -41
- package/package.json +4 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, inject, DestroyRef, NgZone, InjectionToken, PLATFORM_ID, Optional, Inject, signal, computed, Input, ChangeDetectionStrategy, Component, EventEmitter, Output, ChangeDetectorRef, ViewChild, ElementRef, Renderer2, HostListener, Directive, NgModule, makeEnvironmentProviders, ViewEncapsulation, ViewContainerRef, Injector, isDevMode, HostBinding, TemplateRef } from '@angular/core';
|
|
2
|
+
import { Injectable, inject, DestroyRef, NgZone, InjectionToken, PLATFORM_ID, Optional, Inject, signal, computed, Input, ChangeDetectionStrategy, Component, EventEmitter, Output, ChangeDetectorRef, effect, ViewChild, ElementRef, Renderer2, HostListener, Directive, NgModule, makeEnvironmentProviders, ViewEncapsulation, ViewContainerRef, Injector, isDevMode, HostBinding, TemplateRef } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { BehaviorSubject, Subject, filter, map, fromEvent, takeUntil, EMPTY, ReplaySubject, throwError, timer, firstValueFrom, merge, interval, catchError as catchError$1, of } from 'rxjs';
|
|
5
5
|
import { tap, filter as filter$1, catchError, shareReplay, retryWhen, mergeMap, map as map$1, distinctUntilChanged, takeUntil as takeUntil$1 } from 'rxjs/operators';
|
|
@@ -7,6 +7,7 @@ import * as i1 from '@angular/common';
|
|
|
7
7
|
import { DOCUMENT, isPlatformBrowser, CommonModule } from '@angular/common';
|
|
8
8
|
import { __decorate } from 'tslib';
|
|
9
9
|
import { HttpClient } from '@angular/common/http';
|
|
10
|
+
import { BaseChartDirective } from 'ng2-charts';
|
|
10
11
|
import { FormsModule } from '@angular/forms';
|
|
11
12
|
import * as i1$1 from '@angular/platform-browser';
|
|
12
13
|
import * as i2 from 'lucide-angular';
|
|
@@ -4905,8 +4906,8 @@ function getSectionsRequiringExternalLibs() {
|
|
|
4905
4906
|
* Manifest metadata
|
|
4906
4907
|
*/
|
|
4907
4908
|
const MANIFEST_META = {
|
|
4908
|
-
generatedAt: '2026-01-
|
|
4909
|
-
registryVersion: '1.5.
|
|
4909
|
+
generatedAt: '2026-01-08T13:31:21.254Z',
|
|
4910
|
+
registryVersion: '1.5.46',
|
|
4910
4911
|
totalSections: 20,
|
|
4911
4912
|
publicSections: 20
|
|
4912
4913
|
};
|
|
@@ -18569,553 +18570,758 @@ var brandColorsSection_component = /*#__PURE__*/Object.freeze({
|
|
|
18569
18570
|
});
|
|
18570
18571
|
|
|
18571
18572
|
/**
|
|
18572
|
-
*
|
|
18573
|
+
* Abstract Base Classes for Section Patterns
|
|
18573
18574
|
*
|
|
18574
|
-
* Provides
|
|
18575
|
-
*
|
|
18576
|
-
*
|
|
18575
|
+
* Provides specialized abstract base classes for different section types:
|
|
18576
|
+
* - FieldBasedSectionComponent: For sections that primarily display fields
|
|
18577
|
+
* - ItemBasedSectionComponent: For sections that primarily display items/lists
|
|
18578
|
+
* - ChartSectionBaseComponent: For sections with data visualizations
|
|
18579
|
+
* - MixedContentSectionComponent: For sections with both fields and items
|
|
18580
|
+
*
|
|
18581
|
+
* @module components/sections/abstract-section-bases
|
|
18582
|
+
*/
|
|
18583
|
+
// ============================================================================
|
|
18584
|
+
// FIELD-BASED SECTION
|
|
18585
|
+
// ============================================================================
|
|
18586
|
+
/**
|
|
18587
|
+
* Abstract base for sections that primarily display fields (key-value pairs).
|
|
18588
|
+
*
|
|
18589
|
+
* Use this for sections like:
|
|
18590
|
+
* - Info Section
|
|
18591
|
+
* - Analytics Section
|
|
18592
|
+
* - Financials Section
|
|
18593
|
+
* - Overview Section
|
|
18577
18594
|
*
|
|
18578
18595
|
* @example
|
|
18579
18596
|
* ```typescript
|
|
18580
|
-
*
|
|
18581
|
-
*
|
|
18582
|
-
*
|
|
18583
|
-
*
|
|
18584
|
-
*
|
|
18585
|
-
*
|
|
18597
|
+
* @Component({...})
|
|
18598
|
+
* export class InfoSectionComponent extends FieldBasedSectionComponent {
|
|
18599
|
+
* static override readonly layoutConfig: SectionLayoutConfig = {
|
|
18600
|
+
* preferredColumns: 1,
|
|
18601
|
+
* minColumns: 1,
|
|
18602
|
+
* maxColumns: 2,
|
|
18603
|
+
* expandOnFieldCount: 6
|
|
18604
|
+
* };
|
|
18586
18605
|
* }
|
|
18587
18606
|
* ```
|
|
18588
18607
|
*/
|
|
18608
|
+
class FieldBasedSectionComponent extends BaseSectionComponent {
|
|
18609
|
+
constructor() {
|
|
18610
|
+
super(...arguments);
|
|
18611
|
+
/**
|
|
18612
|
+
* Fields to display (computed from section)
|
|
18613
|
+
*/
|
|
18614
|
+
this.displayFields = computed(() => this.getDisplayFields(), ...(ngDevMode ? [{ debugName: "displayFields" }] : []));
|
|
18615
|
+
/**
|
|
18616
|
+
* Number of visible fields
|
|
18617
|
+
*/
|
|
18618
|
+
this.fieldCount = computed(() => this.displayFields().length, ...(ngDevMode ? [{ debugName: "fieldCount" }] : []));
|
|
18619
|
+
/**
|
|
18620
|
+
* Whether the section has displayable content
|
|
18621
|
+
*/
|
|
18622
|
+
this.hasContent = computed(() => this.fieldCount() > 0, ...(ngDevMode ? [{ debugName: "hasContent" }] : []));
|
|
18623
|
+
}
|
|
18624
|
+
/**
|
|
18625
|
+
* Override in subclass to customize layout behavior
|
|
18626
|
+
*/
|
|
18627
|
+
static { this.layoutConfig = {
|
|
18628
|
+
...DEFAULT_LAYOUT_CONFIG$1,
|
|
18629
|
+
expandOnFieldCount: 5,
|
|
18630
|
+
}; }
|
|
18631
|
+
/**
|
|
18632
|
+
* Get fields filtered for display (removes streaming placeholders)
|
|
18633
|
+
*/
|
|
18634
|
+
getDisplayFields() {
|
|
18635
|
+
return this.getFields().filter((field) => {
|
|
18636
|
+
const value = this.getFieldValue(field);
|
|
18637
|
+
return value !== undefined && value !== null && !this.isStreamingPlaceholder(value);
|
|
18638
|
+
});
|
|
18639
|
+
}
|
|
18640
|
+
/**
|
|
18641
|
+
* Format field value for display
|
|
18642
|
+
*/
|
|
18643
|
+
formatFieldValue(field) {
|
|
18644
|
+
const value = this.getFieldValue(field);
|
|
18645
|
+
if (value === null || value === undefined) {
|
|
18646
|
+
return '';
|
|
18647
|
+
}
|
|
18648
|
+
// Handle formatting based on field.format
|
|
18649
|
+
switch (field.format) {
|
|
18650
|
+
case 'currency':
|
|
18651
|
+
return this.formatCurrency(value);
|
|
18652
|
+
case 'percentage':
|
|
18653
|
+
return this.formatPercentage(value);
|
|
18654
|
+
case 'number':
|
|
18655
|
+
return this.formatNumber(value);
|
|
18656
|
+
default:
|
|
18657
|
+
return String(value);
|
|
18658
|
+
}
|
|
18659
|
+
}
|
|
18660
|
+
/**
|
|
18661
|
+
* Format value as currency
|
|
18662
|
+
*/
|
|
18663
|
+
formatCurrency(value) {
|
|
18664
|
+
if (typeof value === 'number') {
|
|
18665
|
+
return new Intl.NumberFormat('en-US', {
|
|
18666
|
+
style: 'currency',
|
|
18667
|
+
currency: 'USD',
|
|
18668
|
+
}).format(value);
|
|
18669
|
+
}
|
|
18670
|
+
return String(value);
|
|
18671
|
+
}
|
|
18672
|
+
/**
|
|
18673
|
+
* Format value as percentage
|
|
18674
|
+
*/
|
|
18675
|
+
formatPercentage(value) {
|
|
18676
|
+
if (typeof value === 'number') {
|
|
18677
|
+
return `${value}%`;
|
|
18678
|
+
}
|
|
18679
|
+
return String(value);
|
|
18680
|
+
}
|
|
18681
|
+
/**
|
|
18682
|
+
* Format value as number
|
|
18683
|
+
*/
|
|
18684
|
+
formatNumber(value) {
|
|
18685
|
+
if (typeof value === 'number') {
|
|
18686
|
+
return new Intl.NumberFormat('en-US').format(value);
|
|
18687
|
+
}
|
|
18688
|
+
return String(value);
|
|
18689
|
+
}
|
|
18690
|
+
/**
|
|
18691
|
+
* Handle field click
|
|
18692
|
+
*/
|
|
18693
|
+
onFieldClick(field, index) {
|
|
18694
|
+
this.emitFieldInteraction(field, {
|
|
18695
|
+
action: 'click',
|
|
18696
|
+
index,
|
|
18697
|
+
});
|
|
18698
|
+
}
|
|
18699
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: FieldBasedSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18700
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: FieldBasedSectionComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18701
|
+
}
|
|
18702
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: FieldBasedSectionComponent, decorators: [{
|
|
18703
|
+
type: Component,
|
|
18704
|
+
args: [{
|
|
18705
|
+
template: '',
|
|
18706
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18707
|
+
}]
|
|
18708
|
+
}] });
|
|
18709
|
+
// ============================================================================
|
|
18710
|
+
// ITEM-BASED SECTION
|
|
18711
|
+
// ============================================================================
|
|
18589
18712
|
/**
|
|
18590
|
-
*
|
|
18713
|
+
* Abstract base for sections that primarily display items (lists, cards).
|
|
18591
18714
|
*
|
|
18592
|
-
*
|
|
18593
|
-
*
|
|
18594
|
-
*
|
|
18715
|
+
* Use this for sections like:
|
|
18716
|
+
* - List Section
|
|
18717
|
+
* - News Section
|
|
18718
|
+
* - Network Card Section
|
|
18719
|
+
*
|
|
18720
|
+
* @example
|
|
18721
|
+
* ```typescript
|
|
18722
|
+
* @Component({...})
|
|
18723
|
+
* export class ListSectionComponent extends ItemBasedSectionComponent {
|
|
18724
|
+
* static override readonly layoutConfig: SectionLayoutConfig = {
|
|
18725
|
+
* preferredColumns: 1,
|
|
18726
|
+
* minColumns: 1,
|
|
18727
|
+
* maxColumns: 2,
|
|
18728
|
+
* expandOnItemCount: 4
|
|
18729
|
+
* };
|
|
18730
|
+
* }
|
|
18731
|
+
* ```
|
|
18732
|
+
*/
|
|
18733
|
+
class ItemBasedSectionComponent extends BaseSectionComponent {
|
|
18734
|
+
constructor() {
|
|
18735
|
+
super(...arguments);
|
|
18736
|
+
/**
|
|
18737
|
+
* Maximum items to show before "show more"
|
|
18738
|
+
*/
|
|
18739
|
+
this.maxVisibleItems = 10;
|
|
18740
|
+
/**
|
|
18741
|
+
* Whether to show expand/collapse toggle
|
|
18742
|
+
*/
|
|
18743
|
+
this.showExpandToggle = true;
|
|
18744
|
+
/**
|
|
18745
|
+
* Expanded state
|
|
18746
|
+
*/
|
|
18747
|
+
this.isExpanded = signal(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
|
|
18748
|
+
/**
|
|
18749
|
+
* Items to display (computed from section)
|
|
18750
|
+
*/
|
|
18751
|
+
this.displayItems = computed(() => this.getDisplayItems(), ...(ngDevMode ? [{ debugName: "displayItems" }] : []));
|
|
18752
|
+
/**
|
|
18753
|
+
* Total item count
|
|
18754
|
+
*/
|
|
18755
|
+
this.itemCount = computed(() => this.displayItems().length, ...(ngDevMode ? [{ debugName: "itemCount" }] : []));
|
|
18756
|
+
/**
|
|
18757
|
+
* Visible items (respects maxVisibleItems when collapsed)
|
|
18758
|
+
*/
|
|
18759
|
+
this.visibleItems = computed(() => {
|
|
18760
|
+
const items = this.displayItems();
|
|
18761
|
+
if (this.isExpanded() || items.length <= this.maxVisibleItems) {
|
|
18762
|
+
return items;
|
|
18763
|
+
}
|
|
18764
|
+
return items.slice(0, this.maxVisibleItems);
|
|
18765
|
+
}, ...(ngDevMode ? [{ debugName: "visibleItems" }] : []));
|
|
18766
|
+
/**
|
|
18767
|
+
* Whether there are more items to show
|
|
18768
|
+
*/
|
|
18769
|
+
this.hasMoreItems = computed(() => this.displayItems().length > this.maxVisibleItems, ...(ngDevMode ? [{ debugName: "hasMoreItems" }] : []));
|
|
18770
|
+
/**
|
|
18771
|
+
* Number of hidden items
|
|
18772
|
+
*/
|
|
18773
|
+
this.hiddenItemCount = computed(() => Math.max(0, this.displayItems().length - this.maxVisibleItems), ...(ngDevMode ? [{ debugName: "hiddenItemCount" }] : []));
|
|
18774
|
+
/**
|
|
18775
|
+
* Whether the section has displayable content
|
|
18776
|
+
*/
|
|
18777
|
+
this.hasContent = computed(() => this.itemCount() > 0, ...(ngDevMode ? [{ debugName: "hasContent" }] : []));
|
|
18778
|
+
}
|
|
18779
|
+
/**
|
|
18780
|
+
* Override in subclass to customize layout behavior
|
|
18781
|
+
*/
|
|
18782
|
+
static { this.layoutConfig = {
|
|
18783
|
+
...DEFAULT_LAYOUT_CONFIG$1,
|
|
18784
|
+
expandOnItemCount: 4,
|
|
18785
|
+
}; }
|
|
18786
|
+
/**
|
|
18787
|
+
* Get items filtered for display
|
|
18788
|
+
*/
|
|
18789
|
+
getDisplayItems() {
|
|
18790
|
+
return this.getItems().filter((item) => {
|
|
18791
|
+
const title = item.title;
|
|
18792
|
+
return title !== undefined && title !== null && !this.isStreamingPlaceholder(title);
|
|
18793
|
+
});
|
|
18794
|
+
}
|
|
18795
|
+
/**
|
|
18796
|
+
* Toggle expanded state
|
|
18797
|
+
*/
|
|
18798
|
+
toggleExpanded() {
|
|
18799
|
+
this.isExpanded.update((v) => !v);
|
|
18800
|
+
}
|
|
18801
|
+
/**
|
|
18802
|
+
* Expand to show all items
|
|
18803
|
+
*/
|
|
18804
|
+
expand() {
|
|
18805
|
+
this.isExpanded.set(true);
|
|
18806
|
+
}
|
|
18807
|
+
/**
|
|
18808
|
+
* Collapse to show limited items
|
|
18809
|
+
*/
|
|
18810
|
+
collapse() {
|
|
18811
|
+
this.isExpanded.set(false);
|
|
18812
|
+
}
|
|
18813
|
+
/**
|
|
18814
|
+
* Handle item click
|
|
18815
|
+
*/
|
|
18816
|
+
onItemClick(item, index) {
|
|
18817
|
+
this.emitItemInteraction(item, {
|
|
18818
|
+
action: 'click',
|
|
18819
|
+
index,
|
|
18820
|
+
});
|
|
18821
|
+
}
|
|
18822
|
+
/**
|
|
18823
|
+
* Handle item action (e.g., link click)
|
|
18824
|
+
*/
|
|
18825
|
+
onItemAction(item, action) {
|
|
18826
|
+
const meta = item.meta;
|
|
18827
|
+
this.emitItemInteraction(item, {
|
|
18828
|
+
action,
|
|
18829
|
+
url: meta?.['url'],
|
|
18830
|
+
linkText: meta?.['linkText'],
|
|
18831
|
+
});
|
|
18832
|
+
}
|
|
18833
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ItemBasedSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18834
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ItemBasedSectionComponent, isStandalone: true, selector: "ng-component", inputs: { maxVisibleItems: "maxVisibleItems", showExpandToggle: "showExpandToggle" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18835
|
+
}
|
|
18836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ItemBasedSectionComponent, decorators: [{
|
|
18837
|
+
type: Component,
|
|
18838
|
+
args: [{
|
|
18839
|
+
template: '',
|
|
18840
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18841
|
+
}]
|
|
18842
|
+
}], propDecorators: { maxVisibleItems: [{
|
|
18843
|
+
type: Input
|
|
18844
|
+
}], showExpandToggle: [{
|
|
18845
|
+
type: Input
|
|
18846
|
+
}] } });
|
|
18847
|
+
/**
|
|
18848
|
+
* Abstract base for sections with data visualizations.
|
|
18595
18849
|
*
|
|
18596
|
-
*
|
|
18597
|
-
*
|
|
18598
|
-
*
|
|
18850
|
+
* Use this for:
|
|
18851
|
+
* - Chart Section
|
|
18852
|
+
* - Analytics sections with charts
|
|
18599
18853
|
*
|
|
18600
18854
|
* @example
|
|
18601
18855
|
* ```typescript
|
|
18602
|
-
*
|
|
18603
|
-
*
|
|
18604
|
-
*
|
|
18605
|
-
*
|
|
18606
|
-
*
|
|
18856
|
+
* @Component({...})
|
|
18857
|
+
* export class ChartSectionComponent extends ChartSectionBaseComponent {
|
|
18858
|
+
* static override readonly layoutConfig: SectionLayoutConfig = {
|
|
18859
|
+
* preferredColumns: 2,
|
|
18860
|
+
* minColumns: 1,
|
|
18861
|
+
* maxColumns: 4
|
|
18862
|
+
* };
|
|
18607
18863
|
* }
|
|
18608
18864
|
* ```
|
|
18609
18865
|
*/
|
|
18610
|
-
|
|
18611
|
-
|
|
18612
|
-
|
|
18613
|
-
|
|
18614
|
-
|
|
18615
|
-
|
|
18616
|
-
|
|
18617
|
-
|
|
18618
|
-
|
|
18619
|
-
|
|
18620
|
-
|
|
18621
|
-
|
|
18622
|
-
|
|
18623
|
-
|
|
18866
|
+
class ChartSectionBaseComponent extends BaseSectionComponent {
|
|
18867
|
+
constructor() {
|
|
18868
|
+
super(...arguments);
|
|
18869
|
+
/**
|
|
18870
|
+
* Whether the chart library is loaded
|
|
18871
|
+
*/
|
|
18872
|
+
this.chartLibraryLoaded = signal(false, ...(ngDevMode ? [{ debugName: "chartLibraryLoaded" }] : []));
|
|
18873
|
+
/**
|
|
18874
|
+
* Chart loading error
|
|
18875
|
+
*/
|
|
18876
|
+
this.chartError = signal(null, ...(ngDevMode ? [{ debugName: "chartError" }] : []));
|
|
18877
|
+
/**
|
|
18878
|
+
* Chart type (bar, line, pie, doughnut)
|
|
18879
|
+
*/
|
|
18880
|
+
this.chartType = computed(() => this.section.chartType ?? 'bar', ...(ngDevMode ? [{ debugName: "chartType" }] : []));
|
|
18881
|
+
/**
|
|
18882
|
+
* Processed chart configuration
|
|
18883
|
+
*/
|
|
18884
|
+
this.chartConfig = computed(() => {
|
|
18885
|
+
const chartData = this.section.chartData;
|
|
18886
|
+
if (!chartData)
|
|
18887
|
+
return null;
|
|
18888
|
+
return {
|
|
18889
|
+
type: this.chartType(),
|
|
18890
|
+
labels: chartData.labels ?? [],
|
|
18891
|
+
datasets: (chartData.datasets ?? []).map((ds) => {
|
|
18892
|
+
const dataset = {
|
|
18893
|
+
label: ds.label,
|
|
18894
|
+
data: ds.data.map((v) => (v === null ? 0 : v)),
|
|
18895
|
+
borderWidth: ds.borderWidth ?? 1,
|
|
18896
|
+
};
|
|
18897
|
+
// Only add optional properties if defined
|
|
18898
|
+
if (ds.backgroundColor !== undefined) {
|
|
18899
|
+
dataset.backgroundColor = ds.backgroundColor;
|
|
18900
|
+
}
|
|
18901
|
+
if (ds.borderColor !== undefined) {
|
|
18902
|
+
dataset.borderColor = ds.borderColor;
|
|
18903
|
+
}
|
|
18904
|
+
return dataset;
|
|
18905
|
+
}),
|
|
18906
|
+
};
|
|
18907
|
+
}, ...(ngDevMode ? [{ debugName: "chartConfig" }] : []));
|
|
18908
|
+
/**
|
|
18909
|
+
* Whether the chart has valid data
|
|
18910
|
+
*/
|
|
18911
|
+
this.hasValidData = computed(() => {
|
|
18912
|
+
const config = this.chartConfig();
|
|
18913
|
+
return (config !== null &&
|
|
18914
|
+
config.datasets.length > 0 &&
|
|
18915
|
+
config.datasets.some((ds) => ds.data.length > 0));
|
|
18916
|
+
}, ...(ngDevMode ? [{ debugName: "hasValidData" }] : []));
|
|
18917
|
+
/**
|
|
18918
|
+
* Total value across all datasets
|
|
18919
|
+
*/
|
|
18920
|
+
this.totalValue = computed(() => {
|
|
18921
|
+
const config = this.chartConfig();
|
|
18922
|
+
if (!config)
|
|
18923
|
+
return 0;
|
|
18924
|
+
return config.datasets.reduce((sum, ds) => sum + ds.data.reduce((a, b) => a + b, 0), 0);
|
|
18925
|
+
}, ...(ngDevMode ? [{ debugName: "totalValue" }] : []));
|
|
18624
18926
|
}
|
|
18625
|
-
|
|
18626
|
-
|
|
18627
|
-
|
|
18628
|
-
|
|
18629
|
-
|
|
18630
|
-
|
|
18631
|
-
|
|
18632
|
-
|
|
18633
|
-
|
|
18634
|
-
|
|
18635
|
-
|
|
18636
|
-
:
|
|
18637
|
-
|
|
18638
|
-
|
|
18639
|
-
|
|
18640
|
-
|
|
18927
|
+
/**
|
|
18928
|
+
* Override in subclass to customize layout behavior
|
|
18929
|
+
*/
|
|
18930
|
+
static { this.layoutConfig = {
|
|
18931
|
+
...DEFAULT_LAYOUT_CONFIG$1,
|
|
18932
|
+
preferredColumns: 2,
|
|
18933
|
+
}; }
|
|
18934
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ChartSectionBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18935
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ChartSectionBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18936
|
+
}
|
|
18937
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ChartSectionBaseComponent, decorators: [{
|
|
18938
|
+
type: Component,
|
|
18939
|
+
args: [{
|
|
18940
|
+
template: '',
|
|
18941
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18942
|
+
}]
|
|
18943
|
+
}] });
|
|
18944
|
+
// ============================================================================
|
|
18945
|
+
// MIXED CONTENT SECTION
|
|
18946
|
+
// ============================================================================
|
|
18947
|
+
/**
|
|
18948
|
+
* Abstract base for sections with both fields and items.
|
|
18949
|
+
*
|
|
18950
|
+
* Use this for:
|
|
18951
|
+
* - Event Section (event details + timeline items)
|
|
18952
|
+
* - Solutions Section (overview fields + solution items)
|
|
18953
|
+
* - Social Media Section (profile fields + posts)
|
|
18954
|
+
*
|
|
18955
|
+
* @example
|
|
18956
|
+
* ```typescript
|
|
18957
|
+
* @Component({...})
|
|
18958
|
+
* export class EventSectionComponent extends MixedContentSectionComponent {
|
|
18959
|
+
* static override readonly layoutConfig: SectionLayoutConfig = {
|
|
18960
|
+
* preferredColumns: 1,
|
|
18961
|
+
* minColumns: 1,
|
|
18962
|
+
* maxColumns: 2
|
|
18963
|
+
* };
|
|
18964
|
+
* }
|
|
18965
|
+
* ```
|
|
18966
|
+
*/
|
|
18967
|
+
class MixedContentSectionComponent extends BaseSectionComponent {
|
|
18968
|
+
constructor() {
|
|
18969
|
+
super(...arguments);
|
|
18970
|
+
/**
|
|
18971
|
+
* Fields to display
|
|
18972
|
+
*/
|
|
18973
|
+
this.displayFields = computed(() => this.getFilteredFields(), ...(ngDevMode ? [{ debugName: "displayFields" }] : []));
|
|
18974
|
+
/**
|
|
18975
|
+
* Items to display
|
|
18976
|
+
*/
|
|
18977
|
+
this.displayItems = computed(() => this.getFilteredItems(), ...(ngDevMode ? [{ debugName: "displayItems" }] : []));
|
|
18978
|
+
/**
|
|
18979
|
+
* Field count
|
|
18980
|
+
*/
|
|
18981
|
+
this.fieldCount = computed(() => this.displayFields().length, ...(ngDevMode ? [{ debugName: "fieldCount" }] : []));
|
|
18982
|
+
/**
|
|
18983
|
+
* Item count
|
|
18984
|
+
*/
|
|
18985
|
+
this.itemCount = computed(() => this.displayItems().length, ...(ngDevMode ? [{ debugName: "itemCount" }] : []));
|
|
18986
|
+
/**
|
|
18987
|
+
* Whether section has any displayable content
|
|
18988
|
+
*/
|
|
18989
|
+
this.hasContent = computed(() => this.fieldCount() > 0 || this.itemCount() > 0, ...(ngDevMode ? [{ debugName: "hasContent" }] : []));
|
|
18990
|
+
/**
|
|
18991
|
+
* Whether section has both fields and items
|
|
18992
|
+
*/
|
|
18993
|
+
this.hasMixedContent = computed(() => this.fieldCount() > 0 && this.itemCount() > 0, ...(ngDevMode ? [{ debugName: "hasMixedContent" }] : []));
|
|
18994
|
+
}
|
|
18995
|
+
/**
|
|
18996
|
+
* Override in subclass to customize layout behavior
|
|
18997
|
+
*/
|
|
18998
|
+
static { this.layoutConfig = DEFAULT_LAYOUT_CONFIG$1; }
|
|
18999
|
+
/**
|
|
19000
|
+
* Get filtered fields for display
|
|
19001
|
+
*/
|
|
19002
|
+
getFilteredFields() {
|
|
19003
|
+
return this.getFields().filter((field) => {
|
|
19004
|
+
const value = this.getFieldValue(field);
|
|
19005
|
+
return value !== undefined && value !== null && !this.isStreamingPlaceholder(value);
|
|
19006
|
+
});
|
|
19007
|
+
}
|
|
19008
|
+
/**
|
|
19009
|
+
* Get filtered items for display
|
|
19010
|
+
*/
|
|
19011
|
+
getFilteredItems() {
|
|
19012
|
+
return this.getItems().filter((item) => {
|
|
19013
|
+
const title = item.title;
|
|
19014
|
+
return title !== undefined && title !== null && !this.isStreamingPlaceholder(title);
|
|
19015
|
+
});
|
|
19016
|
+
}
|
|
19017
|
+
/**
|
|
19018
|
+
* Handle field interaction
|
|
19019
|
+
*/
|
|
19020
|
+
onFieldClick(field, index) {
|
|
19021
|
+
this.emitFieldInteraction(field, {
|
|
19022
|
+
action: 'click',
|
|
19023
|
+
index,
|
|
19024
|
+
contentType: 'field',
|
|
19025
|
+
});
|
|
19026
|
+
}
|
|
19027
|
+
/**
|
|
19028
|
+
* Handle item interaction
|
|
19029
|
+
*/
|
|
19030
|
+
onItemClick(item, index) {
|
|
19031
|
+
// Type assertion needed since MixedContent handles both CardField and CardItem
|
|
19032
|
+
this.emitItemInteraction(item, {
|
|
19033
|
+
action: 'click',
|
|
19034
|
+
index,
|
|
19035
|
+
contentType: 'item',
|
|
19036
|
+
});
|
|
19037
|
+
}
|
|
19038
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: MixedContentSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19039
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: MixedContentSectionComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19040
|
+
}
|
|
19041
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: MixedContentSectionComponent, decorators: [{
|
|
19042
|
+
type: Component,
|
|
19043
|
+
args: [{
|
|
19044
|
+
template: '',
|
|
19045
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
19046
|
+
}]
|
|
19047
|
+
}] });
|
|
19048
|
+
/**
|
|
19049
|
+
* Abstract base for contact/profile sections.
|
|
19050
|
+
*
|
|
19051
|
+
* Use this for:
|
|
19052
|
+
* - Contact Card Section
|
|
19053
|
+
* - Profile sections
|
|
19054
|
+
*
|
|
19055
|
+
* @example
|
|
19056
|
+
* ```typescript
|
|
19057
|
+
* @Component({...})
|
|
19058
|
+
* export class ContactCardSectionComponent extends ContactSectionBaseComponent {
|
|
19059
|
+
* static override readonly layoutConfig: SectionLayoutConfig = {
|
|
19060
|
+
* preferredColumns: 2,
|
|
19061
|
+
* minColumns: 1,
|
|
19062
|
+
* maxColumns: 2
|
|
19063
|
+
* };
|
|
19064
|
+
* }
|
|
19065
|
+
* ```
|
|
19066
|
+
*/
|
|
19067
|
+
class ContactSectionBaseComponent extends FieldBasedSectionComponent {
|
|
19068
|
+
constructor() {
|
|
19069
|
+
super(...arguments);
|
|
19070
|
+
/**
|
|
19071
|
+
* Extracted contact information
|
|
19072
|
+
*/
|
|
19073
|
+
this.contactInfo = computed(() => {
|
|
19074
|
+
const fields = this.getFields();
|
|
19075
|
+
const info = {};
|
|
19076
|
+
for (const field of fields) {
|
|
19077
|
+
const label = (field.label ?? '').toLowerCase();
|
|
19078
|
+
const value = this.getFieldValue(field);
|
|
19079
|
+
if (typeof value !== 'string')
|
|
19080
|
+
continue;
|
|
19081
|
+
if (label.includes('name'))
|
|
19082
|
+
info.name = value;
|
|
19083
|
+
else if (label.includes('title') || label.includes('role'))
|
|
19084
|
+
info.title = value;
|
|
19085
|
+
else if (label.includes('company') || label.includes('organization'))
|
|
19086
|
+
info.company = value;
|
|
19087
|
+
else if (label.includes('email'))
|
|
19088
|
+
info.email = value;
|
|
19089
|
+
else if (label.includes('phone') || label.includes('tel'))
|
|
19090
|
+
info.phone = value;
|
|
19091
|
+
else if (label.includes('linkedin'))
|
|
19092
|
+
info.linkedIn = value;
|
|
19093
|
+
else if (label.includes('twitter'))
|
|
19094
|
+
info.twitter = value;
|
|
19095
|
+
}
|
|
19096
|
+
// Check for image URL in section metadata
|
|
19097
|
+
const sectionMeta = this.section.meta ?? {};
|
|
19098
|
+
if (typeof sectionMeta['imageUrl'] === 'string') {
|
|
19099
|
+
info.imageUrl = sectionMeta['imageUrl'];
|
|
19100
|
+
}
|
|
19101
|
+
return info;
|
|
19102
|
+
}, ...(ngDevMode ? [{ debugName: "contactInfo" }] : []));
|
|
19103
|
+
/**
|
|
19104
|
+
* Get initials from name
|
|
19105
|
+
*/
|
|
19106
|
+
this.initials = computed(() => {
|
|
19107
|
+
const name = this.contactInfo().name;
|
|
19108
|
+
if (!name)
|
|
19109
|
+
return '';
|
|
19110
|
+
return name
|
|
19111
|
+
.split(' ')
|
|
19112
|
+
.map((part) => part[0])
|
|
19113
|
+
.filter(Boolean)
|
|
19114
|
+
.slice(0, 2)
|
|
19115
|
+
.join('')
|
|
19116
|
+
.toUpperCase();
|
|
19117
|
+
}, ...(ngDevMode ? [{ debugName: "initials" }] : []));
|
|
19118
|
+
}
|
|
19119
|
+
/**
|
|
19120
|
+
* Override in subclass to customize layout behavior
|
|
19121
|
+
*/
|
|
19122
|
+
static { this.layoutConfig = {
|
|
19123
|
+
...DEFAULT_LAYOUT_CONFIG$1,
|
|
19124
|
+
preferredColumns: 2,
|
|
19125
|
+
matchItemCount: true,
|
|
19126
|
+
}; }
|
|
19127
|
+
/**
|
|
19128
|
+
* Handle email action
|
|
19129
|
+
*/
|
|
19130
|
+
onEmailClick() {
|
|
19131
|
+
const email = this.contactInfo().email;
|
|
19132
|
+
if (email) {
|
|
19133
|
+
const mailtoUrl = `mailto:${email}`;
|
|
19134
|
+
// Platform-specific: Windows uses mailto: (New Outlook compatibility), Mac uses ms-outlook:
|
|
19135
|
+
if (typeof navigator !== 'undefined') {
|
|
19136
|
+
const isWindows = /Win/i.test(navigator.platform) || /Windows/i.test(navigator.userAgent);
|
|
19137
|
+
if (isWindows) {
|
|
19138
|
+
// Windows: Use mailto: (New Outlook doesn't support custom schemes)
|
|
19139
|
+
// Will open Outlook if set as default email client
|
|
19140
|
+
window.location.href = mailtoUrl;
|
|
19141
|
+
return;
|
|
19142
|
+
}
|
|
19143
|
+
}
|
|
19144
|
+
// Mac: Use ms-outlook: scheme (works with Outlook desktop app)
|
|
19145
|
+
window.location.href = mailtoUrl;
|
|
18641
19146
|
}
|
|
18642
|
-
return {
|
|
18643
|
-
success: false,
|
|
18644
|
-
error: importError,
|
|
18645
|
-
message: userMessage,
|
|
18646
|
-
};
|
|
18647
19147
|
}
|
|
19148
|
+
/**
|
|
19149
|
+
* Handle phone action
|
|
19150
|
+
*/
|
|
19151
|
+
onPhoneClick() {
|
|
19152
|
+
const phone = this.contactInfo().phone;
|
|
19153
|
+
if (phone) {
|
|
19154
|
+
window.location.href = `tel:${phone}`;
|
|
19155
|
+
}
|
|
19156
|
+
}
|
|
19157
|
+
/**
|
|
19158
|
+
* Handle LinkedIn action
|
|
19159
|
+
*/
|
|
19160
|
+
onLinkedInClick() {
|
|
19161
|
+
const linkedIn = this.contactInfo().linkedIn;
|
|
19162
|
+
if (linkedIn) {
|
|
19163
|
+
window.open(linkedIn, '_blank', 'noopener,noreferrer');
|
|
19164
|
+
}
|
|
19165
|
+
}
|
|
19166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ContactSectionBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ContactSectionBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18648
19168
|
}
|
|
19169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ContactSectionBaseComponent, decorators: [{
|
|
19170
|
+
type: Component,
|
|
19171
|
+
args: [{
|
|
19172
|
+
template: '',
|
|
19173
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
19174
|
+
}]
|
|
19175
|
+
}] });
|
|
18649
19176
|
|
|
18650
19177
|
/**
|
|
18651
19178
|
* Chart Section Component
|
|
18652
19179
|
*
|
|
18653
|
-
* Displays data visualizations using
|
|
18654
|
-
* Supports
|
|
19180
|
+
* Displays data visualizations using Chart.js library.
|
|
19181
|
+
* Supports bar, line, pie, and doughnut chart types.
|
|
18655
19182
|
*
|
|
18656
|
-
* Note: Requires
|
|
19183
|
+
* Note: Requires Chart.js library to be installed.
|
|
18657
19184
|
*/
|
|
18658
|
-
class ChartSectionComponent extends
|
|
19185
|
+
class ChartSectionComponent extends ChartSectionBaseComponent {
|
|
18659
19186
|
constructor() {
|
|
18660
19187
|
super(...arguments);
|
|
18661
19188
|
this.layoutService = inject(SectionLayoutPreferenceService);
|
|
18662
|
-
|
|
18663
|
-
this.
|
|
18664
|
-
|
|
18665
|
-
this.
|
|
18666
|
-
|
|
19189
|
+
this.chartInitFailed = false;
|
|
19190
|
+
this.chartLoading = true;
|
|
19191
|
+
// Chart.js configuration
|
|
19192
|
+
this.chartData = {
|
|
19193
|
+
labels: [],
|
|
19194
|
+
datasets: [],
|
|
19195
|
+
};
|
|
19196
|
+
this.chartOptions = {
|
|
19197
|
+
responsive: true,
|
|
19198
|
+
maintainAspectRatio: false,
|
|
19199
|
+
plugins: {
|
|
19200
|
+
legend: {
|
|
19201
|
+
display: true,
|
|
19202
|
+
position: 'bottom',
|
|
19203
|
+
},
|
|
19204
|
+
},
|
|
19205
|
+
};
|
|
19206
|
+
// Chart.js chart type (different from base class computed chartType)
|
|
19207
|
+
this.chartJsType = 'bar';
|
|
18667
19208
|
}
|
|
18668
19209
|
ngOnInit() {
|
|
18669
19210
|
// Register layout preference function for this section type
|
|
18670
19211
|
this.layoutService.register('chart', (section, availableColumns) => {
|
|
18671
19212
|
return this.calculateChartLayoutPreferences(section, availableColumns);
|
|
18672
19213
|
});
|
|
19214
|
+
// Watch for chart config changes and update chart
|
|
19215
|
+
effect(() => {
|
|
19216
|
+
const config = this.chartConfig();
|
|
19217
|
+
if (config && this.chartLibraryLoaded()) {
|
|
19218
|
+
this.updateChartData(config);
|
|
19219
|
+
}
|
|
19220
|
+
});
|
|
18673
19221
|
}
|
|
18674
19222
|
ngAfterViewInit() {
|
|
18675
|
-
|
|
18676
|
-
setTimeout(() => {
|
|
18677
|
-
this.renderChart();
|
|
18678
|
-
}, 0);
|
|
19223
|
+
this.initializeChart();
|
|
18679
19224
|
}
|
|
18680
19225
|
ngOnDestroy() {
|
|
18681
19226
|
this.destroyChart();
|
|
18682
19227
|
}
|
|
18683
|
-
ngOnChanges(changes) {
|
|
18684
|
-
// Call parent implementation for animation state management
|
|
18685
|
-
super.ngOnChanges(changes);
|
|
18686
|
-
if (changes['section']) {
|
|
18687
|
-
const currentChartType = this.section.chartType || 'bar';
|
|
18688
|
-
const currentDataHash = JSON.stringify(this.section.chartData);
|
|
18689
|
-
// Wait for ViewChild to be available if not already
|
|
18690
|
-
if (!this.chartContainer) {
|
|
18691
|
-
// If view isn't initialized yet, ngAfterViewInit will handle rendering
|
|
18692
|
-
this.previousChartType = currentChartType;
|
|
18693
|
-
this.previousChartDataHash = currentDataHash;
|
|
18694
|
-
return;
|
|
18695
|
-
}
|
|
18696
|
-
// If chart type changed, destroy and recreate
|
|
18697
|
-
if (this.previousChartType !== undefined && this.previousChartType !== currentChartType) {
|
|
18698
|
-
this.destroyChart();
|
|
18699
|
-
setTimeout(() => {
|
|
18700
|
-
this.renderChart();
|
|
18701
|
-
}, 0);
|
|
18702
|
-
}
|
|
18703
|
-
// If data changed but type is same, update existing chart
|
|
18704
|
-
else if (this.chartInstance && this.previousChartDataHash !== currentDataHash) {
|
|
18705
|
-
this.updateChart();
|
|
18706
|
-
}
|
|
18707
|
-
// Initial render case
|
|
18708
|
-
else if (!this.chartInstance && this.section.chartData) {
|
|
18709
|
-
setTimeout(() => {
|
|
18710
|
-
this.renderChart();
|
|
18711
|
-
}, 0);
|
|
18712
|
-
}
|
|
18713
|
-
this.previousChartType = currentChartType;
|
|
18714
|
-
this.previousChartDataHash = currentDataHash;
|
|
18715
|
-
}
|
|
18716
|
-
}
|
|
18717
19228
|
/**
|
|
18718
|
-
*
|
|
19229
|
+
* Load Chart.js library dynamically
|
|
18719
19230
|
*/
|
|
18720
|
-
async
|
|
18721
|
-
// Prevent multiple simultaneous render calls
|
|
18722
|
-
if (this.isRendering) {
|
|
18723
|
-
return;
|
|
18724
|
-
}
|
|
18725
|
-
// Ensure container element exists
|
|
18726
|
-
if (!this.chartContainer?.nativeElement) {
|
|
18727
|
-
console.warn('Chart container element not available');
|
|
18728
|
-
return;
|
|
18729
|
-
}
|
|
18730
|
-
const chartData = this.section.chartData;
|
|
18731
|
-
const chartType = this.section.chartType || 'bar';
|
|
18732
|
-
if (!chartData || !chartData.datasets || chartData.datasets.length === 0) {
|
|
18733
|
-
this.chartError = 'No chart data available';
|
|
18734
|
-
this.cdr.detectChanges();
|
|
18735
|
-
return;
|
|
18736
|
-
}
|
|
18737
|
-
this.isRendering = true;
|
|
19231
|
+
async loadChartLibrary() {
|
|
18738
19232
|
try {
|
|
18739
|
-
//
|
|
18740
|
-
//
|
|
18741
|
-
|
|
18742
|
-
|
|
18743
|
-
|
|
18744
|
-
|
|
18745
|
-
console.error('Frappe Charts import error:', importResult.error);
|
|
18746
|
-
this.cdr.detectChanges();
|
|
18747
|
-
return;
|
|
18748
|
-
}
|
|
18749
|
-
const frappeChartsModule = importResult.module;
|
|
18750
|
-
// Handle different module export patterns (CJS/ESM interop)
|
|
18751
|
-
// Frappe Charts exports Chart as default, but build tools may wrap it differently
|
|
18752
|
-
let Chart = null;
|
|
18753
|
-
const module = frappeChartsModule;
|
|
18754
|
-
// Pattern 1: Direct default export (most common for ESM)
|
|
18755
|
-
if (module.default) {
|
|
18756
|
-
if (typeof module.default === 'function') {
|
|
18757
|
-
Chart = module.default;
|
|
18758
|
-
}
|
|
18759
|
-
else if (typeof module.default === 'object' &&
|
|
18760
|
-
module.default !== null &&
|
|
18761
|
-
'Chart' in module.default &&
|
|
18762
|
-
typeof module.default.Chart === 'function') {
|
|
18763
|
-
// Default is an object containing Chart
|
|
18764
|
-
Chart = module.default.Chart;
|
|
18765
|
-
}
|
|
18766
|
-
else if (typeof module.default === 'object' &&
|
|
18767
|
-
module.default !== null &&
|
|
18768
|
-
'default' in module.default &&
|
|
18769
|
-
typeof module.default.default === 'function') {
|
|
18770
|
-
// Nested default (some build tools)
|
|
18771
|
-
Chart = module.default.default;
|
|
18772
|
-
}
|
|
18773
|
-
}
|
|
18774
|
-
// Pattern 2: Named export Chart (if default didn't work)
|
|
18775
|
-
if (!Chart && module.Chart && typeof module.Chart === 'function') {
|
|
18776
|
-
Chart = module.Chart;
|
|
18777
|
-
}
|
|
18778
|
-
// Pattern 3: Module itself is the Chart (unlikely but possible)
|
|
18779
|
-
if (!Chart && typeof frappeChartsModule === 'function') {
|
|
18780
|
-
Chart = frappeChartsModule;
|
|
18781
|
-
}
|
|
18782
|
-
// Validate that Chart is a constructor
|
|
18783
|
-
if (!Chart || typeof Chart !== 'function') {
|
|
18784
|
-
console.error('Frappe Charts module structure:', {
|
|
18785
|
-
module: frappeChartsModule,
|
|
18786
|
-
defaultType: typeof frappeChartsModule.default,
|
|
18787
|
-
hasChart: 'Chart' in frappeChartsModule,
|
|
18788
|
-
moduleKeys: Object.keys(frappeChartsModule),
|
|
18789
|
-
});
|
|
18790
|
-
throw new Error('Chart is not a constructor. Frappe Charts library may not be loaded correctly. ' +
|
|
18791
|
-
'Please ensure frappe-charts is installed: npm install frappe-charts');
|
|
18792
|
-
}
|
|
18793
|
-
this.chartLibraryLoaded = true;
|
|
18794
|
-
this.chartError = null;
|
|
18795
|
-
// Ensure container is visible and has dimensions
|
|
18796
|
-
const container = this.chartContainer.nativeElement;
|
|
18797
|
-
const containerParent = container.parentElement;
|
|
18798
|
-
// Wait for container to have dimensions
|
|
18799
|
-
if (containerParent) {
|
|
18800
|
-
const rect = containerParent.getBoundingClientRect();
|
|
18801
|
-
if (rect.width === 0 || rect.height === 0) {
|
|
18802
|
-
// Use requestAnimationFrame for better timing
|
|
18803
|
-
this.isRendering = false;
|
|
18804
|
-
requestAnimationFrame(() => {
|
|
18805
|
-
setTimeout(() => this.renderChart(), 50);
|
|
18806
|
-
});
|
|
18807
|
-
return;
|
|
18808
|
-
}
|
|
18809
|
-
}
|
|
18810
|
-
// Destroy existing chart if it exists
|
|
18811
|
-
if (this.chartInstance) {
|
|
18812
|
-
try {
|
|
18813
|
-
// Frappe Charts doesn't have a destroy method, just clear the container
|
|
18814
|
-
container.innerHTML = '';
|
|
18815
|
-
}
|
|
18816
|
-
catch {
|
|
18817
|
-
// Ignore errors during destruction
|
|
18818
|
-
}
|
|
18819
|
-
this.chartInstance = null;
|
|
18820
|
-
}
|
|
18821
|
-
// Check if data contains revenue/monetary values for currency formatting
|
|
18822
|
-
const isRevenueData = this.detectRevenueData(chartData);
|
|
18823
|
-
// Convert Chart.js format to Frappe Charts format
|
|
18824
|
-
const frappeData = this.convertToFrappeFormat(chartData, chartType);
|
|
18825
|
-
// Map chart types: bar -> bar, line -> line, pie -> pie, doughnut -> percentage
|
|
18826
|
-
const frappeChartType = this.mapChartType(chartType);
|
|
18827
|
-
// Ensure Chart is a constructor function before instantiating
|
|
18828
|
-
if (typeof Chart !== 'function' || !Chart.prototype) {
|
|
18829
|
-
throw new Error('Chart is not a valid constructor. Received: ' +
|
|
18830
|
-
typeof Chart +
|
|
18831
|
-
'. Please ensure frappe-charts is properly installed.');
|
|
18832
|
-
}
|
|
18833
|
-
// Create chart instance with compact sizing
|
|
18834
|
-
// Type assertion needed because Chart comes from dynamic import
|
|
18835
|
-
const ChartConstructor = Chart;
|
|
18836
|
-
this.chartInstance = new ChartConstructor(container, {
|
|
18837
|
-
data: frappeData,
|
|
18838
|
-
type: frappeChartType,
|
|
18839
|
-
height: 140, // Fixed compact height for chart area
|
|
18840
|
-
colors: this.extractColors(chartData),
|
|
18841
|
-
axisOptions: {
|
|
18842
|
-
xIsSeries: chartType === 'line' || chartType === 'area', // Line/area charts use series mode
|
|
18843
|
-
},
|
|
18844
|
-
tooltipOptions: {
|
|
18845
|
-
formatTooltipX: (d) => String(d),
|
|
18846
|
-
formatTooltipY: (d) => {
|
|
18847
|
-
if (d === null || d === undefined) {
|
|
18848
|
-
return '—';
|
|
18849
|
-
}
|
|
18850
|
-
return isRevenueData ? this.formatCurrency(d) : String(d);
|
|
18851
|
-
},
|
|
18852
|
-
},
|
|
18853
|
-
lineOptions: {
|
|
18854
|
-
dotSize: 3,
|
|
18855
|
-
hideDots: chartType === 'area', // Hide dots for area charts
|
|
18856
|
-
},
|
|
18857
|
-
barOptions: {
|
|
18858
|
-
spaceRatio: 0.3, // Compact bar spacing
|
|
18859
|
-
},
|
|
18860
|
-
});
|
|
18861
|
-
// Fix Y-axis labels after chart is rendered
|
|
18862
|
-
// Use setTimeout to ensure chart is fully rendered
|
|
18863
|
-
setTimeout(() => {
|
|
18864
|
-
this.fixYAxisLabels(container);
|
|
18865
|
-
this.fixLegendLabels(container);
|
|
18866
|
-
}, 100);
|
|
18867
|
-
this.cdr.detectChanges();
|
|
19233
|
+
// Chart.js is loaded via ng2-charts, but we need to ensure it's available
|
|
19234
|
+
// Dynamic import of chart.js to ensure it's loaded
|
|
19235
|
+
// @ts-ignore - chart.js may not be installed yet
|
|
19236
|
+
await import('chart.js/auto');
|
|
19237
|
+
this.chartLibraryLoaded.set(true);
|
|
19238
|
+
this.chartError.set(null);
|
|
18868
19239
|
}
|
|
18869
19240
|
catch (error) {
|
|
18870
|
-
this.chartLibraryLoaded
|
|
18871
|
-
|
|
18872
|
-
|
|
18873
|
-
|
|
18874
|
-
|
|
18875
|
-
|
|
18876
|
-
error.message.includes('does not exist') ||
|
|
18877
|
-
error.message.includes('MODULE_NOT_FOUND')) {
|
|
18878
|
-
this.chartError =
|
|
18879
|
-
'frappe-charts is not installed. Please install it using: npm install frappe-charts';
|
|
18880
|
-
}
|
|
18881
|
-
else {
|
|
18882
|
-
this.chartError = `Failed to initialize chart: ${error.message}`;
|
|
18883
|
-
}
|
|
18884
|
-
}
|
|
18885
|
-
else {
|
|
18886
|
-
this.chartError =
|
|
18887
|
-
'Failed to load Frappe Charts library. Please ensure frappe-charts is installed: npm install frappe-charts';
|
|
18888
|
-
}
|
|
18889
|
-
console.error('Frappe Charts initialization error:', error);
|
|
18890
|
-
this.cdr.detectChanges();
|
|
18891
|
-
}
|
|
18892
|
-
finally {
|
|
18893
|
-
this.isRendering = false;
|
|
19241
|
+
this.chartLibraryLoaded.set(false);
|
|
19242
|
+
this.chartError.set(error instanceof Error ? error.message : 'Failed to load Chart.js library');
|
|
19243
|
+
this.chartInitFailed = true;
|
|
19244
|
+
this.chartLoading = false;
|
|
19245
|
+
console.warn('[ChartSection] Chart.js not available', error);
|
|
19246
|
+
throw error;
|
|
18894
19247
|
}
|
|
18895
19248
|
}
|
|
18896
19249
|
/**
|
|
18897
|
-
*
|
|
19250
|
+
* Initialize the chart
|
|
18898
19251
|
*/
|
|
18899
|
-
|
|
18900
|
-
|
|
19252
|
+
async initializeChart() {
|
|
19253
|
+
const config = this.chartConfig();
|
|
19254
|
+
if (!config || !this.hasValidData()) {
|
|
19255
|
+
this.chartLoading = false;
|
|
19256
|
+
this.chartInitFailed = true;
|
|
18901
19257
|
return;
|
|
18902
19258
|
}
|
|
18903
|
-
|
|
18904
|
-
|
|
18905
|
-
|
|
18906
|
-
|
|
18907
|
-
|
|
18908
|
-
|
|
18909
|
-
|
|
18910
|
-
|
|
18911
|
-
|
|
18912
|
-
|
|
18913
|
-
|
|
18914
|
-
|
|
18915
|
-
|
|
18916
|
-
|
|
18917
|
-
}
|
|
18918
|
-
/**
|
|
18919
|
-
* Convert Chart.js data format to Frappe Charts format
|
|
18920
|
-
*/
|
|
18921
|
-
convertToFrappeFormat(chartData, chartType) {
|
|
18922
|
-
if (!chartData.datasets || chartData.datasets.length === 0) {
|
|
18923
|
-
return {
|
|
18924
|
-
labels: chartData.labels || [],
|
|
18925
|
-
datasets: [],
|
|
18926
|
-
};
|
|
18927
|
-
}
|
|
18928
|
-
if (chartType === 'pie' || chartType === 'doughnut') {
|
|
18929
|
-
// Pie/percentage charts: simple array of values
|
|
18930
|
-
const firstDataset = chartData.datasets[0];
|
|
18931
|
-
if (!firstDataset) {
|
|
18932
|
-
return {
|
|
18933
|
-
labels: chartData.labels || [],
|
|
18934
|
-
datasets: [],
|
|
18935
|
-
};
|
|
18936
|
-
}
|
|
18937
|
-
// Filter out null values and convert to numbers
|
|
18938
|
-
const values = (firstDataset.data || []).filter((v) => v !== null);
|
|
18939
|
-
return {
|
|
18940
|
-
labels: chartData.labels || [],
|
|
18941
|
-
datasets: [
|
|
18942
|
-
{
|
|
18943
|
-
values,
|
|
18944
|
-
},
|
|
18945
|
-
],
|
|
18946
|
-
};
|
|
19259
|
+
try {
|
|
19260
|
+
await this.loadChartLibrary();
|
|
19261
|
+
// Wait for next tick to ensure ViewChild is initialized
|
|
19262
|
+
await Promise.resolve();
|
|
19263
|
+
this.updateChartData(config);
|
|
19264
|
+
this.chartLoading = false;
|
|
19265
|
+
this.chartInitFailed = false;
|
|
19266
|
+
this.cdr.markForCheck();
|
|
19267
|
+
// Ensure chart renders after view init
|
|
19268
|
+
setTimeout(() => {
|
|
19269
|
+
if (this.chart && this.chart.chart) {
|
|
19270
|
+
this.chart.update();
|
|
19271
|
+
}
|
|
19272
|
+
}, 0);
|
|
18947
19273
|
}
|
|
18948
|
-
|
|
18949
|
-
|
|
18950
|
-
|
|
18951
|
-
|
|
18952
|
-
// Filter out null values and convert to numbers
|
|
18953
|
-
values: (dataset.data || []).filter((v) => v !== null),
|
|
18954
|
-
}));
|
|
18955
|
-
return {
|
|
18956
|
-
labels: chartData.labels || [],
|
|
18957
|
-
datasets,
|
|
18958
|
-
};
|
|
19274
|
+
catch (error) {
|
|
19275
|
+
this.chartInitFailed = true;
|
|
19276
|
+
this.chartLoading = false;
|
|
19277
|
+
this.cdr.markForCheck();
|
|
18959
19278
|
}
|
|
18960
19279
|
}
|
|
18961
19280
|
/**
|
|
18962
|
-
*
|
|
19281
|
+
* Update chart data from ChartConfig
|
|
18963
19282
|
*/
|
|
18964
|
-
|
|
18965
|
-
|
|
18966
|
-
|
|
18967
|
-
|
|
18968
|
-
|
|
18969
|
-
|
|
18970
|
-
|
|
18971
|
-
|
|
19283
|
+
updateChartData(config) {
|
|
19284
|
+
if (!config || config.datasets.length === 0) {
|
|
19285
|
+
return;
|
|
19286
|
+
}
|
|
19287
|
+
// Map ChartConfig to Chart.js format
|
|
19288
|
+
this.chartJsType = config.type;
|
|
19289
|
+
this.chartData = {
|
|
19290
|
+
labels: config.labels,
|
|
19291
|
+
datasets: config.datasets.map((ds) => ({
|
|
19292
|
+
label: ds.label,
|
|
19293
|
+
data: ds.data,
|
|
19294
|
+
backgroundColor: ds.backgroundColor,
|
|
19295
|
+
borderColor: ds.borderColor,
|
|
19296
|
+
borderWidth: ds.borderWidth ?? 1,
|
|
19297
|
+
})),
|
|
18972
19298
|
};
|
|
18973
|
-
|
|
18974
|
-
|
|
18975
|
-
|
|
18976
|
-
|
|
18977
|
-
|
|
18978
|
-
extractColors(chartData) {
|
|
18979
|
-
const colors = [];
|
|
18980
|
-
chartData.datasets?.forEach((dataset) => {
|
|
18981
|
-
if (Array.isArray(dataset.backgroundColor)) {
|
|
18982
|
-
colors.push(...dataset.backgroundColor);
|
|
18983
|
-
}
|
|
18984
|
-
else if (dataset.backgroundColor) {
|
|
18985
|
-
colors.push(dataset.backgroundColor);
|
|
18986
|
-
}
|
|
18987
|
-
});
|
|
18988
|
-
return colors.length > 0 ? colors : undefined;
|
|
18989
|
-
}
|
|
18990
|
-
/**
|
|
18991
|
-
* Detect if chart data contains revenue/monetary values
|
|
18992
|
-
*/
|
|
18993
|
-
detectRevenueData(chartData) {
|
|
18994
|
-
if (!chartData?.datasets)
|
|
18995
|
-
return false;
|
|
18996
|
-
// Check if any dataset label contains revenue/money keywords
|
|
18997
|
-
const revenueKeywords = ['revenue', 'profit', 'cost', 'sales', 'income', '$', 'usd', 'eur'];
|
|
18998
|
-
return chartData.datasets.some((dataset) => {
|
|
18999
|
-
const label = (dataset.label || '').toLowerCase();
|
|
19000
|
-
return revenueKeywords.some((keyword) => label.includes(keyword));
|
|
19001
|
-
});
|
|
19299
|
+
// Update chart if it exists and is ready
|
|
19300
|
+
if (this.chart && this.chart.chart) {
|
|
19301
|
+
this.chart.update();
|
|
19302
|
+
}
|
|
19303
|
+
this.cdr.markForCheck();
|
|
19002
19304
|
}
|
|
19003
19305
|
/**
|
|
19004
|
-
*
|
|
19306
|
+
* Update the chart with new data
|
|
19005
19307
|
*/
|
|
19006
|
-
|
|
19007
|
-
|
|
19008
|
-
|
|
19009
|
-
|
|
19010
|
-
if (value >= 1000000) {
|
|
19011
|
-
return `$${(value / 1000000).toFixed(1)}M`;
|
|
19012
|
-
}
|
|
19013
|
-
else if (value >= 1000) {
|
|
19014
|
-
return `$${(value / 1000).toFixed(1)}K`;
|
|
19308
|
+
updateChart() {
|
|
19309
|
+
const config = this.chartConfig();
|
|
19310
|
+
if (config && this.chartLibraryLoaded()) {
|
|
19311
|
+
this.updateChartData(config);
|
|
19015
19312
|
}
|
|
19016
|
-
else {
|
|
19017
|
-
return `$${value.toFixed(0)}`;
|
|
19018
|
-
}
|
|
19019
|
-
}
|
|
19020
|
-
/**
|
|
19021
|
-
* Fix Y-axis label rendering issues
|
|
19022
|
-
*/
|
|
19023
|
-
fixYAxisLabels(container) {
|
|
19024
|
-
// Find all SVG text elements in the chart
|
|
19025
|
-
const allTexts = container.querySelectorAll('svg text, .frappe-chart text');
|
|
19026
|
-
allTexts.forEach((textEl) => {
|
|
19027
|
-
const element = textEl;
|
|
19028
|
-
const textContent = element.textContent?.trim() || '';
|
|
19029
|
-
// Check if this is likely a Y-axis label
|
|
19030
|
-
// Y-axis labels are typically numeric and positioned on the left side
|
|
19031
|
-
const isNumeric = /^[\d.,]+$/.test(textContent);
|
|
19032
|
-
const x = parseFloat(element.getAttribute('x') || '0');
|
|
19033
|
-
const y = parseFloat(element.getAttribute('y') || '0');
|
|
19034
|
-
// Y-axis labels are typically on the left side (x < 50) and have numeric content
|
|
19035
|
-
// or are part of the Y-axis structure
|
|
19036
|
-
const isYAxisLabel = (isNumeric && x < 100 && y > 0 && y < 200) || // Position-based detection
|
|
19037
|
-
element.getAttribute('class')?.includes('y-axis') ||
|
|
19038
|
-
element.closest('.y-axis, .axis-y, [class*="y-axis"]') !== null;
|
|
19039
|
-
if (isYAxisLabel) {
|
|
19040
|
-
// Ensure horizontal text orientation
|
|
19041
|
-
element.setAttribute('writing-mode', 'horizontal-tb');
|
|
19042
|
-
element.setAttribute('text-orientation', 'mixed');
|
|
19043
|
-
element.style.writingMode = 'horizontal-tb';
|
|
19044
|
-
element.style.textOrientation = 'mixed';
|
|
19045
|
-
element.style.transform = 'none';
|
|
19046
|
-
element.style.whiteSpace = 'nowrap';
|
|
19047
|
-
element.style.textAnchor = 'end';
|
|
19048
|
-
// Remove any rotation transforms
|
|
19049
|
-
const transform = element.getAttribute('transform') || '';
|
|
19050
|
-
if (transform.includes('rotate')) {
|
|
19051
|
-
element.setAttribute('transform', transform.replace(/rotate\([^)]*\)/g, '').trim());
|
|
19052
|
-
}
|
|
19053
|
-
}
|
|
19054
|
-
});
|
|
19055
|
-
}
|
|
19056
|
-
/**
|
|
19057
|
-
* Fix legend label truncation
|
|
19058
|
-
*/
|
|
19059
|
-
fixLegendLabels(container) {
|
|
19060
|
-
// Find all legend-related elements (both SVG and HTML)
|
|
19061
|
-
const legendContainers = container.querySelectorAll('.frappe-chart .legend, .legend-item, [class*="legend"], .chart-legend');
|
|
19062
|
-
legendContainers.forEach((containerEl) => {
|
|
19063
|
-
// Fix SVG text elements in legend
|
|
19064
|
-
const svgTexts = containerEl.querySelectorAll('text');
|
|
19065
|
-
svgTexts.forEach((textEl) => {
|
|
19066
|
-
const element = textEl;
|
|
19067
|
-
element.style.whiteSpace = 'nowrap';
|
|
19068
|
-
element.style.overflow = 'visible';
|
|
19069
|
-
element.style.textOverflow = 'clip';
|
|
19070
|
-
// Ensure text is not clipped
|
|
19071
|
-
if (element.getAttribute('clip-path')) {
|
|
19072
|
-
element.removeAttribute('clip-path');
|
|
19073
|
-
}
|
|
19074
|
-
});
|
|
19075
|
-
// Fix HTML text elements in legend
|
|
19076
|
-
const htmlTexts = containerEl.querySelectorAll('span, div, label');
|
|
19077
|
-
htmlTexts.forEach((textEl) => {
|
|
19078
|
-
const element = textEl;
|
|
19079
|
-
element.style.whiteSpace = 'nowrap';
|
|
19080
|
-
element.style.overflow = 'visible';
|
|
19081
|
-
element.style.textOverflow = 'clip';
|
|
19082
|
-
element.style.maxWidth = 'none';
|
|
19083
|
-
});
|
|
19084
|
-
});
|
|
19085
|
-
// Also fix any text elements that might be part of legend structure
|
|
19086
|
-
const allLegendTexts = container.querySelectorAll('.frappe-chart text, [class*="legend"] text, [class*="legend"] span, [class*="legend"] div');
|
|
19087
|
-
allLegendTexts.forEach((textEl) => {
|
|
19088
|
-
const element = textEl;
|
|
19089
|
-
if (element instanceof SVGTextElement) {
|
|
19090
|
-
element.style.whiteSpace = 'nowrap';
|
|
19091
|
-
element.style.overflow = 'visible';
|
|
19092
|
-
element.style.textOverflow = 'clip';
|
|
19093
|
-
}
|
|
19094
|
-
else if (element instanceof HTMLElement) {
|
|
19095
|
-
element.style.whiteSpace = 'nowrap';
|
|
19096
|
-
element.style.overflow = 'visible';
|
|
19097
|
-
element.style.textOverflow = 'clip';
|
|
19098
|
-
element.style.maxWidth = 'none';
|
|
19099
|
-
}
|
|
19100
|
-
});
|
|
19101
19313
|
}
|
|
19102
19314
|
/**
|
|
19103
|
-
* Destroy chart instance
|
|
19315
|
+
* Destroy the chart instance
|
|
19104
19316
|
*/
|
|
19105
19317
|
destroyChart() {
|
|
19106
|
-
if (this.
|
|
19107
|
-
|
|
19108
|
-
|
|
19109
|
-
if (this.chartContainer?.nativeElement) {
|
|
19110
|
-
this.chartContainer.nativeElement.innerHTML = '';
|
|
19111
|
-
}
|
|
19112
|
-
}
|
|
19113
|
-
catch (error) {
|
|
19114
|
-
// Ignore errors during destruction
|
|
19115
|
-
console.warn('Error destroying chart:', error);
|
|
19116
|
-
}
|
|
19117
|
-
this.chartInstance = null;
|
|
19318
|
+
if (this.chart?.chart) {
|
|
19319
|
+
// BaseChartDirective has a chart property that contains the Chart.js instance
|
|
19320
|
+
this.chart.chart.destroy();
|
|
19118
19321
|
}
|
|
19322
|
+
this.chart = undefined;
|
|
19323
|
+
this.chartLibraryLoaded.set(false);
|
|
19324
|
+
this.chartError.set(null);
|
|
19119
19325
|
}
|
|
19120
19326
|
/**
|
|
19121
19327
|
* Calculate layout preferences for chart section based on content.
|
|
@@ -19125,10 +19331,8 @@ class ChartSectionComponent extends BaseSectionComponent {
|
|
|
19125
19331
|
// Chart sections prefer 2 columns for optimal viewing
|
|
19126
19332
|
// Can expand to 3-4 for wide charts, shrink to 1 for compact layouts
|
|
19127
19333
|
let preferredColumns = 2;
|
|
19128
|
-
//
|
|
19129
|
-
|
|
19130
|
-
const isWideChart = chartType === 'line' || chartType === 'bar';
|
|
19131
|
-
if (isWideChart && availableColumns >= 3) {
|
|
19334
|
+
// Charts benefit from wider layouts when space is available
|
|
19335
|
+
if (availableColumns >= 3) {
|
|
19132
19336
|
preferredColumns = 3;
|
|
19133
19337
|
}
|
|
19134
19338
|
// Respect explicit preferences
|
|
@@ -19143,7 +19347,7 @@ class ChartSectionComponent extends BaseSectionComponent {
|
|
|
19143
19347
|
canShrinkToFill: true,
|
|
19144
19348
|
shrinkPriority: 25, // Higher priority for shrinking (promotes side-by-side placement)
|
|
19145
19349
|
expandOnContent: {
|
|
19146
|
-
// Charts can expand based on
|
|
19350
|
+
// Charts can expand based on dataset count
|
|
19147
19351
|
},
|
|
19148
19352
|
};
|
|
19149
19353
|
}
|
|
@@ -19158,14 +19362,14 @@ class ChartSectionComponent extends BaseSectionComponent {
|
|
|
19158
19362
|
return this.calculateChartLayoutPreferences(this.section, availableColumns);
|
|
19159
19363
|
}
|
|
19160
19364
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ChartSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19161
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ChartSectionComponent, isStandalone: true, selector: "lib-chart-section", viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"ai-section ai-section--chart section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Chart Container -->\n <div class=\"chart-container\" *ngIf=\"section.chartData && !chartError\">\n <div class=\"chart-wrapper\">\n <div #chartContainer class=\"chart-canvas-wrapper\"></div>\n </div>\n </div>\n\n <!-- Error State -->\n <lib-empty-state *ngIf=\"chartError\" [message]=\"chartError\" icon=\"\u26A0\uFE0F\" variant=\"minimal\"> </lib-empty-state>\n\n <!-- No Data State -->\n <lib-empty-state\n *ngIf=\"!section.chartData && !chartError\"\n message=\"No chart data available\"\n icon=\"\uD83D\uDCCA\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n</div>\n", styles: [":root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.chart-container{display:flex;flex-direction:column;gap:0;width:100%;min-height:var(--osi-card-min-height-large);max-height:var(--osi-card-min-height-large);height:var(--osi-card-min-height-large)}.chart-wrapper{padding:0;background:transparent;border:none;box-shadow:none;min-height:180px;max-height:180px;height:180px;display:flex;flex-direction:column;gap:0;overflow:visible;box-sizing:border-box;width:100%}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--osi-section-item-gap-xs);flex-wrap:wrap;padding-bottom:var(--osi-section-item-padding-compact);border-bottom:1px solid var(--border)}.chart-title{font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);font-size:var(--text-base);margin:0;line-height:var(--leading-tight)}.chart-legend{display:flex;gap:var(--osi-section-item-gap-xs);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--osi-section-item-gap-xs);font-size:var(--text-xs);color:var(--muted-foreground)}.legend-color{width:var(--osi-spacing-sm);height:var(--osi-spacing-sm);border-radius:var(--osi-radius-xs);flex-shrink:0}.chart-canvas-wrapper{flex:1;position:relative;min-height:var(--osi-card-min-height-large);max-height:var(--osi-card-min-height-large);height:var(--osi-card-min-height-large);width:100%;overflow:visible;box-sizing:border-box}.chart-canvas-wrapper :deep(.frappe-chart){width:100%!important;height:var(--osi-card-min-height-large)!important;max-height:var(--osi-card-min-height-large)!important}.chart-canvas-wrapper :deep(.frappe-chart) .y-axis .tick text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important}.chart-canvas-wrapper :deep(.frappe-chart) text.y-axis-text,.chart-canvas-wrapper :deep(.frappe-chart) .y-axis text,.chart-canvas-wrapper :deep(.frappe-chart) .axis-y text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important;text-anchor:end!important}.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-item,.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-text{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}.chart-canvas-wrapper :deep(.frappe-chart) text{writing-mode:horizontal-tb!important;text-orientation:mixed!important}.chart-footer{display:flex;justify-content:space-around;gap:var(--osi-section-item-gap);padding-top:var(--osi-section-item-padding-compact);border-top:1px solid var(--border)}.chart-stat{display:flex;flex-direction:column;align-items:center;gap:var(--osi-section-item-gap-xs)}.chart-stat-value{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);font-weight:var(--font-bold)}.chart-stat-label{font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-tight);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}@media (max-width: 767px){.chart-container{min-height:170px;max-height:170px;height:170px}.chart-wrapper{padding:0;min-height:170px;max-height:170px;height:170px}.chart-canvas-wrapper{min-height:130px;max-height:170px;height:130px}.chart-canvas-wrapper :deep(.frappe-chart){height:130px!important;max-height:170px!important}.chart-canvas-wrapper :deep(.frappe-chart) .y-axis .tick text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important}.chart-canvas-wrapper :deep(.frappe-chart) text.y-axis-text,.chart-canvas-wrapper :deep(.frappe-chart) .y-axis text,.chart-canvas-wrapper :deep(.frappe-chart) .axis-y text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important;text-anchor:end!important}.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-item,.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-text{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}.chart-canvas-wrapper :deep(.frappe-chart) text{writing-mode:horizontal-tb!important;text-orientation:mixed!important}}@media (max-width: 479px){.chart-container{min-height:160px;max-height:160px;height:160px}.chart-wrapper{padding:0;min-height:160px;max-height:160px;height:160px}.chart-canvas-wrapper{min-height:120px;max-height:160px;height:120px}.chart-canvas-wrapper :deep(.frappe-chart){height:120px!important;max-height:160px!important}.chart-canvas-wrapper :deep(.frappe-chart) .y-axis .tick text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important}.chart-canvas-wrapper :deep(.frappe-chart) text.y-axis-text,.chart-canvas-wrapper :deep(.frappe-chart) .y-axis text,.chart-canvas-wrapper :deep(.frappe-chart) .axis-y text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important;text-anchor:end!important}.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-item,.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-text{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}.chart-canvas-wrapper :deep(.frappe-chart) text{writing-mode:horizontal-tb!important;text-orientation:mixed!important}.chart-header{flex-direction:column}.chart-footer{flex-direction:column;gap:var(--osi-section-item-gap-xs)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SectionHeaderComponent, selector: "lib-section-header", inputs: ["title", "description", "level", "headerClass", "titleClass", "descriptionClass"] }, { kind: "component", type: EmptyStateComponent, selector: "lib-empty-state", inputs: ["message", "icon", "actionLabel", "variant", "size", "containerClass"], outputs: ["action"] }] }); }
|
|
19365
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ChartSectionComponent, isStandalone: true, selector: "lib-chart-section", viewQueries: [{ propertyName: "chart", first: true, predicate: BaseChartDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ai-section ai-section--chart section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Chart Display -->\n <div class=\"chart-wrapper\" *ngIf=\"!chartInitFailed && hasValidData()\">\n <div class=\"chart-container\" *ngIf=\"chartLibraryLoaded() && !chartLoading\">\n <canvas baseChart [data]=\"chartData\" [options]=\"chartOptions\" [type]=\"chartJsType\"></canvas>\n </div>\n <div class=\"chart-loading-overlay\" *ngIf=\"chartLoading\">\n <div class=\"chart-loading-spinner\"></div>\n <span class=\"chart-loading-text\">Loading chart...</span>\n </div>\n </div>\n\n <!-- Error State -->\n <lib-empty-state\n *ngIf=\"chartInitFailed && section.chartData\"\n [message]=\"chartError() || 'Chart unavailable'\"\n icon=\"\uD83D\uDCCA\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n\n <!-- Empty State -->\n <lib-empty-state *ngIf=\"!section.chartData || !hasValidData()\" message=\"No chart data\" icon=\"\uD83D\uDCCA\" variant=\"minimal\">\n </lib-empty-state>\n</div>\n", styles: ["@keyframes osi-fade-in{0%{opacity:0}to{opacity:1}}@keyframes osi-slide-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes osi-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes osi-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}:root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.chart-container{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.chart-wrapper{background:var(--osi-card-bg, white);border:1px solid var(--osi-card-border, var(--osi-neutral-200));border-radius:var(--osi-card-radius, var(--osi-radius-xl));box-shadow:var(--osi-card-shadow, var(--osi-shadow-md));overflow:hidden;height:280px;padding:var(--osi-section-item-padding-compact);position:relative}@media (max-width: 479px){.chart-wrapper{height:180px;padding:var(--osi-section-item-padding-compact-xs)}}.chart-container{width:100%;height:100%;position:relative}.chart-container canvas{max-width:100%;max-height:100%}.chart-loading-overlay{position:absolute;inset:0;background-color:color-mix(in srgb,var(--background) 85%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--osi-section-item-gap);z-index:1000;pointer-events:none;transition:opacity .3s ease}.chart-loading-overlay .chart-loading-spinner{width:32px;height:32px;border:3px solid color-mix(in srgb,var(--foreground) 20%,transparent);border-top-color:var(--status-info, #3b82f6);border-radius:50%;animation:chart-spin 1s linear infinite}.chart-loading-overlay .chart-loading-text{font-weight:var(--font-semibold);color:var(--foreground);text-transform:none;color:var(--muted-foreground);font-size:var(--text-sm)}@keyframes chart-spin{to{transform:rotate(360deg)}}:host ::ng-deep canvas{display:block!important;max-width:100%;max-height:100%}:host ::ng-deep .chartjs-legend{color:var(--foreground)}:host ::ng-deep .chartjs-tooltip{background-color:var(--osi-section-item-background, var(--card-section-bg))!important;color:var(--foreground)!important;border:1px solid var(--border);border-radius:var(--osi-radius-md);box-shadow:0 4px 12px #0006;padding:8px 12px}:host ::ng-deep .chartjs-tooltip-body{color:var(--foreground)!important}:host ::ng-deep .chartjs-tooltip-header{color:var(--foreground)!important;border-bottom:1px solid var(--border)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: BaseChartDirective, selector: "canvas[baseChart]", inputs: ["type", "legend", "data", "options", "plugins", "labels", "datasets"], outputs: ["chartClick", "chartHover"], exportAs: ["base-chart"] }, { kind: "component", type: SectionHeaderComponent, selector: "lib-section-header", inputs: ["title", "description", "level", "headerClass", "titleClass", "descriptionClass"] }, { kind: "component", type: EmptyStateComponent, selector: "lib-empty-state", inputs: ["message", "icon", "actionLabel", "variant", "size", "containerClass"], outputs: ["action"] }] }); }
|
|
19162
19366
|
}
|
|
19163
19367
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ChartSectionComponent, decorators: [{
|
|
19164
19368
|
type: Component,
|
|
19165
|
-
args: [{ selector: 'lib-chart-section', standalone: true, imports: [CommonModule, SectionHeaderComponent, EmptyStateComponent], template: "<div class=\"ai-section ai-section--chart section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Chart Container -->\n <div class=\"chart-container\" *ngIf=\"section.chartData && !chartError\">\n <div class=\"chart-wrapper\">\n <div #chartContainer class=\"chart-canvas-wrapper\"></div>\n </div>\n </div>\n\n <!-- Error State -->\n <lib-empty-state *ngIf=\"chartError\" [message]=\"chartError\" icon=\"\u26A0\uFE0F\" variant=\"minimal\"> </lib-empty-state>\n\n <!-- No Data State -->\n <lib-empty-state\n *ngIf=\"!section.chartData && !chartError\"\n message=\"No chart data available\"\n icon=\"\uD83D\uDCCA\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n</div>\n", styles: [":root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.chart-container{display:flex;flex-direction:column;gap:0;width:100%;min-height:var(--osi-card-min-height-large);max-height:var(--osi-card-min-height-large);height:var(--osi-card-min-height-large)}.chart-wrapper{padding:0;background:transparent;border:none;box-shadow:none;min-height:180px;max-height:180px;height:180px;display:flex;flex-direction:column;gap:0;overflow:visible;box-sizing:border-box;width:100%}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--osi-section-item-gap-xs);flex-wrap:wrap;padding-bottom:var(--osi-section-item-padding-compact);border-bottom:1px solid var(--border)}.chart-title{font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);font-size:var(--text-base);margin:0;line-height:var(--leading-tight)}.chart-legend{display:flex;gap:var(--osi-section-item-gap-xs);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--osi-section-item-gap-xs);font-size:var(--text-xs);color:var(--muted-foreground)}.legend-color{width:var(--osi-spacing-sm);height:var(--osi-spacing-sm);border-radius:var(--osi-radius-xs);flex-shrink:0}.chart-canvas-wrapper{flex:1;position:relative;min-height:var(--osi-card-min-height-large);max-height:var(--osi-card-min-height-large);height:var(--osi-card-min-height-large);width:100%;overflow:visible;box-sizing:border-box}.chart-canvas-wrapper :deep(.frappe-chart){width:100%!important;height:var(--osi-card-min-height-large)!important;max-height:var(--osi-card-min-height-large)!important}.chart-canvas-wrapper :deep(.frappe-chart) .y-axis .tick text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important}.chart-canvas-wrapper :deep(.frappe-chart) text.y-axis-text,.chart-canvas-wrapper :deep(.frappe-chart) .y-axis text,.chart-canvas-wrapper :deep(.frappe-chart) .axis-y text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important;text-anchor:end!important}.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-item,.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-text{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}.chart-canvas-wrapper :deep(.frappe-chart) text{writing-mode:horizontal-tb!important;text-orientation:mixed!important}.chart-footer{display:flex;justify-content:space-around;gap:var(--osi-section-item-gap);padding-top:var(--osi-section-item-padding-compact);border-top:1px solid var(--border)}.chart-stat{display:flex;flex-direction:column;align-items:center;gap:var(--osi-section-item-gap-xs)}.chart-stat-value{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);font-weight:var(--font-bold)}.chart-stat-label{font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-tight);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}@media (max-width: 767px){.chart-container{min-height:170px;max-height:170px;height:170px}.chart-wrapper{padding:0;min-height:170px;max-height:170px;height:170px}.chart-canvas-wrapper{min-height:130px;max-height:170px;height:130px}.chart-canvas-wrapper :deep(.frappe-chart){height:130px!important;max-height:170px!important}.chart-canvas-wrapper :deep(.frappe-chart) .y-axis .tick text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important}.chart-canvas-wrapper :deep(.frappe-chart) text.y-axis-text,.chart-canvas-wrapper :deep(.frappe-chart) .y-axis text,.chart-canvas-wrapper :deep(.frappe-chart) .axis-y text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important;text-anchor:end!important}.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-item,.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-text{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}.chart-canvas-wrapper :deep(.frappe-chart) text{writing-mode:horizontal-tb!important;text-orientation:mixed!important}}@media (max-width: 479px){.chart-container{min-height:160px;max-height:160px;height:160px}.chart-wrapper{padding:0;min-height:160px;max-height:160px;height:160px}.chart-canvas-wrapper{min-height:120px;max-height:160px;height:120px}.chart-canvas-wrapper :deep(.frappe-chart){height:120px!important;max-height:160px!important}.chart-canvas-wrapper :deep(.frappe-chart) .y-axis .tick text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important}.chart-canvas-wrapper :deep(.frappe-chart) text.y-axis-text,.chart-canvas-wrapper :deep(.frappe-chart) .y-axis text,.chart-canvas-wrapper :deep(.frappe-chart) .axis-y text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;transform:none!important;white-space:nowrap!important;text-anchor:end!important}.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-item,.chart-canvas-wrapper :deep(.frappe-chart) .legend .legend-text{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}.chart-canvas-wrapper :deep(.frappe-chart) text{writing-mode:horizontal-tb!important;text-orientation:mixed!important}.chart-header{flex-direction:column}.chart-footer{flex-direction:column;gap:var(--osi-section-item-gap-xs)}}\n"] }]
|
|
19166
|
-
}], propDecorators: {
|
|
19369
|
+
args: [{ selector: 'lib-chart-section', standalone: true, imports: [CommonModule, BaseChartDirective, SectionHeaderComponent, EmptyStateComponent], template: "<div class=\"ai-section ai-section--chart section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Chart Display -->\n <div class=\"chart-wrapper\" *ngIf=\"!chartInitFailed && hasValidData()\">\n <div class=\"chart-container\" *ngIf=\"chartLibraryLoaded() && !chartLoading\">\n <canvas baseChart [data]=\"chartData\" [options]=\"chartOptions\" [type]=\"chartJsType\"></canvas>\n </div>\n <div class=\"chart-loading-overlay\" *ngIf=\"chartLoading\">\n <div class=\"chart-loading-spinner\"></div>\n <span class=\"chart-loading-text\">Loading chart...</span>\n </div>\n </div>\n\n <!-- Error State -->\n <lib-empty-state\n *ngIf=\"chartInitFailed && section.chartData\"\n [message]=\"chartError() || 'Chart unavailable'\"\n icon=\"\uD83D\uDCCA\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n\n <!-- Empty State -->\n <lib-empty-state *ngIf=\"!section.chartData || !hasValidData()\" message=\"No chart data\" icon=\"\uD83D\uDCCA\" variant=\"minimal\">\n </lib-empty-state>\n</div>\n", styles: ["@keyframes osi-fade-in{0%{opacity:0}to{opacity:1}}@keyframes osi-slide-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes osi-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes osi-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}:root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.chart-container{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.chart-wrapper{background:var(--osi-card-bg, white);border:1px solid var(--osi-card-border, var(--osi-neutral-200));border-radius:var(--osi-card-radius, var(--osi-radius-xl));box-shadow:var(--osi-card-shadow, var(--osi-shadow-md));overflow:hidden;height:280px;padding:var(--osi-section-item-padding-compact);position:relative}@media (max-width: 479px){.chart-wrapper{height:180px;padding:var(--osi-section-item-padding-compact-xs)}}.chart-container{width:100%;height:100%;position:relative}.chart-container canvas{max-width:100%;max-height:100%}.chart-loading-overlay{position:absolute;inset:0;background-color:color-mix(in srgb,var(--background) 85%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--osi-section-item-gap);z-index:1000;pointer-events:none;transition:opacity .3s ease}.chart-loading-overlay .chart-loading-spinner{width:32px;height:32px;border:3px solid color-mix(in srgb,var(--foreground) 20%,transparent);border-top-color:var(--status-info, #3b82f6);border-radius:50%;animation:chart-spin 1s linear infinite}.chart-loading-overlay .chart-loading-text{font-weight:var(--font-semibold);color:var(--foreground);text-transform:none;color:var(--muted-foreground);font-size:var(--text-sm)}@keyframes chart-spin{to{transform:rotate(360deg)}}:host ::ng-deep canvas{display:block!important;max-width:100%;max-height:100%}:host ::ng-deep .chartjs-legend{color:var(--foreground)}:host ::ng-deep .chartjs-tooltip{background-color:var(--osi-section-item-background, var(--card-section-bg))!important;color:var(--foreground)!important;border:1px solid var(--border);border-radius:var(--osi-radius-md);box-shadow:0 4px 12px #0006;padding:8px 12px}:host ::ng-deep .chartjs-tooltip-body{color:var(--foreground)!important}:host ::ng-deep .chartjs-tooltip-header{color:var(--foreground)!important;border-bottom:1px solid var(--border)}\n"] }]
|
|
19370
|
+
}], propDecorators: { chart: [{
|
|
19167
19371
|
type: ViewChild,
|
|
19168
|
-
args: [
|
|
19372
|
+
args: [BaseChartDirective, { static: false }]
|
|
19169
19373
|
}] } });
|
|
19170
19374
|
|
|
19171
19375
|
var chartSection_component = /*#__PURE__*/Object.freeze({
|
|
@@ -20108,11 +20312,11 @@ class ListSectionComponent extends BaseSectionComponent {
|
|
|
20108
20312
|
return this.expandedIndex === index;
|
|
20109
20313
|
}
|
|
20110
20314
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ListSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
20111
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ListSectionComponent, isStandalone: true, selector: "lib-list-section", usesInheritance: true, ngImport: i0, template: "<div class=\"ai-section ai-section--list section-content\">\n <lib-section-header *ngIf=\"section.title\" [title]=\"section.title\" [description]=\"section.description\">\n </lib-section-header>\n\n <div class=\"list-container\" *ngIf=\"section.items?.length\">\n <div class=\"section-item\" *ngFor=\"let item of section.items; let i = index\" [class.expanded]=\"expandedIndex === i\">\n <span class=\"list-icon\" *ngIf=\"item.icon\">{{ item.icon }}</span>\n <span class=\"list-bullet\" *ngIf=\"!item.icon\">\u2022</span>\n <div class=\"list-content\">\n <div class=\"list-header\">\n <h4 class=\"list-title\">{{ item.title }}</h4>\n <div class=\"list-badges\">\n <lib-badge *ngIf=\"item.status\" [variant]=\"getStatusVariant(item.status)\" size=\"sm\">\n {{ item.status }}\n </lib-badge>\n <lib-badge *ngIf=\"item.priority\" [variant]=\"getPriorityVariant(item.priority)\" size=\"sm\">\n {{ item.priority }}\n </lib-badge>\n </div>\n </div>\n <div class=\"list-description-wrapper\" *ngIf=\"item.description\">\n <p class=\"list-description\" [class.list-description--expanded]=\"isItemExpanded(i)\" *ngIf=\"item.description\">\n {{ item.description }}\n </p>\n <button\n *ngIf=\"shouldShowExpandButton(item)\"\n class=\"list-expand-btn\"\n type=\"button\"\n (click)=\"toggleExpanded(i); $event.stopPropagation()\"\n [attr.aria-expanded]=\"isItemExpanded(i)\"\n [attr.aria-label]=\"(isItemExpanded(i) ? 'Collapse' : 'Expand') + ' description'\"\n >\n {{ isItemExpanded(i) ? 'Show less' : 'Show more' }}\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <lib-empty-state *ngIf=\"!section.items?.length\" message=\"No items\" icon=\"\uD83D\uDCDD\" variant=\"minimal\"> </lib-empty-state>\n</div>\n", styles: [".osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%;max-width:100%;min-width:0}@media (max-width: 479px){:host{min-width:0}}.list-section{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.list-container{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;width:100%;display:flex;align-items:flex-start;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:hover .list-bullet,.section-item:hover .list-icon{color:var(--accent);opacity:1}.section-item:hover .list-title{color:var(--accent)}.section-item:focus-visible{outline:2px solid rgba(var(--accent-rgb),.7);outline-offset:2px}.list-bullet{font-size:var(--text-lg);color:var(--accent);opacity:.6;line-height:1;font-weight:var(--font-bold);transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0}.list-icon{font-size:var(--text-2xl);line-height:1;transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0;opacity:.8;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.list-content{flex:1;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);min-width:0;width:100%;box-sizing:border-box}.list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--osi-section-item-gap);flex-wrap:wrap}.list-title{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);flex:1;margin:0;transition:color var(--osi-section-item-transition)}.list-badges{display:flex;gap:var(--osi-section-item-gap-xs);flex-shrink:0}.list-description-wrapper{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-description{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--foreground);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;max-width:100%;box-sizing:border-box;color:color-mix(in srgb,var(--foreground) 75%,transparent);margin:0;line-height:var(--leading-relaxed);word-wrap:break-word;overflow-wrap:break-word;font-weight:var(--font-normal)}.list-description--expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.list-expand-btn{align-self:flex-start;background:none;border:none;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;padding:var(--osi-section-item-padding-compact) 0;text-decoration:underline;transition:opacity var(--osi-section-item-transition)}.list-expand-btn:hover{opacity:.8}.list-expand-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-xs)}.list-item.expanded{background:var(--osi-section-item-background-hover);border-color:var(--osi-section-item-border-hover);box-shadow:var(--osi-section-item-shadow-hover)}@media (max-width: 479px){.list-container,.list-item{max-width:100%;overflow-x:hidden}.list-header{flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-content{max-width:100%;min-width:0}}@media (max-width: 600px){.list-container{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.list-item{transition:none;transform:none!important}.list-bullet,.list-icon{transition:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SectionHeaderComponent, selector: "lib-section-header", inputs: ["title", "description", "level", "headerClass", "titleClass", "descriptionClass"] }, { kind: "component", type: EmptyStateComponent, selector: "lib-empty-state", inputs: ["message", "icon", "actionLabel", "variant", "size", "containerClass"], outputs: ["action"] }, { kind: "component", type: BadgeComponent, selector: "lib-badge", inputs: ["variant", "size", "outlined", "pill", "dot", "badgeClass", "icon", "interactive", "ariaLabel"] }] }); }
|
|
20315
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ListSectionComponent, isStandalone: true, selector: "lib-list-section", usesInheritance: true, ngImport: i0, template: "<div class=\"ai-section ai-section--list section-content\">\n <lib-section-header *ngIf=\"section.title\" [title]=\"section.title\" [description]=\"section.description\">\n </lib-section-header>\n\n <div class=\"list-container\" *ngIf=\"section.items?.length\">\n <div class=\"section-item\" *ngFor=\"let item of section.items; let i = index\">\n <div class=\"list-content\">\n <div class=\"list-header\">\n <h4 class=\"list-title\">{{ item.title }}</h4>\n <div class=\"list-badges\">\n <lib-badge *ngIf=\"item.status\" [variant]=\"getStatusVariant(item.status)\" size=\"sm\">\n {{ item.status }}\n </lib-badge>\n <lib-badge *ngIf=\"item.priority\" [variant]=\"getPriorityVariant(item.priority)\" size=\"sm\">\n {{ item.priority }}\n </lib-badge>\n </div>\n </div>\n <div class=\"list-description-wrapper\" *ngIf=\"item.description\">\n <p class=\"list-description\" *ngIf=\"item.description\">\n {{ item.description }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <lib-empty-state *ngIf=\"!section.items?.length\" message=\"No items\" icon=\"\uD83D\uDCDD\" variant=\"minimal\"> </lib-empty-state>\n</div>\n", styles: [".osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%;max-width:100%;min-width:0}@media (max-width: 479px){:host{min-width:0}}.list-section{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.list-container{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;width:100%;display:flex;align-items:flex-start;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:hover .list-bullet,.section-item:hover .list-icon{color:var(--accent);opacity:1}.section-item:hover .list-title{color:var(--accent)}.section-item:focus-visible{outline:2px solid rgba(var(--accent-rgb),.7);outline-offset:2px}.list-bullet{font-size:var(--text-lg);color:var(--accent);opacity:.6;line-height:1;font-weight:var(--font-bold);transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0}.list-icon{font-size:var(--text-2xl);line-height:1;transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0;opacity:.8;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.list-content{flex:1;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);min-width:0;width:100%;box-sizing:border-box}.list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--osi-section-item-gap);flex-wrap:wrap}.list-title{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);flex:1;margin:0;transition:color var(--osi-section-item-transition)}.list-badges{display:flex;gap:var(--osi-section-item-gap-xs);flex-shrink:0}.list-description-wrapper{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-description{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--foreground);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;max-width:100%;box-sizing:border-box;color:color-mix(in srgb,var(--foreground) 75%,transparent);margin:0;line-height:var(--leading-relaxed);word-wrap:break-word;overflow-wrap:break-word;font-weight:var(--font-normal)}.list-description--expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.list-expand-btn{align-self:flex-start;background:none;border:none;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;padding:var(--osi-section-item-padding-compact) 0;text-decoration:underline;transition:opacity var(--osi-section-item-transition)}.list-expand-btn:hover{opacity:.8}.list-expand-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-xs)}.list-item.expanded{background:var(--osi-section-item-background-hover);border-color:var(--osi-section-item-border-hover);box-shadow:var(--osi-section-item-shadow-hover)}@media (max-width: 479px){.list-container,.list-item{max-width:100%;overflow-x:hidden}.list-header{flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-content{max-width:100%;min-width:0}}@media (max-width: 600px){.list-container{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.list-item{transition:none;transform:none!important}.list-bullet,.list-icon{transition:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SectionHeaderComponent, selector: "lib-section-header", inputs: ["title", "description", "level", "headerClass", "titleClass", "descriptionClass"] }, { kind: "component", type: EmptyStateComponent, selector: "lib-empty-state", inputs: ["message", "icon", "actionLabel", "variant", "size", "containerClass"], outputs: ["action"] }, { kind: "component", type: BadgeComponent, selector: "lib-badge", inputs: ["variant", "size", "outlined", "pill", "dot", "badgeClass", "icon", "interactive", "ariaLabel"] }] }); }
|
|
20112
20316
|
}
|
|
20113
20317
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ListSectionComponent, decorators: [{
|
|
20114
20318
|
type: Component,
|
|
20115
|
-
args: [{ selector: 'lib-list-section', standalone: true, imports: [CommonModule, SectionHeaderComponent, EmptyStateComponent, BadgeComponent], template: "<div class=\"ai-section ai-section--list section-content\">\n <lib-section-header *ngIf=\"section.title\" [title]=\"section.title\" [description]=\"section.description\">\n </lib-section-header>\n\n <div class=\"list-container\" *ngIf=\"section.items?.length\">\n <div class=\"section-item\" *ngFor=\"let item of section.items; let i = index\" [class.expanded]=\"expandedIndex === i\">\n <span class=\"list-icon\" *ngIf=\"item.icon\">{{ item.icon }}</span>\n <span class=\"list-bullet\" *ngIf=\"!item.icon\">\u2022</span>\n <div class=\"list-content\">\n <div class=\"list-header\">\n <h4 class=\"list-title\">{{ item.title }}</h4>\n <div class=\"list-badges\">\n <lib-badge *ngIf=\"item.status\" [variant]=\"getStatusVariant(item.status)\" size=\"sm\">\n {{ item.status }}\n </lib-badge>\n <lib-badge *ngIf=\"item.priority\" [variant]=\"getPriorityVariant(item.priority)\" size=\"sm\">\n {{ item.priority }}\n </lib-badge>\n </div>\n </div>\n <div class=\"list-description-wrapper\" *ngIf=\"item.description\">\n <p class=\"list-description\" [class.list-description--expanded]=\"isItemExpanded(i)\" *ngIf=\"item.description\">\n {{ item.description }}\n </p>\n <button\n *ngIf=\"shouldShowExpandButton(item)\"\n class=\"list-expand-btn\"\n type=\"button\"\n (click)=\"toggleExpanded(i); $event.stopPropagation()\"\n [attr.aria-expanded]=\"isItemExpanded(i)\"\n [attr.aria-label]=\"(isItemExpanded(i) ? 'Collapse' : 'Expand') + ' description'\"\n >\n {{ isItemExpanded(i) ? 'Show less' : 'Show more' }}\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <lib-empty-state *ngIf=\"!section.items?.length\" message=\"No items\" icon=\"\uD83D\uDCDD\" variant=\"minimal\"> </lib-empty-state>\n</div>\n", styles: [".osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%;max-width:100%;min-width:0}@media (max-width: 479px){:host{min-width:0}}.list-section{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.list-container{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;width:100%;display:flex;align-items:flex-start;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:hover .list-bullet,.section-item:hover .list-icon{color:var(--accent);opacity:1}.section-item:hover .list-title{color:var(--accent)}.section-item:focus-visible{outline:2px solid rgba(var(--accent-rgb),.7);outline-offset:2px}.list-bullet{font-size:var(--text-lg);color:var(--accent);opacity:.6;line-height:1;font-weight:var(--font-bold);transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0}.list-icon{font-size:var(--text-2xl);line-height:1;transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0;opacity:.8;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.list-content{flex:1;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);min-width:0;width:100%;box-sizing:border-box}.list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--osi-section-item-gap);flex-wrap:wrap}.list-title{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);flex:1;margin:0;transition:color var(--osi-section-item-transition)}.list-badges{display:flex;gap:var(--osi-section-item-gap-xs);flex-shrink:0}.list-description-wrapper{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-description{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--foreground);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;max-width:100%;box-sizing:border-box;color:color-mix(in srgb,var(--foreground) 75%,transparent);margin:0;line-height:var(--leading-relaxed);word-wrap:break-word;overflow-wrap:break-word;font-weight:var(--font-normal)}.list-description--expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.list-expand-btn{align-self:flex-start;background:none;border:none;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;padding:var(--osi-section-item-padding-compact) 0;text-decoration:underline;transition:opacity var(--osi-section-item-transition)}.list-expand-btn:hover{opacity:.8}.list-expand-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-xs)}.list-item.expanded{background:var(--osi-section-item-background-hover);border-color:var(--osi-section-item-border-hover);box-shadow:var(--osi-section-item-shadow-hover)}@media (max-width: 479px){.list-container,.list-item{max-width:100%;overflow-x:hidden}.list-header{flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-content{max-width:100%;min-width:0}}@media (max-width: 600px){.list-container{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.list-item{transition:none;transform:none!important}.list-bullet,.list-icon{transition:none}}\n"] }]
|
|
20319
|
+
args: [{ selector: 'lib-list-section', standalone: true, imports: [CommonModule, SectionHeaderComponent, EmptyStateComponent, BadgeComponent], template: "<div class=\"ai-section ai-section--list section-content\">\n <lib-section-header *ngIf=\"section.title\" [title]=\"section.title\" [description]=\"section.description\">\n </lib-section-header>\n\n <div class=\"list-container\" *ngIf=\"section.items?.length\">\n <div class=\"section-item\" *ngFor=\"let item of section.items; let i = index\">\n <div class=\"list-content\">\n <div class=\"list-header\">\n <h4 class=\"list-title\">{{ item.title }}</h4>\n <div class=\"list-badges\">\n <lib-badge *ngIf=\"item.status\" [variant]=\"getStatusVariant(item.status)\" size=\"sm\">\n {{ item.status }}\n </lib-badge>\n <lib-badge *ngIf=\"item.priority\" [variant]=\"getPriorityVariant(item.priority)\" size=\"sm\">\n {{ item.priority }}\n </lib-badge>\n </div>\n </div>\n <div class=\"list-description-wrapper\" *ngIf=\"item.description\">\n <p class=\"list-description\" *ngIf=\"item.description\">\n {{ item.description }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <lib-empty-state *ngIf=\"!section.items?.length\" message=\"No items\" icon=\"\uD83D\uDCDD\" variant=\"minimal\"> </lib-empty-state>\n</div>\n", styles: [".osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%;max-width:100%;min-width:0}@media (max-width: 479px){:host{min-width:0}}.list-section{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.list-container{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;width:100%;display:flex;align-items:flex-start;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:hover .list-bullet,.section-item:hover .list-icon{color:var(--accent);opacity:1}.section-item:hover .list-title{color:var(--accent)}.section-item:focus-visible{outline:2px solid rgba(var(--accent-rgb),.7);outline-offset:2px}.list-bullet{font-size:var(--text-lg);color:var(--accent);opacity:.6;line-height:1;font-weight:var(--font-bold);transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0}.list-icon{font-size:var(--text-2xl);line-height:1;transition:color var(--osi-section-item-transition),opacity var(--osi-section-item-transition);margin-top:var(--osi-spacing-2px);flex-shrink:0;opacity:.8;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.list-content{flex:1;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);min-width:0;width:100%;box-sizing:border-box}.list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--osi-section-item-gap);flex-wrap:wrap}.list-title{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);flex:1;margin:0;transition:color var(--osi-section-item-transition)}.list-badges{display:flex;gap:var(--osi-section-item-gap-xs);flex-shrink:0}.list-description-wrapper{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-description{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--foreground);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;max-width:100%;box-sizing:border-box;color:color-mix(in srgb,var(--foreground) 75%,transparent);margin:0;line-height:var(--leading-relaxed);word-wrap:break-word;overflow-wrap:break-word;font-weight:var(--font-normal)}.list-description--expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.list-expand-btn{align-self:flex-start;background:none;border:none;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;padding:var(--osi-section-item-padding-compact) 0;text-decoration:underline;transition:opacity var(--osi-section-item-transition)}.list-expand-btn:hover{opacity:.8}.list-expand-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-xs)}.list-item.expanded{background:var(--osi-section-item-background-hover);border-color:var(--osi-section-item-border-hover);box-shadow:var(--osi-section-item-shadow-hover)}@media (max-width: 479px){.list-container,.list-item{max-width:100%;overflow-x:hidden}.list-header{flex-direction:column;gap:var(--osi-section-item-gap-xs)}.list-content{max-width:100%;min-width:0}}@media (max-width: 600px){.list-container{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.list-item{transition:none;transform:none!important}.list-bullet,.list-icon{transition:none}}\n"] }]
|
|
20116
20320
|
}] });
|
|
20117
20321
|
|
|
20118
20322
|
var listSection_component = /*#__PURE__*/Object.freeze({
|
|
@@ -21654,16 +21858,14 @@ class SolutionsSectionComponent extends BaseSectionComponent {
|
|
|
21654
21858
|
if (!solution?.expressoLink) {
|
|
21655
21859
|
return '';
|
|
21656
21860
|
}
|
|
21657
|
-
return
|
|
21658
|
-
? solution.expressoLink
|
|
21659
|
-
: String(solution.expressoLink);
|
|
21861
|
+
return 'See the Solution on Expresso';
|
|
21660
21862
|
}
|
|
21661
21863
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SolutionsSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21662
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: SolutionsSectionComponent, isStandalone: true, selector: "lib-solutions-section", viewQueries: [{ propertyName: "solutionsGrid", first: true, predicate: ["solutionsGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ai-section ai-section--solutions section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Solutions Grid -->\n <div class=\"solutions-grid\" #solutionsGrid *ngIf=\"section.fields && section.fields.length > 0\">\n <div class=\"section-item\" *ngFor=\"let solution of section.fields; let i = index\" [class.expanded]=\"isExpanded(i)\">\n <!-- Solution Header -->\n <div class=\"solution-header\">\n <!-- Title and Logo on same line -->\n <div class=\"solution-title-row\">\n <h4 class=\"solution-title\">{{ solution.title }}</h4>\n <!-- Expresso Logo -->\n <div\n class=\"solution-logo-container\"\n [class.clickable]=\"solution.expressoLink\"\n (click)=\"onExpressoLogoClick(solution)\"\n [style.cursor]=\"solution.expressoLink ? 'pointer' : 'default'\"\n >\n <svg\n class=\"solution-logo\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n [appTooltip]=\"getExpressoTooltip(solution)\"\n tooltipPosition=\"top\"\n [tooltipDelay]=\"200\"\n [tooltipDisabled]=\"!solution.expressoLink\"\n [attr.role]=\"solution.expressoLink ? 'button' : 'img'\"\n [attr.aria-label]=\"solution.expressoLink ? 'Open Expresso product page' : 'Expresso logo'\"\n width=\"16\"\n height=\"16\"\n >\n <!-- Orange square background -->\n <rect width=\"16\" height=\"16\" fill=\"#ff7e00\" />\n <!-- White circular \"O\" - large and prominent -->\n <circle cx=\"8\" cy=\"8\" r=\"5.6\" fill=\"none\" stroke=\"white\" stroke-width=\"1.6\" />\n <!-- White banner with expresso text, positioned diagonally from top right -->\n <g transform=\"translate(8, 8) rotate(35) translate(-8, -8)\">\n <rect x=\"7.2\" y=\"2.4\" width=\"8\" height=\"3.2\" fill=\"white\" rx=\"0.64\" />\n <text\n x=\"11.2\"\n y=\"4.48\"\n font-family=\"Arial, sans-serif\"\n font-size=\"1.76\"\n font-weight=\"600\"\n fill=\"#ff7e00\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n >\n expresso\n </text>\n </g>\n </svg>\n </div>\n </div>\n <span class=\"solution-category\" *ngIf=\"solution.category\">{{ solution.category }}</span>\n </div>\n\n <!-- Solution Description -->\n <p class=\"solution-description\" *ngIf=\"solution.description\" [class.expanded]=\"isDescriptionExpanded(i)\">\n {{ solution.description }}\n </p>\n <button\n *ngIf=\"shouldShowExpandButton(solution)\"\n class=\"solution-description-expand-button\"\n type=\"button\"\n (click)=\"toggleDescriptionExpanded(i)\"\n [attr.aria-expanded]=\"isDescriptionExpanded(i)\"\n [attr.aria-label]=\"\n (isDescriptionExpanded(i) ? 'Show less' : 'Show more') + ' description for ' + solution.title\n \"\n >\n {{ isDescriptionExpanded(i) ? 'Show less' : 'Show more' }}\n </button>\n\n <!-- Benefits -->\n <ul class=\"solution-benefits\" *ngIf=\"solution.benefits && solution.benefits.length > 0\">\n <li *ngFor=\"let benefit of getVisibleBenefits(solution.benefits, i)\">{{ benefit }}</li>\n </ul>\n\n <button class=\"solution-more\" type=\"button\" *ngIf=\"shouldShowMoreButton(solution, i)\" (click)=\"toggleExpanded(i)\">\n {{ isExpanded(i) ? 'Show less' : '+' + getRemainingBenefitsCount(solution) + ' more' }}\n </button>\n\n <!-- Match Score Bar -->\n <div class=\"solution-score\" *ngIf=\"solution.score !== undefined && solution.score !== null\">\n <div class=\"solution-score-label\">\n <span>Match Score</span>\n <span class=\"solution-score-value\">{{ solution.score }}/10</span>\n </div>\n <div class=\"solution-score-bar\">\n <div class=\"solution-score-fill\" [style.width.%]=\"getScorePercentage(solution)\"></div>\n </div>\n </div>\n\n <!-- Meta Info -->\n <div class=\"solution-meta\">\n <span class=\"solution-meta-label\" *ngIf=\"getMetaLabel(solution) as label\">\n {{ label }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <lib-empty-state\n *ngIf=\"!section.fields || section.fields.length === 0\"\n message=\"No solution data\"\n icon=\"\uD83D\uDCA1\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n</div>\n", styles: ["@charset \"UTF-8\";:root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.solutions-container{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--osi-section-item-gap)!important;width:100%;box-sizing:border-box}@media (max-width: 767px){.solutions-grid{grid-template-columns:repeat(2,1fr);gap:var(--osi-section-item-gap)}}@media (max-width: 479px){.solutions-grid{grid-template-columns:1fr;gap:var(--osi-section-item-gap)}}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;word-wrap:break-word;overflow-wrap:break-word;min-height:180px;display:flex;flex-direction:column;gap:var(--osi-section-item-gap);text-align:left;align-items:stretch;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item>*{margin-left:0!important;margin-right:0!important;padding-left:0;padding-right:0}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent) 0%,transparent 100%);opacity:0;transition:opacity var(--osi-section-item-transition);top:auto!important}.section-item:hover:after{opacity:.8}.section-item:hover .solution-title{color:var(--accent)}.solution-header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--osi-section-item-gap-xs);width:100%;margin:0;padding:0}.solution-title-row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;width:100%;gap:var(--osi-section-item-gap);margin:0;padding:0;flex-wrap:nowrap}.solution-logo-container{flex-shrink:0;flex-grow:0;pointer-events:auto;line-height:0;margin:0;padding:0;align-self:flex-start;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;order:2;box-sizing:border-box;min-width:16px;max-width:16px;min-height:16px;max-height:16px;overflow:hidden;transition:opacity var(--osi-section-item-transition),transform var(--osi-section-item-transition)}.solution-logo-container.clickable:hover{opacity:.8;transform:scale(1.1)}.solution-logo-container.clickable:active{transform:scale(.95)}.solution-logo{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;display:block;cursor:pointer;flex-shrink:0;margin:0;padding:0;aspect-ratio:1/1;box-sizing:border-box}.solution-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--foreground);margin:0;padding:0;line-height:var(--leading-normal);text-align:left;transition:color var(--osi-section-item-transition);flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.solution-category{font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-tight);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;opacity:.7;text-align:left;margin:0;padding:0}.solution-description{font-size:var(--text-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--foreground);color:var(--muted-foreground);line-height:var(--leading-relaxed);margin:0;padding:0;margin-bottom:var(--osi-section-item-gap);opacity:.9;text-align:left;width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word;transition:opacity var(--osi-section-item-transition),color var(--osi-section-item-transition)}.solution-description.expanded{display:block;-webkit-line-clamp:unset;overflow:visible;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;max-width:100%;box-sizing:border-box}.solution-description-expand-button{background:none;border:none;font-size:.7rem;font-weight:var(--font-medium);cursor:pointer;padding:var(--osi-spacing-compact-xs, 2px) 0;transition:opacity .2s var(--ease-out);margin:var(--osi-section-item-gap-xs) 0 0 0;padding:0;align-self:flex-start;font-size:var(--text-sm);color:var(--accent);text-align:left}.solution-description-expand-button:hover{text-decoration:underline;opacity:.8}.solution-description-expand-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.solution-description-expand-button:hover{text-decoration:underline}.solution-benefits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);flex:1;text-align:left;width:100%}.solution-benefits li{font-size:var(--text-sm);color:var(--muted-foreground);padding:0 0 0 18px;margin:0;position:relative;line-height:var(--leading-normal);text-align:left}.solution-benefits li:before{content:\"\\2713\";position:absolute;left:0;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-bold)}.solution-more{align-self:flex-start;margin:0;margin-bottom:var(--osi-section-item-gap);padding:0;border:0;background:transparent;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;line-height:var(--leading-tight);text-align:left}.solution-more:hover{text-decoration:underline}.solution-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-sm)}.solution-score{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);margin:var(--osi-section-item-gap) 0 0 0;padding:0;width:100%}.solution-score-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--muted-foreground);font-weight:var(--font-medium);margin:0;padding:0}.solution-score-value{font-weight:var(--font-semibold);color:var(--accent, var(--color-brand, #ff7900))}.solution-score-bar{width:100%;height:6px;background:color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 15%,transparent);border-radius:var(--osi-radius-sm, 3px);overflow:hidden;position:relative}.solution-score-fill{height:100%;background:linear-gradient(90deg,var(--accent, var(--color-brand, #ff7900)) 0%,var(--osi-accent-bright, var(--color-brand-light, #ff9933)) 100%);border-radius:var(--osi-radius-sm, 3px);transition:width .3s ease;box-shadow:0 0 4px color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 40%,transparent)}.solution-meta{display:flex;align-items:center;justify-content:flex-start;gap:var(--osi-section-item-gap);margin:auto 0 0;padding:var(--osi-section-item-padding-compact) 0 0 0;border-top:1px solid var(--border);width:100%}.delivery-time,.solution-meta-label{font-size:var(--text-sm);color:var(--muted-foreground);opacity:.7;text-align:left;margin:0;padding:0;display:inline-flex;align-items:center;gap:4px}@media (max-width: 479px){.section-item{min-height:160px}.solution-description{font-size:var(--text-sm)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SectionHeaderComponent, selector: "lib-section-header", inputs: ["title", "description", "level", "headerClass", "titleClass", "descriptionClass"] }, { kind: "component", type: EmptyStateComponent, selector: "lib-empty-state", inputs: ["message", "icon", "actionLabel", "variant", "size", "containerClass"], outputs: ["action"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "tooltipPosition", "tooltipDelay", "tooltipDuration", "tooltipClass", "tooltipDisabled", "tooltipShowArrow", "tooltipMaxWidth"] }] }); }
|
|
21864
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: SolutionsSectionComponent, isStandalone: true, selector: "lib-solutions-section", viewQueries: [{ propertyName: "solutionsGrid", first: true, predicate: ["solutionsGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ai-section ai-section--solutions section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Solutions Grid -->\n <div class=\"solutions-grid\" #solutionsGrid *ngIf=\"section.fields && section.fields.length > 0\">\n <div class=\"section-item\" *ngFor=\"let solution of section.fields; let i = index\" [class.expanded]=\"isExpanded(i)\">\n <!-- Solution Header -->\n <div class=\"solution-header\">\n <!-- Title and Logo on same line -->\n <div class=\"solution-title-row\">\n <h4 class=\"solution-title\">{{ solution.title }}</h4>\n <!-- Expresso Logo -->\n <div\n class=\"solution-logo-container\"\n [class.clickable]=\"solution.expressoLink\"\n (click)=\"onExpressoLogoClick(solution)\"\n [style.cursor]=\"solution.expressoLink ? 'pointer' : 'default'\"\n >\n <svg\n class=\"solution-logo\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n [appTooltip]=\"getExpressoTooltip(solution)\"\n tooltipPosition=\"top\"\n [tooltipDelay]=\"200\"\n [tooltipDisabled]=\"!solution.expressoLink\"\n [attr.role]=\"solution.expressoLink ? 'button' : 'img'\"\n [attr.aria-label]=\"solution.expressoLink ? 'Open Expresso product page' : 'Expresso logo'\"\n width=\"16\"\n height=\"16\"\n >\n <!-- Orange square background -->\n <rect width=\"16\" height=\"16\" fill=\"#ff7e00\" />\n <!-- White circular \"O\" - large and prominent -->\n <circle cx=\"8\" cy=\"8\" r=\"5.6\" fill=\"none\" stroke=\"white\" stroke-width=\"1.6\" />\n <!-- White banner with expresso text, positioned diagonally from top right -->\n <g transform=\"translate(8, 8) rotate(35) translate(-8, -8)\">\n <rect x=\"7.2\" y=\"2.4\" width=\"8\" height=\"3.2\" fill=\"white\" rx=\"0.64\" />\n <text\n x=\"11.2\"\n y=\"4.48\"\n font-family=\"Arial, sans-serif\"\n font-size=\"1.76\"\n font-weight=\"600\"\n fill=\"#ff7e00\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n >\n expresso\n </text>\n </g>\n </svg>\n </div>\n </div>\n <span class=\"solution-category\" *ngIf=\"solution.category\">{{ solution.category }}</span>\n </div>\n\n <!-- Solution Description -->\n <p class=\"solution-description\" *ngIf=\"solution.description\">\n {{ solution.description }}\n </p>\n\n <!-- Benefits -->\n <ul class=\"solution-benefits\" *ngIf=\"solution.benefits && solution.benefits.length > 0\">\n <li *ngFor=\"let benefit of getVisibleBenefits(solution.benefits, i)\">{{ benefit }}</li>\n </ul>\n\n <button class=\"solution-more\" type=\"button\" *ngIf=\"shouldShowMoreButton(solution, i)\" (click)=\"toggleExpanded(i)\">\n {{ isExpanded(i) ? 'Show less' : '+' + getRemainingBenefitsCount(solution) + ' more' }}\n </button>\n\n <!-- Match Score Bar -->\n <div class=\"solution-score\" *ngIf=\"solution.score !== undefined && solution.score !== null\">\n <div class=\"solution-score-label\">\n <span>Match Score</span>\n <span class=\"solution-score-value\">{{ solution.score }}/10</span>\n </div>\n <div class=\"solution-score-bar\">\n <div class=\"solution-score-fill\" [style.width.%]=\"getScorePercentage(solution)\"></div>\n </div>\n </div>\n\n <!-- Meta Info -->\n <div class=\"solution-meta\">\n <span class=\"solution-meta-label\" *ngIf=\"getMetaLabel(solution) as label\">\n {{ label }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <lib-empty-state\n *ngIf=\"!section.fields || section.fields.length === 0\"\n message=\"No solution data\"\n icon=\"\uD83D\uDCA1\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n</div>\n", styles: ["@charset \"UTF-8\";:root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.solutions-container{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--osi-section-item-gap)!important;width:100%;box-sizing:border-box}@media (max-width: 767px){.solutions-grid{grid-template-columns:repeat(2,1fr);gap:var(--osi-section-item-gap)}}@media (max-width: 479px){.solutions-grid{grid-template-columns:1fr;gap:var(--osi-section-item-gap)}}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;word-wrap:break-word;overflow-wrap:break-word;min-height:180px;display:flex;flex-direction:column;gap:var(--osi-section-item-gap);text-align:left;align-items:stretch;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item>*{margin-left:0!important;margin-right:0!important;padding-left:0;padding-right:0}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent) 0%,transparent 100%);opacity:0;transition:opacity var(--osi-section-item-transition);top:auto!important}.section-item:hover:after{opacity:.8}.section-item:hover .solution-title{color:var(--accent)}.solution-header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--osi-section-item-gap-xs);width:100%;margin:0;padding:0}.solution-title-row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;width:100%;gap:var(--osi-section-item-gap);margin:0;padding:0;flex-wrap:nowrap}.solution-logo-container{flex-shrink:0;flex-grow:0;pointer-events:auto;line-height:0;margin:0;padding:0;align-self:flex-start;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;order:2;box-sizing:border-box;min-width:16px;max-width:16px;min-height:16px;max-height:16px;overflow:hidden;transition:opacity var(--osi-section-item-transition),transform var(--osi-section-item-transition)}.solution-logo-container.clickable:hover{opacity:.8;transform:scale(1.1)}.solution-logo-container.clickable:active{transform:scale(.95)}.solution-logo{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;display:block;cursor:pointer;flex-shrink:0;margin:0;padding:0;aspect-ratio:1/1;box-sizing:border-box}.solution-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--foreground);margin:0;padding:0;line-height:var(--leading-normal);text-align:left;transition:color var(--osi-section-item-transition);flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.solution-category{font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-tight);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;opacity:.7;text-align:left;margin:0;padding:0}.solution-description{font-size:var(--text-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--foreground);color:var(--muted-foreground);line-height:var(--leading-relaxed);margin:0;padding:0;margin-bottom:var(--osi-section-item-gap);opacity:.9;text-align:left;width:100%;overflow-wrap:break-word;word-wrap:break-word;transition:opacity var(--osi-section-item-transition),color var(--osi-section-item-transition)}.solution-benefits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);flex:1;text-align:left;width:100%}.solution-benefits li{font-size:var(--text-sm);color:var(--muted-foreground);padding:0 0 0 18px;margin:0;position:relative;line-height:var(--leading-normal);text-align:left}.solution-benefits li:before{content:\"\\2713\";position:absolute;left:0;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-bold)}.solution-more{align-self:flex-start;margin:0;margin-bottom:var(--osi-section-item-gap);padding:0;border:0;background:transparent;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;line-height:var(--leading-tight);text-align:left}.solution-more:hover{text-decoration:underline}.solution-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-sm)}.solution-score{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);margin:var(--osi-section-item-gap) 0 0 0;padding:0;width:100%}.solution-score-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--muted-foreground);font-weight:var(--font-medium);margin:0;padding:0}.solution-score-value{font-weight:var(--font-semibold);color:var(--accent, var(--color-brand, #ff7900))}.solution-score-bar{width:100%;height:6px;background:color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 15%,transparent);border-radius:var(--osi-radius-sm, 3px);overflow:hidden;position:relative}.solution-score-fill{height:100%;background:linear-gradient(90deg,var(--accent, var(--color-brand, #ff7900)) 0%,var(--osi-accent-bright, var(--color-brand-light, #ff9933)) 100%);border-radius:var(--osi-radius-sm, 3px);transition:width .3s ease;box-shadow:0 0 4px color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 40%,transparent)}.solution-meta{display:flex;align-items:center;justify-content:flex-start;gap:var(--osi-section-item-gap);margin:auto 0 0;padding:var(--osi-section-item-padding-compact) 0 0 0;border-top:1px solid var(--border);width:100%}.delivery-time,.solution-meta-label{font-size:var(--text-sm);color:var(--muted-foreground);opacity:.7;text-align:left;margin:0;padding:0;display:inline-flex;align-items:center;gap:4px}@media (max-width: 479px){.section-item{min-height:160px}.solution-description{font-size:var(--text-sm)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SectionHeaderComponent, selector: "lib-section-header", inputs: ["title", "description", "level", "headerClass", "titleClass", "descriptionClass"] }, { kind: "component", type: EmptyStateComponent, selector: "lib-empty-state", inputs: ["message", "icon", "actionLabel", "variant", "size", "containerClass"], outputs: ["action"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "tooltipPosition", "tooltipDelay", "tooltipDuration", "tooltipClass", "tooltipDisabled", "tooltipShowArrow", "tooltipMaxWidth"] }] }); }
|
|
21663
21865
|
}
|
|
21664
21866
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SolutionsSectionComponent, decorators: [{
|
|
21665
21867
|
type: Component,
|
|
21666
|
-
args: [{ selector: 'lib-solutions-section', standalone: true, imports: [CommonModule, SectionHeaderComponent, EmptyStateComponent, TooltipDirective], template: "<div class=\"ai-section ai-section--solutions section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Solutions Grid -->\n <div class=\"solutions-grid\" #solutionsGrid *ngIf=\"section.fields && section.fields.length > 0\">\n <div class=\"section-item\" *ngFor=\"let solution of section.fields; let i = index\" [class.expanded]=\"isExpanded(i)\">\n <!-- Solution Header -->\n <div class=\"solution-header\">\n <!-- Title and Logo on same line -->\n <div class=\"solution-title-row\">\n <h4 class=\"solution-title\">{{ solution.title }}</h4>\n <!-- Expresso Logo -->\n <div\n class=\"solution-logo-container\"\n [class.clickable]=\"solution.expressoLink\"\n (click)=\"onExpressoLogoClick(solution)\"\n [style.cursor]=\"solution.expressoLink ? 'pointer' : 'default'\"\n >\n <svg\n class=\"solution-logo\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n [appTooltip]=\"getExpressoTooltip(solution)\"\n tooltipPosition=\"top\"\n [tooltipDelay]=\"200\"\n [tooltipDisabled]=\"!solution.expressoLink\"\n [attr.role]=\"solution.expressoLink ? 'button' : 'img'\"\n [attr.aria-label]=\"solution.expressoLink ? 'Open Expresso product page' : 'Expresso logo'\"\n width=\"16\"\n height=\"16\"\n >\n <!-- Orange square background -->\n <rect width=\"16\" height=\"16\" fill=\"#ff7e00\" />\n <!-- White circular \"O\" - large and prominent -->\n <circle cx=\"8\" cy=\"8\" r=\"5.6\" fill=\"none\" stroke=\"white\" stroke-width=\"1.6\" />\n <!-- White banner with expresso text, positioned diagonally from top right -->\n <g transform=\"translate(8, 8) rotate(35) translate(-8, -8)\">\n <rect x=\"7.2\" y=\"2.4\" width=\"8\" height=\"3.2\" fill=\"white\" rx=\"0.64\" />\n <text\n x=\"11.2\"\n y=\"4.48\"\n font-family=\"Arial, sans-serif\"\n font-size=\"1.76\"\n font-weight=\"600\"\n fill=\"#ff7e00\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n >\n expresso\n </text>\n </g>\n </svg>\n </div>\n </div>\n <span class=\"solution-category\" *ngIf=\"solution.category\">{{ solution.category }}</span>\n </div>\n\n <!-- Solution Description -->\n <p class=\"solution-description\" *ngIf=\"solution.description\" [class.expanded]=\"isDescriptionExpanded(i)\">\n {{ solution.description }}\n </p>\n <button\n *ngIf=\"shouldShowExpandButton(solution)\"\n class=\"solution-description-expand-button\"\n type=\"button\"\n (click)=\"toggleDescriptionExpanded(i)\"\n [attr.aria-expanded]=\"isDescriptionExpanded(i)\"\n [attr.aria-label]=\"\n (isDescriptionExpanded(i) ? 'Show less' : 'Show more') + ' description for ' + solution.title\n \"\n >\n {{ isDescriptionExpanded(i) ? 'Show less' : 'Show more' }}\n </button>\n\n <!-- Benefits -->\n <ul class=\"solution-benefits\" *ngIf=\"solution.benefits && solution.benefits.length > 0\">\n <li *ngFor=\"let benefit of getVisibleBenefits(solution.benefits, i)\">{{ benefit }}</li>\n </ul>\n\n <button class=\"solution-more\" type=\"button\" *ngIf=\"shouldShowMoreButton(solution, i)\" (click)=\"toggleExpanded(i)\">\n {{ isExpanded(i) ? 'Show less' : '+' + getRemainingBenefitsCount(solution) + ' more' }}\n </button>\n\n <!-- Match Score Bar -->\n <div class=\"solution-score\" *ngIf=\"solution.score !== undefined && solution.score !== null\">\n <div class=\"solution-score-label\">\n <span>Match Score</span>\n <span class=\"solution-score-value\">{{ solution.score }}/10</span>\n </div>\n <div class=\"solution-score-bar\">\n <div class=\"solution-score-fill\" [style.width.%]=\"getScorePercentage(solution)\"></div>\n </div>\n </div>\n\n <!-- Meta Info -->\n <div class=\"solution-meta\">\n <span class=\"solution-meta-label\" *ngIf=\"getMetaLabel(solution) as label\">\n {{ label }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <lib-empty-state\n *ngIf=\"!section.fields || section.fields.length === 0\"\n message=\"No solution data\"\n icon=\"\uD83D\uDCA1\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n</div>\n", styles: ["@charset \"UTF-8\";:root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.solutions-container{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--osi-section-item-gap)!important;width:100%;box-sizing:border-box}@media (max-width: 767px){.solutions-grid{grid-template-columns:repeat(2,1fr);gap:var(--osi-section-item-gap)}}@media (max-width: 479px){.solutions-grid{grid-template-columns:1fr;gap:var(--osi-section-item-gap)}}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;word-wrap:break-word;overflow-wrap:break-word;min-height:180px;display:flex;flex-direction:column;gap:var(--osi-section-item-gap);text-align:left;align-items:stretch;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item>*{margin-left:0!important;margin-right:0!important;padding-left:0;padding-right:0}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent) 0%,transparent 100%);opacity:0;transition:opacity var(--osi-section-item-transition);top:auto!important}.section-item:hover:after{opacity:.8}.section-item:hover .solution-title{color:var(--accent)}.solution-header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--osi-section-item-gap-xs);width:100%;margin:0;padding:0}.solution-title-row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;width:100%;gap:var(--osi-section-item-gap);margin:0;padding:0;flex-wrap:nowrap}.solution-logo-container{flex-shrink:0;flex-grow:0;pointer-events:auto;line-height:0;margin:0;padding:0;align-self:flex-start;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;order:2;box-sizing:border-box;min-width:16px;max-width:16px;min-height:16px;max-height:16px;overflow:hidden;transition:opacity var(--osi-section-item-transition),transform var(--osi-section-item-transition)}.solution-logo-container.clickable:hover{opacity:.8;transform:scale(1.1)}.solution-logo-container.clickable:active{transform:scale(.95)}.solution-logo{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;display:block;cursor:pointer;flex-shrink:0;margin:0;padding:0;aspect-ratio:1/1;box-sizing:border-box}.solution-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--foreground);margin:0;padding:0;line-height:var(--leading-normal);text-align:left;transition:color var(--osi-section-item-transition);flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.solution-category{font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-tight);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;opacity:.7;text-align:left;margin:0;padding:0}.solution-description{font-size:var(--text-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--foreground);color:var(--muted-foreground);line-height:var(--leading-relaxed);margin:0;padding:0;margin-bottom:var(--osi-section-item-gap);opacity:.9;text-align:left;width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word;transition:opacity var(--osi-section-item-transition),color var(--osi-section-item-transition)}.solution-description.expanded{display:block;-webkit-line-clamp:unset;overflow:visible;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;max-width:100%;box-sizing:border-box}.solution-description-expand-button{background:none;border:none;font-size:.7rem;font-weight:var(--font-medium);cursor:pointer;padding:var(--osi-spacing-compact-xs, 2px) 0;transition:opacity .2s var(--ease-out);margin:var(--osi-section-item-gap-xs) 0 0 0;padding:0;align-self:flex-start;font-size:var(--text-sm);color:var(--accent);text-align:left}.solution-description-expand-button:hover{text-decoration:underline;opacity:.8}.solution-description-expand-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.solution-description-expand-button:hover{text-decoration:underline}.solution-benefits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);flex:1;text-align:left;width:100%}.solution-benefits li{font-size:var(--text-sm);color:var(--muted-foreground);padding:0 0 0 18px;margin:0;position:relative;line-height:var(--leading-normal);text-align:left}.solution-benefits li:before{content:\"\\2713\";position:absolute;left:0;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-bold)}.solution-more{align-self:flex-start;margin:0;margin-bottom:var(--osi-section-item-gap);padding:0;border:0;background:transparent;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;line-height:var(--leading-tight);text-align:left}.solution-more:hover{text-decoration:underline}.solution-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-sm)}.solution-score{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);margin:var(--osi-section-item-gap) 0 0 0;padding:0;width:100%}.solution-score-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--muted-foreground);font-weight:var(--font-medium);margin:0;padding:0}.solution-score-value{font-weight:var(--font-semibold);color:var(--accent, var(--color-brand, #ff7900))}.solution-score-bar{width:100%;height:6px;background:color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 15%,transparent);border-radius:var(--osi-radius-sm, 3px);overflow:hidden;position:relative}.solution-score-fill{height:100%;background:linear-gradient(90deg,var(--accent, var(--color-brand, #ff7900)) 0%,var(--osi-accent-bright, var(--color-brand-light, #ff9933)) 100%);border-radius:var(--osi-radius-sm, 3px);transition:width .3s ease;box-shadow:0 0 4px color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 40%,transparent)}.solution-meta{display:flex;align-items:center;justify-content:flex-start;gap:var(--osi-section-item-gap);margin:auto 0 0;padding:var(--osi-section-item-padding-compact) 0 0 0;border-top:1px solid var(--border);width:100%}.delivery-time,.solution-meta-label{font-size:var(--text-sm);color:var(--muted-foreground);opacity:.7;text-align:left;margin:0;padding:0;display:inline-flex;align-items:center;gap:4px}@media (max-width: 479px){.section-item{min-height:160px}.solution-description{font-size:var(--text-sm)}}\n"] }]
|
|
21868
|
+
args: [{ selector: 'lib-solutions-section', standalone: true, imports: [CommonModule, SectionHeaderComponent, EmptyStateComponent, TooltipDirective], template: "<div class=\"ai-section ai-section--solutions section-content\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Solutions Grid -->\n <div class=\"solutions-grid\" #solutionsGrid *ngIf=\"section.fields && section.fields.length > 0\">\n <div class=\"section-item\" *ngFor=\"let solution of section.fields; let i = index\" [class.expanded]=\"isExpanded(i)\">\n <!-- Solution Header -->\n <div class=\"solution-header\">\n <!-- Title and Logo on same line -->\n <div class=\"solution-title-row\">\n <h4 class=\"solution-title\">{{ solution.title }}</h4>\n <!-- Expresso Logo -->\n <div\n class=\"solution-logo-container\"\n [class.clickable]=\"solution.expressoLink\"\n (click)=\"onExpressoLogoClick(solution)\"\n [style.cursor]=\"solution.expressoLink ? 'pointer' : 'default'\"\n >\n <svg\n class=\"solution-logo\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n [appTooltip]=\"getExpressoTooltip(solution)\"\n tooltipPosition=\"top\"\n [tooltipDelay]=\"200\"\n [tooltipDisabled]=\"!solution.expressoLink\"\n [attr.role]=\"solution.expressoLink ? 'button' : 'img'\"\n [attr.aria-label]=\"solution.expressoLink ? 'Open Expresso product page' : 'Expresso logo'\"\n width=\"16\"\n height=\"16\"\n >\n <!-- Orange square background -->\n <rect width=\"16\" height=\"16\" fill=\"#ff7e00\" />\n <!-- White circular \"O\" - large and prominent -->\n <circle cx=\"8\" cy=\"8\" r=\"5.6\" fill=\"none\" stroke=\"white\" stroke-width=\"1.6\" />\n <!-- White banner with expresso text, positioned diagonally from top right -->\n <g transform=\"translate(8, 8) rotate(35) translate(-8, -8)\">\n <rect x=\"7.2\" y=\"2.4\" width=\"8\" height=\"3.2\" fill=\"white\" rx=\"0.64\" />\n <text\n x=\"11.2\"\n y=\"4.48\"\n font-family=\"Arial, sans-serif\"\n font-size=\"1.76\"\n font-weight=\"600\"\n fill=\"#ff7e00\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n >\n expresso\n </text>\n </g>\n </svg>\n </div>\n </div>\n <span class=\"solution-category\" *ngIf=\"solution.category\">{{ solution.category }}</span>\n </div>\n\n <!-- Solution Description -->\n <p class=\"solution-description\" *ngIf=\"solution.description\">\n {{ solution.description }}\n </p>\n\n <!-- Benefits -->\n <ul class=\"solution-benefits\" *ngIf=\"solution.benefits && solution.benefits.length > 0\">\n <li *ngFor=\"let benefit of getVisibleBenefits(solution.benefits, i)\">{{ benefit }}</li>\n </ul>\n\n <button class=\"solution-more\" type=\"button\" *ngIf=\"shouldShowMoreButton(solution, i)\" (click)=\"toggleExpanded(i)\">\n {{ isExpanded(i) ? 'Show less' : '+' + getRemainingBenefitsCount(solution) + ' more' }}\n </button>\n\n <!-- Match Score Bar -->\n <div class=\"solution-score\" *ngIf=\"solution.score !== undefined && solution.score !== null\">\n <div class=\"solution-score-label\">\n <span>Match Score</span>\n <span class=\"solution-score-value\">{{ solution.score }}/10</span>\n </div>\n <div class=\"solution-score-bar\">\n <div class=\"solution-score-fill\" [style.width.%]=\"getScorePercentage(solution)\"></div>\n </div>\n </div>\n\n <!-- Meta Info -->\n <div class=\"solution-meta\">\n <span class=\"solution-meta-label\" *ngIf=\"getMetaLabel(solution) as label\">\n {{ label }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <lib-empty-state\n *ngIf=\"!section.fields || section.fields.length === 0\"\n message=\"No solution data\"\n icon=\"\uD83D\uDCA1\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n</div>\n", styles: ["@charset \"UTF-8\";:root{--osi-spacing-2px: 2px;--osi-spacing-4px: 4px;--osi-spacing-6px: 6px;--osi-spacing-8px: 8px;--osi-spacing-10px: 10px;--osi-spacing-xs: 4px;--osi-spacing-sm: 8px;--osi-spacing-md: 12px;--osi-spacing-lg: 16px;--osi-spacing-xl: 24px;--osi-spacing-2xl: 32px;--osi-spacing-3xl: 48px;--osi-section-header-gap: 2px;--osi-section-padding: var(--osi-spacing-sm);--osi-section-gap: var(--osi-spacing-md);--osi-item-padding: var(--osi-spacing-sm);--osi-item-gap: var(--osi-spacing-xs);--osi-element-gap: 2px;--osi-text-xs: .75rem;--osi-text-sm: .875rem;--osi-text-base: 1rem;--osi-text-md: 1.125rem;--osi-text-lg: 1.25rem;--osi-text-xl: 1.5rem;--osi-text-2xl: 1.875rem;--osi-text-3xl: 2.25rem;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--osi-font-normal: 400;--osi-font-medium: 500;--osi-font-semibold: 600;--osi-font-bold: 700;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--osi-leading-tight: 1.25;--osi-leading-snug: 1.375;--osi-leading-normal: 1.5;--osi-leading-relaxed: 1.625;--osi-leading-loose: 2;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75;--osi-tracking-tight: -.025em;--osi-tracking-normal: 0;--osi-tracking-wide: .025em;--osi-tracking-wider: .05em;--osi-surface: hsl(0, 0%, 10%);--osi-surface-raised: hsl(0, 0%, 15%);--osi-surface-hover: hsl(0, 0%, 20%);--osi-surface-subtle: hsl(0, 0%, 12%);--osi-foreground: var( --foreground, hsl(0, 0%, 95%) );--osi-foreground-strong: var(--foreground, hsl(0, 0%, 100%));--osi-muted-foreground: var( --muted-foreground, hsl(0, 0%, 60%) );--osi-disabled-foreground: var(--muted-foreground, hsl(0, 0%, 40%));--osi-accent: hsl(25, 100%, 50%);--osi-accent-bright: hsl(25, 100%, 60%);--osi-accent-muted: hsl(25, 50%, 40%);--osi-success: hsl(142, 71%, 45%);--osi-success-bg: hsla(142, 71%, 45%, .15);--osi-success-bright: hsl(142, 71%, 55%);--osi-error: hsl(0, 84%, 60%);--osi-error-bg: hsla(0, 84%, 60%, .15);--osi-error-bright: hsl(0, 84%, 70%);--osi-warning: hsl(45, 93%, 47%);--osi-warning-bg: hsla(45, 93%, 47%, .15);--osi-warning-bright: hsl(45, 93%, 57%);--osi-info: hsl(221, 83%, 53%);--osi-info-bg: hsla(221, 83%, 53%, .15);--osi-info-bright: hsl(221, 83%, 63%);--osi-border: hsla(0, 0%, 100%, .2);--osi-border-muted: hsla(0, 0%, 100%, .06);--osi-border-strong: hsla(0, 0%, 100%, .35);--osi-radius-none: 0;--osi-radius-xs: 2px;--osi-radius-sm: 4px;--osi-radius-md: 8px;--osi-radius-lg: 12px;--osi-radius-xl: 16px;--osi-radius-full: 9999px;--osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--osi-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--osi-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--osi-shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--osi-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--osi-duration-fast: .15s;--osi-duration-normal: .2s;--osi-duration-medium: .3s;--osi-duration-slow: .6s;--osi-ease-linear: linear;--osi-ease-in: cubic-bezier(.4, 0, 1, 1);--osi-ease-out: cubic-bezier(0, 0, .2, 1);--osi-ease-in-out: cubic-bezier(.4, 0, .2, 1);--osi-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--osi-z-base: 0;--osi-z-raised: 10;--osi-z-dropdown: 100;--osi-z-fixed: 300;--osi-z-modal: 400;--osi-z-popover: 500;--osi-z-tooltip: 600;--osi-grid-gap: var(--osi-spacing-md);--osi-grid-row-gap: var(--osi-grid-gap);--osi-grid-column-gap: var(--osi-grid-gap);--osi-grid-min-small: 140px;--osi-grid-min-medium: 200px;--osi-grid-min-large: 300px;--osi-grid-min-xs: 120px;--osi-grid-min-sm: 140px;--osi-grid-min-md: 160px;--osi-grid-min-lg: 180px;--osi-grid-min-xl: 200px;--osi-grid-min-2xl: 250px;--osi-grid-min-3xl: 280px;--osi-grid-min-4xl: 300px;--osi-card-min-height: 90px;--osi-card-min-height-large: 120px;--osi-card-min-height-xs: 70px;--osi-card-min-height-sm: 80px;--osi-card-min-height-md: 90px;--osi-card-min-height-lg: 95px;--osi-card-min-height-xl: 110px}@media (prefers-color-scheme: dark){:root{--osi-surface: hsl(0, 0%, 8%);--osi-surface-raised: hsl(0, 0%, 12%);--osi-surface-hover: hsl(0, 0%, 16%);--osi-border-muted: hsla(0, 0%, 100%, .04)}}@media (prefers-contrast: high){:root{--osi-border: hsla(0, 0%, 100%, .4);--osi-border-strong: hsla(0, 0%, 100%, .6)}}@media (prefers-reduced-motion: reduce){:root{--osi-duration-fast: 0ms;--osi-duration-normal: 0ms;--osi-duration-medium: 0ms;--osi-duration-slow: 0ms}}.osi-card-container{container-type:inline-size;container-name:card;--card-padding: 4px;--card-gap: .5rem;--card-title-size: 1rem;--section-title-size: .875rem;--field-label-size: .75rem;--field-value-size: .875rem}.masonry-container{--masonry-columns: 1}@media (min-width: 480px){.masonry-container{--masonry-columns: 2}}@media (min-width: 1024px){.masonry-container{--masonry-columns: 3}}@media (min-width: 1280px){.masonry-container{--masonry-columns: 4}}@container card (min-width: 400px){.masonry-container--container-responsive{--masonry-columns: 2}}@container card (min-width: 700px){.masonry-container--container-responsive{--masonry-columns: 3}}@container card (min-width: 1000px){.masonry-container--container-responsive{--masonry-columns: 4}}.ai-section--info .section-field-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--info .section-field-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.ai-section--info .section-field-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-grid{grid-template-columns:1fr}@media (min-width: 320px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.ai-section--analytics .metric-grid{grid-template-columns:repeat(3,1fr)}}.ai-section--analytics .metric-value{font-size:var(--text-2xl)}.ai-section--timeline .timeline-items{flex-direction:column}@media (min-width: 1024px){.ai-section--timeline .timeline-items{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory}.ai-section--timeline .timeline-items>*{scroll-snap-align:start;min-width:280px}}.ai-section--contact .contact-grid{grid-template-columns:1fr}@media (min-width: 480px){.ai-section--contact .contact-grid{grid-template-columns:repeat(2,1fr)}}.text-responsive{font-size:.875rem;line-height:1.5}.heading-responsive{font-size:1.25rem;line-height:1.2}.space-responsive{padding:.5rem}.gap-responsive{gap:.5rem}.touch-target{min-height:44px;min-width:44px}@media (min-width: 1024px){.touch-target{min-height:36px;min-width:36px}}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}.show-mobile{display:none!important}@media (max-width: 767px){.show-mobile{display:block!important}}.show-desktop{display:none!important}@media (min-width: 768px){.show-desktop{display:block!important}}@media print{.osi-card-container{--card-padding: 1rem;box-shadow:none;border:1px solid #ddd;break-inside:avoid}.masonry-container{--masonry-columns: 2;display:block}.masonry-container .masonry-item{break-inside:avoid;margin-bottom:1rem}.hide-print{display:none!important}}:root{--spacing-none: 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px;--spacing-2xl: 40px;--spacing-3xl: 56px;--spacing-compact-xs: 3px;--spacing-compact-sm: 6px;--spacing-compact-md: 9px;--spacing-compact-base: 12px;--spacing-compact-lg: 16px;--section-card-min-height: 110px;--section-card-compact-height: 90px;--section-header-gap: 2px;--section-content-gap: var(--spacing-sm);--section-card-gap: var(--spacing-md);--section-card-padding: var(--spacing-md)}:root{--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--text-4xl: 2rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-loose: 1.75}:root{--radius-none: 0;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 10px;--radius-2xl: 14px;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--glow-sm: 0 0 10px rgba(var(--accent-rgb), .15);--glow-md: 0 0 20px rgba(var(--accent-rgb), .2);--glow-lg: 0 0 30px rgba(var(--accent-rgb), .25)}@media (prefers-color-scheme: dark){:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5)}}:root{--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .6, 1);--transition-base: all var(--duration-base) var(--ease-out);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-slow: all var(--duration-slow) var(--ease-out);--transition-colors: background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);--transition-shadow: box-shadow var(--duration-base) var(--ease-out);--transition-transform: transform var(--duration-base) var(--ease-out)}:root{--z-base: 1;--z-dropdown: 100;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999}:root{--blur-none: 0;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: var(--blur-md)}@media (prefers-color-scheme: dark){:root{--glass-bg: rgba(0, 0, 0, .4);--glass-border: rgba(255, 255, 255, .1)}}:root{--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}:root{--surface-base: var(--osi-section-item-background);--surface-raised: var(--osi-section-item-background-hover);--surface-overlay: var(--glass-bg);--border-light: rgba(var(--foreground-rgb), .08);--border-base: var(--border);--border-strong: rgba(var(--foreground-rgb), .2);--state-hover-opacity: .08;--state-active-opacity: .12;--state-focus-opacity: .16;--state-disabled-opacity: .5}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes metal-sweep-ltr{0%{transform:translate(-100%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(200%);opacity:0}}@keyframes metal-sweep-rtl{0%{transform:translate(200%);opacity:0}20%{opacity:.3}50%{opacity:.5}80%{opacity:.3}to{transform:translate(-100%);opacity:0}}@keyframes section-fade-in{0%{opacity:0}to{opacity:1}}@keyframes section-fade-in-up{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item],.metric-card,.list-item,.analytics-card{transition:none!important;animation:none!important}.unified-card:hover,.section-card:hover,[class*=__card]:hover,[class*=-card]:hover,[class*=__item]:hover,[class*=-item]:hover,.metric-card:hover,.list-item:hover,.analytics-card:hover{transform:none!important}}.unified-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.unified-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.unified-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.unified-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.unified-card:before{display:none}}.unified-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.unified-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);display:flex;flex-direction:column;gap:var(--osi-section-item-gap);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-card:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-card:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-card:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-card:before{display:none}}.section-card:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-card:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-card{transition:none}}.section-card{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.section-item{transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color)!important;box-shadow:var(--osi-section-item-shadow-hover-enhanced)!important;background:var(--osi-section-item-background)!important}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:after{display:none}}.status--completed,.status--success{color:#22c55e;background:#22c55e1a}.status--active,.status--in-progress{color:var(--accent);background:#ff79001a}.status--pending,.status--warning{color:#f59e0b;background:#f59e0b1a}.status--blocked,.status--cancelled,.status--delayed,.status--inactive,.status--error{color:#ef4444;background:#ef44441a}.status--default{color:var(--muted-foreground);background:var(--muted)}.priority--high{color:#ef4444;background:#ef44441a}.priority--medium{color:#f59e0b;background:#f59e0b1a}.priority--low{color:#22c55e;background:#22c55e1a}.priority--default{color:var(--muted-foreground);background:var(--muted)}.masonry-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"2\"]:nth-child(odd) [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"3\"] [class*=-item]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-item:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .unified-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] .section-card:hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-card]:not([class*=__]):hover:before,.masonry-grid-container .masonry-item[data-col-span=\"4\"] [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}@supports (grid-template-rows: masonry){.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):before{background:linear-gradient(270deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+1) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+1) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+2) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-rtl .23s ease-out forwards!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%)!important}.masonry-container--native .masonry-item:nth-child(4n+3) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+3) [class*=-item]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-item:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .unified-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) .section-card:hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-card]:not([class*=__]):hover:before,.masonry-container--native .masonry-item:nth-child(4n+4) [class*=-item]:not([class*=__]):hover:before{animation:metal-sweep-ltr .23s ease-out forwards!important}}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes item-stream{0%{opacity:0;transform:translate3d(0,var(--osi-motion-distance-sm, 8px),0)}to{opacity:1;transform:translateZ(0)}}.ai-section h1,.ai-section h2,.ai-section h3,.ai-section h4,.ai-section h5,.ai-section h6,.ai-section [class*=title],.ai-section [class*=heading],.ai-section [class*=header]{margin-bottom:.05em!important;line-height:1.3!important}.ai-section br{margin-top:.05em!important;line-height:1.3!important}.ai-section p,.ai-section div,.ai-section span{line-height:1.3!important}.ai-section h1+p,.ai-section h1+div,.ai-section h1+span,.ai-section h2+p,.ai-section h2+div,.ai-section h2+span,.ai-section h3+p,.ai-section h3+div,.ai-section h3+span,.ai-section h4+p,.ai-section h4+div,.ai-section h4+span,.ai-section h5+p,.ai-section h5+div,.ai-section h5+span,.ai-section h6+p,.ai-section h6+div,.ai-section h6+span,.ai-section [class*=title]+p,.ai-section [class*=title]+div,.ai-section [class*=title]+span,.ai-section [class*=heading]+p,.ai-section [class*=heading]+div,.ai-section [class*=heading]+span,.ai-section [class*=header]+p,.ai-section [class*=header]+div,.ai-section [class*=header]+span{margin-top:.05em!important}.ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br{margin-top:7px!important;height:7px!important;line-height:1.3!important;display:block!important;content:\"\"}.ai-section{--section-accent: var(--osi-section-accent);--section-border: var(--osi-section-border);--section-border-hover: var(--osi-section-border-hover);--section-box-shadow: var(--osi-section-shadow);--section-background: var(--osi-section-background);--section-background-hover: var(--osi-section-background-hover);--section-backdrop-filter: var(--osi-section-backdrop-filter);--section-spacing-bottom: var(--osi-section-spacing-bottom, 12px);--section-glow-background: var(--osi-section-glow-background);--section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-title-hover-color: var(--osi-section-title-hover-color);width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-bottom:var(--section-spacing-bottom, 12px)!important;margin-top:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;contain:layout style;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section *{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.ai-section:not(.masonry-item .ai-section){position:relative;display:flex;flex-direction:column;gap:var(--section-card-gap);padding:0!important;border-radius:var(--osi-section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow);width:100%!important;max-width:100%!important;box-sizing:border-box!important;transition:border-color var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1),box-shadow var(--osi-card-transition-normal, .22s) cubic-bezier(.4,0,.2,1)}.ai-section:not(.masonry-item .ai-section):hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section:not(.masonry-item .ai-section){transition:none}}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--osi-section-gap, 8px)!important;height:auto!important}.ai-section:hover{border-color:var(--osi-section-border-hover-enhanced-color);box-shadow:var(--osi-section-shadow-hover-enhanced)}@media (prefers-reduced-motion: reduce){.ai-section{transition:none}}.ai-section__header{display:flex;flex-direction:column;gap:var(--osi-section-header-gap);width:100%;box-sizing:border-box;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:0 0 var(--osi-section-header-padding-bottom) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:var(--osi-section-header-gap)!important;text-align:left!important}.ai-section__title{font-size:var(--section-title-font-size, .9375rem);font-weight:var(--section-title-font-weight, 700);letter-spacing:var(--section-title-letter-spacing, -.02em);line-height:var(--section-title-line-height, 1.3);color:var(--card-text-primary, #1c1c1f);margin:0;font-size:var(--osi-section-title-font-size)!important;font-weight:700!important;letter-spacing:var(--osi-section-title-letter-spacing)!important;line-height:var(--osi-section-title-line-height)!important;color:var(--osi-section-title-color)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:var(--osi-section-title-transition)!important;padding:0!important;margin:0 0 var(--osi-section-title-margin-bottom) 0!important;text-align:left!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--osi-section-title-underline-offset)!important;width:var(--osi-section-title-underline-length)!important;height:var(--osi-section-title-underline-height)!important;background:var(--osi-section-title-underline-color)!important;border-radius:var(--radius-xs)!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--osi-section-title-color)!important}.ai-section__title:hover:before{width:var(--osi-section-title-underline-hover-length)!important;opacity:1!important}.ai-section__icon{display:none!important;width:var(--icon-size-section)!important;height:var(--icon-size-section)!important}.ai-section__details{display:flex!important;flex-direction:column!important;gap:var(--osi-section-header-gap)!important;align-items:flex-start!important;text-align:left!important}.ai-section__description{font-size:var(--section-description-font-size, .75rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.3;margin:0;color:var(--osi-section-description-color)!important;letter-spacing:.01em!important;line-height:1.2!important;font-weight:400!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:0!important;padding-top:0!important;text-align:left!important;transition:var(--osi-section-description-transition)!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:var(--osi-section-description-color-hover)!important}.ai-section__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;font-size:.55rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#ff7900;background:#ff79001a;border-radius:4px;white-space:nowrap;display:none!important;padding:var(--tag-padding-y-sm) var(--tag-padding-x)!important;border-radius:var(--radius-sm)!important}.ai-section--contact-card .ai-section__badge,.ai-section--solutions .ai-section__badge,.ai-section--event .ai-section__badge,.ai-section--chart .ai-section__badge,.ai-section--financials .ai-section__badge{display:none!important;align-items:center!important;padding:var(--osi-section-badge-padding)!important;background:var(--osi-section-badge-bg)!important;color:var(--osi-section-badge-color)!important;border:none!important;box-shadow:none!important;border-radius:var(--osi-section-border-radius)!important;font-size:var(--card-meta-font-size, .6rem)!important;font-weight:var(--card-meta-font-weight, 500)!important;transition:opacity .2s ease,background .2s ease!important;line-height:1.2!important}.ai-section:hover .ai-section__badge{opacity:1!important;background:var(--osi-section-badge-bg-hover)!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--osi-section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:var(--osi-section-padding)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--osi-section-empty-bg)!important;border:var(--osi-section-empty-border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--osi-section-gap)!important;opacity:var(--osi-section-empty-icon-opacity)!important;color:var(--accent)!important;transition:all .2s ease!important}.ai-section .section-empty p{font-size:var(--font-section-description, .85rem)!important;margin:0!important;font-weight:500!important;font-family:inherit!important}.ai-section .section-empty:hover{background:var(--osi-section-empty-bg-hover)!important;border-color:var(--osi-section-empty-border-hover)!important}.ai-section .section-empty:hover lucide-icon{opacity:var(--osi-section-empty-icon-opacity-hover)!important}.ai-section--info{--section-accent: var(--osi-section-accent-info)}.ai-section--analytics{--section-accent: var(--osi-section-accent-analytics)}.ai-section--financials{--section-accent: var(--osi-section-accent-financials)}.ai-section--map{--section-accent: var(--osi-section-accent-map)}.ai-section--network-card{--section-accent: var(--osi-section-accent-network)}.ai-section--contact-card{--section-accent: var(--osi-section-accent-contact)}.ai-section--product{--section-accent: var(--osi-section-accent-product)}.ai-section--solutions{--section-accent: var(--osi-section-accent-solutions)}.ai-section--overview{--section-accent: var(--osi-section-accent-overview)}.ai-section--overview .ai-section__title{font-size:calc(var(--osi-section-title-font-size) - 1.5px)!important}.ai-section--list,.ai-section--info-list{--section-accent: var(--osi-section-accent-list)}.ai-section--event{--section-accent: var(--osi-section-accent-event)}.ai-section--chart{--section-accent: var(--osi-section-accent-chart)}.ai-section--text-reference{--section-accent: var(--osi-section-accent-reference)}.ai-section--quotation{--section-accent: var(--osi-section-accent-quotation)}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--osi-section-padding);--section-spacing-bottom: var(--osi-section-spacing-bottom);--section-gap: var(--osi-section-gap);--section-gap-internal: var(--osi-section-gap-internal);--section-title-underline-length: var(--osi-section-title-underline-length);--section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);--section-title-underline-height: var(--osi-section-title-underline-height);--section-title-underline-offset: var(--osi-section-title-underline-offset);--section-box-shadow: none !important;--section-box-shadow-hover: none !important}.ai-card-surface--fullscreen .masonry-item,.ai-card-surface--fullscreen .masonry-item:hover{box-shadow:var(--osi-section-shadow-fullscreen)!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 var(--osi-section-header-padding-bottom) 0!important;gap:var(--osi-section-header-gap)!important}.ai-card-surface--fullscreen .ai-section__title{font-size:var(--card-title-font-size, .95rem)!important}.ai-card-surface--fullscreen .ai-section__body{gap:var(--osi-section-gap-internal)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:0!important;padding-top:0!important}.section-content{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;padding:0!important;margin:0!important}.section-content>*{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.ai-section--faq,.ai-section--faq .list,.ai-section--faq .item{min-width:0!important;width:100%!important;max-width:100%!important}:host{display:block;width:100%}.solutions-container{display:flex;flex-direction:column;gap:var(--osi-section-item-gap)!important}.solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--osi-section-item-gap)!important;width:100%;box-sizing:border-box}@media (max-width: 767px){.solutions-grid{grid-template-columns:repeat(2,1fr);gap:var(--osi-section-item-gap)}}@media (max-width: 479px){.solutions-grid{grid-template-columns:1fr;gap:var(--osi-section-item-gap)}}.section-item{background:var(--osi-section-item-background);border:var(--osi-section-item-border);border-radius:var(--osi-section-item-border-radius);box-shadow:var(--osi-section-item-shadow);padding:var(--osi-section-item-padding-normal);min-height:var(--card-min-height, auto);cursor:pointer;overflow-x:hidden;width:100%!important;max-width:100%!important;box-sizing:border-box!important;word-wrap:break-word;overflow-wrap:break-word;min-height:180px;display:flex;flex-direction:column;gap:var(--osi-section-item-gap);text-align:left;align-items:stretch;transition:var(--osi-section-item-transition);position:relative;overflow:hidden}.section-item:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){.section-item{transition:none}}.section-item>*{margin-left:0!important;margin-right:0!important;padding-left:0;padding-right:0}.section-item:before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;border-radius:inherit;animation:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.2) 60%,transparent 100%);width:50%;mix-blend-mode:overlay}.section-item:hover:before{opacity:1;animation:metal-sweep-ltr .23s ease-out forwards}.section-item:not(:hover):before{animation:none;opacity:0}@media (prefers-reduced-motion: reduce){.section-item:before{display:none}}.section-item:hover{border-color:var(--osi-section-item-border-hover-enhanced-color);box-shadow:var(--osi-section-item-shadow-hover-enhanced)}.section-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-lg),0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0),.1)}@media (prefers-reduced-motion: reduce){.section-item{transition:none}.section-item:hover{box-shadow:var(--shadow-md)}}.section-item:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent) 0%,transparent 100%);opacity:0;transition:opacity var(--osi-section-item-transition);top:auto!important}.section-item:hover:after{opacity:.8}.section-item:hover .solution-title{color:var(--accent)}.solution-header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--osi-section-item-gap-xs);width:100%;margin:0;padding:0}.solution-title-row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;width:100%;gap:var(--osi-section-item-gap);margin:0;padding:0;flex-wrap:nowrap}.solution-logo-container{flex-shrink:0;flex-grow:0;pointer-events:auto;line-height:0;margin:0;padding:0;align-self:flex-start;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;order:2;box-sizing:border-box;min-width:16px;max-width:16px;min-height:16px;max-height:16px;overflow:hidden;transition:opacity var(--osi-section-item-transition),transform var(--osi-section-item-transition)}.solution-logo-container.clickable:hover{opacity:.8;transform:scale(1.1)}.solution-logo-container.clickable:active{transform:scale(.95)}.solution-logo{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;display:block;cursor:pointer;flex-shrink:0;margin:0;padding:0;aspect-ratio:1/1;box-sizing:border-box}.solution-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--foreground);margin:0;padding:0;line-height:var(--leading-normal);text-align:left;transition:color var(--osi-section-item-transition);flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.solution-category{font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-tight);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;opacity:.7;text-align:left;margin:0;padding:0}.solution-description{font-size:var(--text-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--foreground);color:var(--muted-foreground);line-height:var(--leading-relaxed);margin:0;padding:0;margin-bottom:var(--osi-section-item-gap);opacity:.9;text-align:left;width:100%;overflow-wrap:break-word;word-wrap:break-word;transition:opacity var(--osi-section-item-transition),color var(--osi-section-item-transition)}.solution-benefits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);flex:1;text-align:left;width:100%}.solution-benefits li{font-size:var(--text-sm);color:var(--muted-foreground);padding:0 0 0 18px;margin:0;position:relative;line-height:var(--leading-normal);text-align:left}.solution-benefits li:before{content:\"\\2713\";position:absolute;left:0;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-bold)}.solution-more{align-self:flex-start;margin:0;margin-bottom:var(--osi-section-item-gap);padding:0;border:0;background:transparent;color:var(--accent);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;line-height:var(--leading-tight);text-align:left}.solution-more:hover{text-decoration:underline}.solution-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--osi-radius-sm)}.solution-score{display:flex;flex-direction:column;gap:var(--osi-section-item-gap-xs);margin:var(--osi-section-item-gap) 0 0 0;padding:0;width:100%}.solution-score-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--muted-foreground);font-weight:var(--font-medium);margin:0;padding:0}.solution-score-value{font-weight:var(--font-semibold);color:var(--accent, var(--color-brand, #ff7900))}.solution-score-bar{width:100%;height:6px;background:color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 15%,transparent);border-radius:var(--osi-radius-sm, 3px);overflow:hidden;position:relative}.solution-score-fill{height:100%;background:linear-gradient(90deg,var(--accent, var(--color-brand, #ff7900)) 0%,var(--osi-accent-bright, var(--color-brand-light, #ff9933)) 100%);border-radius:var(--osi-radius-sm, 3px);transition:width .3s ease;box-shadow:0 0 4px color-mix(in srgb,var(--accent, var(--color-brand, #ff7900)) 40%,transparent)}.solution-meta{display:flex;align-items:center;justify-content:flex-start;gap:var(--osi-section-item-gap);margin:auto 0 0;padding:var(--osi-section-item-padding-compact) 0 0 0;border-top:1px solid var(--border);width:100%}.delivery-time,.solution-meta-label{font-size:var(--text-sm);color:var(--muted-foreground);opacity:.7;text-align:left;margin:0;padding:0;display:inline-flex;align-items:center;gap:4px}@media (max-width: 479px){.section-item{min-height:160px}.solution-description{font-size:var(--text-sm)}}\n"] }]
|
|
21667
21869
|
}], propDecorators: { solutionsGrid: [{
|
|
21668
21870
|
type: ViewChild,
|
|
21669
21871
|
args: ['solutionsGrid', { static: false }]
|
|
@@ -25487,11 +25689,11 @@ function generateBriefSummary(card) {
|
|
|
25487
25689
|
* Do not edit manually - generated by scripts/generate-version.js
|
|
25488
25690
|
*
|
|
25489
25691
|
* Source of truth: version.config.json
|
|
25490
|
-
* Last synced: 2026-01-
|
|
25692
|
+
* Last synced: 2026-01-08T13:31:21.984Z
|
|
25491
25693
|
*/
|
|
25492
|
-
const VERSION = '1.5.
|
|
25493
|
-
const BUILD_DATE = '2026-01-
|
|
25494
|
-
const BUILD_HASH = '
|
|
25694
|
+
const VERSION = '1.5.46';
|
|
25695
|
+
const BUILD_DATE = '2026-01-08T13:31:21.984Z';
|
|
25696
|
+
const BUILD_HASH = '1964431';
|
|
25495
25697
|
const BUILD_BRANCH = 'main';
|
|
25496
25698
|
const VERSION_INFO = {
|
|
25497
25699
|
version: VERSION,
|