osi-cards-lib 1.5.13 → 1.5.14

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.
@@ -3,13 +3,14 @@ import { Input, ChangeDetectionStrategy, Component, EventEmitter, Output, inject
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
5
5
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
- import { BehaviorSubject, Subject, filter, map, fromEvent, takeUntil, EMPTY, ReplaySubject, throwError, timer, merge, interval } from 'rxjs';
6
+ import { BehaviorSubject, Subject, filter, map, fromEvent, takeUntil, EMPTY, ReplaySubject, throwError, timer, merge, interval, catchError as catchError$1, of } from 'rxjs';
7
7
  import { tap, filter as filter$1, catchError, shareReplay, retryWhen, mergeMap, map as map$1, distinctUntilChanged, takeUntil as takeUntil$1 } from 'rxjs/operators';
8
8
  import { __decorate } from 'tslib';
9
9
  import * as i1$1 from '@angular/platform-browser';
10
10
  import * as i2 from 'lucide-angular';
11
11
  import { Zap, XCircle, Wrench, Type, Video, User, UserCheck, Users, Twitter, Trophy, TrendingUp, TrendingDown, Timer, Target, Star, Tag, Sparkles, Shield, Settings, Save, ShoppingCart, Share2, RefreshCw, Radio, Quote, Play, PieChart, Phone, Package, Minus, Minimize2, MessageCircle, Maximize2, MapPin, Mail, List, Lightbulb, Linkedin, Layers, Instagram, Info, HelpCircle, Hash, Handshake, Grid, GitBranch, Globe, Gauge, Folder, FileText, Download, DollarSign, Facebook, ExternalLink, Calculator, Code2, Clock, Circle, ChevronRight, Check, CheckCircle2, CalendarX, CalendarPlus, CalendarCheck, Calendar, Building, Briefcase, Brain, BookOpen, BarChart3, Box, Award, ArrowUp, ArrowDown, ArrowRight, AlertCircle, Activity, LucideAngularModule, LucideIconProvider, LUCIDE_ICONS } from 'lucide-angular';
12
12
  import { AnimationBuilder, trigger, transition, style, animate } from '@angular/animations';
13
+ import { HttpClient } from '@angular/common/http';
13
14
 
14
15
  /**
15
16
  * OSI Cards Branded Types
@@ -1279,7 +1280,7 @@ const GRID_CONFIG = {
1279
1280
  /** Default column count */
1280
1281
  DEFAULT_COLUMNS: 3,
1281
1282
  /** Minimum column width in pixels */
1282
- MIN_COLUMN_WIDTH: 260,
1283
+ MIN_COLUMN_WIDTH: 220,
1283
1284
  /** Maximum column width in pixels */
1284
1285
  MAX_COLUMN_WIDTH: 500,
1285
1286
  /** Default column width in pixels */
@@ -3427,6 +3428,7 @@ class BaseSectionComponent {
3427
3428
  constructor() {
3428
3429
  this.fieldInteraction = new EventEmitter();
3429
3430
  this.itemInteraction = new EventEmitter();
3431
+ this.layoutSuggestion = new EventEmitter();
3430
3432
  this.cdr = inject(ChangeDetectorRef);
3431
3433
  // Animation state tracking
3432
3434
  this.fieldAnimationStates = new Map();
@@ -3750,8 +3752,87 @@ class BaseSectionComponent {
3750
3752
  get hasDesignParams() {
3751
3753
  return !!this.getDesignParams();
3752
3754
  }
3755
+ // ============================================================================
3756
+ // LAYOUT PREFERENCES (Dynamic Section Responsive Layout System)
3757
+ // ============================================================================
3758
+ /**
3759
+ * Get layout preferences for this section.
3760
+ * Each section component should override this method to define its own
3761
+ * responsive behavior based on content and context.
3762
+ *
3763
+ * @param availableColumns - Number of columns available in the grid
3764
+ * @returns Layout preferences for this section
3765
+ */
3766
+ getLayoutPreferences(availableColumns = 4) {
3767
+ // Default implementation - sections should override
3768
+ const fieldCount = this.getFields().length;
3769
+ const itemCount = this.getItems().length;
3770
+ const descriptionLength = this.section.description?.length ?? 0;
3771
+ // Calculate preferred columns based on content
3772
+ let preferredColumns = 1;
3773
+ if (fieldCount > 6 || itemCount > 6) {
3774
+ preferredColumns = 2;
3775
+ }
3776
+ if (fieldCount > 10 || itemCount > 10 || descriptionLength > 200) {
3777
+ preferredColumns = 3;
3778
+ }
3779
+ return {
3780
+ preferredColumns: Math.min(preferredColumns, availableColumns),
3781
+ minColumns: 1,
3782
+ maxColumns: Math.min(4, availableColumns),
3783
+ canShrinkToFill: true, // Default: allow shrinking to fill grid (promotes side-by-side)
3784
+ shrinkPriority: 40, // Lower priority = more willing to shrink (better consolidation)
3785
+ expandOnContent: {
3786
+ fieldCount: 6,
3787
+ itemCount: 6,
3788
+ descriptionLength: 200,
3789
+ },
3790
+ };
3791
+ }
3792
+ /**
3793
+ * Suggest a layout change to the grid system.
3794
+ * Called when section wants to proactively suggest a different column span.
3795
+ *
3796
+ * @param suggestedColSpan - Suggested column span
3797
+ * @param reason - Reason for the suggestion
3798
+ * @param priority - Priority of suggestion (higher = more important)
3799
+ */
3800
+ suggestLayout(suggestedColSpan, reason, priority = 50) {
3801
+ this.layoutSuggestion.emit({
3802
+ sectionId: this.section.id,
3803
+ suggestedColSpan: Math.max(1, Math.min(4, suggestedColSpan)),
3804
+ reason,
3805
+ priority,
3806
+ });
3807
+ }
3808
+ /**
3809
+ * Calculate optimal column count based on section content.
3810
+ * Helper method that sections can use in their getLayoutPreferences() implementation.
3811
+ *
3812
+ * @param availableColumns - Maximum columns available
3813
+ * @param options - Calculation options
3814
+ * @returns Optimal column count
3815
+ */
3816
+ calculateOptimalColumns(availableColumns = 4, options) {
3817
+ const fieldCount = options?.fieldCount ?? this.getFields().length;
3818
+ const itemCount = options?.itemCount ?? this.getItems().length;
3819
+ const descriptionLength = options?.descriptionLength ?? this.section.description?.length ?? 0;
3820
+ const baseColumns = options?.baseColumns ?? 1;
3821
+ let optimal = baseColumns;
3822
+ // Expand based on content
3823
+ if (fieldCount > 6 || itemCount > 6) {
3824
+ optimal = Math.max(optimal, 2);
3825
+ }
3826
+ if (fieldCount > 10 || itemCount > 10 || descriptionLength > 200) {
3827
+ optimal = Math.max(optimal, 3);
3828
+ }
3829
+ if (fieldCount > 15 || itemCount > 15 || descriptionLength > 400) {
3830
+ optimal = Math.max(optimal, 4);
3831
+ }
3832
+ return Math.min(optimal, availableColumns);
3833
+ }
3753
3834
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: BaseSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3754
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: BaseSectionComponent, isStandalone: true, selector: "ng-component", inputs: { section: "section" }, outputs: { fieldInteraction: "fieldInteraction", itemInteraction: "itemInteraction" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3835
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: BaseSectionComponent, isStandalone: true, selector: "ng-component", inputs: { section: "section" }, outputs: { fieldInteraction: "fieldInteraction", itemInteraction: "itemInteraction", layoutSuggestion: "layoutSuggestion" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3755
3836
  }
3756
3837
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: BaseSectionComponent, decorators: [{
3757
3838
  type: Component,
@@ -3766,6 +3847,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
3766
3847
  type: Output
3767
3848
  }], itemInteraction: [{
3768
3849
  type: Output
3850
+ }], layoutSuggestion: [{
3851
+ type: Output
3769
3852
  }] } });
3770
3853
 
3771
3854
  /**
@@ -3781,6 +3864,14 @@ class FallbackSectionComponent extends BaseSectionComponent {
3781
3864
  getSectionType() {
3782
3865
  return this.section?.type || 'unknown';
3783
3866
  }
3867
+ /**
3868
+ * Get layout preferences for fallback section.
3869
+ * Uses default implementation from BaseSectionComponent.
3870
+ */
3871
+ getLayoutPreferences(availableColumns = 4) {
3872
+ // Fallback sections use the default implementation from BaseSectionComponent
3873
+ return super.getLayoutPreferences(availableColumns);
3874
+ }
3784
3875
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: FallbackSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3785
3876
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: FallbackSectionComponent, isStandalone: true, selector: "lib-fallback-section", usesInheritance: true, ngImport: i0, template: "<div class=\"fallback-container\">\n <!-- Fallback Warning Header -->\n <lib-empty-state\n message=\"Section type &quot;{{ getSectionType() }}&quot; is not recognized\"\n icon=\"\u26A0\uFE0F\"\n variant=\"centered\"\n size=\"large\"\n >\n </lib-empty-state>\n\n <div class=\"fallback-data\" *ngIf=\"section.title || section.description || section.fields || section.items\">\n <div *ngIf=\"section.title\" class=\"data-item\">\n <span class=\"data-label\">Title:</span>\n <span class=\"data-value\">{{ section.title }}</span>\n </div>\n\n <div *ngIf=\"section.description\" class=\"data-item\">\n <span class=\"data-label\">Description:</span>\n <span class=\"data-value\">{{ section.description }}</span>\n </div>\n\n <div *ngIf=\"section.fields && section.fields.length > 0\" class=\"data-section\">\n <h4 class=\"data-section-title\">Fields ({{ section.fields.length }})</h4>\n <div class=\"data-item\" *ngFor=\"let field of section.fields\">\n <span class=\"data-label\">{{ field.label }}:</span>\n <span class=\"data-value\">{{ field.value }}</span>\n </div>\n </div>\n\n <div *ngIf=\"section.items && section.items.length > 0\" class=\"data-section\">\n <h4 class=\"data-section-title\">Items ({{ section.items.length }})</h4>\n <div class=\"data-item\" *ngFor=\"let item of section.items\">\n <span class=\"data-label\">{{ item.title || 'Item' }}:</span>\n <span class=\"data-value\">{{ item.description || item.value }}</span>\n </div>\n </div>\n </div>\n</div>\n", styles: [":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: var(--spacing-md);--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-sticky: 200;--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(--section-item-background);--surface-raised: var(--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:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.section-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card{transition: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)}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes section-item-stream{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}:host{display:block;width:100%}.fallback-container{display:flex;flex-direction:column;gap:var(--osi-section-gap)}.fallback-data{background:var(--osi-surface);border:1px solid var(--osi-border-muted);border-radius:var(--osi-radius-md);padding:var(--osi-spacing-sm);display:flex;flex-direction:column;gap:var(--osi-spacing-sm)}@media (max-width: 480px){.fallback-data{padding:var(--osi-spacing-xs);gap:var(--osi-spacing-xs)}}.data-item{display:flex;gap:var(--osi-spacing-sm);padding:var(--osi-spacing-xs)}@media (max-width: 480px){.data-item{flex-direction:column;gap:2px}}.data-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--foreground);text-transform:none;min-width:100px}@media (max-width: 480px){.data-label{min-width:auto}}.data-value{font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--foreground);flex:1}.data-section{border-top:1px solid var(--osi-border-muted);padding-top:var(--osi-spacing-sm);margin-top:var(--osi-spacing-xs)}.data-section-title{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);margin:0;margin-bottom:var(--osi-spacing-xs)}\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: EmptyStateComponent, selector: "lib-empty-state", inputs: ["message", "icon", "actionLabel", "variant", "size", "containerClass"], outputs: ["action"] }] }); }
3786
3877
  }
@@ -5992,8 +6083,8 @@ function getSectionsRequiringExternalLibs() {
5992
6083
  * Manifest metadata
5993
6084
  */
5994
6085
  const MANIFEST_META = {
5995
- generatedAt: '2025-12-05T12:50:59.951Z',
5996
- registryVersion: '1.5.12',
6086
+ generatedAt: '2025-12-05T16:12:36.902Z',
6087
+ registryVersion: '1.5.13',
5997
6088
  totalSections: 22,
5998
6089
  publicSections: 22
5999
6090
  };
@@ -11457,7 +11548,7 @@ function memoize(fn, options = {}) {
11457
11548
  // GRID CONSTANTS
11458
11549
  // ============================================================================
11459
11550
  /** Minimum width for a single column in pixels */
11460
- const MIN_COLUMN_WIDTH = 260;
11551
+ const MIN_COLUMN_WIDTH = 220;
11461
11552
  /** Maximum number of columns allowed */
11462
11553
  const MAX_COLUMNS = 4;
11463
11554
  /** Gap between columns and rows in pixels */
@@ -11483,7 +11574,9 @@ const DEFAULT_COLUMN_PACKING_OPTIONS = {
11483
11574
  packingMode: 'ffdh',
11484
11575
  allowReordering: true,
11485
11576
  sortByHeight: true,
11486
- useSkylineThreshold: 3,
11577
+ useSkylineThreshold: 1, // Very aggressive: Switch to Skyline at first gap
11578
+ optimizationPasses: 4, // Increased: Maximum compactness through more passes
11579
+ enableGapAwarePlacement: true,
11487
11580
  };
11488
11581
  /**
11489
11582
  * Default row packing options
@@ -11513,12 +11606,18 @@ const DEFAULT_MASONRY_PACKING_CONFIG = {
11513
11606
  const SPACE_OPTIMIZED_CONFIG = {
11514
11607
  ...DEFAULT_GRID_CONFIG,
11515
11608
  packingAlgorithm: 'column-based',
11516
- rowPackingOptions: DEFAULT_ROW_PACKING_OPTIONS,
11609
+ rowPackingOptions: {
11610
+ ...DEFAULT_ROW_PACKING_OPTIONS,
11611
+ prioritizeSpaceFilling: true, // Aggressively fill rows
11612
+ allowShrinking: true, // Allow shrinking for better consolidation
11613
+ maxOptimizationPasses: 6, // Maximum passes for best results
11614
+ },
11517
11615
  columnPackingOptions: {
11518
11616
  packingMode: 'hybrid',
11519
11617
  allowReordering: true,
11520
11618
  sortByHeight: true,
11521
- useSkylineThreshold: 2, // Lower threshold for more aggressive compaction
11619
+ useSkylineThreshold: 1, // Very aggressive: switch to Skyline at first gap
11620
+ optimizationPasses: 5, // Maximum optimization passes for compactness
11522
11621
  },
11523
11622
  useLegacyFallback: true,
11524
11623
  };
@@ -11775,10 +11874,10 @@ function isSectionTypeRegistryInitialized() {
11775
11874
  // ============================================================================
11776
11875
  /**
11777
11876
  * Content density threshold for expansion.
11778
- * as sparse content looks bad when stretched across multiple columns.
11779
- * Lowered from 15 to 8 to allow more aggressive gap filling.
11877
+ * Lowered to 5 to allow more aggressive gap filling and better consolidation.
11878
+ * Sections with density >= 5 can expand to fill gaps, promoting side-by-side placement.
11780
11879
  */
11781
- const EXPANSION_DENSITY_THRESHOLD = 8;
11880
+ const EXPANSION_DENSITY_THRESHOLD = 5;
11782
11881
  /**
11783
11882
  * Gets the maximum expansion limit for a section type.
11784
11883
  *
@@ -11973,11 +12072,39 @@ function calculateMinContainerWidth(columns, config = {}) {
11973
12072
  *
11974
12073
  * @param sectionType - The section type
11975
12074
  * @param preferences - Optional custom preferences map
12075
+ * @param sectionComponent - Optional section component instance (for dynamic preferences)
12076
+ * @param availableColumns - Optional available columns in grid
11976
12077
  * @returns Preferred column count (1, 2, or 3)
11977
12078
  */
11978
- function getPreferredColumns(sectionType, preferences = DEFAULT_SECTION_COLUMN_PREFERENCES) {
12079
+ function getPreferredColumns(sectionType, preferences = DEFAULT_SECTION_COLUMN_PREFERENCES, sectionComponent, // BaseSectionComponent instance
12080
+ availableColumns = 4) {
12081
+ // NEW: Try to get preferences from section component first (dynamic)
12082
+ if (sectionComponent && typeof sectionComponent.getLayoutPreferences === 'function') {
12083
+ try {
12084
+ const layoutPrefs = sectionComponent.getLayoutPreferences(availableColumns);
12085
+ return layoutPrefs.preferredColumns;
12086
+ }
12087
+ catch (error) {
12088
+ // Only warn in development mode
12089
+ const isDevelopment = typeof window !== 'undefined' &&
12090
+ (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
12091
+ if (isDevelopment) {
12092
+ console.warn('[GridConfig] Failed to get layout preferences from section component:', error);
12093
+ }
12094
+ // Fall through to static preferences
12095
+ }
12096
+ }
12097
+ // Fallback to static preferences (deprecated but kept for backward compatibility)
11979
12098
  const type = sectionType?.toLowerCase() || 'default';
11980
- return preferences[type] ?? preferences['default'] ?? 1;
12099
+ const staticPref = preferences[type] ?? preferences['default'] ?? 1;
12100
+ // Warn if using deprecated static preferences (only in development)
12101
+ const isDevelopment = typeof window !== 'undefined' &&
12102
+ (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
12103
+ if (isDevelopment && !sectionComponent) {
12104
+ console.warn(`[GridConfig] Using deprecated static preferences for section type "${type}". ` +
12105
+ `Consider implementing getLayoutPreferences() in the section component.`);
12106
+ }
12107
+ return staticPref;
11981
12108
  }
11982
12109
  /**
11983
12110
  * Resolves the effective column span for a section based on preference and availability
@@ -11985,13 +12112,41 @@ function getPreferredColumns(sectionType, preferences = DEFAULT_SECTION_COLUMN_P
11985
12112
  * @param preferredColumns - The section's preferred column count
11986
12113
  * @param availableColumns - The total columns available in the container
11987
12114
  * @param explicitColSpan - Optional explicit colSpan override from section config
12115
+ * @param sectionComponent - Optional section component instance (for dynamic preferences)
12116
+ * @param canShrinkToFill - Whether section can shrink to 1 column to fill grid
11988
12117
  * @returns The effective column span to use
11989
12118
  */
11990
- function resolveColumnSpan(preferredColumns, availableColumns, explicitColSpan) {
12119
+ function resolveColumnSpan(preferredColumns, availableColumns, explicitColSpan, sectionComponent, // BaseSectionComponent instance
12120
+ canShrinkToFill) {
11991
12121
  // Explicit colSpan always takes precedence
11992
12122
  if (explicitColSpan !== undefined && explicitColSpan > 0) {
11993
12123
  return Math.min(explicitColSpan, availableColumns);
11994
12124
  }
12125
+ // Get layout preferences from section component if available
12126
+ if (sectionComponent && typeof sectionComponent.getLayoutPreferences === 'function') {
12127
+ try {
12128
+ const layoutPrefs = sectionComponent.getLayoutPreferences(availableColumns);
12129
+ const effectivePref = Math.min(layoutPrefs.preferredColumns, availableColumns);
12130
+ // Respect min/max constraints
12131
+ const minCols = Math.max(1, layoutPrefs.minColumns);
12132
+ const maxCols = Math.min(availableColumns, layoutPrefs.maxColumns);
12133
+ let result = Math.max(minCols, Math.min(effectivePref, maxCols));
12134
+ // If canShrinkToFill is true and we need to fill gaps, allow shrinking to 1
12135
+ if (canShrinkToFill && layoutPrefs.canShrinkToFill) {
12136
+ result = Math.max(1, result); // Can go down to 1
12137
+ }
12138
+ return result;
12139
+ }
12140
+ catch (error) {
12141
+ // Only warn in development mode
12142
+ const isDevelopment = typeof window !== 'undefined' &&
12143
+ (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
12144
+ if (isDevelopment) {
12145
+ console.warn('[GridConfig] Failed to resolve column span from section component:', error);
12146
+ }
12147
+ // Fall through to static preferences
12148
+ }
12149
+ }
11995
12150
  // Use preferred columns, constrained by available columns
11996
12151
  return Math.min(preferredColumns, availableColumns);
11997
12152
  }
@@ -12041,9 +12196,9 @@ function generateLeftExpression(columns, columnIndex, gap = GRID_GAP) {
12041
12196
  */
12042
12197
  const BREAKPOINTS = {
12043
12198
  xs: 0,
12044
- sm: 544, // 2 columns possible (544px = 2*260 + 1*12 + padding)
12045
- md: 816, // 3 columns possible (816px = 3*260 + 2*12 + padding)
12046
- lg: 1088, // 4 columns possible (1088px = 4*260 + 3*12 + padding)
12199
+ sm: 464, // 2 columns possible (464px = 2*220 + 1*12 + padding)
12200
+ md: 684, // 3 columns possible (684px = 3*220 + 2*12 + padding)
12201
+ lg: 904, // 4 columns possible (904px = 4*220 + 3*12 + padding)
12047
12202
  xl: 1024,
12048
12203
  '2xl': 1280,
12049
12204
  };
@@ -16641,6 +16796,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
16641
16796
  args: [{ providedIn: 'root' }]
16642
16797
  }] });
16643
16798
 
16799
+ /**
16800
+ * Service to manage section layout preferences.
16801
+ * Allows sections to register their layout preference functions dynamically.
16802
+ * Includes memoization for performance optimization.
16803
+ */
16804
+ class SectionLayoutPreferenceService {
16805
+ constructor() {
16806
+ /**
16807
+ * Registry of layout preference functions by section type
16808
+ */
16809
+ this.layoutPreferenceFunctions = new Map();
16810
+ /**
16811
+ * Cache for layout preferences to avoid recalculating for unchanged sections
16812
+ * Key: stringified CacheKey, Value: SectionLayoutPreferences
16813
+ */
16814
+ this.preferencesCache = new Map();
16815
+ /**
16816
+ * Maximum cache size to prevent memory leaks
16817
+ */
16818
+ this.MAX_CACHE_SIZE = 500;
16819
+ }
16820
+ /**
16821
+ * Generate cache key from section and available columns
16822
+ * Optimized to avoid expensive JSON.stringify for simple keys
16823
+ */
16824
+ getCacheKey(section, availableColumns) {
16825
+ // Use simple string concatenation for better performance
16826
+ // Only include values that affect layout preferences
16827
+ return `${section.id || ''}|${(section.type ?? '').toLowerCase()}|${section.fields?.length ?? 0}|${section.items?.length ?? 0}|${section.description?.length ?? 0}|${section.preferredColumns ?? ''}|${availableColumns}`;
16828
+ }
16829
+ /**
16830
+ * Register a layout preference function for a section type
16831
+ *
16832
+ * @param sectionType - Section type (e.g., 'info', 'analytics')
16833
+ * @param preferenceFn - Function that returns layout preferences for a section
16834
+ */
16835
+ register(sectionType, preferenceFn) {
16836
+ const type = sectionType.toLowerCase();
16837
+ this.layoutPreferenceFunctions.set(type, preferenceFn);
16838
+ // Clear cache when new functions are registered
16839
+ this.preferencesCache.clear();
16840
+ }
16841
+ /**
16842
+ * Get layout preferences for a section with memoization
16843
+ *
16844
+ * @param section - Section data
16845
+ * @param availableColumns - Available columns in grid
16846
+ * @returns Layout preferences or null if not registered
16847
+ */
16848
+ getPreferences(section, availableColumns = 4) {
16849
+ const type = (section.type ?? '').toLowerCase();
16850
+ const preferenceFn = this.layoutPreferenceFunctions.get(type);
16851
+ if (!preferenceFn) {
16852
+ return null;
16853
+ }
16854
+ // Check cache first
16855
+ const cacheKey = this.getCacheKey(section, availableColumns);
16856
+ const cached = this.preferencesCache.get(cacheKey);
16857
+ if (cached) {
16858
+ return cached;
16859
+ }
16860
+ // Calculate preferences
16861
+ try {
16862
+ const preferences = preferenceFn(section, availableColumns);
16863
+ // Cache the result (with size limit)
16864
+ if (this.preferencesCache.size >= this.MAX_CACHE_SIZE) {
16865
+ // Remove oldest entry (simple FIFO)
16866
+ const firstKey = this.preferencesCache.keys().next().value;
16867
+ if (firstKey) {
16868
+ this.preferencesCache.delete(firstKey);
16869
+ }
16870
+ }
16871
+ this.preferencesCache.set(cacheKey, preferences);
16872
+ return preferences;
16873
+ }
16874
+ catch (error) {
16875
+ // Only log in development mode
16876
+ if (typeof window !== 'undefined' && !window.location.hostname.includes('localhost')) {
16877
+ // Production: silent fail
16878
+ return null;
16879
+ }
16880
+ console.warn(`[SectionLayoutPreferenceService] Error getting preferences for type "${type}":`, error);
16881
+ return null;
16882
+ }
16883
+ }
16884
+ /**
16885
+ * Check if a section type has registered preferences
16886
+ *
16887
+ * @param sectionType - Section type
16888
+ * @returns True if preferences are registered
16889
+ */
16890
+ hasPreferences(sectionType) {
16891
+ const type = sectionType.toLowerCase();
16892
+ return this.layoutPreferenceFunctions.has(type);
16893
+ }
16894
+ /**
16895
+ * Clear all registered preferences and cache (useful for testing)
16896
+ */
16897
+ clear() {
16898
+ this.layoutPreferenceFunctions.clear();
16899
+ this.preferencesCache.clear();
16900
+ }
16901
+ /**
16902
+ * Clear only the cache (useful when section data changes)
16903
+ */
16904
+ clearCache() {
16905
+ this.preferencesCache.clear();
16906
+ }
16907
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SectionLayoutPreferenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16908
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SectionLayoutPreferenceService, providedIn: 'root' }); }
16909
+ }
16910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SectionLayoutPreferenceService, decorators: [{
16911
+ type: Injectable,
16912
+ args: [{
16913
+ providedIn: 'root',
16914
+ }]
16915
+ }] });
16916
+
16644
16917
  /**
16645
16918
  * Analytics Section Component - Compact & Minimalist
16646
16919
  *
@@ -16648,6 +16921,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
16648
16921
  * Minimal padding, clean typography, maximum information density.
16649
16922
  */
16650
16923
  class AnalyticsSectionComponent extends BaseSectionComponent {
16924
+ constructor() {
16925
+ super(...arguments);
16926
+ this.layoutService = inject(SectionLayoutPreferenceService);
16927
+ }
16928
+ ngOnInit() {
16929
+ // Register layout preference function for this section type
16930
+ this.layoutService.register('analytics', (section, availableColumns) => {
16931
+ return this.calculateAnalyticsLayoutPreferences(section, availableColumns);
16932
+ });
16933
+ }
16934
+ /**
16935
+ * Calculate layout preferences for analytics section based on content.
16936
+ */
16937
+ calculateAnalyticsLayoutPreferences(section, availableColumns) {
16938
+ const fields = section.fields ?? [];
16939
+ const fieldCount = fields.length;
16940
+ // Analytics sections: 2 cols default, can shrink to 1, expands to 3 with many metrics
16941
+ let preferredColumns = 2;
16942
+ if (fieldCount >= 8) {
16943
+ preferredColumns = 3;
16944
+ }
16945
+ else if (fieldCount <= 2) {
16946
+ preferredColumns = 1;
16947
+ }
16948
+ // Respect explicit preferences
16949
+ if (section.preferredColumns) {
16950
+ preferredColumns = section.preferredColumns;
16951
+ }
16952
+ preferredColumns = Math.min(preferredColumns, availableColumns);
16953
+ return {
16954
+ preferredColumns,
16955
+ minColumns: (section.minColumns ?? 1),
16956
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
16957
+ canShrinkToFill: true,
16958
+ shrinkPriority: 18, // Higher priority for shrinking (promotes side-by-side placement)
16959
+ expandOnContent: {
16960
+ fieldCount: 8, // Expand to 3 columns at 8+ metrics
16961
+ },
16962
+ };
16963
+ }
16964
+ /**
16965
+ * Get layout preferences for analytics section.
16966
+ */
16967
+ getLayoutPreferences(availableColumns = 4) {
16968
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
16969
+ if (servicePrefs) {
16970
+ return servicePrefs;
16971
+ }
16972
+ return this.calculateAnalyticsLayoutPreferences(this.section, availableColumns);
16973
+ }
16651
16974
  /**
16652
16975
  * Map trend string to TrendDirection type
16653
16976
  */
@@ -16724,6 +17047,57 @@ var analyticsSection_component = /*#__PURE__*/Object.freeze({
16724
17047
  * Perfect for brand identity, design systems, and style guides.
16725
17048
  */
16726
17049
  class BrandColorsSectionComponent extends BaseSectionComponent {
17050
+ constructor() {
17051
+ super(...arguments);
17052
+ this.layoutService = inject(SectionLayoutPreferenceService);
17053
+ }
17054
+ ngOnInit() {
17055
+ // Register layout preference function for this section type
17056
+ this.layoutService.register('brand-colors', (section, availableColumns) => {
17057
+ return this.calculateBrandColorsLayoutPreferences(section, availableColumns);
17058
+ });
17059
+ }
17060
+ /**
17061
+ * Calculate layout preferences for brand colors section based on content.
17062
+ * Brand colors sections: 2 cols default, can shrink to 1, expands to 3 for many colors
17063
+ */
17064
+ calculateBrandColorsLayoutPreferences(section, availableColumns) {
17065
+ const fields = section.fields ?? [];
17066
+ const fieldCount = fields.length;
17067
+ // Brand colors sections: 2 cols default, can shrink to 1, expands to 3 for many colors
17068
+ let preferredColumns = 2;
17069
+ if (fieldCount >= 6 && availableColumns >= 3) {
17070
+ preferredColumns = 3;
17071
+ }
17072
+ if (fieldCount <= 2) {
17073
+ preferredColumns = 1;
17074
+ }
17075
+ // Respect explicit preferences
17076
+ if (section.preferredColumns) {
17077
+ preferredColumns = section.preferredColumns;
17078
+ }
17079
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17080
+ return {
17081
+ preferredColumns,
17082
+ minColumns: (section.minColumns ?? 1),
17083
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
17084
+ canShrinkToFill: true,
17085
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
17086
+ expandOnContent: {
17087
+ fieldCount: 6, // Expand to 3 columns at 6+ colors
17088
+ },
17089
+ };
17090
+ }
17091
+ /**
17092
+ * Get layout preferences for brand colors section.
17093
+ */
17094
+ getLayoutPreferences(availableColumns = 4) {
17095
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17096
+ if (servicePrefs) {
17097
+ return servicePrefs;
17098
+ }
17099
+ return this.calculateBrandColorsLayoutPreferences(this.section, availableColumns);
17100
+ }
16727
17101
  /**
16728
17102
  * Check if value is a valid color (hex, rgb, rgba, hsl)
16729
17103
  */
@@ -16771,6 +17145,16 @@ var brandColorsSection_component = /*#__PURE__*/Object.freeze({
16771
17145
  * Note: Requires Chart.js to be installed.
16772
17146
  */
16773
17147
  class ChartSectionComponent extends BaseSectionComponent {
17148
+ constructor() {
17149
+ super(...arguments);
17150
+ this.layoutService = inject(SectionLayoutPreferenceService);
17151
+ }
17152
+ ngOnInit() {
17153
+ // Register layout preference function for this section type
17154
+ this.layoutService.register('chart', (section, availableColumns) => {
17155
+ return this.calculateChartLayoutPreferences(section, availableColumns);
17156
+ });
17157
+ }
16774
17158
  ngAfterViewInit() {
16775
17159
  this.renderChart();
16776
17160
  }
@@ -16818,6 +17202,46 @@ class ChartSectionComponent extends BaseSectionComponent {
16818
17202
  this.chartInstance = null;
16819
17203
  }
16820
17204
  }
17205
+ /**
17206
+ * Calculate layout preferences for chart section based on content.
17207
+ * Chart sections: 2 cols default, can shrink to 1, expands to 3-4 for wide charts
17208
+ */
17209
+ calculateChartLayoutPreferences(section, availableColumns) {
17210
+ // Chart sections prefer 2 columns for optimal viewing
17211
+ // Can expand to 3-4 for wide charts, shrink to 1 for compact layouts
17212
+ let preferredColumns = 2;
17213
+ // Check if chart type suggests wider layout
17214
+ const chartType = section.meta?.['chartType'];
17215
+ const isWideChart = chartType === 'line' || chartType === 'bar' || chartType === 'area';
17216
+ if (isWideChart && availableColumns >= 3) {
17217
+ preferredColumns = 3;
17218
+ }
17219
+ // Respect explicit preferences
17220
+ if (section.preferredColumns) {
17221
+ preferredColumns = section.preferredColumns;
17222
+ }
17223
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17224
+ return {
17225
+ preferredColumns,
17226
+ minColumns: (section.minColumns ?? 1),
17227
+ maxColumns: Math.min((section.maxColumns ?? 4), availableColumns),
17228
+ canShrinkToFill: true,
17229
+ shrinkPriority: 25, // Higher priority for shrinking (promotes side-by-side placement)
17230
+ expandOnContent: {
17231
+ // Charts can expand based on data complexity
17232
+ },
17233
+ };
17234
+ }
17235
+ /**
17236
+ * Get layout preferences for chart section.
17237
+ */
17238
+ getLayoutPreferences(availableColumns = 4) {
17239
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17240
+ if (servicePrefs) {
17241
+ return servicePrefs;
17242
+ }
17243
+ return this.calculateChartLayoutPreferences(this.section, availableColumns);
17244
+ }
16821
17245
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ChartSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16822
17246
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ChartSectionComponent, isStandalone: true, selector: "lib-chart-section", viewQueries: [{ propertyName: "chartCanvas", first: true, predicate: ["chartCanvas"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"chart-container\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Chart Canvas -->\n <div class=\"chart-wrapper\">\n <canvas #chartCanvas></canvas>\n </div>\n</div>\n", styles: [":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: var(--spacing-md);--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-sticky: 200;--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(--section-item-background);--surface-raised: var(--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:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.section-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card{transition: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)}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes section-item-stream{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}:host{display:block;width:100%}.chart-container{display:flex;flex-direction:column;gap:var(--osi-spacing-compact-md, 12px)}.chart-wrapper{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease;padding:var(--osi-spacing-compact-md, 12px);background:var(--surface);min-height:300px;display:flex;flex-direction:column;gap:var(--osi-spacing-compact-sm, 6px)}.chart-wrapper:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.chart-wrapper:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.chart-wrapper{transition:none}}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--osi-spacing-compact-sm, 6px);flex-wrap:wrap;padding-bottom:var(--osi-spacing-compact-sm, 6px);border-bottom:1px solid var(--border)}.chart-title{font-size:var(--text-base);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);font-size:.9375rem;margin:0;line-height:1.3}.chart-legend{display:flex;gap:var(--osi-spacing-compact-sm, 6px);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--osi-spacing-compact-xs, 2px);font-size:.7rem;color:var(--muted-foreground)}.legend-color{width:10px;height:10px;border-radius:2px;flex-shrink:0}.chart-canvas-wrapper{flex:1;position:relative;min-height:230px;width:100%}.chart-canvas-wrapper canvas{max-width:100%;max-height:100%}.chart-footer{display:flex;justify-content:space-around;gap:var(--osi-spacing-compact-md, 12px);padding-top:var(--osi-spacing-compact-sm, 6px);border-top:1px solid var(--border)}.chart-stat{display:flex;flex-direction:column;align-items:center;gap:var(--osi-spacing-compact-xs, 2px)}.chart-stat-value{font-size:var(--text-2xl);font-weight:var(--font-semibold);line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--foreground);font-variant-numeric:tabular-nums;font-size:var(--text-lg);font-weight:var(--font-bold)}.chart-stat-label{font-size:var(--text-xs);font-weight:var(--font-normal);line-height:var(--leading-normal);font-size:.7rem;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.04em}@media (max-width: 768px){.chart-wrapper{padding:var(--osi-spacing-compact-md, 12px);min-height:260px}.chart-canvas-wrapper{min-height:200px}}@media (max-width: 480px){.chart-wrapper{padding:var(--osi-spacing-compact-sm, 6px);min-height:220px}.chart-canvas-wrapper{min-height:160px}.chart-header{flex-direction:column}.chart-footer{flex-direction:column;gap:var(--osi-spacing-compact-sm, 6px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SectionHeaderComponent, selector: "lib-section-header", inputs: ["title", "description", "level", "headerClass", "titleClass", "descriptionClass"] }] }); }
16823
17247
  }
@@ -16841,6 +17265,16 @@ var chartSection_component = /*#__PURE__*/Object.freeze({
16841
17265
  * Perfect for team members, leadership profiles, and stakeholder directories.
16842
17266
  */
16843
17267
  class ContactCardSectionComponent extends BaseSectionComponent {
17268
+ constructor() {
17269
+ super(...arguments);
17270
+ this.layoutService = inject(SectionLayoutPreferenceService);
17271
+ }
17272
+ ngOnInit() {
17273
+ // Register layout preference function for this section type
17274
+ this.layoutService.register('contact-card', (section, availableColumns) => {
17275
+ return this.calculateContactCardLayoutPreferences(section, availableColumns);
17276
+ });
17277
+ }
16844
17278
  /**
16845
17279
  * Get contact name from field
16846
17280
  */
@@ -16899,6 +17333,45 @@ class ContactCardSectionComponent extends BaseSectionComponent {
16899
17333
  // Mac: Use ms-outlook: scheme (works with Outlook desktop app)
16900
17334
  return `ms-outlook:${mailtoUrl}`;
16901
17335
  }
17336
+ /**
17337
+ * Calculate layout preferences for contact card section based on content.
17338
+ * Contact cards: 1 col default, can expand to 2
17339
+ */
17340
+ calculateContactCardLayoutPreferences(section, availableColumns) {
17341
+ const items = section.items ?? [];
17342
+ const fields = section.fields ?? [];
17343
+ const itemCount = items.length + fields.length;
17344
+ // Contact cards: 1 col default, can expand to 2 for multiple contacts
17345
+ let preferredColumns = 1;
17346
+ if (itemCount >= 3 && availableColumns >= 2) {
17347
+ preferredColumns = 2;
17348
+ }
17349
+ // Respect explicit preferences
17350
+ if (section.preferredColumns) {
17351
+ preferredColumns = section.preferredColumns;
17352
+ }
17353
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17354
+ return {
17355
+ preferredColumns,
17356
+ minColumns: (section.minColumns ?? 1),
17357
+ maxColumns: Math.min((section.maxColumns ?? 2), availableColumns),
17358
+ canShrinkToFill: true,
17359
+ shrinkPriority: 15, // High priority for shrinking (contact cards are very flexible)
17360
+ expandOnContent: {
17361
+ itemCount: 3, // Expand to 2 columns at 3+ contacts
17362
+ },
17363
+ };
17364
+ }
17365
+ /**
17366
+ * Get layout preferences for contact card section.
17367
+ */
17368
+ getLayoutPreferences(availableColumns = 4) {
17369
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17370
+ if (servicePrefs) {
17371
+ return servicePrefs;
17372
+ }
17373
+ return this.calculateContactCardLayoutPreferences(this.section, availableColumns);
17374
+ }
16902
17375
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ContactCardSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16903
17376
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ContactCardSectionComponent, isStandalone: true, selector: "lib-contact-card-section", usesInheritance: true, ngImport: i0, template: "<div class=\"contacts\">\n <lib-section-header *ngIf=\"section.title\" [title]=\"section.title\" [description]=\"section.description\">\n </lib-section-header>\n\n <div class=\"grid\" *ngIf=\"section.fields?.length\">\n <div class=\"card\" *ngFor=\"let c of section.fields\">\n <div class=\"avatar\">\n <img [src]=\"getAvatar(c)\" [alt]=\"getContactName(c)\" *ngIf=\"getAvatar(c)\" loading=\"lazy\" />\n <span class=\"initials\" *ngIf=\"!getAvatar(c)\">{{ getInitials(getContactName(c)) }}</span>\n </div>\n <h4 class=\"name\">{{ getContactName(c) }}</h4>\n <p class=\"role\" *ngIf=\"getContactRole(c)\">{{ getContactRole(c) }}</p>\n <lib-badge *ngIf=\"c.department\" class=\"dept\" variant=\"primary\" size=\"sm\">{{ c.department }}</lib-badge>\n <div class=\"actions\">\n <a [href]=\"getOutlookEmailUrl(c.email)\" class=\"action\" *ngIf=\"c.email\" title=\"Email\">\uD83D\uDCE7</a>\n <a [href]=\"'tel:' + c.phone\" class=\"action\" *ngIf=\"c.phone\" title=\"Call\">\uD83D\uDCDE</a>\n <a [href]=\"c.linkedIn\" class=\"action\" target=\"_blank\" rel=\"noopener\" *ngIf=\"c.linkedIn\" title=\"LinkedIn\">\uD83D\uDCBC</a>\n </div>\n </div>\n </div>\n\n <lib-empty-state *ngIf=\"!section.fields?.length\" message=\"No contacts\" icon=\"\uD83D\uDC64\" variant=\"compact\"> </lib-empty-state>\n</div>\n", styles: [":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: var(--spacing-md);--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-sticky: 200;--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(--section-item-background);--surface-raised: var(--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:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.section-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card{transition: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)}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes section-item-stream{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}:host{display:block;width:100%}.contacts{display:flex;flex-direction:column;gap:var(--osi-spacing-compact-md, 12px)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--osi-spacing-compact-sm, 6px)}@media (max-width: 768px){.grid{gap:var(--osi-spacing-compact-xs, 2px)}}@media (max-width: 640px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 380px){.grid{grid-template-columns:1fr}}.card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease;transition:var(--transition-shadow),var(--transition-transform);position:relative;overflow:hidden;padding:var(--osi-spacing-compact-md, 12px);text-align:center;min-height:140px;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:var(--osi-spacing-compact-xs, 2px);transition:all .3s var(--ease-out)}.card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.card{transition:none}}.card:active{transform:translateY(0);box-shadow:var(--shadow-md)}@media (prefers-reduced-motion: reduce){.card:hover,.card:active{transform:none}}.card:after{content:\"\";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);transition:left var(--duration-slower) var(--ease-out);pointer-events:none}.card:hover:after{left:100%}@media (prefers-reduced-motion: reduce){.card:after{display:none}}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card:hover .avatar{transform:scale(1.06);box-shadow:0 6px 12px #00000026}.card:hover .name{color:var(--accent)}.avatar{width:48px;height:48px;border-radius:var(--radius-lg);border:2px solid var(--border);overflow:hidden;transition:all .3s var(--ease-out);box-shadow:var(--shadow-sm);flex-shrink:0;margin-bottom:var(--osi-spacing-compact-xs, 2px)}.avatar img{width:100%;height:100%;object-fit:cover}.initials{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--surface-hover);font-size:1rem;font-weight:var(--font-semibold);color:var(--foreground)}.name{font-size:var(--text-base);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);margin:0;transition:color .2s var(--ease-out)}.role{font-size:var(--text-xs);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--muted-foreground)}.actions{display:flex;gap:var(--osi-spacing-compact-xs, 2px);margin-top:auto;padding-top:var(--osi-spacing-compact-sm, 6px);border-top:1px solid var(--border);width:100%;justify-content:center}.action{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--surface-hover);text-decoration:none;transition:all .2s var(--ease-out);border:1px solid transparent}.action:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}@media (max-width: 480px){.card{padding:var(--osi-spacing-compact-sm, 6px)}}\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"] }] }); }
16904
17377
  }
@@ -16919,6 +17392,57 @@ var contactCardSection_component = /*#__PURE__*/Object.freeze({
16919
17392
  * Features: dates, times, locations, status indicators.
16920
17393
  */
16921
17394
  class EventSectionComponent extends BaseSectionComponent {
17395
+ constructor() {
17396
+ super(...arguments);
17397
+ this.layoutService = inject(SectionLayoutPreferenceService);
17398
+ }
17399
+ ngOnInit() {
17400
+ // Register layout preference function for this section type
17401
+ this.layoutService.register('event', (section, availableColumns) => {
17402
+ return this.calculateEventLayoutPreferences(section, availableColumns);
17403
+ });
17404
+ }
17405
+ /**
17406
+ * Calculate layout preferences for event section based on content.
17407
+ * Event sections: 2 cols default, can shrink to 1, expands based on item count
17408
+ */
17409
+ calculateEventLayoutPreferences(section, availableColumns) {
17410
+ const items = section.items ?? [];
17411
+ const itemCount = items.length;
17412
+ // Event sections: 2 cols default, can shrink to 1, expands based on item count
17413
+ let preferredColumns = 2;
17414
+ if (itemCount >= 5 && availableColumns >= 3) {
17415
+ preferredColumns = 3;
17416
+ }
17417
+ if (itemCount <= 2) {
17418
+ preferredColumns = 1;
17419
+ }
17420
+ // Respect explicit preferences
17421
+ if (section.preferredColumns) {
17422
+ preferredColumns = section.preferredColumns;
17423
+ }
17424
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17425
+ return {
17426
+ preferredColumns,
17427
+ minColumns: (section.minColumns ?? 1),
17428
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
17429
+ canShrinkToFill: true,
17430
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
17431
+ expandOnContent: {
17432
+ itemCount: 5, // Expand to 3 columns at 5+ events
17433
+ },
17434
+ };
17435
+ }
17436
+ /**
17437
+ * Get layout preferences for event section.
17438
+ */
17439
+ getLayoutPreferences(availableColumns = 4) {
17440
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17441
+ if (servicePrefs) {
17442
+ return servicePrefs;
17443
+ }
17444
+ return this.calculateEventLayoutPreferences(this.section, availableColumns);
17445
+ }
16922
17446
  /**
16923
17447
  * Format date for display
16924
17448
  */
@@ -16983,8 +17507,53 @@ var eventSection_component = /*#__PURE__*/Object.freeze({
16983
17507
  class FaqSectionComponent extends BaseSectionComponent {
16984
17508
  constructor() {
16985
17509
  super(...arguments);
17510
+ this.layoutService = inject(SectionLayoutPreferenceService);
16986
17511
  this.expandedItems = new Set();
16987
17512
  }
17513
+ ngOnInit() {
17514
+ // Register layout preference function for this section type
17515
+ this.layoutService.register('faq', (section, availableColumns) => {
17516
+ return this.calculateFaqLayoutPreferences(section, availableColumns);
17517
+ });
17518
+ }
17519
+ /**
17520
+ * Calculate layout preferences for FAQ section based on content.
17521
+ * FAQ sections: 1 col default (compact), can expand to 2 for readability
17522
+ */
17523
+ calculateFaqLayoutPreferences(section, availableColumns) {
17524
+ const items = section.items ?? [];
17525
+ const itemCount = items.length;
17526
+ // FAQ sections: 1 col default (compact), can expand to 2 for readability
17527
+ let preferredColumns = 1;
17528
+ if (itemCount >= 3 && availableColumns >= 2) {
17529
+ preferredColumns = 2;
17530
+ }
17531
+ // Respect explicit preferences
17532
+ if (section.preferredColumns) {
17533
+ preferredColumns = section.preferredColumns;
17534
+ }
17535
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17536
+ return {
17537
+ preferredColumns,
17538
+ minColumns: (section.minColumns ?? 1),
17539
+ maxColumns: Math.min((section.maxColumns ?? 2), availableColumns),
17540
+ canShrinkToFill: true,
17541
+ shrinkPriority: 15, // High priority for shrinking (FAQ sections are very flexible)
17542
+ expandOnContent: {
17543
+ itemCount: 3, // Expand to 2 columns at 3+ FAQs
17544
+ },
17545
+ };
17546
+ }
17547
+ /**
17548
+ * Get layout preferences for FAQ section.
17549
+ */
17550
+ getLayoutPreferences(availableColumns = 4) {
17551
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17552
+ if (servicePrefs) {
17553
+ return servicePrefs;
17554
+ }
17555
+ return this.calculateFaqLayoutPreferences(this.section, availableColumns);
17556
+ }
16988
17557
  /**
16989
17558
  * Toggle FAQ item expansion
16990
17559
  */
@@ -17029,6 +17598,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
17029
17598
  * Perfect for revenue, expenses, P&L statements, and investment summaries.
17030
17599
  */
17031
17600
  class FinancialsSectionComponent extends BaseSectionComponent {
17601
+ constructor() {
17602
+ super(...arguments);
17603
+ this.layoutService = inject(SectionLayoutPreferenceService);
17604
+ }
17605
+ ngOnInit() {
17606
+ // Register layout preference function for this section type
17607
+ this.layoutService.register('financials', (section, availableColumns) => {
17608
+ return this.calculateFinancialsLayoutPreferences(section, availableColumns);
17609
+ });
17610
+ }
17611
+ /**
17612
+ * Calculate layout preferences for financials section based on content.
17613
+ * Financials sections: 3 cols default, can shrink to 1-2
17614
+ */
17615
+ calculateFinancialsLayoutPreferences(section, availableColumns) {
17616
+ const fields = section.fields ?? [];
17617
+ const fieldCount = fields.length;
17618
+ // Financials sections: 3 cols default, can shrink to 1-2
17619
+ let preferredColumns = 3;
17620
+ if (fieldCount <= 4) {
17621
+ preferredColumns = 2;
17622
+ }
17623
+ if (fieldCount <= 2) {
17624
+ preferredColumns = 1;
17625
+ }
17626
+ // Respect explicit preferences
17627
+ if (section.preferredColumns) {
17628
+ preferredColumns = section.preferredColumns;
17629
+ }
17630
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17631
+ return {
17632
+ preferredColumns,
17633
+ minColumns: (section.minColumns ?? 1),
17634
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
17635
+ canShrinkToFill: true,
17636
+ shrinkPriority: 25, // Higher priority for shrinking (promotes side-by-side placement)
17637
+ expandOnContent: {
17638
+ fieldCount: 6, // Expand to 3 columns at 6+ fields
17639
+ },
17640
+ };
17641
+ }
17642
+ /**
17643
+ * Get layout preferences for financials section.
17644
+ */
17645
+ getLayoutPreferences(availableColumns = 4) {
17646
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17647
+ if (servicePrefs) {
17648
+ return servicePrefs;
17649
+ }
17650
+ return this.calculateFinancialsLayoutPreferences(this.section, availableColumns);
17651
+ }
17032
17652
  /**
17033
17653
  * Get trend class
17034
17654
  */
@@ -17081,11 +17701,62 @@ var financialsSection_component = /*#__PURE__*/Object.freeze({
17081
17701
  * Features: lazy loading, captions, hover effects.
17082
17702
  */
17083
17703
  class GallerySectionComponent extends BaseSectionComponent {
17084
- /**
17085
- * Get image URL from item
17086
- */
17087
- getImageUrl(item) {
17088
- return item.meta?.url || item.meta?.src || item.url || '';
17704
+ constructor() {
17705
+ super(...arguments);
17706
+ this.layoutService = inject(SectionLayoutPreferenceService);
17707
+ }
17708
+ ngOnInit() {
17709
+ // Register layout preference function for this section type
17710
+ this.layoutService.register('gallery', (section, availableColumns) => {
17711
+ return this.calculateGalleryLayoutPreferences(section, availableColumns);
17712
+ });
17713
+ }
17714
+ /**
17715
+ * Calculate layout preferences for gallery section based on content.
17716
+ * Gallery sections: 2 cols default, can shrink to 1, expands to 3-4 for many images
17717
+ */
17718
+ calculateGalleryLayoutPreferences(section, availableColumns) {
17719
+ const items = section.items ?? [];
17720
+ const itemCount = items.length;
17721
+ // Gallery sections: 2 cols default, can shrink to 1, expands to 3-4 for many images
17722
+ let preferredColumns = 2;
17723
+ if (itemCount >= 6 && availableColumns >= 3) {
17724
+ preferredColumns = 3;
17725
+ }
17726
+ if (itemCount <= 2) {
17727
+ preferredColumns = 1;
17728
+ }
17729
+ // Respect explicit preferences
17730
+ if (section.preferredColumns) {
17731
+ preferredColumns = section.preferredColumns;
17732
+ }
17733
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17734
+ return {
17735
+ preferredColumns,
17736
+ minColumns: (section.minColumns ?? 1),
17737
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
17738
+ canShrinkToFill: true,
17739
+ shrinkPriority: 18, // Higher priority for shrinking (galleries are flexible, promotes side-by-side)
17740
+ expandOnContent: {
17741
+ itemCount: 6, // Expand to 3 columns at 6+ images
17742
+ },
17743
+ };
17744
+ }
17745
+ /**
17746
+ * Get layout preferences for gallery section.
17747
+ */
17748
+ getLayoutPreferences(availableColumns = 4) {
17749
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17750
+ if (servicePrefs) {
17751
+ return servicePrefs;
17752
+ }
17753
+ return this.calculateGalleryLayoutPreferences(this.section, availableColumns);
17754
+ }
17755
+ /**
17756
+ * Get image URL from item
17757
+ */
17758
+ getImageUrl(item) {
17759
+ return item.meta?.url || item.meta?.src || item.url || '';
17089
17760
  }
17090
17761
  /**
17091
17762
  * Get image caption
@@ -17180,6 +17851,70 @@ class InfoSectionComponent extends BaseSectionComponent {
17180
17851
  * TrackBy function for fields
17181
17852
  */
17182
17853
  this.trackByField = trackByField;
17854
+ this.layoutService = inject(SectionLayoutPreferenceService);
17855
+ }
17856
+ ngOnInit() {
17857
+ // Register layout preference function for this section type
17858
+ this.layoutService.register('info', (section, availableColumns) => {
17859
+ return this.calculateInfoLayoutPreferences(section, availableColumns);
17860
+ });
17861
+ }
17862
+ /**
17863
+ * Calculate layout preferences for info section based on section data.
17864
+ * This method can be called statically via the service.
17865
+ */
17866
+ calculateInfoLayoutPreferences(section, availableColumns) {
17867
+ const fields = section.fields ?? [];
17868
+ const fieldCount = fields.length;
17869
+ const descriptionLength = section.description?.length ?? 0;
17870
+ // Calculate preferred columns based on content:
17871
+ // 1-3 fields = 1 column (compact)
17872
+ // 4-6 fields = 2 columns (comfortable)
17873
+ // 7+ fields = 3 columns (spacious)
17874
+ let preferredColumns = 1;
17875
+ if (fieldCount >= 4 && fieldCount <= 6) {
17876
+ preferredColumns = 2;
17877
+ }
17878
+ else if (fieldCount >= 7) {
17879
+ preferredColumns = 3;
17880
+ }
17881
+ // Adjust for description length
17882
+ if (descriptionLength > 200 && preferredColumns < 2) {
17883
+ preferredColumns = 2;
17884
+ }
17885
+ if (descriptionLength > 400 && preferredColumns < 3) {
17886
+ preferredColumns = 3;
17887
+ }
17888
+ // Respect explicit preferences from section data
17889
+ if (section.preferredColumns) {
17890
+ preferredColumns = section.preferredColumns;
17891
+ }
17892
+ // Constrain to available columns
17893
+ preferredColumns = Math.min(preferredColumns, availableColumns);
17894
+ return {
17895
+ preferredColumns,
17896
+ minColumns: (section.minColumns ?? 1),
17897
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
17898
+ canShrinkToFill: true, // Info sections can shrink to 1 column to fill grid
17899
+ shrinkPriority: 20, // Higher priority for shrinking (promotes side-by-side placement)
17900
+ expandOnContent: {
17901
+ fieldCount: 7, // Expand to 3 columns at 7+ fields
17902
+ descriptionLength: 200, // Expand with long descriptions
17903
+ },
17904
+ };
17905
+ }
17906
+ /**
17907
+ * Get layout preferences for info section.
17908
+ * Uses the registered preference function via service, or calculates directly.
17909
+ */
17910
+ getLayoutPreferences(availableColumns = 4) {
17911
+ // Try to get from service first (if registered)
17912
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
17913
+ if (servicePrefs) {
17914
+ return servicePrefs;
17915
+ }
17916
+ // Fallback to direct calculation
17917
+ return this.calculateInfoLayoutPreferences(this.section, availableColumns);
17183
17918
  }
17184
17919
  /**
17185
17920
  * Get trend class (deprecated - kept for backward compatibility)
@@ -17233,6 +17968,56 @@ var infoSection_component = /*#__PURE__*/Object.freeze({
17233
17968
  * Perfect for task lists, features, requirements, and inventory.
17234
17969
  */
17235
17970
  class ListSectionComponent extends BaseSectionComponent {
17971
+ constructor() {
17972
+ super(...arguments);
17973
+ this.layoutService = inject(SectionLayoutPreferenceService);
17974
+ }
17975
+ ngOnInit() {
17976
+ // Register layout preference function for this section type
17977
+ this.layoutService.register('list', (section, availableColumns) => {
17978
+ return this.calculateListLayoutPreferences(section, availableColumns);
17979
+ });
17980
+ }
17981
+ /**
17982
+ * Calculate layout preferences for list section based on content.
17983
+ */
17984
+ calculateListLayoutPreferences(section, availableColumns) {
17985
+ const items = section.items ?? [];
17986
+ const itemCount = items.length;
17987
+ // List sections: 1-2 cols default, can shrink to 1, expands based on item count
17988
+ let preferredColumns = 1;
17989
+ if (itemCount >= 5) {
17990
+ preferredColumns = 2;
17991
+ }
17992
+ if (itemCount >= 10) {
17993
+ preferredColumns = 3;
17994
+ }
17995
+ // Respect explicit preferences
17996
+ if (section.preferredColumns) {
17997
+ preferredColumns = section.preferredColumns;
17998
+ }
17999
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18000
+ return {
18001
+ preferredColumns,
18002
+ minColumns: (section.minColumns ?? 1),
18003
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18004
+ canShrinkToFill: true,
18005
+ shrinkPriority: 15, // Very high priority for shrinking (lists are very flexible, promotes consolidation)
18006
+ expandOnContent: {
18007
+ itemCount: 5, // Expand to 2 columns at 5+ items
18008
+ },
18009
+ };
18010
+ }
18011
+ /**
18012
+ * Get layout preferences for list section.
18013
+ */
18014
+ getLayoutPreferences(availableColumns = 4) {
18015
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18016
+ if (servicePrefs) {
18017
+ return servicePrefs;
18018
+ }
18019
+ return this.calculateListLayoutPreferences(this.section, availableColumns);
18020
+ }
17236
18021
  /**
17237
18022
  * Get status class (deprecated - kept for backward compatibility)
17238
18023
  */
@@ -17303,6 +18088,16 @@ var listSection_component = /*#__PURE__*/Object.freeze({
17303
18088
  * Note: Requires Leaflet library to be installed.
17304
18089
  */
17305
18090
  class MapSectionComponent extends BaseSectionComponent {
18091
+ constructor() {
18092
+ super(...arguments);
18093
+ this.layoutService = inject(SectionLayoutPreferenceService);
18094
+ }
18095
+ ngOnInit() {
18096
+ // Register layout preference function for this section type
18097
+ this.layoutService.register('map', (section, availableColumns) => {
18098
+ return this.calculateMapLayoutPreferences(section, availableColumns);
18099
+ });
18100
+ }
17306
18101
  ngAfterViewInit() {
17307
18102
  this.initializeMap();
17308
18103
  }
@@ -17353,6 +18148,44 @@ class MapSectionComponent extends BaseSectionComponent {
17353
18148
  this.mapInstance = null;
17354
18149
  }
17355
18150
  }
18151
+ /**
18152
+ * Calculate layout preferences for map section based on content.
18153
+ * Map sections: 2 cols default, can shrink to 1, expands to 3-4 for wide maps
18154
+ */
18155
+ calculateMapLayoutPreferences(section, availableColumns) {
18156
+ // Map sections prefer 2 columns for optimal viewing
18157
+ // Can expand to 3-4 for wide maps, shrink to 1 for compact layouts
18158
+ let preferredColumns = 2;
18159
+ // Maps benefit from wider layouts when space is available
18160
+ if (availableColumns >= 3) {
18161
+ preferredColumns = 3;
18162
+ }
18163
+ // Respect explicit preferences
18164
+ if (section.preferredColumns) {
18165
+ preferredColumns = section.preferredColumns;
18166
+ }
18167
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18168
+ return {
18169
+ preferredColumns,
18170
+ minColumns: (section.minColumns ?? 1),
18171
+ maxColumns: Math.min((section.maxColumns ?? 4), availableColumns),
18172
+ canShrinkToFill: true,
18173
+ shrinkPriority: 25, // Higher priority for shrinking (promotes side-by-side placement)
18174
+ expandOnContent: {
18175
+ // Maps can expand based on location count
18176
+ },
18177
+ };
18178
+ }
18179
+ /**
18180
+ * Get layout preferences for map section.
18181
+ */
18182
+ getLayoutPreferences(availableColumns = 4) {
18183
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18184
+ if (servicePrefs) {
18185
+ return servicePrefs;
18186
+ }
18187
+ return this.calculateMapLayoutPreferences(this.section, availableColumns);
18188
+ }
17356
18189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: MapSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
17357
18190
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: MapSectionComponent, isStandalone: true, selector: "lib-map-section", viewQueries: [{ propertyName: "mapElement", first: true, predicate: ["mapElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"map-container\">\n <!-- Section Header -->\n <lib-section-header [title]=\"section.title\" [description]=\"section.description\"> </lib-section-header>\n\n <!-- Map Display -->\n <div class=\"map-wrapper\">\n <div #mapElement class=\"map-element\"></div>\n </div>\n\n <!-- Location List (Optional) -->\n <div class=\"location-list\" *ngIf=\"section.fields && section.fields.length > 1\">\n <div class=\"location-item\" *ngFor=\"let location of section.fields\">\n <h4 class=\"location-name\">{{ location.name }}</h4>\n <p class=\"location-address\" *ngIf=\"location.address\">{{ location.address }}</p>\n <span class=\"location-type\" *ngIf=\"location.type\">{{ location.type }}</span>\n </div>\n </div>\n\n <!-- Empty State -->\n <lib-empty-state\n *ngIf=\"!section.fields || section.fields.length === 0\"\n message=\"No locations to display\"\n icon=\"\uD83D\uDDFA\uFE0F\"\n variant=\"minimal\"\n >\n </lib-empty-state>\n</div>\n", styles: [":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: var(--spacing-md);--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-sticky: 200;--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(--section-item-background);--surface-raised: var(--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:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.section-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card{transition: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)}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes section-item-stream{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}:host{display:block;width:100%}.map-container{display:flex;flex-direction:column;gap:var(--osi-spacing-compact-md, 12px)}.map-wrapper{background:var(--osi-surface);border:1px solid var(--osi-border-muted);border-radius:var(--osi-radius-md);overflow:hidden;height:280px}@media (max-width: 480px){.map-wrapper{height:180px}}.map-element{width:100%;height:100%}.location-list{display:flex;flex-direction:column;gap:var(--osi-spacing-compact-xs, 2px);margin-top:var(--osi-spacing-compact-sm, 6px)}.location-item{background:var(--osi-surface);border:1px solid var(--osi-border-muted);border-radius:var(--osi-radius-sm);padding:var(--osi-spacing-compact-sm, 6px);transition:all var(--osi-duration-normal) var(--osi-ease-out)}.location-item:hover{background:var(--osi-surface-raised)}@media (max-width: 480px){.location-item{padding:var(--osi-spacing-compact-xs, 2px)}}.location-name{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--foreground);margin:0}.location-address{font-size:var(--text-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--foreground);margin:var(--osi-spacing-compact-xs, 2px) 0 0}.location-type{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--foreground);text-transform:none;display:inline-block;margin-top:var(--osi-spacing-compact-xs, 2px)}\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"] }] }); }
17358
18191
  }
@@ -17376,6 +18209,55 @@ var mapSection_component = /*#__PURE__*/Object.freeze({
17376
18209
  * Features: influence scores, connection counts, status indicators.
17377
18210
  */
17378
18211
  class NetworkCardSectionComponent extends BaseSectionComponent {
18212
+ constructor() {
18213
+ super(...arguments);
18214
+ this.layoutService = inject(SectionLayoutPreferenceService);
18215
+ }
18216
+ ngOnInit() {
18217
+ // Register layout preference function for this section type
18218
+ this.layoutService.register('network-card', (section, availableColumns) => {
18219
+ return this.calculateNetworkCardLayoutPreferences(section, availableColumns);
18220
+ });
18221
+ }
18222
+ /**
18223
+ * Calculate layout preferences for network card section based on content.
18224
+ * Network cards: 1-2 cols default, similar to contact cards
18225
+ */
18226
+ calculateNetworkCardLayoutPreferences(section, availableColumns) {
18227
+ const items = section.items ?? [];
18228
+ const fields = section.fields ?? [];
18229
+ const itemCount = items.length + fields.length;
18230
+ // Network cards: 1-2 cols default, similar to contact cards
18231
+ let preferredColumns = 1;
18232
+ if (itemCount >= 3 && availableColumns >= 2) {
18233
+ preferredColumns = 2;
18234
+ }
18235
+ // Respect explicit preferences
18236
+ if (section.preferredColumns) {
18237
+ preferredColumns = section.preferredColumns;
18238
+ }
18239
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18240
+ return {
18241
+ preferredColumns,
18242
+ minColumns: (section.minColumns ?? 1),
18243
+ maxColumns: Math.min((section.maxColumns ?? 2), availableColumns),
18244
+ canShrinkToFill: true,
18245
+ shrinkPriority: 20, // High priority for shrinking (network cards are flexible)
18246
+ expandOnContent: {
18247
+ itemCount: 3, // Expand to 2 columns at 3+ items
18248
+ },
18249
+ };
18250
+ }
18251
+ /**
18252
+ * Get layout preferences for network card section.
18253
+ */
18254
+ getLayoutPreferences(availableColumns = 4) {
18255
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18256
+ if (servicePrefs) {
18257
+ return servicePrefs;
18258
+ }
18259
+ return this.calculateNetworkCardLayoutPreferences(this.section, availableColumns);
18260
+ }
17379
18261
  /**
17380
18262
  * Get status class
17381
18263
  */
@@ -17404,6 +18286,57 @@ var networkCardSection_component = /*#__PURE__*/Object.freeze({
17404
18286
  * Features: publication dates, sources, categories, featured images.
17405
18287
  */
17406
18288
  class NewsSectionComponent extends BaseSectionComponent {
18289
+ constructor() {
18290
+ super(...arguments);
18291
+ this.layoutService = inject(SectionLayoutPreferenceService);
18292
+ }
18293
+ ngOnInit() {
18294
+ // Register layout preference function for this section type
18295
+ this.layoutService.register('news', (section, availableColumns) => {
18296
+ return this.calculateNewsLayoutPreferences(section, availableColumns);
18297
+ });
18298
+ }
18299
+ /**
18300
+ * Calculate layout preferences for news section based on content.
18301
+ * News sections: 2 cols default, can shrink to 1, expands based on item count
18302
+ */
18303
+ calculateNewsLayoutPreferences(section, availableColumns) {
18304
+ const items = section.items ?? [];
18305
+ const itemCount = items.length;
18306
+ // News sections: 2 cols default, can shrink to 1, expands based on item count
18307
+ let preferredColumns = 2;
18308
+ if (itemCount >= 5 && availableColumns >= 3) {
18309
+ preferredColumns = 3;
18310
+ }
18311
+ if (itemCount <= 2) {
18312
+ preferredColumns = 1;
18313
+ }
18314
+ // Respect explicit preferences
18315
+ if (section.preferredColumns) {
18316
+ preferredColumns = section.preferredColumns;
18317
+ }
18318
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18319
+ return {
18320
+ preferredColumns,
18321
+ minColumns: (section.minColumns ?? 1),
18322
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18323
+ canShrinkToFill: true,
18324
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
18325
+ expandOnContent: {
18326
+ itemCount: 5, // Expand to 3 columns at 5+ articles
18327
+ },
18328
+ };
18329
+ }
18330
+ /**
18331
+ * Get layout preferences for news section.
18332
+ */
18333
+ getLayoutPreferences(availableColumns = 4) {
18334
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18335
+ if (servicePrefs) {
18336
+ return servicePrefs;
18337
+ }
18338
+ return this.calculateNewsLayoutPreferences(this.section, availableColumns);
18339
+ }
17407
18340
  /**
17408
18341
  * Get article image URL
17409
18342
  */
@@ -17447,6 +18380,59 @@ var newsSection_component = /*#__PURE__*/Object.freeze({
17447
18380
  * Perfect for company profiles, key highlights, and quick insights.
17448
18381
  */
17449
18382
  class OverviewSectionComponent extends BaseSectionComponent {
18383
+ constructor() {
18384
+ super(...arguments);
18385
+ this.layoutService = inject(SectionLayoutPreferenceService);
18386
+ }
18387
+ ngOnInit() {
18388
+ // Register layout preference function for this section type
18389
+ this.layoutService.register('overview', (section, availableColumns) => {
18390
+ return this.calculateOverviewLayoutPreferences(section, availableColumns);
18391
+ });
18392
+ }
18393
+ /**
18394
+ * Calculate layout preferences for overview section based on content.
18395
+ */
18396
+ calculateOverviewLayoutPreferences(section, availableColumns) {
18397
+ const fields = section.fields ?? [];
18398
+ const fieldCount = fields.length;
18399
+ // Overview sections: 3 cols default, can shrink to 1-2, expands to 4 for many fields
18400
+ let preferredColumns = 3;
18401
+ if (fieldCount >= 12) {
18402
+ preferredColumns = 4;
18403
+ }
18404
+ else if (fieldCount <= 4) {
18405
+ preferredColumns = 2;
18406
+ }
18407
+ else if (fieldCount <= 2) {
18408
+ preferredColumns = 1;
18409
+ }
18410
+ // Respect explicit preferences
18411
+ if (section.preferredColumns) {
18412
+ preferredColumns = section.preferredColumns;
18413
+ }
18414
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18415
+ return {
18416
+ preferredColumns,
18417
+ minColumns: (section.minColumns ?? 1),
18418
+ maxColumns: Math.min((section.maxColumns ?? 4), availableColumns),
18419
+ canShrinkToFill: true,
18420
+ shrinkPriority: 40, // Lower priority (overview sections prefer to stay wide)
18421
+ expandOnContent: {
18422
+ fieldCount: 12, // Expand to 4 columns at 12+ fields
18423
+ },
18424
+ };
18425
+ }
18426
+ /**
18427
+ * Get layout preferences for overview section.
18428
+ */
18429
+ getLayoutPreferences(availableColumns = 4) {
18430
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18431
+ if (servicePrefs) {
18432
+ return servicePrefs;
18433
+ }
18434
+ return this.calculateOverviewLayoutPreferences(this.section, availableColumns);
18435
+ }
17450
18436
  /**
17451
18437
  * Check if field should be highlighted
17452
18438
  */
@@ -17473,6 +18459,57 @@ var overviewSection_component = /*#__PURE__*/Object.freeze({
17473
18459
  * Perfect for product catalogs, feature lists, and service offerings.
17474
18460
  */
17475
18461
  class ProductSectionComponent extends BaseSectionComponent {
18462
+ constructor() {
18463
+ super(...arguments);
18464
+ this.layoutService = inject(SectionLayoutPreferenceService);
18465
+ }
18466
+ ngOnInit() {
18467
+ // Register layout preference function for this section type
18468
+ this.layoutService.register('product', (section, availableColumns) => {
18469
+ return this.calculateProductLayoutPreferences(section, availableColumns);
18470
+ });
18471
+ }
18472
+ /**
18473
+ * Calculate layout preferences for product section based on content.
18474
+ * Product sections: 2 cols default, can shrink to 1, expands based on item count
18475
+ */
18476
+ calculateProductLayoutPreferences(section, availableColumns) {
18477
+ const items = section.items ?? [];
18478
+ const itemCount = items.length;
18479
+ // Product sections: 2 cols default, can shrink to 1, expands based on item count
18480
+ let preferredColumns = 2;
18481
+ if (itemCount >= 5 && availableColumns >= 3) {
18482
+ preferredColumns = 3;
18483
+ }
18484
+ if (itemCount <= 2) {
18485
+ preferredColumns = 1;
18486
+ }
18487
+ // Respect explicit preferences
18488
+ if (section.preferredColumns) {
18489
+ preferredColumns = section.preferredColumns;
18490
+ }
18491
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18492
+ return {
18493
+ preferredColumns,
18494
+ minColumns: (section.minColumns ?? 1),
18495
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18496
+ canShrinkToFill: true,
18497
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
18498
+ expandOnContent: {
18499
+ itemCount: 5, // Expand to 3 columns at 5+ products
18500
+ },
18501
+ };
18502
+ }
18503
+ /**
18504
+ * Get layout preferences for product section.
18505
+ */
18506
+ getLayoutPreferences(availableColumns = 4) {
18507
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18508
+ if (servicePrefs) {
18509
+ return servicePrefs;
18510
+ }
18511
+ return this.calculateProductLayoutPreferences(this.section, availableColumns);
18512
+ }
17476
18513
  /**
17477
18514
  * Get status class (deprecated)
17478
18515
  */
@@ -17518,6 +18555,58 @@ var productSection_component = /*#__PURE__*/Object.freeze({
17518
18555
  * Perfect for customer feedback, expert opinions, and highlighted content.
17519
18556
  */
17520
18557
  class QuotationSectionComponent extends BaseSectionComponent {
18558
+ constructor() {
18559
+ super(...arguments);
18560
+ this.layoutService = inject(SectionLayoutPreferenceService);
18561
+ }
18562
+ ngOnInit() {
18563
+ // Register layout preference function for this section type
18564
+ this.layoutService.register('quotation', (section, availableColumns) => {
18565
+ return this.calculateQuotationLayoutPreferences(section, availableColumns);
18566
+ });
18567
+ }
18568
+ /**
18569
+ * Calculate layout preferences for quotation section based on content.
18570
+ * Quotation sections: 2 cols default, can shrink to 1, expands to 3 for readability
18571
+ */
18572
+ calculateQuotationLayoutPreferences(section, availableColumns) {
18573
+ const fields = section.fields ?? [];
18574
+ const fieldCount = fields.length;
18575
+ const descriptionLength = section.description?.length ?? 0;
18576
+ // Quotation sections: 2 cols default, can shrink to 1, expands to 3 for readability
18577
+ let preferredColumns = 2;
18578
+ if (descriptionLength > 300 && availableColumns >= 3) {
18579
+ preferredColumns = 3;
18580
+ }
18581
+ if (fieldCount <= 1) {
18582
+ preferredColumns = 1;
18583
+ }
18584
+ // Respect explicit preferences
18585
+ if (section.preferredColumns) {
18586
+ preferredColumns = section.preferredColumns;
18587
+ }
18588
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18589
+ return {
18590
+ preferredColumns,
18591
+ minColumns: (section.minColumns ?? 1),
18592
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18593
+ canShrinkToFill: true,
18594
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
18595
+ expandOnContent: {
18596
+ descriptionLength: 300, // Expand to 3 columns for long quotes
18597
+ },
18598
+ };
18599
+ }
18600
+ /**
18601
+ * Get layout preferences for quotation section.
18602
+ */
18603
+ getLayoutPreferences(availableColumns = 4) {
18604
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18605
+ if (servicePrefs) {
18606
+ return servicePrefs;
18607
+ }
18608
+ return this.calculateQuotationLayoutPreferences(this.section, availableColumns);
18609
+ }
17521
18610
  /**
17522
18611
  * Get quote text
17523
18612
  */
@@ -17550,6 +18639,57 @@ var quotationSection_component = /*#__PURE__*/Object.freeze({
17550
18639
  * Features: platform icons, follower counts, verification badges.
17551
18640
  */
17552
18641
  class SocialMediaSectionComponent extends BaseSectionComponent {
18642
+ constructor() {
18643
+ super(...arguments);
18644
+ this.layoutService = inject(SectionLayoutPreferenceService);
18645
+ }
18646
+ ngOnInit() {
18647
+ // Register layout preference function for this section type
18648
+ this.layoutService.register('social-media', (section, availableColumns) => {
18649
+ return this.calculateSocialMediaLayoutPreferences(section, availableColumns);
18650
+ });
18651
+ }
18652
+ /**
18653
+ * Calculate layout preferences for social media section based on content.
18654
+ * Social media sections: 2 cols default, can shrink to 1, expands based on item count
18655
+ */
18656
+ calculateSocialMediaLayoutPreferences(section, availableColumns) {
18657
+ const items = section.items ?? [];
18658
+ const itemCount = items.length;
18659
+ // Social media sections: 2 cols default, can shrink to 1, expands based on item count
18660
+ let preferredColumns = 2;
18661
+ if (itemCount >= 5 && availableColumns >= 3) {
18662
+ preferredColumns = 3;
18663
+ }
18664
+ if (itemCount <= 2) {
18665
+ preferredColumns = 1;
18666
+ }
18667
+ // Respect explicit preferences
18668
+ if (section.preferredColumns) {
18669
+ preferredColumns = section.preferredColumns;
18670
+ }
18671
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18672
+ return {
18673
+ preferredColumns,
18674
+ minColumns: (section.minColumns ?? 1),
18675
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18676
+ canShrinkToFill: true,
18677
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
18678
+ expandOnContent: {
18679
+ itemCount: 5, // Expand to 3 columns at 5+ platforms
18680
+ },
18681
+ };
18682
+ }
18683
+ /**
18684
+ * Get layout preferences for social media section.
18685
+ */
18686
+ getLayoutPreferences(availableColumns = 4) {
18687
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18688
+ if (servicePrefs) {
18689
+ return servicePrefs;
18690
+ }
18691
+ return this.calculateSocialMediaLayoutPreferences(this.section, availableColumns);
18692
+ }
17553
18693
  /**
17554
18694
  * Get platform icon (emoji fallback)
17555
18695
  */
@@ -17599,6 +18739,57 @@ var socialMediaSection_component = /*#__PURE__*/Object.freeze({
17599
18739
  * Features: benefits, complexity indicators, delivery timeframes.
17600
18740
  */
17601
18741
  class SolutionsSectionComponent extends BaseSectionComponent {
18742
+ constructor() {
18743
+ super(...arguments);
18744
+ this.layoutService = inject(SectionLayoutPreferenceService);
18745
+ }
18746
+ ngOnInit() {
18747
+ // Register layout preference function for this section type
18748
+ this.layoutService.register('solutions', (section, availableColumns) => {
18749
+ return this.calculateSolutionsLayoutPreferences(section, availableColumns);
18750
+ });
18751
+ }
18752
+ /**
18753
+ * Calculate layout preferences for solutions section based on content.
18754
+ * Solutions sections: 2 cols default, can shrink to 1, expands based on item count
18755
+ */
18756
+ calculateSolutionsLayoutPreferences(section, availableColumns) {
18757
+ const items = section.items ?? [];
18758
+ const itemCount = items.length;
18759
+ // Solutions sections: 2 cols default, can shrink to 1, expands based on item count
18760
+ let preferredColumns = 2;
18761
+ if (itemCount >= 5 && availableColumns >= 3) {
18762
+ preferredColumns = 3;
18763
+ }
18764
+ if (itemCount <= 2) {
18765
+ preferredColumns = 1;
18766
+ }
18767
+ // Respect explicit preferences
18768
+ if (section.preferredColumns) {
18769
+ preferredColumns = section.preferredColumns;
18770
+ }
18771
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18772
+ return {
18773
+ preferredColumns,
18774
+ minColumns: (section.minColumns ?? 1),
18775
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18776
+ canShrinkToFill: true,
18777
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
18778
+ expandOnContent: {
18779
+ itemCount: 5, // Expand to 3 columns at 5+ solutions
18780
+ },
18781
+ };
18782
+ }
18783
+ /**
18784
+ * Get layout preferences for solutions section.
18785
+ */
18786
+ getLayoutPreferences(availableColumns = 4) {
18787
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18788
+ if (servicePrefs) {
18789
+ return servicePrefs;
18790
+ }
18791
+ return this.calculateSolutionsLayoutPreferences(this.section, availableColumns);
18792
+ }
17602
18793
  /**
17603
18794
  * Get complexity class (deprecated)
17604
18795
  */
@@ -17642,6 +18833,58 @@ var solutionsSection_component = /*#__PURE__*/Object.freeze({
17642
18833
  * Perfect for articles, research summaries, and resource libraries.
17643
18834
  */
17644
18835
  class TextReferenceSectionComponent extends BaseSectionComponent {
18836
+ constructor() {
18837
+ super(...arguments);
18838
+ this.layoutService = inject(SectionLayoutPreferenceService);
18839
+ }
18840
+ ngOnInit() {
18841
+ // Register layout preference function for this section type
18842
+ this.layoutService.register('text-reference', (section, availableColumns) => {
18843
+ return this.calculateTextReferenceLayoutPreferences(section, availableColumns);
18844
+ });
18845
+ }
18846
+ /**
18847
+ * Calculate layout preferences for text reference section based on content.
18848
+ * Text reference sections: 2 cols default, can shrink to 1, expands to 3 for readability
18849
+ */
18850
+ calculateTextReferenceLayoutPreferences(section, availableColumns) {
18851
+ const fields = section.fields ?? [];
18852
+ const fieldCount = fields.length;
18853
+ const descriptionLength = section.description?.length ?? 0;
18854
+ // Text reference sections: 2 cols default, can shrink to 1, expands to 3 for readability
18855
+ let preferredColumns = 2;
18856
+ if (descriptionLength > 300 && availableColumns >= 3) {
18857
+ preferredColumns = 3;
18858
+ }
18859
+ if (fieldCount <= 1) {
18860
+ preferredColumns = 1;
18861
+ }
18862
+ // Respect explicit preferences
18863
+ if (section.preferredColumns) {
18864
+ preferredColumns = section.preferredColumns;
18865
+ }
18866
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18867
+ return {
18868
+ preferredColumns,
18869
+ minColumns: (section.minColumns ?? 1),
18870
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18871
+ canShrinkToFill: true,
18872
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
18873
+ expandOnContent: {
18874
+ descriptionLength: 300, // Expand to 3 columns for long text
18875
+ },
18876
+ };
18877
+ }
18878
+ /**
18879
+ * Get layout preferences for text reference section.
18880
+ */
18881
+ getLayoutPreferences(availableColumns = 4) {
18882
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18883
+ if (servicePrefs) {
18884
+ return servicePrefs;
18885
+ }
18886
+ return this.calculateTextReferenceLayoutPreferences(this.section, availableColumns);
18887
+ }
17645
18888
  /**
17646
18889
  * Get reference title
17647
18890
  */
@@ -17674,6 +18917,57 @@ var textReferenceSection_component = /*#__PURE__*/Object.freeze({
17674
18917
  * Features: vertical timeline, date markers, status indicators.
17675
18918
  */
17676
18919
  class TimelineSectionComponent extends BaseSectionComponent {
18920
+ constructor() {
18921
+ super(...arguments);
18922
+ this.layoutService = inject(SectionLayoutPreferenceService);
18923
+ }
18924
+ ngOnInit() {
18925
+ // Register layout preference function for this section type
18926
+ this.layoutService.register('timeline', (section, availableColumns) => {
18927
+ return this.calculateTimelineLayoutPreferences(section, availableColumns);
18928
+ });
18929
+ }
18930
+ /**
18931
+ * Calculate layout preferences for timeline section based on content.
18932
+ * Timeline sections: 3 cols default, can shrink to 1-2
18933
+ */
18934
+ calculateTimelineLayoutPreferences(section, availableColumns) {
18935
+ const items = section.items ?? [];
18936
+ const itemCount = items.length;
18937
+ // Timeline sections: 3 cols default, can shrink to 1-2
18938
+ let preferredColumns = 3;
18939
+ if (itemCount <= 3) {
18940
+ preferredColumns = 2;
18941
+ }
18942
+ if (itemCount <= 1) {
18943
+ preferredColumns = 1;
18944
+ }
18945
+ // Respect explicit preferences
18946
+ if (section.preferredColumns) {
18947
+ preferredColumns = section.preferredColumns;
18948
+ }
18949
+ preferredColumns = Math.min(preferredColumns, availableColumns);
18950
+ return {
18951
+ preferredColumns,
18952
+ minColumns: (section.minColumns ?? 1),
18953
+ maxColumns: Math.min((section.maxColumns ?? 3), availableColumns),
18954
+ canShrinkToFill: true,
18955
+ shrinkPriority: 22, // Higher priority for shrinking (promotes side-by-side placement)
18956
+ expandOnContent: {
18957
+ itemCount: 4, // Expand to 3 columns at 4+ items
18958
+ },
18959
+ };
18960
+ }
18961
+ /**
18962
+ * Get layout preferences for timeline section.
18963
+ */
18964
+ getLayoutPreferences(availableColumns = 4) {
18965
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
18966
+ if (servicePrefs) {
18967
+ return servicePrefs;
18968
+ }
18969
+ return this.calculateTimelineLayoutPreferences(this.section, availableColumns);
18970
+ }
17677
18971
  /**
17678
18972
  * Get date display
17679
18973
  */
@@ -17706,6 +19000,54 @@ class VideoSectionComponent extends BaseSectionComponent {
17706
19000
  constructor(sanitizer) {
17707
19001
  super();
17708
19002
  this.sanitizer = sanitizer;
19003
+ this.layoutService = inject(SectionLayoutPreferenceService);
19004
+ }
19005
+ ngOnInit() {
19006
+ // Register layout preference function for this section type
19007
+ this.layoutService.register('video', (section, availableColumns) => {
19008
+ return this.calculateVideoLayoutPreferences(section, availableColumns);
19009
+ });
19010
+ }
19011
+ /**
19012
+ * Calculate layout preferences for video section based on content.
19013
+ * Video sections: 2 cols default, can shrink to 1, expands to 3-4 for wide videos
19014
+ */
19015
+ calculateVideoLayoutPreferences(section, availableColumns) {
19016
+ const items = section.items ?? [];
19017
+ const itemCount = items.length;
19018
+ // Video sections: 2 cols default, can shrink to 1, expands to 3-4 for wide videos
19019
+ let preferredColumns = 2;
19020
+ if (itemCount >= 3 && availableColumns >= 3) {
19021
+ preferredColumns = 3;
19022
+ }
19023
+ if (itemCount <= 1) {
19024
+ preferredColumns = 1;
19025
+ }
19026
+ // Respect explicit preferences
19027
+ if (section.preferredColumns) {
19028
+ preferredColumns = section.preferredColumns;
19029
+ }
19030
+ preferredColumns = Math.min(preferredColumns, availableColumns);
19031
+ return {
19032
+ preferredColumns,
19033
+ minColumns: (section.minColumns ?? 1),
19034
+ maxColumns: Math.min((section.maxColumns ?? 4), availableColumns),
19035
+ canShrinkToFill: true,
19036
+ shrinkPriority: 25, // Higher priority for shrinking (promotes side-by-side placement)
19037
+ expandOnContent: {
19038
+ itemCount: 3, // Expand to 3 columns at 3+ videos
19039
+ },
19040
+ };
19041
+ }
19042
+ /**
19043
+ * Get layout preferences for video section.
19044
+ */
19045
+ getLayoutPreferences(availableColumns = 4) {
19046
+ const servicePrefs = this.layoutService.getPreferences(this.section, availableColumns);
19047
+ if (servicePrefs) {
19048
+ return servicePrefs;
19049
+ }
19050
+ return this.calculateVideoLayoutPreferences(this.section, availableColumns);
17709
19051
  }
17710
19052
  /**
17711
19053
  * Get video URL
@@ -20659,6 +22001,146 @@ function createAnalyticsPreset(options) {
20659
22001
  * Factory functions and presets for common card configurations
20660
22002
  */
20661
22003
 
22004
+ /**
22005
+ * Card Actions Component
22006
+ *
22007
+ * Renders card-level action buttons (CTAs).
22008
+ * Extracted from AICardRendererComponent for better separation of concerns.
22009
+ *
22010
+ * Uses ViewEncapsulation.None to allow styles to be inherited from
22011
+ * the parent Shadow DOM (ai-card-renderer).
22012
+ */
22013
+ class CardActionsComponent {
22014
+ constructor() {
22015
+ this.iconService = inject(IconService);
22016
+ this.actions = [];
22017
+ this.actionClick = new EventEmitter();
22018
+ this.trackAction = (_index, action) => action.id ?? `${action.label}-${_index}`;
22019
+ }
22020
+ onActionClick(action) {
22021
+ this.actionClick.emit(action);
22022
+ }
22023
+ getActionIconName(action) {
22024
+ // If icon is explicitly provided, use it
22025
+ if (action.icon) {
22026
+ return this.iconService.getFieldIcon(action.icon);
22027
+ }
22028
+ // If type is specified and it's a button behavior type (not legacy styling), use default icons
22029
+ if (action.type && ['mail', 'website', 'agent', 'question'].includes(action.type)) {
22030
+ switch (action.type) {
22031
+ case 'mail':
22032
+ return 'mail';
22033
+ case 'website':
22034
+ return 'external-link';
22035
+ case 'agent':
22036
+ return 'user';
22037
+ case 'question':
22038
+ return 'message-circle';
22039
+ default:
22040
+ break;
22041
+ }
22042
+ }
22043
+ // Fallback to deriving icon from label
22044
+ return this.iconService.getFieldIcon(action.label);
22045
+ }
22046
+ getDefaultIconForButtonType(buttonType) {
22047
+ if (!buttonType || !['mail', 'website', 'agent', 'question'].includes(buttonType)) {
22048
+ return null;
22049
+ }
22050
+ switch (buttonType) {
22051
+ case 'mail':
22052
+ return 'mail';
22053
+ case 'website':
22054
+ return 'external-link';
22055
+ case 'agent':
22056
+ return 'user';
22057
+ case 'question':
22058
+ return 'message-circle';
22059
+ default:
22060
+ return null;
22061
+ }
22062
+ }
22063
+ getActionIconNameForDisplay(action) {
22064
+ // If explicit icon is provided and it's a URL, return null (will be handled as image)
22065
+ if (action.icon && action.icon.startsWith('http')) {
22066
+ return null;
22067
+ }
22068
+ // If explicit icon is provided and it's a lucide icon name, use it
22069
+ if (action.icon && !action.icon.startsWith('http')) {
22070
+ // Check if it's a lucide icon name (simple string like 'mail', 'user', etc.)
22071
+ if (/^[a-z-]+$/i.test(action.icon)) {
22072
+ return this.getActionIconName(action);
22073
+ }
22074
+ // Otherwise it's a text icon, return null (will be handled as text)
22075
+ return null;
22076
+ }
22077
+ // If no explicit icon, check if type is a button behavior type with default icon
22078
+ if (action.type && ['mail', 'website', 'agent', 'question'].includes(action.type)) {
22079
+ return this.getDefaultIconForButtonType(action.type);
22080
+ }
22081
+ // Fallback: try to derive icon from label
22082
+ const derivedIcon = this.getActionIconName(action);
22083
+ // Only use if it's a valid lucide icon name (simple string)
22084
+ if (derivedIcon && /^[a-z-]+$/i.test(derivedIcon)) {
22085
+ return derivedIcon;
22086
+ }
22087
+ return null;
22088
+ }
22089
+ hasTextIcon(action) {
22090
+ return !!(action.icon && !action.icon.startsWith('http') && !/^[a-z-]+$/i.test(action.icon));
22091
+ }
22092
+ hasImageIcon(action) {
22093
+ return !!(action.icon && action.icon.startsWith('http'));
22094
+ }
22095
+ /**
22096
+ * Get comprehensive ARIA label for action button
22097
+ */
22098
+ getActionAriaLabel(action) {
22099
+ let label = action.label;
22100
+ if (action.type === 'website' && action.url) {
22101
+ label += `: Opens ${action.url} in new window`;
22102
+ }
22103
+ else if (action.type === 'mail') {
22104
+ const email = action.email?.to || action.email?.contact?.email || 'email';
22105
+ label += `: Opens email to ${email}`;
22106
+ }
22107
+ else if (action.type === 'agent') {
22108
+ label += ': Triggers agent action';
22109
+ }
22110
+ else if (action.type === 'question') {
22111
+ label += ': Opens chat question';
22112
+ }
22113
+ return label;
22114
+ }
22115
+ getActionButtonClasses(action) {
22116
+ const primaryClasses = 'bg-[var(--color-brand)] text-white font-semibold border-0 hover:bg-[var(--color-brand)]/90 hover:shadow-lg hover:shadow-[var(--color-brand)]/40 active:scale-95';
22117
+ const outlineClasses = 'text-[var(--color-brand)] border border-[var(--color-brand)] bg-transparent font-semibold hover:bg-[var(--color-brand)]/10 active:scale-95';
22118
+ const ghostClasses = 'text-[var(--color-brand)] bg-transparent border-0 font-semibold hover:bg-[var(--color-brand)]/10 active:scale-95';
22119
+ // Use variant field if present, otherwise check legacy type field for styling
22120
+ const styleVariant = action.variant ||
22121
+ (action.type === 'primary' || action.type === 'secondary' ? action.type : 'primary');
22122
+ switch (styleVariant) {
22123
+ case 'secondary':
22124
+ case 'outline':
22125
+ return outlineClasses;
22126
+ case 'ghost':
22127
+ return ghostClasses;
22128
+ default:
22129
+ return primaryClasses;
22130
+ }
22131
+ }
22132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CardActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: CardActionsComponent, isStandalone: true, selector: "app-card-actions", inputs: { actions: "actions" }, outputs: { actionClick: "actionClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let action of actions; trackBy: trackAction; let i = index\">\n <button\n type=\"button\"\n class=\"osi-action-button\"\n [class.osi-action-button--primary]=\"!action.variant || action.variant === 'primary'\"\n [class.osi-action-button--secondary]=\"action.variant === 'secondary' || action.variant === 'outline'\"\n [attr.aria-label]=\"getActionAriaLabel(action)\"\n [attr.aria-describedby]=\"action.type === 'mail' ? 'action-mail-hint-' + i : null\"\n (click)=\"onActionClick(action)\"\n (keydown.enter)=\"onActionClick(action)\"\n (keydown.space)=\"$event.preventDefault(); onActionClick(action)\"\n >\n <!-- Lucide icon (for type defaults or explicit lucide icon names) -->\n <lucide-icon\n *ngIf=\"getActionIconNameForDisplay(action) as iconName\"\n [name]=\"iconName\"\n [size]=\"16\"\n aria-hidden=\"true\"\n >\n </lucide-icon>\n <!-- Image icon (for URL-based icons) -->\n <img\n *ngIf=\"hasImageIcon(action)\"\n [src]=\"action.icon\"\n [alt]=\"action.label + ' icon'\"\n class=\"osi-action-button__icon\"\n aria-hidden=\"true\"\n />\n <!-- Text icon (for emoji or text-based icons) -->\n <span *ngIf=\"hasTextIcon(action)\" class=\"osi-action-button__emoji\" aria-hidden=\"true\">{{ action.icon }}</span>\n <span class=\"osi-action-button__label\">{{ action.label }}</span>\n <!-- Hidden hint for mail actions -->\n <span *ngIf=\"action.type === 'mail'\" [id]=\"'action-mail-hint-' + i\" class=\"sr-only\">\n This will open your email client with pre-filled recipient and message\n </span>\n </button>\n</ng-container>\n", styles: [":host{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:.75rem!important;margin-top:var(--section-card-gap, 12px)!important;margin-left:4px!important;margin-right:4px!important;padding-bottom:16px!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important}.osi-action-button{margin:0!important;-webkit-appearance:none!important;appearance:none!important;display:inline-flex!important;align-items:center!important;gap:.5rem!important;padding:.625rem 1.25rem!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:.875rem!important;font-weight:600!important;line-height:1.25rem!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;border-radius:10px!important;transition:all .2s ease!important;box-sizing:border-box!important}.osi-action-button--primary{background-color:#ff7900!important;color:#fff!important;border:none!important;box-shadow:0 2px 8px #ff790040!important}.osi-action-button--primary *{color:#fff!important}.osi-action-button--primary:hover{background-color:#e66d00!important;color:#fff!important;box-shadow:0 4px 16px #ff790066!important;transform:translateY(-1px)!important}.osi-action-button--primary:active{background-color:#cc6000!important;color:#fff!important;transform:scale(.98) translateY(0)!important;box-shadow:0 2px 4px #ff790033!important}.osi-action-button--primary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button--secondary{background-color:transparent!important;color:#fff!important;border:2px solid #ff7900!important}.osi-action-button--secondary *{color:#fff!important}.osi-action-button--secondary:hover{background-color:#ff79001a!important;color:#fff!important;box-shadow:0 2px 8px #ff790033!important}.osi-action-button--secondary:active{background-color:#ff790026!important;color:#fff!important;transform:scale(.98)!important}.osi-action-button--secondary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button__label{color:#fff!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.osi-action-button__icon{width:18px!important;height:18px!important;object-fit:contain!important;flex-shrink:0!important}.osi-action-button__emoji{font-size:16px!important;line-height:1!important;flex-shrink:0!important}.osi-action-button lucide-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;color:#fff!important}.osi-action-button lucide-icon svg{width:16px!important;height:16px!important;stroke:#fff!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}\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: "ngmodule", type: LucideIconsModule }, { kind: "component", type: i2.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22134
+ }
22135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CardActionsComponent, decorators: [{
22136
+ type: Component,
22137
+ args: [{ selector: 'app-card-actions', standalone: true, imports: [CommonModule, LucideIconsModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngFor=\"let action of actions; trackBy: trackAction; let i = index\">\n <button\n type=\"button\"\n class=\"osi-action-button\"\n [class.osi-action-button--primary]=\"!action.variant || action.variant === 'primary'\"\n [class.osi-action-button--secondary]=\"action.variant === 'secondary' || action.variant === 'outline'\"\n [attr.aria-label]=\"getActionAriaLabel(action)\"\n [attr.aria-describedby]=\"action.type === 'mail' ? 'action-mail-hint-' + i : null\"\n (click)=\"onActionClick(action)\"\n (keydown.enter)=\"onActionClick(action)\"\n (keydown.space)=\"$event.preventDefault(); onActionClick(action)\"\n >\n <!-- Lucide icon (for type defaults or explicit lucide icon names) -->\n <lucide-icon\n *ngIf=\"getActionIconNameForDisplay(action) as iconName\"\n [name]=\"iconName\"\n [size]=\"16\"\n aria-hidden=\"true\"\n >\n </lucide-icon>\n <!-- Image icon (for URL-based icons) -->\n <img\n *ngIf=\"hasImageIcon(action)\"\n [src]=\"action.icon\"\n [alt]=\"action.label + ' icon'\"\n class=\"osi-action-button__icon\"\n aria-hidden=\"true\"\n />\n <!-- Text icon (for emoji or text-based icons) -->\n <span *ngIf=\"hasTextIcon(action)\" class=\"osi-action-button__emoji\" aria-hidden=\"true\">{{ action.icon }}</span>\n <span class=\"osi-action-button__label\">{{ action.label }}</span>\n <!-- Hidden hint for mail actions -->\n <span *ngIf=\"action.type === 'mail'\" [id]=\"'action-mail-hint-' + i\" class=\"sr-only\">\n This will open your email client with pre-filled recipient and message\n </span>\n </button>\n</ng-container>\n", styles: [":host{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:.75rem!important;margin-top:var(--section-card-gap, 12px)!important;margin-left:4px!important;margin-right:4px!important;padding-bottom:16px!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important}.osi-action-button{margin:0!important;-webkit-appearance:none!important;appearance:none!important;display:inline-flex!important;align-items:center!important;gap:.5rem!important;padding:.625rem 1.25rem!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:.875rem!important;font-weight:600!important;line-height:1.25rem!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;border-radius:10px!important;transition:all .2s ease!important;box-sizing:border-box!important}.osi-action-button--primary{background-color:#ff7900!important;color:#fff!important;border:none!important;box-shadow:0 2px 8px #ff790040!important}.osi-action-button--primary *{color:#fff!important}.osi-action-button--primary:hover{background-color:#e66d00!important;color:#fff!important;box-shadow:0 4px 16px #ff790066!important;transform:translateY(-1px)!important}.osi-action-button--primary:active{background-color:#cc6000!important;color:#fff!important;transform:scale(.98) translateY(0)!important;box-shadow:0 2px 4px #ff790033!important}.osi-action-button--primary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button--secondary{background-color:transparent!important;color:#fff!important;border:2px solid #ff7900!important}.osi-action-button--secondary *{color:#fff!important}.osi-action-button--secondary:hover{background-color:#ff79001a!important;color:#fff!important;box-shadow:0 2px 8px #ff790033!important}.osi-action-button--secondary:active{background-color:#ff790026!important;color:#fff!important;transform:scale(.98)!important}.osi-action-button--secondary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button__label{color:#fff!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.osi-action-button__icon{width:18px!important;height:18px!important;object-fit:contain!important;flex-shrink:0!important}.osi-action-button__emoji{font-size:16px!important;line-height:1!important;flex-shrink:0!important}.osi-action-button lucide-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;color:#fff!important}.osi-action-button lucide-icon svg{width:16px!important;height:16px!important;stroke:#fff!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}\n"] }]
22138
+ }], propDecorators: { actions: [{
22139
+ type: Input
22140
+ }], actionClick: [{
22141
+ type: Output
22142
+ }] } });
22143
+
20662
22144
  /**
20663
22145
  * Card Header Component
20664
22146
  *
@@ -21153,7 +22635,7 @@ const SECTION_HEIGHT_ESTIMATES$1 = {
21153
22635
  list: 220,
21154
22636
  event: 240,
21155
22637
  timeline: 240,
21156
- product: 260,
22638
+ product: 220,
21157
22639
  solutions: 240,
21158
22640
  quotation: 160,
21159
22641
  'text-reference': 180,
@@ -22629,7 +24111,7 @@ const SECTION_HEIGHT_ESTIMATES = {
22629
24111
  list: 220,
22630
24112
  event: 240,
22631
24113
  timeline: 240,
22632
- product: 260,
24114
+ product: 220,
22633
24115
  solutions: 240,
22634
24116
  quotation: 160,
22635
24117
  'text-reference': 180,
@@ -22662,19 +24144,177 @@ const DEFAULT_COLUMN_PACKER_CONFIG = {
22662
24144
  packingMode: 'ffdh',
22663
24145
  allowReordering: true,
22664
24146
  sortByHeight: true,
22665
- useSkylineThreshold: 3, // Switch to Skyline if gap count >= 3
24147
+ useSkylineThreshold: 1, // Very aggressive: Switch to Skyline at first gap
24148
+ optimizationPasses: 4, // Increased: More passes for maximum compactness
24149
+ enableGapAwarePlacement: true, // Consider gap creation when placing
22666
24150
  };
22667
24151
  // ============================================================================
22668
24152
  // FFDH PACKING ALGORITHM
22669
24153
  // ============================================================================
22670
24154
  /**
22671
- * Finds the best column position for a section using FFDH
22672
- * Returns the column index where the section should be placed
24155
+ * Finds the best column position for a section using FFDH
24156
+ * Returns the column index where the section should be placed
24157
+ */
24158
+ function findShortestColumn(colHeights, colSpan, columns) {
24159
+ let bestColumn = 0;
24160
+ let minHeight = Infinity;
24161
+ // Try all possible column positions
24162
+ for (let col = 0; col <= columns - colSpan; col++) {
24163
+ // Find the maximum height among columns this section would span
24164
+ let maxColHeight = 0;
24165
+ for (let c = col; c < col + colSpan; c++) {
24166
+ const colHeight = colHeights[c] ?? 0;
24167
+ if (colHeight > maxColHeight) {
24168
+ maxColHeight = colHeight;
24169
+ }
24170
+ }
24171
+ // Choose the position with the lowest maximum height (shortest column)
24172
+ if (maxColHeight < minHeight) {
24173
+ minHeight = maxColHeight;
24174
+ bestColumn = col;
24175
+ }
24176
+ }
24177
+ return bestColumn;
24178
+ }
24179
+ /**
24180
+ * Packs sections using FFDH (First Fit Decreasing Height) algorithm
24181
+ * Enhanced with gap-aware placement and multi-pass optimization
24182
+ */
24183
+ function packWithFFDH(sectionsWithMetrics, columns, gap, optimizePasses = 1) {
24184
+ let positioned = [];
24185
+ let bestPositioned = [];
24186
+ let bestMetrics = { gapCount: Infinity, heightVariance: Infinity, totalHeight: Infinity };
24187
+ // Multi-pass optimization: try different strategies and pick the best
24188
+ for (let pass = 0; pass < optimizePasses; pass++) {
24189
+ const colHeights = new Array(columns).fill(0);
24190
+ positioned = [];
24191
+ // Strategy variation: try different sorting strategies for better consolidation
24192
+ let orderedSections = sectionsWithMetrics;
24193
+ if (pass > 0) {
24194
+ // Alternate strategies for different passes
24195
+ if (pass % 3 === 1) {
24196
+ // Single-column first: prioritize 1-column sections to maximize side-by-side placement
24197
+ orderedSections = [...sectionsWithMetrics].sort((a, b) => {
24198
+ const aIsSingle = a.colSpan === 1 ? 1 : 0;
24199
+ const bIsSingle = b.colSpan === 1 ? 1 : 0;
24200
+ if (aIsSingle !== bIsSingle)
24201
+ return bIsSingle - aIsSingle; // Single columns first
24202
+ return b.height - a.height; // Then by height
24203
+ });
24204
+ }
24205
+ else if (pass % 3 === 2) {
24206
+ // Density-first: prioritize sections with more content
24207
+ orderedSections = [...sectionsWithMetrics].sort((a, b) => {
24208
+ const densityA = (a.section.items?.length ?? 0) + (a.section.fields?.length ?? 0);
24209
+ const densityB = (b.section.items?.length ?? 0) + (b.section.fields?.length ?? 0);
24210
+ return densityB - densityA;
24211
+ });
24212
+ }
24213
+ else {
24214
+ // Width-first: prioritize wider sections to fill rows better
24215
+ orderedSections = [...sectionsWithMetrics].sort((a, b) => b.colSpan - a.colSpan);
24216
+ }
24217
+ }
24218
+ for (const item of orderedSections) {
24219
+ const { section, height, colSpan, preferredColumns, originalIndex, canShrinkToFill } = item;
24220
+ // AGGRESSIVE SHRINKING: Try shrinking to 1 column if canShrinkToFill is true
24221
+ // This maximizes horizontal space utilization by placing more sections side by side
24222
+ let effectiveColSpan = Math.min(colSpan, columns);
24223
+ if (canShrinkToFill && effectiveColSpan > 1) {
24224
+ // Check if shrinking to 1 column would fill a gap better
24225
+ const shrinkScore = findShortestColumnWithGapAwareness(colHeights, 1, columns, height, gap);
24226
+ const shrinkMaxHeight = Math.max(...Array.from({ length: 1 }, (_, i) => colHeights[shrinkScore + i] ?? 0));
24227
+ const normalScore = findShortestColumnWithGapAwareness(colHeights, effectiveColSpan, columns, height, gap);
24228
+ const normalMaxHeight = Math.max(...Array.from({ length: effectiveColSpan }, (_, i) => colHeights[normalScore + i] ?? 0));
24229
+ // Very aggressive shrinking: prioritize horizontal placement
24230
+ // Shrink if heights are similar OR if it reduces gap creation
24231
+ const heightDiff = normalMaxHeight - shrinkMaxHeight;
24232
+ const heightSimilarity = Math.abs(heightDiff) < 30; // Heights within 30px are "similar"
24233
+ // Always shrink if heights are similar (promotes side-by-side)
24234
+ // Or shrink if it reduces gap significantly
24235
+ if (heightSimilarity || heightDiff > 5 || (effectiveColSpan >= 2 && heightDiff >= 0)) {
24236
+ effectiveColSpan = 1;
24237
+ }
24238
+ }
24239
+ // Enhanced placement: consider gap creation when choosing position
24240
+ const bestColumn = findShortestColumnWithGapAwareness(colHeights, effectiveColSpan, columns, height, gap);
24241
+ // Calculate top position: max height among columns this section will span
24242
+ let maxColHeight = 0;
24243
+ for (let c = bestColumn; c < bestColumn + effectiveColSpan; c++) {
24244
+ if (colHeights[c] > maxColHeight) {
24245
+ maxColHeight = colHeights[c];
24246
+ }
24247
+ }
24248
+ const top = maxColHeight;
24249
+ // Update column heights
24250
+ const newHeight = top + height + gap;
24251
+ for (let c = bestColumn; c < bestColumn + effectiveColSpan; c++) {
24252
+ colHeights[c] = newHeight;
24253
+ }
24254
+ // Generate CSS expressions
24255
+ const left = generateLeftExpression(columns, bestColumn, gap);
24256
+ const width = generateWidthExpression(columns, effectiveColSpan, gap);
24257
+ positioned.push({
24258
+ section,
24259
+ colSpan: effectiveColSpan,
24260
+ preferredColumns,
24261
+ left,
24262
+ top,
24263
+ width,
24264
+ originalIndex,
24265
+ columnIndex: bestColumn,
24266
+ });
24267
+ }
24268
+ // Evaluate this pass
24269
+ const totalHeight = Math.max(...positioned.map((p) => p.top + estimateSectionHeight$1(p.section)), 0);
24270
+ const metrics = calculateMetrics(positioned, totalHeight, columns, gap);
24271
+ // Keep the best result
24272
+ // Enhanced scoring: prioritize horizontal placement and consolidation
24273
+ // Count how many sections are placed side-by-side (same top position)
24274
+ // Tighter tolerance (30px) for better row detection and consolidation
24275
+ const rowGroups = new Map();
24276
+ for (const p of positioned) {
24277
+ const rowKey = Math.floor(p.top / 30); // Group by approximate row (30px tolerance for tighter grouping)
24278
+ rowGroups.set(rowKey, (rowGroups.get(rowKey) || 0) + 1);
24279
+ }
24280
+ const avgSectionsPerRow = rowGroups.size > 0
24281
+ ? Array.from(rowGroups.values()).reduce((sum, count) => sum + count, 0) / rowGroups.size
24282
+ : 0;
24283
+ const horizontalBonus = avgSectionsPerRow * 75; // Increased bonus for more sections per row (better consolidation)
24284
+ // Lower score = better (we subtract horizontalBonus to reward side-by-side placement)
24285
+ const score = metrics.gapCount * 1000 + metrics.heightVariance + totalHeight - horizontalBonus;
24286
+ // Calculate bestScore with previous best's horizontal bonus (if exists)
24287
+ let bestHorizontalBonus = 0;
24288
+ if (bestPositioned.length > 0) {
24289
+ const bestRowGroups = new Map();
24290
+ for (const p of bestPositioned) {
24291
+ const rowKey = Math.floor(p.top / 30); // Tighter tolerance for better consolidation
24292
+ bestRowGroups.set(rowKey, (bestRowGroups.get(rowKey) || 0) + 1);
24293
+ }
24294
+ const bestAvgSectionsPerRow = bestRowGroups.size > 0
24295
+ ? Array.from(bestRowGroups.values()).reduce((sum, count) => sum + count, 0) /
24296
+ bestRowGroups.size
24297
+ : 0;
24298
+ bestHorizontalBonus = bestAvgSectionsPerRow * 50;
24299
+ }
24300
+ const bestScore = bestMetrics.gapCount * 1000 +
24301
+ bestMetrics.heightVariance +
24302
+ bestMetrics.totalHeight -
24303
+ bestHorizontalBonus;
24304
+ if (score < bestScore) {
24305
+ bestPositioned = positioned;
24306
+ bestMetrics = { ...metrics, totalHeight };
24307
+ }
24308
+ }
24309
+ return bestPositioned.length > 0 ? bestPositioned : positioned;
24310
+ }
24311
+ /**
24312
+ * Enhanced column finder that considers gap creation
24313
+ * Prefers positions that minimize both height and gap creation
22673
24314
  */
22674
- function findShortestColumn(colHeights, colSpan, columns) {
24315
+ function findShortestColumnWithGapAwareness(colHeights, colSpan, columns, sectionHeight, gap) {
22675
24316
  let bestColumn = 0;
22676
- let minHeight = Infinity;
22677
- // Try all possible column positions
24317
+ let minScore = Infinity;
22678
24318
  for (let col = 0; col <= columns - colSpan; col++) {
22679
24319
  // Find the maximum height among columns this section would span
22680
24320
  let maxColHeight = 0;
@@ -22684,56 +24324,54 @@ function findShortestColumn(colHeights, colSpan, columns) {
22684
24324
  maxColHeight = colHeight;
22685
24325
  }
22686
24326
  }
22687
- // Choose the position with the lowest maximum height (shortest column)
22688
- if (maxColHeight < minHeight) {
22689
- minHeight = maxColHeight;
24327
+ // Calculate gap score: how much empty space would be created
24328
+ const remainingCols = columns - col - colSpan;
24329
+ const gapScore = calculateGapScoreForPosition(colHeights, col, colSpan, columns, maxColHeight);
24330
+ // Combined score: prioritize horizontal placement and gap minimization
24331
+ // Very aggressive: strongly favor side-by-side placement
24332
+ // Lower height weight even more to maximize horizontal packing
24333
+ const score = maxColHeight * 0.5 + gapScore * 150;
24334
+ if (score < minScore) {
24335
+ minScore = score;
22690
24336
  bestColumn = col;
22691
24337
  }
22692
24338
  }
22693
24339
  return bestColumn;
22694
24340
  }
22695
24341
  /**
22696
- * Packs sections using FFDH (First Fit Decreasing Height) algorithm
24342
+ * Calculate gap score for a potential placement position
24343
+ * Lower score = better (less gaps created)
24344
+ * Enhanced to better detect opportunities for horizontal placement
22697
24345
  */
22698
- function packWithFFDH(sectionsWithMetrics, columns, gap) {
22699
- const colHeights = new Array(columns).fill(0);
22700
- const positioned = [];
22701
- for (const item of sectionsWithMetrics) {
22702
- const { section, height, colSpan, preferredColumns, originalIndex } = item;
22703
- const effectiveColSpan = Math.min(colSpan, columns);
22704
- // Find shortest column position
22705
- const bestColumn = findShortestColumn(colHeights, effectiveColSpan, columns);
22706
- // Calculate top position: max height among columns this section will span
22707
- let maxColHeight = 0;
22708
- for (let c = bestColumn; c < bestColumn + effectiveColSpan; c++) {
22709
- if (colHeights[c] > maxColHeight) {
22710
- maxColHeight = colHeights[c];
22711
- }
24346
+ function calculateGapScoreForPosition(colHeights, startCol, colSpan, columns, placementHeight) {
24347
+ let gapScore = 0;
24348
+ // Check columns before placement
24349
+ for (let c = 0; c < startCol; c++) {
24350
+ const heightDiff = placementHeight - (colHeights[c] ?? 0);
24351
+ if (heightDiff > 5) {
24352
+ // Very aggressive: detect gaps > 5px
24353
+ // Significant gap would be created - penalize heavily
24354
+ gapScore += heightDiff * 2.0; // Increased penalty for better consolidation
22712
24355
  }
22713
- const top = maxColHeight;
22714
- // Update column heights
22715
- const newHeight = top + height + gap;
22716
- for (let c = bestColumn; c < bestColumn + effectiveColSpan; c++) {
22717
- colHeights[c] = newHeight;
24356
+ }
24357
+ // Check columns after placement
24358
+ for (let c = startCol + colSpan; c < columns; c++) {
24359
+ const heightDiff = placementHeight - (colHeights[c] ?? 0);
24360
+ if (heightDiff > 5) {
24361
+ // Very aggressive: detect gaps > 5px
24362
+ gapScore += heightDiff * 2.0; // Increased penalty
22718
24363
  }
22719
- // Generate CSS expressions
22720
- const left = generateLeftExpression(columns, bestColumn, gap);
22721
- const width = generateWidthExpression(columns, effectiveColSpan, gap);
22722
- positioned.push({
22723
- section,
22724
- colSpan: effectiveColSpan,
22725
- preferredColumns,
22726
- left,
22727
- top,
22728
- width,
22729
- originalIndex,
22730
- columnIndex: bestColumn,
22731
- });
22732
24364
  }
22733
- return positioned;
24365
+ // Bonus: Prefer placements that create balanced row heights (promotes side-by-side)
24366
+ const avgHeight = colHeights.reduce((sum, h) => sum + h, 0) / columns;
24367
+ const heightVariance = Math.abs(placementHeight - avgHeight);
24368
+ if (heightVariance < 40) {
24369
+ gapScore -= 30; // Increased reward for balanced rows (better consolidation)
24370
+ }
24371
+ return gapScore;
22734
24372
  }
22735
24373
  /**
22736
- * Calculates packing metrics
24374
+ * Calculates packing metrics with enhanced gap detection
22737
24375
  */
22738
24376
  function calculateMetrics(positioned, totalHeight, columns, gap) {
22739
24377
  // Calculate total area
@@ -22761,12 +24399,24 @@ function calculateMetrics(positioned, totalHeight, columns, gap) {
22761
24399
  }
22762
24400
  }
22763
24401
  }
22764
- // Count gaps: columns that are shorter than the maximum height
24402
+ // Enhanced gap detection: count gaps and calculate gap area
22765
24403
  const maxHeight = Math.max(...colHeights, totalHeight);
22766
- const gapCount = colHeights.filter((h) => h < maxHeight - 1).length; // -1 to account for floating point
24404
+ const minHeight = Math.min(...colHeights.filter((h) => h > 0), maxHeight);
24405
+ const heightVariance = maxHeight - minHeight;
24406
+ // Count gaps: columns that are significantly shorter than the maximum height
24407
+ // Very aggressive: lowered threshold to 10px for maximum consolidation
24408
+ const gapThreshold = 10;
24409
+ const gapCount = colHeights.filter((h) => h < maxHeight - gapThreshold).length;
24410
+ // Calculate total gap area (unused vertical space)
24411
+ const gapArea = colHeights.reduce((sum, h) => {
24412
+ const gapHeight = Math.max(0, maxHeight - h - gapThreshold);
24413
+ return sum + gapHeight;
24414
+ }, 0);
22767
24415
  return {
22768
24416
  utilization: Math.round(utilization * 100) / 100,
22769
24417
  gapCount,
24418
+ gapArea: Math.round(gapArea),
24419
+ heightVariance: Math.round(heightVariance),
22770
24420
  };
22771
24421
  }
22772
24422
  // ============================================================================
@@ -22795,8 +24445,11 @@ function packSectionsIntoColumns(sections, config) {
22795
24445
  algorithm: 'ffdh',
22796
24446
  };
22797
24447
  }
22798
- // Debug logging
22799
- if (packingMode === 'hybrid' || packingMode === 'skyline' || sections.length > 10) {
24448
+ // Debug logging - only in development mode
24449
+ const isDevelopment = typeof window !== 'undefined' &&
24450
+ (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
24451
+ if (isDevelopment &&
24452
+ (packingMode === 'hybrid' || packingMode === 'skyline' || sections.length > 10)) {
22800
24453
  console.log('[ColumnPacker] 🚀 Starting packing', {
22801
24454
  sectionCount: sections.length,
22802
24455
  columns,
@@ -22809,14 +24462,33 @@ function packSectionsIntoColumns(sections, config) {
22809
24462
  }
22810
24463
  // Prepare sections with metrics
22811
24464
  const sectionsWithMetrics = sections.map((section, index) => {
22812
- const preferredColumns = getPreferredColumns(String(section.type ?? 'default'));
22813
- const colSpan = resolveColumnSpan(preferredColumns, columns, section.colSpan);
24465
+ // Try to get layout preferences from service if available
24466
+ let preferredColumns = 2;
24467
+ let canShrinkToFill = false;
24468
+ let shrinkPriority = 50;
24469
+ if (fullConfig.layoutPreferenceService) {
24470
+ const layoutPrefs = fullConfig.layoutPreferenceService.getPreferences(section, columns);
24471
+ if (layoutPrefs) {
24472
+ preferredColumns = layoutPrefs.preferredColumns;
24473
+ canShrinkToFill = layoutPrefs.canShrinkToFill;
24474
+ shrinkPriority = layoutPrefs.shrinkPriority ?? 50;
24475
+ }
24476
+ else {
24477
+ preferredColumns = getPreferredColumns(String(section.type ?? 'default'), undefined, undefined, columns);
24478
+ }
24479
+ }
24480
+ else {
24481
+ preferredColumns = getPreferredColumns(String(section.type ?? 'default'), undefined, undefined, columns);
24482
+ }
24483
+ const colSpan = resolveColumnSpan(preferredColumns, columns, section.colSpan, undefined, canShrinkToFill);
22814
24484
  return {
22815
24485
  section,
22816
24486
  originalIndex: index,
22817
24487
  height: estimateSectionHeight$1(section),
22818
24488
  colSpan,
22819
24489
  preferredColumns,
24490
+ canShrinkToFill,
24491
+ shrinkPriority,
22820
24492
  };
22821
24493
  });
22822
24494
  // Sort by height if enabled (FFDH = First Fit Decreasing Height)
@@ -22836,10 +24508,11 @@ function packSectionsIntoColumns(sections, config) {
22836
24508
  });
22837
24509
  const skylinePositions = skylineResultToPositions(skylineResult, columns, gap);
22838
24510
  // Map back to our format, preserving original indices
22839
- // Parse column index from left position for Skyline results
24511
+ // Create lookup map for O(1) access instead of O(n) find()
24512
+ const sectionToMetrics = new Map(orderedSections.map((s) => [s.section, s]));
22840
24513
  positioned = skylinePositions.map((pos, skylineIndex) => {
22841
- // Find the original section by matching
22842
- const originalItem = orderedSections.find((s) => s.section === pos.section);
24514
+ // Use Map lookup instead of find() for better performance
24515
+ const originalItem = sectionToMetrics.get(pos.section);
22843
24516
  // Parse column index from left CSS expression
22844
24517
  let columnIndex = 0;
22845
24518
  if (pos.left !== '0px' && pos.left.includes('calc')) {
@@ -22865,8 +24538,10 @@ function packSectionsIntoColumns(sections, config) {
22865
24538
  }
22866
24539
  }
22867
24540
  else {
22868
- // Use FFDH algorithm
22869
- positioned = packWithFFDH(orderedSections, columns, gap);
24541
+ // Use FFDH algorithm with multi-pass optimization
24542
+ const optimizationPasses = fullConfig.optimizationPasses ?? 2;
24543
+ const enableGapAware = fullConfig.enableGapAwarePlacement ?? true;
24544
+ positioned = packWithFFDH(orderedSections, columns, gap, enableGapAware ? optimizationPasses : 1);
22870
24545
  // Restore original order if reordering is disabled
22871
24546
  if (!allowReordering) {
22872
24547
  positioned.sort((a, b) => a.originalIndex - b.originalIndex);
@@ -22883,8 +24558,11 @@ function packSectionsIntoColumns(sections, config) {
22883
24558
  sortByHeight: true,
22884
24559
  });
22885
24560
  const skylinePositions = skylineResultToPositions(skylineResult, columns, gap);
24561
+ // Create lookup map for O(1) access instead of O(n) find()
24562
+ const sectionToMetrics = new Map(orderedSections.map((s) => [s.section, s]));
22886
24563
  positioned = skylinePositions.map((pos, skylineIndex) => {
22887
- const originalItem = orderedSections.find((s) => s.section === pos.section);
24564
+ // Use Map lookup instead of find() for better performance
24565
+ const originalItem = sectionToMetrics.get(pos.section);
22888
24566
  // Parse column index from left CSS expression
22889
24567
  let columnIndex = 0;
22890
24568
  if (pos.left !== '0px' && pos.left.includes('calc')) {
@@ -22915,11 +24593,12 @@ function packSectionsIntoColumns(sections, config) {
22915
24593
  const totalHeight = Math.max(...positioned.map((p) => p.top + estimateSectionHeight$1(p.section)), 0);
22916
24594
  // Calculate metrics
22917
24595
  const metrics = calculateMetrics(positioned, totalHeight, columns, gap);
22918
- // Debug logging - always log for hybrid/skyline, or when gaps are detected
22919
- if (packingMode === 'hybrid' ||
22920
- packingMode === 'skyline' ||
22921
- metrics.gapCount > 0 ||
22922
- sections.length > 10) {
24596
+ // Debug logging - only in development mode (reuse isDevelopment from above)
24597
+ if (isDevelopment &&
24598
+ (packingMode === 'hybrid' ||
24599
+ packingMode === 'skyline' ||
24600
+ metrics.gapCount > 0 ||
24601
+ sections.length > 10)) {
22923
24602
  const columnHeights = Array.from({ length: columns }, (_, i) => {
22924
24603
  const colSections = positioned.filter((p) => {
22925
24604
  const startCol = p.columnIndex;
@@ -22935,11 +24614,12 @@ function packSectionsIntoColumns(sections, config) {
22935
24614
  totalHeight: Math.round(totalHeight),
22936
24615
  utilization: metrics.utilization.toFixed(1) + '%',
22937
24616
  gapCount: metrics.gapCount,
24617
+ gapArea: metrics.gapArea,
24618
+ heightVariance: metrics.heightVariance,
22938
24619
  sections: positioned.length,
22939
24620
  columnHeights: columnHeights.map((h) => Math.round(h)),
22940
24621
  maxColumnHeight: Math.max(...columnHeights),
22941
24622
  minColumnHeight: Math.min(...columnHeights.filter((h) => h > 0)),
22942
- heightVariance: Math.max(...columnHeights) - Math.min(...columnHeights.filter((h) => h > 0)),
22943
24623
  });
22944
24624
  }
22945
24625
  return {
@@ -22948,6 +24628,8 @@ function packSectionsIntoColumns(sections, config) {
22948
24628
  columns,
22949
24629
  utilization: metrics.utilization,
22950
24630
  gapCount: metrics.gapCount,
24631
+ gapArea: metrics.gapArea,
24632
+ heightVariance: metrics.heightVariance,
22951
24633
  algorithm: useSkyline ? 'skyline' : 'ffdh',
22952
24634
  };
22953
24635
  }
@@ -22975,6 +24657,9 @@ function columnPackingResultToPositions(result) {
22975
24657
  * Extracted from masonry-grid.component.ts for better separation of concerns.
22976
24658
  */
22977
24659
  class MasonryGridLayoutService {
24660
+ constructor() {
24661
+ this.layoutPreferenceService = inject(SectionLayoutPreferenceService);
24662
+ }
22978
24663
  /**
22979
24664
  * Calculate layout for sections
22980
24665
  */
@@ -22985,7 +24670,12 @@ class MasonryGridLayoutService {
22985
24670
  }
22986
24671
  catch (error) {
22987
24672
  if (config.useLegacyFallback) {
22988
- console.warn('[LayoutService] Column-based failed, using legacy:', error);
24673
+ // Only warn in development mode
24674
+ const isDevelopment = typeof window !== 'undefined' &&
24675
+ (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
24676
+ if (isDevelopment) {
24677
+ console.warn('[LayoutService] Column-based failed, using legacy:', error);
24678
+ }
22989
24679
  return this.calculateLegacyLayout(sections, config, getStableKey, markAsNew);
22990
24680
  }
22991
24681
  throw error;
@@ -22997,7 +24687,12 @@ class MasonryGridLayoutService {
22997
24687
  }
22998
24688
  catch (error) {
22999
24689
  if (config.useLegacyFallback) {
23000
- console.warn('[LayoutService] Row-first failed, using legacy:', error);
24690
+ // Only warn in development mode
24691
+ const isDevelopment = typeof window !== 'undefined' &&
24692
+ (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
24693
+ if (isDevelopment) {
24694
+ console.warn('[LayoutService] Row-first failed, using legacy:', error);
24695
+ }
23001
24696
  return this.calculateLegacyLayout(sections, config, getStableKey, markAsNew);
23002
24697
  }
23003
24698
  throw error;
@@ -23009,11 +24704,16 @@ class MasonryGridLayoutService {
23009
24704
  * Calculate layout using column-based algorithm
23010
24705
  */
23011
24706
  calculateColumnBasedLayout(sections, config, getStableKey, markAsNew) {
23012
- console.log('[LayoutService] 🎯 calculateColumnBasedLayout called', {
23013
- sectionsCount: sections.length,
23014
- columns: config.columns,
23015
- containerWidth: config.containerWidth,
23016
- });
24707
+ // Only log in development mode
24708
+ const isDevelopment = typeof window !== 'undefined' &&
24709
+ (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
24710
+ if (isDevelopment) {
24711
+ console.log('[LayoutService] 🎯 calculateColumnBasedLayout called', {
24712
+ sectionsCount: sections.length,
24713
+ columns: config.columns,
24714
+ containerWidth: config.containerWidth,
24715
+ });
24716
+ }
23017
24717
  const packConfig = {
23018
24718
  columns: config.columns,
23019
24719
  gap: config.gap,
@@ -23022,15 +24722,18 @@ class MasonryGridLayoutService {
23022
24722
  allowReordering: config.columnPackingOptions?.allowReordering ?? true,
23023
24723
  sortByHeight: config.columnPackingOptions?.sortByHeight ?? true,
23024
24724
  useSkylineThreshold: config.columnPackingOptions?.useSkylineThreshold ?? 3,
24725
+ layoutPreferenceService: this.layoutPreferenceService, // NEW: Pass service for dynamic preferences
23025
24726
  };
23026
24727
  const result = packSectionsIntoColumns(sections, packConfig);
23027
- console.log('[LayoutService] 📦 Packing result', {
23028
- positionedCount: result.positionedSections.length,
23029
- totalHeight: result.totalHeight,
23030
- algorithm: result.algorithm,
23031
- utilization: result.utilization,
23032
- gapCount: result.gapCount,
23033
- });
24728
+ if (isDevelopment) {
24729
+ console.log('[LayoutService] 📦 Packing result', {
24730
+ positionedCount: result.positionedSections.length,
24731
+ totalHeight: result.totalHeight,
24732
+ algorithm: result.algorithm,
24733
+ utilization: result.utilization,
24734
+ gapCount: result.gapCount,
24735
+ });
24736
+ }
23034
24737
  const positions = columnPackingResultToPositions(result);
23035
24738
  const positionedSections = positions.map((pos, index) => {
23036
24739
  const section = pos.section;
@@ -23047,11 +24750,13 @@ class MasonryGridLayoutService {
23047
24750
  isNew,
23048
24751
  };
23049
24752
  });
23050
- console.log('[LayoutService] ✅ Column-based layout complete', {
23051
- positionedSectionsCount: positionedSections.length,
23052
- containerHeight: result.totalHeight,
23053
- columns: config.columns,
23054
- });
24753
+ if (isDevelopment) {
24754
+ console.log('[LayoutService] ✅ Column-based layout complete', {
24755
+ positionedSectionsCount: positionedSections.length,
24756
+ containerHeight: result.totalHeight,
24757
+ columns: config.columns,
24758
+ });
24759
+ }
23055
24760
  return {
23056
24761
  positionedSections,
23057
24762
  containerHeight: result.totalHeight,
@@ -23802,7 +25507,7 @@ class DynamicColumnOptimizer {
23802
25507
  }
23803
25508
  const DEFAULT_CONFIG = {
23804
25509
  gap: 12,
23805
- minColumnWidth: 260,
25510
+ minColumnWidth: 220,
23806
25511
  maxColumns: 4,
23807
25512
  enableWeightedSelection: true,
23808
25513
  enableIntelligence: true,
@@ -24482,6 +26187,7 @@ class MasonryGridComponent {
24482
26187
  this.layoutLog = new EventEmitter();
24483
26188
  this.cdr = inject(ChangeDetectorRef);
24484
26189
  this.layoutService = inject(MasonryGridLayoutService);
26190
+ this.layoutPreferenceService = inject(SectionLayoutPreferenceService);
24485
26191
  this.positionedSections = [];
24486
26192
  this.containerHeight = 0;
24487
26193
  this.isLayoutReady = false; // Prevent FOUC (Flash of Unstyled Content)
@@ -25021,29 +26727,37 @@ class MasonryGridComponent {
25021
26727
  * Calculate responsive columns based on container width
25022
26728
  */
25023
26729
  calculateResponsiveColumns(containerWidth) {
25024
- if (containerWidth < 640)
25025
- return 1; // Mobile
25026
- if (containerWidth < 1024)
25027
- return 2; // Tablet
25028
- if (containerWidth < 1440)
25029
- return 3; // Desktop
25030
- return Math.min(4, this.maxColumns); // Wide
26730
+ // Updated breakpoints for 220px min column width
26731
+ // 2 cols: 2*220 + 1*12 = 452px, 3 cols: 3*220 + 2*12 = 684px, 4 cols: 4*220 + 3*12 = 916px
26732
+ if (containerWidth < 464)
26733
+ return 1; // Mobile (< 2 columns)
26734
+ if (containerWidth < 684)
26735
+ return 2; // Tablet (2 columns)
26736
+ if (containerWidth < 904)
26737
+ return 3; // Desktop (3 columns)
26738
+ return Math.min(4, this.maxColumns); // Wide (4 columns)
25031
26739
  }
25032
26740
  /**
25033
26741
  * Get column span for a section - simple and respects preferred columns (1-4)
25034
- * Priority: explicit colSpan → preferredColumns → type-based default
26742
+ * Priority: explicit colSpan → dynamic layout preferences → preferredColumns → type-based default
25035
26743
  */
25036
26744
  getColSpan(section) {
25037
26745
  // Priority 1: Explicit colSpan always takes precedence
25038
26746
  if (section.colSpan && section.colSpan > 0) {
25039
26747
  return Math.min(section.colSpan, this.currentColumns);
25040
26748
  }
25041
- // Priority 2: Use preferredColumns (1, 2, 3, or 4)
25042
- const preferredCols = this.getPreferredColumns(section);
25043
- if (preferredCols && preferredCols > 0) {
25044
- return Math.min(preferredCols, this.currentColumns);
26749
+ // Priority 2: Use dynamic layout preferences (NEW)
26750
+ const layoutPrefs = this.getSectionLayoutPreferences(section);
26751
+ if (layoutPrefs.preferredColumns && layoutPrefs.preferredColumns > 0) {
26752
+ // Respect min/max constraints
26753
+ const result = Math.max(layoutPrefs.minColumns, Math.min(layoutPrefs.preferredColumns, layoutPrefs.maxColumns, this.currentColumns));
26754
+ return result;
26755
+ }
26756
+ // Priority 3: Use preferredColumns from section data
26757
+ if (section.preferredColumns && section.preferredColumns > 0) {
26758
+ return Math.min(section.preferredColumns, this.currentColumns);
25045
26759
  }
25046
- // Priority 3: Type-based defaults (keep simple)
26760
+ // Priority 4: Type-based defaults (keep simple)
25047
26761
  const type = (section.type || '').toLowerCase();
25048
26762
  // Full-width types
25049
26763
  if (type === 'overview' || type === 'header' || type === 'hero') {
@@ -25286,9 +27000,14 @@ class MasonryGridComponent {
25286
27000
  }
25287
27001
  /**
25288
27002
  * Gets the preferred column count for a section.
25289
- * Checks: section.preferredColumns → meta.preferredColumns → type-based default
27003
+ * Checks: section layout preferences (dynamic) → section.preferredColumns → meta.preferredColumns → type-based default
25290
27004
  */
25291
27005
  getPreferredColumns(section) {
27006
+ // NEW: Try to get dynamic layout preferences from service first
27007
+ const layoutPrefs = this.layoutPreferenceService.getPreferences(section, this.currentColumns);
27008
+ if (layoutPrefs) {
27009
+ return layoutPrefs.preferredColumns;
27010
+ }
25292
27011
  // Direct property takes precedence
25293
27012
  if (section.preferredColumns) {
25294
27013
  return section.preferredColumns;
@@ -25300,7 +27019,32 @@ class MasonryGridComponent {
25300
27019
  return metaPref;
25301
27020
  }
25302
27021
  // Fall back to type-based default
25303
- return getPreferredColumns(section.type ?? 'info');
27022
+ return getPreferredColumns(section.type ?? 'info', undefined, undefined, this.currentColumns);
27023
+ }
27024
+ /**
27025
+ * Get layout preferences for a section (including canShrinkToFill flag)
27026
+ */
27027
+ getSectionLayoutPreferences(section) {
27028
+ // Try to get from service first
27029
+ const layoutPrefs = this.layoutPreferenceService.getPreferences(section, this.currentColumns);
27030
+ if (layoutPrefs) {
27031
+ return {
27032
+ preferredColumns: layoutPrefs.preferredColumns,
27033
+ minColumns: layoutPrefs.minColumns,
27034
+ maxColumns: layoutPrefs.maxColumns,
27035
+ canShrinkToFill: layoutPrefs.canShrinkToFill,
27036
+ shrinkPriority: layoutPrefs.shrinkPriority ?? 50,
27037
+ };
27038
+ }
27039
+ // Fallback to static preferences
27040
+ const preferredColumns = this.getPreferredColumns(section);
27041
+ return {
27042
+ preferredColumns,
27043
+ minColumns: section.minColumns ?? 1,
27044
+ maxColumns: section.maxColumns ?? 4,
27045
+ canShrinkToFill: false, // Default: don't shrink unless explicitly enabled
27046
+ shrinkPriority: 50,
27047
+ };
25304
27048
  }
25305
27049
  /**
25306
27050
  * Finds the optimal column assignment for a section.
@@ -26250,146 +27994,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
26250
27994
  type: Output
26251
27995
  }] } });
26252
27996
 
26253
- /**
26254
- * Card Actions Component
26255
- *
26256
- * Renders card-level action buttons (CTAs).
26257
- * Extracted from AICardRendererComponent for better separation of concerns.
26258
- *
26259
- * Uses ViewEncapsulation.None to allow styles to be inherited from
26260
- * the parent Shadow DOM (ai-card-renderer).
26261
- */
26262
- class CardActionsComponent {
26263
- constructor() {
26264
- this.iconService = inject(IconService);
26265
- this.actions = [];
26266
- this.actionClick = new EventEmitter();
26267
- this.trackAction = (_index, action) => action.id ?? `${action.label}-${_index}`;
26268
- }
26269
- onActionClick(action) {
26270
- this.actionClick.emit(action);
26271
- }
26272
- getActionIconName(action) {
26273
- // If icon is explicitly provided, use it
26274
- if (action.icon) {
26275
- return this.iconService.getFieldIcon(action.icon);
26276
- }
26277
- // If type is specified and it's a button behavior type (not legacy styling), use default icons
26278
- if (action.type && ['mail', 'website', 'agent', 'question'].includes(action.type)) {
26279
- switch (action.type) {
26280
- case 'mail':
26281
- return 'mail';
26282
- case 'website':
26283
- return 'external-link';
26284
- case 'agent':
26285
- return 'user';
26286
- case 'question':
26287
- return 'message-circle';
26288
- default:
26289
- break;
26290
- }
26291
- }
26292
- // Fallback to deriving icon from label
26293
- return this.iconService.getFieldIcon(action.label);
26294
- }
26295
- getDefaultIconForButtonType(buttonType) {
26296
- if (!buttonType || !['mail', 'website', 'agent', 'question'].includes(buttonType)) {
26297
- return null;
26298
- }
26299
- switch (buttonType) {
26300
- case 'mail':
26301
- return 'mail';
26302
- case 'website':
26303
- return 'external-link';
26304
- case 'agent':
26305
- return 'user';
26306
- case 'question':
26307
- return 'message-circle';
26308
- default:
26309
- return null;
26310
- }
26311
- }
26312
- getActionIconNameForDisplay(action) {
26313
- // If explicit icon is provided and it's a URL, return null (will be handled as image)
26314
- if (action.icon && action.icon.startsWith('http')) {
26315
- return null;
26316
- }
26317
- // If explicit icon is provided and it's a lucide icon name, use it
26318
- if (action.icon && !action.icon.startsWith('http')) {
26319
- // Check if it's a lucide icon name (simple string like 'mail', 'user', etc.)
26320
- if (/^[a-z-]+$/i.test(action.icon)) {
26321
- return this.getActionIconName(action);
26322
- }
26323
- // Otherwise it's a text icon, return null (will be handled as text)
26324
- return null;
26325
- }
26326
- // If no explicit icon, check if type is a button behavior type with default icon
26327
- if (action.type && ['mail', 'website', 'agent', 'question'].includes(action.type)) {
26328
- return this.getDefaultIconForButtonType(action.type);
26329
- }
26330
- // Fallback: try to derive icon from label
26331
- const derivedIcon = this.getActionIconName(action);
26332
- // Only use if it's a valid lucide icon name (simple string)
26333
- if (derivedIcon && /^[a-z-]+$/i.test(derivedIcon)) {
26334
- return derivedIcon;
26335
- }
26336
- return null;
26337
- }
26338
- hasTextIcon(action) {
26339
- return !!(action.icon && !action.icon.startsWith('http') && !/^[a-z-]+$/i.test(action.icon));
26340
- }
26341
- hasImageIcon(action) {
26342
- return !!(action.icon && action.icon.startsWith('http'));
26343
- }
26344
- /**
26345
- * Get comprehensive ARIA label for action button
26346
- */
26347
- getActionAriaLabel(action) {
26348
- let label = action.label;
26349
- if (action.type === 'website' && action.url) {
26350
- label += `: Opens ${action.url} in new window`;
26351
- }
26352
- else if (action.type === 'mail') {
26353
- const email = action.email?.to || action.email?.contact?.email || 'email';
26354
- label += `: Opens email to ${email}`;
26355
- }
26356
- else if (action.type === 'agent') {
26357
- label += ': Triggers agent action';
26358
- }
26359
- else if (action.type === 'question') {
26360
- label += ': Opens chat question';
26361
- }
26362
- return label;
26363
- }
26364
- getActionButtonClasses(action) {
26365
- const primaryClasses = 'bg-[var(--color-brand)] text-white font-semibold border-0 hover:bg-[var(--color-brand)]/90 hover:shadow-lg hover:shadow-[var(--color-brand)]/40 active:scale-95';
26366
- const outlineClasses = 'text-[var(--color-brand)] border border-[var(--color-brand)] bg-transparent font-semibold hover:bg-[var(--color-brand)]/10 active:scale-95';
26367
- const ghostClasses = 'text-[var(--color-brand)] bg-transparent border-0 font-semibold hover:bg-[var(--color-brand)]/10 active:scale-95';
26368
- // Use variant field if present, otherwise check legacy type field for styling
26369
- const styleVariant = action.variant ||
26370
- (action.type === 'primary' || action.type === 'secondary' ? action.type : 'primary');
26371
- switch (styleVariant) {
26372
- case 'secondary':
26373
- case 'outline':
26374
- return outlineClasses;
26375
- case 'ghost':
26376
- return ghostClasses;
26377
- default:
26378
- return primaryClasses;
26379
- }
26380
- }
26381
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CardActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26382
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: CardActionsComponent, isStandalone: true, selector: "app-card-actions", inputs: { actions: "actions" }, outputs: { actionClick: "actionClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let action of actions; trackBy: trackAction; let i = index\">\n <button\n type=\"button\"\n class=\"osi-action-button\"\n [class.osi-action-button--primary]=\"!action.variant || action.variant === 'primary'\"\n [class.osi-action-button--secondary]=\"action.variant === 'secondary' || action.variant === 'outline'\"\n [attr.aria-label]=\"getActionAriaLabel(action)\"\n [attr.aria-describedby]=\"action.type === 'mail' ? 'action-mail-hint-' + i : null\"\n (click)=\"onActionClick(action)\"\n (keydown.enter)=\"onActionClick(action)\"\n (keydown.space)=\"$event.preventDefault(); onActionClick(action)\"\n >\n <!-- Lucide icon (for type defaults or explicit lucide icon names) -->\n <lucide-icon\n *ngIf=\"getActionIconNameForDisplay(action) as iconName\"\n [name]=\"iconName\"\n [size]=\"16\"\n aria-hidden=\"true\"\n >\n </lucide-icon>\n <!-- Image icon (for URL-based icons) -->\n <img\n *ngIf=\"hasImageIcon(action)\"\n [src]=\"action.icon\"\n [alt]=\"action.label + ' icon'\"\n class=\"osi-action-button__icon\"\n aria-hidden=\"true\"\n />\n <!-- Text icon (for emoji or text-based icons) -->\n <span *ngIf=\"hasTextIcon(action)\" class=\"osi-action-button__emoji\" aria-hidden=\"true\">{{ action.icon }}</span>\n <span class=\"osi-action-button__label\">{{ action.label }}</span>\n <!-- Hidden hint for mail actions -->\n <span *ngIf=\"action.type === 'mail'\" [id]=\"'action-mail-hint-' + i\" class=\"sr-only\">\n This will open your email client with pre-filled recipient and message\n </span>\n </button>\n</ng-container>\n", styles: [":host{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:.75rem!important;margin-top:var(--section-card-gap, 12px)!important;margin-left:4px!important;margin-right:4px!important;padding-bottom:16px!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important}.osi-action-button{margin:0!important;-webkit-appearance:none!important;appearance:none!important;display:inline-flex!important;align-items:center!important;gap:.5rem!important;padding:.625rem 1.25rem!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:.875rem!important;font-weight:600!important;line-height:1.25rem!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;border-radius:10px!important;transition:all .2s ease!important;box-sizing:border-box!important}.osi-action-button--primary{background-color:#ff7900!important;color:#fff!important;border:none!important;box-shadow:0 2px 8px #ff790040!important}.osi-action-button--primary *{color:#fff!important}.osi-action-button--primary:hover{background-color:#e66d00!important;color:#fff!important;box-shadow:0 4px 16px #ff790066!important;transform:translateY(-1px)!important}.osi-action-button--primary:active{background-color:#cc6000!important;color:#fff!important;transform:scale(.98) translateY(0)!important;box-shadow:0 2px 4px #ff790033!important}.osi-action-button--primary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button--secondary{background-color:transparent!important;color:#fff!important;border:2px solid #ff7900!important}.osi-action-button--secondary *{color:#fff!important}.osi-action-button--secondary:hover{background-color:#ff79001a!important;color:#fff!important;box-shadow:0 2px 8px #ff790033!important}.osi-action-button--secondary:active{background-color:#ff790026!important;color:#fff!important;transform:scale(.98)!important}.osi-action-button--secondary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button__label{color:#fff!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.osi-action-button__icon{width:18px!important;height:18px!important;object-fit:contain!important;flex-shrink:0!important}.osi-action-button__emoji{font-size:16px!important;line-height:1!important;flex-shrink:0!important}.osi-action-button lucide-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;color:#fff!important}.osi-action-button lucide-icon svg{width:16px!important;height:16px!important;stroke:#fff!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}\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: "ngmodule", type: LucideIconsModule }, { kind: "component", type: i2.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
26383
- }
26384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CardActionsComponent, decorators: [{
26385
- type: Component,
26386
- args: [{ selector: 'app-card-actions', standalone: true, imports: [CommonModule, LucideIconsModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngFor=\"let action of actions; trackBy: trackAction; let i = index\">\n <button\n type=\"button\"\n class=\"osi-action-button\"\n [class.osi-action-button--primary]=\"!action.variant || action.variant === 'primary'\"\n [class.osi-action-button--secondary]=\"action.variant === 'secondary' || action.variant === 'outline'\"\n [attr.aria-label]=\"getActionAriaLabel(action)\"\n [attr.aria-describedby]=\"action.type === 'mail' ? 'action-mail-hint-' + i : null\"\n (click)=\"onActionClick(action)\"\n (keydown.enter)=\"onActionClick(action)\"\n (keydown.space)=\"$event.preventDefault(); onActionClick(action)\"\n >\n <!-- Lucide icon (for type defaults or explicit lucide icon names) -->\n <lucide-icon\n *ngIf=\"getActionIconNameForDisplay(action) as iconName\"\n [name]=\"iconName\"\n [size]=\"16\"\n aria-hidden=\"true\"\n >\n </lucide-icon>\n <!-- Image icon (for URL-based icons) -->\n <img\n *ngIf=\"hasImageIcon(action)\"\n [src]=\"action.icon\"\n [alt]=\"action.label + ' icon'\"\n class=\"osi-action-button__icon\"\n aria-hidden=\"true\"\n />\n <!-- Text icon (for emoji or text-based icons) -->\n <span *ngIf=\"hasTextIcon(action)\" class=\"osi-action-button__emoji\" aria-hidden=\"true\">{{ action.icon }}</span>\n <span class=\"osi-action-button__label\">{{ action.label }}</span>\n <!-- Hidden hint for mail actions -->\n <span *ngIf=\"action.type === 'mail'\" [id]=\"'action-mail-hint-' + i\" class=\"sr-only\">\n This will open your email client with pre-filled recipient and message\n </span>\n </button>\n</ng-container>\n", styles: [":host{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:.75rem!important;margin-top:var(--section-card-gap, 12px)!important;margin-left:4px!important;margin-right:4px!important;padding-bottom:16px!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important}.osi-action-button{margin:0!important;-webkit-appearance:none!important;appearance:none!important;display:inline-flex!important;align-items:center!important;gap:.5rem!important;padding:.625rem 1.25rem!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:.875rem!important;font-weight:600!important;line-height:1.25rem!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;border-radius:10px!important;transition:all .2s ease!important;box-sizing:border-box!important}.osi-action-button--primary{background-color:#ff7900!important;color:#fff!important;border:none!important;box-shadow:0 2px 8px #ff790040!important}.osi-action-button--primary *{color:#fff!important}.osi-action-button--primary:hover{background-color:#e66d00!important;color:#fff!important;box-shadow:0 4px 16px #ff790066!important;transform:translateY(-1px)!important}.osi-action-button--primary:active{background-color:#cc6000!important;color:#fff!important;transform:scale(.98) translateY(0)!important;box-shadow:0 2px 4px #ff790033!important}.osi-action-button--primary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button--secondary{background-color:transparent!important;color:#fff!important;border:2px solid #ff7900!important}.osi-action-button--secondary *{color:#fff!important}.osi-action-button--secondary:hover{background-color:#ff79001a!important;color:#fff!important;box-shadow:0 2px 8px #ff790033!important}.osi-action-button--secondary:active{background-color:#ff790026!important;color:#fff!important;transform:scale(.98)!important}.osi-action-button--secondary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button__label{color:#fff!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.osi-action-button__icon{width:18px!important;height:18px!important;object-fit:contain!important;flex-shrink:0!important}.osi-action-button__emoji{font-size:16px!important;line-height:1!important;flex-shrink:0!important}.osi-action-button lucide-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;color:#fff!important}.osi-action-button lucide-icon svg{width:16px!important;height:16px!important;stroke:#fff!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}\n"] }]
26387
- }], propDecorators: { actions: [{
26388
- type: Input
26389
- }], actionClick: [{
26390
- type: Output
26391
- }] } });
26392
-
26393
27997
  class AICardRendererComponent {
26394
27998
  constructor() {
26395
27999
  this.el = inject(ElementRef);
@@ -26479,41 +28083,7 @@ class AICardRendererComponent {
26479
28083
  this.magneticTiltService = inject(MagneticTiltService);
26480
28084
  this.iconService = inject(IconService);
26481
28085
  this.sectionNormalizationService = inject(SectionNormalizationService);
26482
- // ViewportScroller available for future scroll functionality
26483
- // private readonly viewportScroller = inject(ViewportScroller);
26484
- // Fallback card configuration for testing
26485
- this.fallbackCard = {
26486
- id: 'fallback-test',
26487
- cardTitle: 'Test Company',
26488
- sections: [
26489
- {
26490
- id: 'test-info',
26491
- title: 'Company Information',
26492
- type: 'info',
26493
- fields: [
26494
- {
26495
- id: 'industry',
26496
- label: 'Industry',
26497
- value: 'Technology',
26498
- type: 'text',
26499
- },
26500
- {
26501
- id: 'employees',
26502
- label: 'Employees',
26503
- value: '250',
26504
- type: 'text',
26505
- },
26506
- ],
26507
- },
26508
- ],
26509
- actions: [
26510
- {
26511
- id: 'view-details',
26512
- label: 'View Details',
26513
- variant: 'primary',
26514
- },
26515
- ],
26516
- };
28086
+ this.http = inject(HttpClient, { optional: true });
26517
28087
  this.trackSection = (_index, section) => section.id ?? `${section.title}-${_index}`;
26518
28088
  this.trackField = (_index, field) => field.id ?? `${field.label}-${_index}`;
26519
28089
  this.trackItem = (_index, item) => item.id ?? `${item.title}-${_index}`;
@@ -26647,9 +28217,9 @@ class AICardRendererComponent {
26647
28217
  this.startMessageRotation();
26648
28218
  // Track scroll for parallax effect
26649
28219
  this.setupScrollTracking();
26650
- // Use fallback if no card config provided
28220
+ // Use LLM fallback if no card config provided
26651
28221
  if (!this.cardConfig) {
26652
- this.cardConfig = this.fallbackCard;
28222
+ this.generateFallbackCard();
26653
28223
  }
26654
28224
  if (!this.processedSections.length) {
26655
28225
  this.refreshProcessedSections(true);
@@ -27458,6 +29028,146 @@ class AICardRendererComponent {
27458
29028
  trackByParticle(index) {
27459
29029
  return index;
27460
29030
  }
29031
+ /**
29032
+ * Generates a fallback card using LLM API call.
29033
+ * Similar to Orange Sales Assistance implementation pattern.
29034
+ * Makes an HTTP POST request to the LLM endpoint with a prompt to generate card data.
29035
+ */
29036
+ generateFallbackCard() {
29037
+ // Check if HttpClient is available
29038
+ if (!this.http) {
29039
+ if (isDevMode()) {
29040
+ console.warn('HttpClient not available. Cannot generate fallback card via LLM. Make sure HttpClient is provided in your app configuration.');
29041
+ }
29042
+ return;
29043
+ }
29044
+ // Only make API calls in browser environment
29045
+ if (!isPlatformBrowser(this.platformId)) {
29046
+ return;
29047
+ }
29048
+ // Determine the API endpoint (default or custom)
29049
+ // Following Orange Sales Assistance pattern: 'osa/invoke' or similar
29050
+ const endpoint = this.llmFallbackEndpoint || '/api/llm/generate-card';
29051
+ // Create the prompt for LLM based on documentation guidelines
29052
+ // This prompt follows the LLM_PROMPT.md documentation structure
29053
+ const prompt = this.llmFallbackPrompt ||
29054
+ `Generate a complete OSI card configuration JSON following these guidelines:
29055
+
29056
+ 1. Use valid section types: analytics, brand-colors, chart, contact-card, event, faq, financials, gallery, info, list, map, network-card, news, overview, product, quotation, social-media, solutions, text-reference, timeline, or video.
29057
+
29058
+ 2. Match data structure - use 'fields' for sections like info, analytics, overview, or 'items' for sections like list, gallery, timeline.
29059
+
29060
+ 3. Include required properties: 'title' and 'type' are always required for each section.
29061
+
29062
+ 4. Create a card with:
29063
+ - cardTitle: A descriptive title for the card
29064
+ - cardType: company|contact|event|product|analytics (optional)
29065
+ - sections: Array of 2-4 sections with diverse types
29066
+ - actions: Optional array of action buttons
29067
+
29068
+ 5. Example structure:
29069
+ - Overview section (type: overview) with key company information
29070
+ - Info section (type: info) with detailed fields
29071
+ - Analytics section (type: analytics) with metrics if applicable
29072
+ - Contact section (type: contact-card) with contact information
29073
+
29074
+ 6. Ensure all JSON is valid and properly formatted.
29075
+
29076
+ Generate a default company card with comprehensive information including overview, key details, metrics, and contact information.`;
29077
+ // Prepare the payload similar to Orange Sales Assistance pattern
29078
+ // Matches the structure used in Orange Sales Assistance chatbot component
29079
+ // See: chatbot.component.ts line 201-216
29080
+ const payload = {
29081
+ question: prompt,
29082
+ knowledge_base: 'default',
29083
+ session_id: 'fallback',
29084
+ chat_id: 'fallback-card',
29085
+ sources: [],
29086
+ prompt: prompt,
29087
+ model_name: 'gpt-4o', // Default model, matching Orange Sales Assistance default
29088
+ prompt_status: 'Default',
29089
+ source_weights: [],
29090
+ };
29091
+ // Make LLM API call (following Orange Sales Assistance pattern)
29092
+ // Response structure matches Orange Sales Assistance: { result: string, ... }
29093
+ // See: chatbot.component.ts line 225-229
29094
+ this.http
29095
+ .post(endpoint, payload)
29096
+ .pipe(takeUntil(this.destroyed$), catchError$1((error) => {
29097
+ // Log error but don't throw - allow empty state to show
29098
+ // Following Orange Sales Assistance error handling pattern
29099
+ if (isDevMode()) {
29100
+ console.error('LLM fallback API call failed:', error);
29101
+ console.warn('Falling back to empty state. Ensure LLM endpoint is configured correctly.');
29102
+ }
29103
+ // Return null to allow empty state to display
29104
+ return of(null);
29105
+ }))
29106
+ .subscribe((response) => {
29107
+ if (response) {
29108
+ // Handle different response formats (flexible like Orange Sales Assistance)
29109
+ // Orange Sales Assistance returns: { result: string } where result may be JSON
29110
+ let cardConfig = null;
29111
+ // Try different response property names (matching Orange Sales Assistance pattern)
29112
+ if (response.result) {
29113
+ // Orange Sales Assistance pattern: result contains the response
29114
+ try {
29115
+ const parsed = JSON.parse(response.result);
29116
+ if (parsed && typeof parsed === 'object') {
29117
+ cardConfig = parsed;
29118
+ }
29119
+ }
29120
+ catch (parseError) {
29121
+ // If result is not JSON, try to extract JSON from the string
29122
+ try {
29123
+ // Look for JSON object in the response string
29124
+ const jsonMatch = response.result.match(/\{[\s\S]*\}/);
29125
+ if (jsonMatch) {
29126
+ const parsed = JSON.parse(jsonMatch[0]);
29127
+ if (parsed && typeof parsed === 'object') {
29128
+ cardConfig = parsed;
29129
+ }
29130
+ }
29131
+ }
29132
+ catch (extractError) {
29133
+ if (isDevMode()) {
29134
+ console.error('Failed to parse LLM result as JSON:', extractError);
29135
+ }
29136
+ }
29137
+ }
29138
+ }
29139
+ else if (response.card) {
29140
+ cardConfig = response.card;
29141
+ }
29142
+ else if (response.data) {
29143
+ cardConfig = response.data;
29144
+ }
29145
+ else if (response.response) {
29146
+ // If response is a JSON string, parse it
29147
+ try {
29148
+ const parsed = JSON.parse(response.response);
29149
+ if (parsed && typeof parsed === 'object') {
29150
+ cardConfig = parsed;
29151
+ }
29152
+ }
29153
+ catch (parseError) {
29154
+ if (isDevMode()) {
29155
+ console.error('Failed to parse LLM response as JSON:', parseError);
29156
+ }
29157
+ }
29158
+ }
29159
+ // Update card config if we got valid data
29160
+ if (cardConfig) {
29161
+ this.cardConfig = cardConfig;
29162
+ this.cdr.markForCheck();
29163
+ // Refresh sections if needed
29164
+ if (!this.processedSections.length) {
29165
+ this.refreshProcessedSections(true);
29166
+ }
29167
+ }
29168
+ }
29169
+ });
29170
+ }
27461
29171
  /**
27462
29172
  * Validates that animation providers are configured.
27463
29173
  * Warns in development mode if animations are not available.
@@ -27486,7 +29196,7 @@ class AICardRendererComponent {
27486
29196
  }
27487
29197
  }
27488
29198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AICardRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27489
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: AICardRendererComponent, isStandalone: true, selector: "app-ai-card-renderer", inputs: { loadingMessages: "loadingMessages", loadingTitle: "loadingTitle", cardConfig: "cardConfig", updateSource: "updateSource", isFullscreen: "isFullscreen", tiltEnabled: "tiltEnabled", streamingStage: "streamingStage", streamingProgress: "streamingProgress", streamingProgressLabel: "streamingProgressLabel", isStreaming: "isStreaming", showLoadingByDefault: "showLoadingByDefault", containerWidth: "containerWidth", changeType: "changeType" }, outputs: { fieldInteraction: "fieldInteraction", cardInteraction: "cardInteraction", fullscreenToggle: "fullscreenToggle", agentAction: "agentAction", questionAction: "questionAction", export: "export" }, viewQueries: [{ propertyName: "cardContainer", first: true, predicate: ["cardContainer"], descendants: true }, { propertyName: "tiltContainerRef", first: true, predicate: ["tiltContainer"], descendants: true }, { propertyName: "emptyStateContainer", first: true, predicate: ["emptyStateContainer"], descendants: true }], ngImport: i0, template: "<div\n *ngIf=\"cardConfig\"\n #cardContainer\n class=\"w-full h-full card-container-wrapper\"\n [class.max-w-none]=\"isFullscreen\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n [style.min-height]=\"'0'\"\n (mouseenter)=\"onMouseEnter($event)\"\n (mouseleave)=\"onMouseLeave()\"\n (mousemove)=\"onMouseMove($event)\"\n>\n <div\n class=\"glow-container w-full flex-1 min-h-0\"\n [ngClass]=\"{ 'max-w-none': isFullscreen }\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n >\n <div\n class=\"tilt-container w-full flex-1 min-h-0\"\n [ngClass]=\"{ 'max-w-none': isFullscreen }\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n #tiltContainer\n [ngStyle]=\"tiltStyle\"\n >\n <article\n class=\"ai-card-surface flex-1 min-h-0\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n [ngClass]=\"{\n 'ai-card-surface--fullscreen': isFullscreen,\n 'ai-card-surface--empty-state': !processedSections.length,\n 'streaming-active': isStreamingActive,\n }\"\n [attr.aria-label]=\"(cardConfig && cardConfig.cardTitle) || 'Card'\"\n [attr.aria-live]=\"effectiveStreamingStage === 'streaming' ? 'polite' : 'off'\"\n [attr.aria-busy]=\"effectiveStreamingStage === 'streaming' || effectiveStreamingStage === 'thinking'\"\n role=\"article\"\n >\n <!-- Card Header -->\n <app-card-header\n *ngIf=\"processedSections.length\"\n [cardTitle]=\"cardConfig.cardTitle\"\n [showExport]=\"true\"\n (export)=\"onExport()\"\n >\n </app-card-header>\n\n <!-- Card Section List -->\n <app-card-section-list\n *ngIf=\"processedSections.length; else emptyState\"\n [sections]=\"processedSections\"\n [containerWidth]=\"effectiveContainerWidth\"\n [isStreaming]=\"isStreamingActive\"\n (sectionEvent)=\"onSectionEvent($event)\"\n (layoutChange)=\"onLayoutChange($event)\"\n >\n </app-card-section-list>\n\n <ng-template #emptyState>\n <div\n class=\"card-empty-state\"\n #emptyStateContainer\n (mousemove)=\"onEmptyStateMouseMove($event)\"\n (mouseleave)=\"onEmptyStateMouseLeave()\"\n >\n <div class=\"empty-state-background\">\n <div class=\"empty-state-gradient\" [style.transform]=\"gradientTransform\"></div>\n <div class=\"empty-state-particles\">\n <div\n *ngFor=\"let particle of particles; let i = index; trackBy: trackByParticle\"\n class=\"particle\"\n [class]=\"'particle-' + (i + 1)\"\n [style.transform]=\"particle.transform\"\n [style.opacity]=\"particle.opacity\"\n ></div>\n </div>\n </div>\n <div class=\"empty-state-content\" [style.transform]=\"contentTransform\">\n <div class=\"empty-state-text\">\n <h3 class=\"empty-state-title\">{{ loadingTitle }}</h3>\n <div class=\"empty-state-message-container\">\n <p class=\"empty-state-message\" [@messageAnimation]=\"currentMessageIndex\">\n {{ currentMessage }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- Card Actions -->\n <app-card-actions\n *ngIf=\"processedSections.length && cardConfig.actions?.length\"\n [actions]=\"cardConfig.actions || []\"\n (actionClick)=\"onActionClick($event)\"\n >\n </app-card-actions>\n\n <!-- Signature at bottom of card -->\n <div *ngIf=\"processedSections.length\" class=\"card-signature\">Powered by Orange Sales Intelligence</div>\n </article>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{all:initial;display:block;position:relative;box-sizing:border-box;padding:8px;background:transparent!important;background-color:transparent!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:var(--font-size-base, 14px);line-height:1.5;color:var(--foreground, #1c1c1f);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:\"kern\" 1;-webkit-tap-highlight-color:transparent;contain:layout style}:host([hidden]){display:none!important}:host([disabled]){pointer-events:none;opacity:.6}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;border-width:0;border-style:solid;border-color:currentColor}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}p,span,div{margin:0;padding:0}a{color:inherit;text-decoration:inherit;cursor:pointer}a:focus-visible{outline:2px solid var(--color-brand, #ff7900);outline-offset:2px;border-radius:2px}ul,ol{list-style:none;margin:0;padding:0}li{margin:0;padding:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0;background:transparent;border:none}button,[type=button],[type=reset],[type=submit]{cursor:pointer;-webkit-appearance:button;background-color:transparent;background-image:none}button:focus-visible,[type=button]:focus-visible,[type=reset]:focus-visible,[type=submit]:focus-visible{outline:2px solid var(--color-brand, #ff7900);outline-offset:2px}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;max-width:100%;height:auto}img,video{max-width:100%;height:auto}svg{fill:currentColor}lucide-icon,lucide-angular{display:inline-flex!important;align-items:center!important;justify-content:center!important;vertical-align:middle!important;flex-shrink:0}lucide-icon svg,lucide-angular svg{display:block!important;width:inherit!important;height:inherit!important;stroke:currentColor!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}table{text-indent:0;border-color:inherit;border-collapse:collapse}summary{display:list-item;cursor:pointer}[role=button]{cursor:pointer}:focus-visible{outline:2px solid var(--color-brand, #ff7900);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){*{border-color:currentColor!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--muted, #f0f0f1);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--muted-foreground, #92999e);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--foreground, #1c1c1f)}*{scrollbar-width:thin;scrollbar-color:var(--muted-foreground, #92999e) var(--muted, #f0f0f1)}@media print{*,*:before,*:after{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}}:host{color-scheme:light dark;--color-white: #ffffff;--color-black: #000000;--color-brand: #ff7900;--color-brand-dark: #cc5f00;--color-brand-light: #ff9933;--color-gray-50: #ffffff;--color-gray-100: #fcfcfc;--color-gray-150: #f7f7f7;--color-gray-200: #f0f0f1;--color-gray-300: #e9e9e9;--color-gray-400: #92999e;--color-gray-500: #5a5f62;--color-gray-600: #343541;--color-gray-700: #2a2a2a;--color-gray-800: #232323;--color-gray-850: #171717;--color-gray-900: #000000;--background: #ffffff;--surface-contrast-color: #000000;--theme-ai-card-border: 1px solid rgba(255, 255, 255, .06);--theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, .25);--theme-ai-card-background: var(--background);--theme-ai-card-background-hover: var(--background);--theme-ai-card-box-shadow: 0 2px 12px -1px rgba(0, 0, 0, .12);--theme-ai-card-box-shadow-hover: 0 8px 20px -3px rgba(0, 0, 0, .18), 0 0 0 1px rgba(255, 121, 0, .12);--theme-ai-card-transition: all .28s cubic-bezier(.4, 0, .2, 1);--theme-card-border: 1px solid rgba(0, 0, 0, .06);--theme-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-card-background: var(--background);--theme-card-background-hover: var(--background);--theme-card-box-shadow: 0 1px 2px rgba(15, 15, 20, .03);--theme-card-box-shadow-hover: 0 1px 3px rgba(10, 10, 16, .05);--theme-section-border: 1px solid rgba(0, 0, 0, .06);--theme-section-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, .04);--theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, .05);--theme-section-transition: border-color .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s cubic-bezier(.4, 0, .2, 1);--section-background: var(--background);--section-background-hover: var(--background);--section-surface: var(--background);--section-surface-hover: var(--background);--theme-section-item-border: 1px solid rgba(0, 0, 0, .06);--theme-section-item-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-item-background: var(--background);--theme-section-item-background-hover: var(--background);--theme-section-item-box-shadow: var(--shadow-md, 0 1px 2px rgba(0, 0, 0, .04));--theme-section-item-box-shadow-hover: var(--shadow-lg, 0 1px 3px rgba(0, 0, 0, .05));--theme-section-item-hover-transform: none;--theme-section-item-transition: border-color .2s cubic-bezier(.4, 0, .2, 1), background .2s cubic-bezier(.4, 0, .2, 1), box-shadow .2s cubic-bezier(.4, 0, .2, 1);--shadow-sm: 0 1px 1px rgba(0, 0, 0, .03);--shadow-md: 0 1px 2px rgba(0, 0, 0, .04);--shadow-lg: 0 1px 3px rgba(0, 0, 0, .05);--shadow-xl: 0 2px 4px rgba(0, 0, 0, .06);--shadow-glow-sm: 0 0 3px rgba(255, 121, 0, .05);--shadow-glow-md: 0 0 5px rgba(255, 121, 0, .08);--shadow-glow-lg: 0 0 8px rgba(255, 121, 0, .1);--shadow-inset-sm: inset 0 1px 2px rgba(0, 0, 0, .04);--shadow-inset-md: inset 0 2px 4px rgba(0, 0, 0, .05);--shadow-hover: var(--shadow-lg), var(--shadow-glow-sm);--radius-base: .625rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--spacing-base: .25rem;--space-1: clamp(2px, .4vw, 6px);--space-2: clamp(4px, .6vw, 8px);--space-3: clamp(6px, .8vw, 12px);--space-4: clamp(8px, 1vw, 14px);--space-5: clamp(10px, 1.2vw, 18px);--space-6: clamp(12px, 1.4vw, 20px);--space-7: clamp(14px, 1.6vw, 22px);--space-8: clamp(16px, 1.8vw, 24px);--space-9: clamp(18px, 2vw, 28px);--space-10: clamp(20px, 2.2vw, 32px);--space-11: clamp(22px, 2.4vw, 36px);--space-12: clamp(24px, 2.6vw, 40px);--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-3);--spacing-lg: var(--space-4);--spacing-xl: var(--space-5);--spacing-2xl: var(--space-6);--spacing-3xl: var(--space-7);--spacing-4xl: var(--space-8);--gap-xs: 4px;--gap-sm: 6px;--gap-md: 8px;--gap-lg: 12px;--gap-xl: 16px;--gap-2xl: 20px;--gap-3xl: 24px;--gap-4xl: 32px;--z-base: 0;--z-content: 1;--z-elevated: 10;--z-card: 10;--z-section: 15;--z-dropdown: 100;--z-tooltip: 200;--z-popover: 300;--z-overlay: 400;--z-modal: 500;--z-dialog: 600;--z-notification: 700;--z-toast: 800;--z-max: 999;--duration-instant: 40ms;--duration-fast: 80ms;--duration-normal: .16s;--duration-moderate: .22s;--duration-slow: .3s;--duration-slower: .38s;--duration-slowest: .46s;--ease-out-smooth: cubic-bezier(.23, 1, .32, 1);--ease-in-out-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--ease-in-out-quad: cubic-bezier(.455, .03, .515, .955);--motion-distance-xs: 2px;--motion-distance-sm: 4px;--motion-distance-md: 6px;--motion-distance-lg: 10px;--motion-distance-xl: 12px;--motion-scale-soft-start: .992;--motion-scale-soft-end: 1;--motion-scale-pop: 1.015;--stagger-delay-fast: 15ms;--stagger-delay-base: 25ms;--stagger-delay-slow: 45ms;--animation-fill-mode: both;--animation-play-state: running;--opacity-subtle: .05;--opacity-muted: .15;--opacity-medium: .4;--opacity-strong: .7;--opacity-solid: .9;--font-size-base: 13px;--text-xs: .625rem;--text-sm: .75rem;--text-base: .875rem;--text-lg: .8125rem;--text-xl: 1.125rem;--text-2xl: 1.0625rem;--text-3xl: 1.75rem;--text-4xl: 2.125rem;--text-5xl: 2.875rem;--text-7xl: 4.375rem;--font-weight-normal: 400;--font-weight-medium: 500;--section-title-font-size: clamp(.92rem, .87rem + .2vw, 1.07rem);--section-title-font-weight: 700;--section-title-letter-spacing: -.02em;--section-title-line-height: 1.3;--section-title-text-shadow: 0 1px 2px rgba(0, 0, 0, .08);--card-title-font-size: clamp(.83rem, .78rem + .15vw, .93rem);--card-title-font-weight: 700;--card-title-letter-spacing: -.01em;--card-title-line-height: 1.4;--card-title-text-shadow: 0 1px 1px rgba(0, 0, 0, .06);--card-subtitle-font-size: clamp(.65rem, .625rem + .1vw, .7rem);--card-subtitle-font-weight: 500;--card-subtitle-letter-spacing: .015em;--card-subtitle-line-height: 1.3;--card-label-font-size: clamp(.5rem, .48rem + .05vw, .5rem);--card-label-font-weight: 700;--card-label-letter-spacing: .065em;--card-label-line-height: 1.25;--card-label-text-transform: uppercase;--card-label-text-shadow: 0 1px 1px rgba(0, 0, 0, .05);--card-value-font-size: clamp(1rem, .95rem + .2vw, 1rem);--card-value-font-size-large: clamp(1.2rem, 1.15rem + .2vw, 1.25rem);--card-value-font-size-xl: clamp(1.25rem, 1.2rem + .2vw, 1.25rem);--card-value-font-weight: 600;--card-value-letter-spacing: -.015em;--card-value-line-height: 1.35;--card-value-text-shadow: 0 2px 4px rgba(0, 0, 0, .1);--card-meta-font-size: clamp(.55rem, .525rem + .1vw, .6rem);--card-meta-font-weight: 500;--card-meta-line-height: 1.3;--card-text-small-font-size: clamp(.355rem, .295rem + .13vw, .455rem);--section-grid-min-width: 200px;--font-size-section-header: var(--section-title-font-size);--card-main-padding: 16px;--card-padding-vertical: 12px;--card-padding-horizontal: 16px;--card-padding: 16px;--card-padding-large: 20px;--section-padding: 12px;--section-container-padding: 12px;--card-min-height: auto;--card-gap: clamp(6px, .6vw, 10px);--card-gap-large: clamp(10px, .8vw, 14px);--card-nested-gap: clamp(3px, .4vw, 6px);--section-header-gap: clamp(3px, .4vw, 6px);--section-header-padding-bottom: clamp(0px, .2vw, 2px);--section-title-margin-bottom: 2px;--card-border-radius: 12px;--card-border-radius-large: 16px;--section-card-gap: 8px;--section-card-border-radius: 10px;--card-element-gap-xs: 2px;--card-element-gap-sm: 3px;--card-element-gap-md: 4px;--card-element-gap-lg: 6px;--card-element-gap-xl: 8px;--border-width-default: 1px;--border-width-accent: 3px;--border-width-accent-sm: 2px;--icon-xs: 10px;--icon-sm: 13px;--icon-md: 16px;--icon-lg: 22px;--icon-xl: 36px;--avatar-sm: 32px;--avatar-md: 36px;--progress-height: 2px;--progress-margin: 4px 0;--tag-padding: 3px 6px;--tag-padding-sm: 2px 4px;--tag-padding-lg: 3px 7px;--grid-gap-xs: var(--gap-sm);--grid-gap-sm: var(--gap-md);--grid-gap-md: var(--gap-lg);--grid-gap-lg: var(--gap-xl);--grid-gap-xl: var(--gap-2xl);--section-grid-gap: var(--gap-md);--section-stack-gap: var(--gap-lg);--section-item-gap: var(--gap-sm);--section-item-padding: var(--gap-lg);--metric-item-padding: 10px 12px;--list-item-padding: 10px 12px;--card-text-primary: var(--foreground);--card-text-secondary: var(--muted-foreground);--card-text-muted: var(--muted-foreground);--card-text-hover: var(--primary);--card-text-label: var(--muted-foreground);--card-meta-color: var(--muted-foreground);--card-background: var(--ai-card-background, rgba(255, 121, 0, .03));--card-background-hover: var(--ai-card-background-hover, rgba(255, 121, 0, .05));--card-transition: all .28s cubic-bezier(.4, 0, .2, 1);--card-transition-fast: all .22s ease;--status-success: #22c55e;--status-success-bg: rgba(34, 197, 94, .15);--status-success-border: rgba(74, 222, 128, .4);--status-warning: #f59e0b;--status-warning-bg: rgba(253, 186, 116, .15);--status-warning-border: rgba(251, 191, 36, .4);--status-error: #ef4444;--status-error-bg: rgba(239, 68, 68, .15);--status-error-border: rgba(248, 113, 113, .4);--status-info: #3b82f6;--status-info-bg: rgba(59, 130, 246, .15);--status-info-border: rgba(147, 197, 253, .4);--status-neutral: #6b7280;--status-neutral-bg: rgba(107, 114, 128, .15);--status-neutral-border: rgba(156, 163, 175, .4);--interactive-hover-bg: rgba(255, 121, 0, .08);--interactive-active-bg: rgba(255, 121, 0, .12);--interactive-focus-ring: 0 0 0 2px rgba(255, 121, 0, .4);--interactive-glow: 0 0 12px rgba(255, 121, 0, .3);--hero-card-border: 1px solid rgba(146, 153, 158, .15);--hero-card-border-hover: rgba(255, 121, 0, .4);--hero-card-background: var(--card);--hero-card-background-hover: var(--card);--hero-card-border-radius: var(--radius-lg);--hero-card-box-shadow: var(--shadow-md);--hero-card-box-shadow-hover: var(--shadow-lg);--hero-card-hover-transform: translateY(-2px);--button-border: 1px solid transparent;--button-border-hover: 1px solid rgba(255, 121, 0, .4);--button-background: var(--primary);--button-background-hover: color-mix(in srgb, var(--primary) 85%, transparent);--button-border-radius: var(--radius-md);--button-box-shadow: var(--shadow-sm);--button-box-shadow-hover: var(--shadow-md);--button-hover-transform: translateY(-1px);--ai-card-border: var(--theme-ai-card-border, none);--ai-card-border-hover: var(--theme-ai-card-border-hover, var(--ai-card-border));--ai-card-background: var( --theme-ai-card-background, var(--card-surface, var(--card-section-bg)) );--ai-card-background-hover: var( --theme-ai-card-background-hover, var(--card-surface-hover, var(--card-section-bg)) );--ai-card-border-radius: var(--radius-lg);--ai-card-box-shadow: var(--theme-ai-card-box-shadow, var(--shadow-md));--ai-card-box-shadow-hover: var(--theme-ai-card-box-shadow-hover, var(--shadow-lg));--ai-card-hover-transform: none;--ai-card-transition-default: border .32s cubic-bezier(.4, 0, .2, 1), background .32s cubic-bezier(.4, 0, .2, 1), box-shadow .32s cubic-bezier(.4, 0, .2, 1);--ai-card-transition: var(--theme-ai-card-transition, var(--ai-card-transition-default));--section-border: var(--theme-section-border, 1px solid rgba(255, 255, 255, .05));--section-border-hover: var(--theme-section-border-hover, 1px solid rgba(255, 121, 0, .15));--section-border-radius: var(--radius-lg);--section-box-shadow-default: var(--shadow-md);--section-box-shadow-hover-default: var(--shadow-lg), var(--shadow-glow-sm);--section-box-shadow: var(--theme-section-box-shadow, var(--section-box-shadow-default));--section-box-shadow-hover: var( --theme-section-box-shadow-hover, var(--section-box-shadow-hover-default) );--section-hover-transform: none;--section-transition: var(--theme-section-transition, none);--section-item-border: var(--theme-section-item-border, 1px solid rgba(255, 255, 255, .05));--section-item-border-hover: var(--theme-section-item-border-hover, 1px solid rgba(255, 121, 0, .08));--section-item-background: var(--theme-section-item-background, var(--card-section-bg));--section-item-background-hover: var( --theme-section-item-background-hover, var(--card-section-bg) );--section-item-border-radius: var(--radius-md);--section-item-box-shadow: var(--theme-section-item-box-shadow, var(--shadow-sm));--section-item-box-shadow-hover-default: var(--shadow-md), var(--shadow-glow-sm);--section-item-box-shadow-hover: var( --theme-section-item-box-shadow-hover, var(--section-item-box-shadow-hover-default) );--section-item-hover-transform: var(--theme-section-item-hover-transform, none);--section-item-transition-default: background .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s cubic-bezier(.4, 0, .2, 1), border-color .22s cubic-bezier(.4, 0, .2, 1);--section-item-transition: var( --theme-section-item-transition, var(--section-item-transition-default) );--card-border: var(--theme-card-border, 1px solid rgba(146, 153, 158, .15));--card-border-hover: var(--theme-card-border-hover, rgba(255, 121, 0, .4));--card-box-shadow: var(--theme-card-box-shadow, var(--shadow-md));--card-box-shadow-hover: var(--theme-card-box-shadow-hover, var(--shadow-lg));--card-hover-transform: none;--ai-card-entrance-animation: fadeInUpSoft var(--duration-moderate) var(--ease-out-smooth) 10ms 1 normal both;--section-entrance-animation: fadeInSoft var(--duration-moderate) var(--ease-out-smooth) 20ms 1 normal both;--section-item-entrance-animation: fadeInScaleSoft var(--duration-normal) var(--ease-out-smooth) 30ms 1 normal both;display:block;width:100%}:host([data-theme=night]),:host-context([data-theme=night]){color-scheme:dark;--background: #030303;--surface-contrast-color: #ffffff;--foreground: #ffffff;--muted: #242424;--muted-foreground: #aaaaaa;--card: var(--background);--card-surface: var(--background);--card-foreground: #ffffff;--card-surface-hover: var(--background);--card-section-bg: #141414;--card-section-card-bg: #1a1a1a;--theme-ai-card-border: 1px solid rgba(255, 255, 255, .06);--theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-ai-card-background: #141414;--theme-ai-card-background-hover: #1a1a1a;--theme-ai-card-box-shadow: 0 2px 12px -1px rgba(0, 0, 0, .15);--theme-ai-card-box-shadow-hover: 0 6px 16px -2px rgba(0, 0, 0, .22), 0 0 0 1px rgba(255, 121, 0, .1);--theme-card-border: 1px solid rgba(255, 255, 255, .06);--theme-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-card-background: var(--background);--theme-card-background-hover: var(--background);--theme-card-box-shadow: 0 1px 3px rgba(0, 0, 0, .25);--theme-card-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, .3);--section-background: var(--background);--section-background-hover: var(--background);--section-surface: #141414;--section-surface-hover: #1a1a1a;--popover: #111111;--popover-foreground: #ffffff;--primary: #ff7900;--primary-foreground: #ffffff;--secondary: #333333;--secondary-foreground: #ffffff;--accent: #ff7900;--accent-foreground: #000000;--destructive: #d4183d;--destructive-foreground: #ffffff;--border: rgba(200, 200, 200, .3);--input: transparent;--input-background: #222222;--switch-background: #333333;--ring: rgba(255, 121, 0, .6);--chart-1: #ff7900;--chart-2: #ff9933;--chart-3: #cc5f00;--chart-4: #ffe6cc;--chart-5: #ff4500;--hero-card-border: 1px solid rgba(233, 233, 233, .2);--hero-card-border-hover: 1px solid rgba(255, 121, 0, .25);--theme-section-border: 1px solid rgba(255, 255, 255, .1);--theme-section-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);--theme-section-box-shadow-hover: 0 2px 5px rgba(0, 0, 0, .35);--theme-section-item-border: 1px solid rgba(255, 255, 255, .06);--theme-section-item-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-item-background: #1a1a1a;--theme-section-item-background-hover: #1e1e1e;--theme-section-item-box-shadow: 0 1px 2px rgba(0, 0, 0, .25);--theme-section-item-box-shadow-hover: 0 1px 4px rgba(0, 0, 0, .3);--theme-section-item-hover-transform: none}:host([data-theme=day]),:host-context([data-theme=day]){color-scheme:light;--background: #ffffff;--foreground: #1c1c1f;--muted: #f4f4f6;--muted-foreground: #555861;--card: var(--background);--card-surface: var(--background);--card-foreground: #1c1c1f;--card-surface-hover: var(--background);--card-section-bg: #fafafa;--card-section-card-bg: #f5f5f5;--theme-ai-card-border: 1px solid rgba(0, 0, 0, .06);--theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-ai-card-background: #ffffff;--theme-ai-card-background-hover: #fcfcfc;--theme-ai-card-box-shadow: 0 2px 12px -1px rgba(0, 0, 0, .06);--theme-ai-card-box-shadow-hover: 0 6px 16px -2px rgba(0, 0, 0, .1), 0 0 0 1px rgba(255, 121, 0, .08);--theme-card-border: 1px solid rgba(0, 0, 0, .05);--theme-card-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-card-background: var(--background);--theme-card-background-hover: var(--background);--theme-card-box-shadow: 0 1px 2px rgba(15, 15, 20, .03);--theme-card-box-shadow-hover: 0 1px 3px rgba(10, 10, 16, .04);--section-background: var(--background);--section-background-hover: var(--background);--section-surface: #fafafa;--section-surface-hover: #f5f5f5;--popover: #ffffff;--popover-foreground: #1a1a1a;--primary: #ff7900;--primary-foreground: #ffffff;--secondary: #f5f5f5;--secondary-foreground: #1a1a1a;--accent: #ff7900;--accent-foreground: #ffffff;--destructive: #d4183d;--destructive-foreground: #ffffff;--border: rgba(200, 200, 200, .5);--input: transparent;--input-background: #f9f9f9;--switch-background: #e5e5e5;--ring: rgba(255, 121, 0, .4);--chart-1: #ff7900;--chart-2: #ff9933;--chart-3: #cc5f00;--chart-4: #ffe6cc;--chart-5: #ff4500;--color-gray-700: #e0e0e0;--color-gray-600: #d0d0d0;--hero-card-border: 1px solid rgba(146, 153, 158, .25);--hero-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-section-border: 1px solid rgba(0, 0, 0, .05);--theme-section-border-hover: 1px solid rgba(255, 121, 0, .12);--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, .04);--theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, .05);--theme-section-item-border: 1px solid rgba(0, 0, 0, .05);--theme-section-item-border-hover: 1px solid rgba(255, 121, 0, .12);--theme-section-item-background: #f7f7f7;--theme-section-item-background-hover: #f4f4f4;--theme-section-item-box-shadow: 0 1px 2px rgba(0, 0, 0, .04);--theme-section-item-box-shadow-hover: 0 1px 3px rgba(0, 0, 0, .05);--theme-section-item-hover-transform: none}div [class$=-icon]:before{vertical-align:middle}.bg-red-500\\/10{background-color:#ef44441a}.bg-yellow-500\\/10{background-color:#ecaf221a}.border-red-500\\/50{border-color:#ef444480}.border-red-500\\/20{border-color:#ef444433}.border-yellow-500\\/50{border-color:#ecaf2280}.transition-smooth{transition:all var(--duration-normal) var(--ease-out-smooth)}.transition-fast{transition:all var(--duration-fast) var(--ease-out-smooth)}.transition-slow{transition:all var(--duration-slow) var(--ease-out-smooth)}.transition-transform{transition:transform var(--duration-normal) var(--ease-out-smooth)}.transition-transform-fast{transition:transform var(--duration-fast) var(--ease-out-smooth)}.transition-opacity{transition:opacity var(--duration-normal) var(--ease-out-smooth)}.transition-opacity-fast{transition:opacity var(--duration-fast) var(--ease-out-smooth)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.hover-lift{transition:transform var(--duration-normal) var(--ease-out-smooth)}.hover-lift:hover{transform:translateZ(0)}.hover-scale{transition:transform var(--duration-normal) var(--ease-out-smooth)}.hover-scale:hover{transform:scale(1.05) translateZ(0)}.hover-glow{transition:box-shadow var(--duration-normal) var(--ease-out-smooth)}.hover-glow:hover{box-shadow:0 0 20px color-mix(in srgb,var(--primary) 40%,transparent)}.active-press:active{transform:scale(.98) translateZ(0)}.focus-ring:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.backdrop-blur-md{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.backdrop-blur-lg{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.backdrop-blur-xl{backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px)}.backdrop-blur-none{backdrop-filter:none;-webkit-backdrop-filter:none}.glass-panel{background:color-mix(in srgb,var(--background, #0c0c0c) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--border, rgba(255, 255, 255, .1)) 50%,transparent)}.glass-panel-dark{background:color-mix(in srgb,rgba(16,16,24,.86) 90%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.08);box-shadow:0 28px 70px #00000080}.glass-panel-light{background:color-mix(in srgb,rgba(255,255,255,.8) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.1)}.glass-panel-brand{background:color-mix(in srgb,var(--background, #0c0c0c) 85%,var(--color-brand, #ff7900) 5%);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}.stagger-delay-1{animation-delay:80ms}.stagger-delay-2{animation-delay:.16s}.stagger-delay-3{animation-delay:.24s}.stagger-delay-4{animation-delay:.32s}.stagger-delay-5{animation-delay:.4s}.stagger-delay-6{animation-delay:.48s}.stagger-delay-7{animation-delay:.56s}.stagger-delay-8{animation-delay:.64s}.stagger-delay-9{animation-delay:.72s}.stagger-delay-10{animation-delay:.8s}.transition-delay-1{transition-delay:80ms}.transition-delay-2{transition-delay:.16s}.transition-delay-3{transition-delay:.24s}.transition-delay-4{transition-delay:.32s}.transition-delay-5{transition-delay:.4s}@media (prefers-reduced-motion: reduce){.transition-smooth,.transition-fast,.transition-slow,.transition-transform,.transition-transform-fast,.transition-opacity,.transition-opacity-fast,.transition-colors,.hover-lift,.hover-scale,.hover-glow{transition:none!important}.hover-scale:hover,.active-press:active{transform:none!important}}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,var(--motion-distance-lg),0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateZ(0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeInSoft{0%{opacity:0;transform:translate3d(0,var(--motion-distance-sm),0) scale(var(--motion-scale-soft-start))}to{opacity:1;transform:translateZ(0) scale(var(--motion-scale-soft-end))}}@keyframes slideUp{0%{transform:translate3d(0,var(--motion-distance-xl),0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes slideDown{0%{transform:translate3d(0,calc(var(--motion-distance-xl) * -1),0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate3d(calc(var(--motion-distance-xl) * -1),0,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes slideInRight{0%{transform:translate3d(var(--motion-distance-xl),0,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes fadeInUpSoft{0%{opacity:0;transform:translate3d(0,var(--motion-distance-md),0) scale(var(--motion-scale-soft-start))}to{opacity:1;transform:translateZ(0) scale(var(--motion-scale-soft-end))}}@keyframes scale{0%{transform:scale(var(--motion-scale-pulse-min)) translateZ(0)}70%{transform:scale(var(--motion-scale-pop)) translateZ(0)}to{transform:scale(var(--motion-scale-soft-end)) translateZ(0)}}@keyframes scaleIn{0%{transform:scale(var(--motion-scale-soft-start)) translateZ(0);opacity:0}to{transform:scale(var(--motion-scale-soft-end)) translateZ(0);opacity:1}}@keyframes fadeInScaleSoft{0%{opacity:0;transform:scale(var(--motion-scale-soft-start)) translateZ(0)}to{opacity:1;transform:scale(var(--motion-scale-soft-end)) translateZ(0)}}@keyframes pulse{0%,to{transform:scale(var(--motion-scale-soft-end)) translateZ(0);opacity:1}50%{transform:scale(var(--motion-scale-pop)) translateZ(0);opacity:.8}}@keyframes hoverLift{0%{transform:translateY(0) translateZ(0)}to{transform:translateY(-2px) translateZ(0)}}@keyframes glowAccent{0%,to{text-shadow:0 1px 2px rgba(0,0,0,.08)}50%{text-shadow:0 2px 6px rgba(255,121,0,.25)}}@keyframes valueEmphasize{0%,to{color:var(--card-text-primary)}50%{color:color-mix(in srgb,var(--card-text-primary) 85%,var(--color-brand) 15%)}}@keyframes glowPulse{0%,to{opacity:.6;filter:blur(25px)}50%{opacity:1;filter:blur(30px)}}@keyframes glowDrift{0%,to{opacity:.7;transform:translateZ(0)}25%{opacity:.8;transform:translate3d(5px,-5px,0)}50%{opacity:.9;transform:translate3d(0,5px,0)}75%{opacity:.8;transform:translate3d(-5px,0,0)}}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:.8}}@keyframes spin{0%{transform:rotate(0) translateZ(0)}to{transform:rotate(360deg) translateZ(0)}}@keyframes spinSlow{0%{transform:rotate(0) translateZ(0)}to{transform:rotate(360deg) translateZ(0)}}@keyframes shake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(calc(var(--motion-distance-sm) * -1),0,0)}20%,40%,60%,80%{transform:translate3d(var(--motion-distance-sm),0,0)}}@keyframes bounce{0%,to{transform:translateZ(0);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translate3d(0,calc(var(--motion-distance-lg) * -1),0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes sectionEnter{0%{opacity:0;transform:translate3d(0,20px,0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes sectionStreamingGlow{0%,to{box-shadow:0 0 #ff790000}50%{box-shadow:0 0 12px 2px #ff790026}}@keyframes fieldEnter{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes itemEnter{0%{opacity:0;transform:translate3d(-10px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes sparkTravel{0%{top:-1.5px;left:0}25%{top:-1.5px;left:calc(100% - 1.5px)}50%{top:calc(100% - 1.5px);left:calc(100% - 1.5px)}75%{top:calc(100% - 1.5px);left:0}to{top:-1.5px;left:0}}@keyframes sectionMagicAppear{0%{opacity:0;transform:translateY(20px) scale(.95);filter:blur(8px)}60%{opacity:1;transform:translateY(-4px) scale(1.02);filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes shimmerSweep{0%{transform:translate(-100%);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes innerFlash{0%{box-shadow:inset 0 0 30px #ff950066}to{box-shadow:inset 0 0 #ff950000}}@keyframes innerBorderPulse{0%,to{box-shadow:inset 0 0 0 1px #ff79001a}50%{box-shadow:inset 0 0 0 1px #ff79004d}}@keyframes cursorBlink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes sectionGlowPulse{0%,to{box-shadow:0 0 10px #ff790026}50%{box-shadow:0 0 20px #ff790059}}@keyframes fieldEnterBounce{0%{opacity:0;transform:translateY(12px) scale(.98)}60%{opacity:1;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes stateFade{0%{opacity:0;transform:translate3d(0,8px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes stateSlideOut{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-10px,0)}}@keyframes stateSlideIn{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes errorShake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-4px,0,0)}20%,40%,60%,80%{transform:translate3d(4px,0,0)}}@keyframes errorPulse{0%,to{opacity:1;box-shadow:0 0 #ef444466}50%{opacity:.9;box-shadow:0 0 0 8px #ef444400}}@keyframes shimmerWave{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeletonPulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98) translateZ(0)}to{opacity:1;transform:scale(1) translateZ(0)}}@keyframes pulseGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes float{0%,to{transform:translateY(0) translateZ(0)}50%{transform:translateY(-10px) translateZ(0)}}@keyframes pulseRing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@keyframes textShimmer{0%,to{background-position:-200% 0}50%{background-position:200% 0}}@keyframes waveSlide{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes sectionPulse{0%,to{transform:scale(1)}50%{transform:scale(1.01)}}@keyframes sectionBorderFade{0%{opacity:1;box-shadow:0 0 20px color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent)}to{opacity:0;box-shadow:0 0 0 transparent}}@keyframes newSectionGlow{0%{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent);box-shadow:0 0 25px color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent)}to{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent)}}@keyframes dotPulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.6}50%{transform:translate(-50%,-50%) scale(1.5);opacity:.3}}@keyframes ringExpand{0%{transform:translate(-50%,-50%) scale(.8);opacity:.2}50%{transform:translate(-50%,-50%) scale(1);opacity:.1}to{transform:translate(-50%,-50%) scale(1.2);opacity:0}}@keyframes generatingBgPulse{0%,to{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%)}50%{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 12%,transparent) 0%,transparent 70%)}}@keyframes cardGeneratingPulse{0%,to{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent),0 4px 20px #00000026,0 0 0 transparent}50%{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent),0 4px 20px #00000026,0 0 30px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}}@keyframes gradientPulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.05)}}@keyframes ringPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}@keyframes iconFloat{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-6px) rotate(-3deg)}50%{transform:translateY(-10px) rotate(0)}75%{transform:translateY(-6px) rotate(3deg)}}@keyframes particleFloat{0%,to{transform:translateY(0) translate(0) scale(1);opacity:.3}25%{transform:translateY(-30px) translate(20px) scale(1.2);opacity:.7}50%{transform:translateY(-60px) translate(-10px) scale(.8);opacity:1}75%{transform:translateY(-30px) translate(15px) scale(1.1);opacity:.6}}@keyframes spinnerRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinnerDash{0%{stroke-dasharray:1,125.6;stroke-dashoffset:0}50%{stroke-dasharray:94.2,125.6;stroke-dashoffset:-31.4}to{stroke-dasharray:94.2,125.6;stroke-dashoffset:-125.6}}@keyframes textShimmerFlow{0%,to{background-position:-200% 0}50%{background-position:200% 0}}@keyframes rippleEffect{0%{transform:scale(0);opacity:.6}to{transform:scale(2.5);opacity:0}}.animate-fade-in{animation:fadeIn var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-up{animation:fadeInUp var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-soft{animation:fadeInSoft var(--duration-slow) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-up-soft{animation:fadeInUpSoft var(--duration-slow) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-scale-soft{animation:fadeInScaleSoft var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-up{animation:slideUp var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-down{animation:slideDown var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-in-left{animation:slideInLeft var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-in-right{animation:slideInRight var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-scale{animation:scale var(--duration-moderate) var(--ease-spring);animation-fill-mode:var(--animation-fill-mode)}.animate-scale-in{animation:scaleIn var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-pulse{animation:pulse var(--duration-slow) var(--ease-in-out-smooth) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-spin-slow{animation:spinSlow 3s linear infinite}.animate-shake{animation:shake var(--duration-slow) var(--ease-in-out-smooth)}.animate-bounce{animation:bounce 1s infinite}.section-streaming{animation:sectionEnter .4s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(0,20px,0) scale(.95);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px;contain:layout style paint;transform-origin:center center}.section-entered{opacity:1;transform:translateZ(0) scale(1);will-change:auto;backface-visibility:visible;perspective:none}.section-streaming-glow{animation:sectionStreamingGlow 1.5s ease-in-out infinite}.section-stagger-0{animation-delay:0ms}.section-stagger-1{animation-delay:80ms}.section-stagger-2{animation-delay:.16s}.section-stagger-3{animation-delay:.24s}.section-stagger-4{animation-delay:.32s}.section-stagger-5{animation-delay:.4s}.section-stagger-6{animation-delay:.48s}.section-stagger-7{animation-delay:.56s}.section-stagger-8{animation-delay:.64s}.section-stagger-9{animation-delay:.72s}.section-stagger-10{animation-delay:.8s}.field-streaming{animation:fieldEnter .3s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(0,10px,0);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px;contain:layout style paint;transform-origin:center center}.field-entered{opacity:1;transform:translateZ(0);will-change:auto;backface-visibility:visible;perspective:none}.item-streaming{animation:itemEnter .35s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(-10px,0,0);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px;contain:layout style paint;transform-origin:center center}.item-entered{opacity:1;transform:translateZ(0);will-change:auto;backface-visibility:visible;perspective:none}.field-stagger-0{animation-delay:0ms}.field-stagger-1{animation-delay:40ms}.field-stagger-2{animation-delay:80ms}.field-stagger-3{animation-delay:.12s}.field-stagger-4{animation-delay:.16s}.field-stagger-5{animation-delay:.2s}.field-stagger-6{animation-delay:.24s}.field-stagger-7{animation-delay:.28s}.field-stagger-8{animation-delay:.32s}.field-stagger-9{animation-delay:.36s}.field-stagger-10{animation-delay:.4s}.field-stagger-11{animation-delay:.44s}.field-stagger-12{animation-delay:.48s}.field-stagger-13{animation-delay:.52s}.field-stagger-14{animation-delay:.56s}.field-stagger-15{animation-delay:.6s}.item-stagger-0{animation-delay:0ms}.item-stagger-1{animation-delay:40ms}.item-stagger-2{animation-delay:80ms}.item-stagger-3{animation-delay:.12s}.item-stagger-4{animation-delay:.16s}.item-stagger-5{animation-delay:.2s}.item-stagger-6{animation-delay:.24s}.item-stagger-7{animation-delay:.28s}.item-stagger-8{animation-delay:.32s}.item-stagger-9{animation-delay:.36s}.item-stagger-10{animation-delay:.4s}.item-stagger-11{animation-delay:.44s}.item-stagger-12{animation-delay:.48s}.item-stagger-13{animation-delay:.52s}.item-stagger-14{animation-delay:.56s}.item-stagger-15{animation-delay:.6s}.state-transition-enter{animation:stateFade .4s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(0,8px,0) scale(.98);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px}.state-transition-exit{animation:stateSlideOut .3s cubic-bezier(.4,0,.2,1) forwards;will-change:transform,opacity;backface-visibility:hidden;perspective:1000px}.state-entered{opacity:1;transform:translateZ(0) scale(1);will-change:auto;backface-visibility:visible;perspective:none}.error-shake{animation:errorShake .5s cubic-bezier(.4,0,.2,1)}.error-pulse{animation:errorPulse 2s ease-in-out infinite}.skeleton-shimmer{background:linear-gradient(90deg,var(--muted, rgba(255, 255, 255, .1)) 0%,var(--muted-foreground, rgba(255, 255, 255, .2)) 20%,var(--muted, rgba(255, 255, 255, .1)) 40%,var(--muted, rgba(255, 255, 255, .1)) 100%);background-size:200% 100%;animation:shimmerWave 1.5s ease-in-out infinite}.skeleton-pulse{animation:skeletonPulse 2s ease-in-out infinite}.animate-delay-1{animation-delay:calc(var(--stagger-delay-base) * 1)}.animate-delay-2{animation-delay:calc(var(--stagger-delay-base) * 2)}.animate-delay-3{animation-delay:calc(var(--stagger-delay-base) * 3)}.animate-delay-4{animation-delay:calc(var(--stagger-delay-base) * 4)}.animate-delay-5{animation-delay:calc(var(--stagger-delay-base) * 5)}.animate-fade-in-scale{animation:fadeInScale .5s cubic-bezier(.4,0,.2,1);animation-fill-mode:var(--animation-fill-mode)}.animate-pulse-glow{animation:pulseGlow 2s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulse-ring{animation:pulseRing 2s ease-in-out infinite}.animate-text-shimmer{background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:textShimmer 2s ease-in-out infinite}.animate-wave-slide{background:linear-gradient(90deg,transparent 0%,var(--color-brand, #ff7900) 25%,var(--color-brand, #ff7900) 75%,transparent 100%);background-size:200% 100%;animation:waveSlide 2s ease-in-out infinite}.animate-section-pulse{animation:sectionPulse 2s ease-out}.animate-section-border-fade{animation:sectionBorderFade 2s ease-out forwards}.animate-new-section-glow{animation:newSectionGlow .6s ease-out forwards}.animate-dot-pulse{animation:dotPulse 2s ease-in-out infinite}.animate-ring-expand{animation:ringExpand 2s ease-in-out infinite}.animate-generating-pulse{animation:generatingBgPulse 3s ease-in-out infinite,cardGeneratingPulse 2s ease-in-out infinite}.animate-gradient-pulse{animation:gradientPulse 5s ease-in-out infinite}.animate-ring-pulse{animation:ringPulse 3s ease-in-out infinite}.animate-icon-float{animation:iconFloat 4s ease-in-out infinite}.animate-particle-float{animation:particleFloat 4s ease-in-out infinite}.animate-spinner{animation:spinnerRotate 1.5s linear infinite}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:\"\";position:absolute;width:100%;height:100%;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);background:radial-gradient(circle,color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent) 0%,transparent 70%);pointer-events:none;border-radius:inherit;opacity:0}.btn-ripple:active:after{animation:rippleEffect .6s ease-out}.animate-cursor-blink{animation:cursorBlink .8s step-end infinite}.animate-spark-travel{position:relative}.animate-spark-travel:before{content:\"\";position:absolute;width:3px;height:3px;background:var(--color-brand, #ff7900);border-radius:50%;box-shadow:0 0 6px 1px color-mix(in srgb,var(--color-brand, #ff7900) 80%,transparent);animation:sparkTravel 3s linear infinite;pointer-events:none;z-index:10}.section-highlight:after{content:\"\";position:absolute;inset:-4px;border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent);border-radius:14px;pointer-events:none;animation:sectionBorderFade 2s ease-out forwards}.will-animate{will-change:transform,opacity}.will-animate-transform{will-change:transform}.will-animate-opacity{will-change:opacity}.animation-complete{will-change:auto}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}@media (prefers-reduced-motion: reduce){.animate-fade-in,.animate-fade-in-up,.animate-fade-in-scale,.animate-slide-up,.animate-slide-down,.animate-slide-in-left,.animate-slide-in-right,.animate-scale,.animate-scale-in,.animate-pulse,.animate-pulse-glow,.animate-float,.animate-pulse-ring,.animate-text-shimmer,.animate-wave-slide,.animate-section-pulse,.animate-section-border-fade,.animate-new-section-glow,.animate-dot-pulse,.animate-ring-expand,.animate-generating-pulse,.animate-gradient-pulse,.animate-ring-pulse,.animate-icon-float,.animate-particle-float,.animate-spinner,.animate-cursor-blink,.animate-spark-travel,.animate-spin,.animate-spin-slow,.animate-shake,.animate-bounce,.section-streaming,.section-streaming-glow,.section-highlight,.field-streaming,.item-streaming,.state-transition-enter,.state-transition-exit,.error-shake,.error-pulse,.skeleton-shimmer,.skeleton-pulse,.btn-ripple{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}.animate-spark-travel:before,.section-highlight:after,.btn-ripple:after{animation:none!important;display:none}.animate-text-shimmer{background:none!important;-webkit-text-fill-color:var(--foreground, currentColor)!important}.will-animate,.will-animate-transform,.will-animate-opacity,.section-streaming{will-change:auto!important}}.tilt-container{transform:perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) scale(var(--tilt-scale, 1)) translateZ(0)!important;transition:box-shadow .2s cubic-bezier(.2,0,.2,1);transform-style:preserve-3d;backface-visibility:hidden;position:relative;border-radius:var(--card-border-radius);contain:layout style;isolation:isolate;will-change:transform;transform-origin:center center}.tilt-container:not(:hover){transition:box-shadow .8s cubic-bezier(.22,.61,.36,1);will-change:auto}.tilt-container:hover{will-change:transform;box-shadow:0 0 var(--glow-blur) var(--glow-color, rgba(255, 121, 0, .375));transition:box-shadow .2s cubic-bezier(.2,0,.2,1)}.glow-container{position:relative;filter:drop-shadow(0 0 var(--glow-blur) var(--glow-color, rgba(255, 121, 0, .225)));transition:filter .2s cubic-bezier(.4,0,.2,1);will-change:filter;contain:layout style;isolation:isolate;transform:translateZ(0)}.glow-container:hover{will-change:filter;transition:filter .2s cubic-bezier(.4,0,.2,1)}.glow-container:not(:hover){will-change:auto;transition:filter .5s cubic-bezier(.25,.46,.45,.94)}.card-reflection{position:absolute;inset:0;background:transparent;opacity:var(--reflection-opacity, .08);transition:opacity .2s cubic-bezier(.4,0,.2,1);pointer-events:none;border-radius:inherit;will-change:opacity;backface-visibility:hidden}.tilt-container:not(:hover) .card-reflection{transition:opacity .5s cubic-bezier(.25,.46,.45,.94)}.tilt-wrapper{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.4,0,.2,1);backface-visibility:hidden;contain:layout style}.tilt-content{transform-style:preserve-3d;backface-visibility:hidden}.tilt-glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:transparent;opacity:var(--glare-opacity, 0);transition:opacity var(--glow-duration) var(--ease-out-smooth);will-change:opacity;backface-visibility:hidden}@media (max-width: 768px){.tilt-container{transform:perspective(800px) rotateX(calc(var(--tilt-x, 0deg) * .7)) rotateY(calc(var(--tilt-y, 0deg) * .7)) scale(var(--tilt-scale, 1)) translateZ(0)}.tilt-container:hover{box-shadow:0 0 var(--glow-blur) var(--glow-color, rgba(255, 121, 0, .375))}}.ai-card-surface--fullscreen .tilt-container{transform:perspective(1000px) translateZ(0)!important;box-shadow:none!important;will-change:auto!important}.ai-card-surface--fullscreen .glow-container{filter:none!important;will-change:auto!important}.ai-card-surface--fullscreen .card-reflection,.ai-card-surface--fullscreen .tilt-glare{opacity:0!important;display:none}@media (prefers-reduced-motion: reduce){.tilt-container,.tilt-wrapper{transform:none!important;transition:none!important}.tilt-container:hover{box-shadow:none!important}.glow-container{filter:none!important;transition:none!important}.card-reflection,.tilt-glare{opacity:0!important;transition:none!important}.tilt-container,.glow-container,.card-reflection,.tilt-glare{will-change:auto!important}}@supports (grid-template-rows: masonry){.masonry-container--native{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(var(--section-grid-min-width, 260px),1fr));grid-template-rows:masonry;gap:var(--section-card-gap, 12px);align-tracks:stretch}.masonry-container--native .masonry-item{position:relative!important;left:auto!important;top:auto!important;width:auto!important}}.masonry-container--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--section-grid-min-width, 260px),1fr));grid-auto-rows:minmax(100px,auto);grid-auto-flow:dense;gap:var(--section-card-gap, 12px)}.masonry-container--grid .masonry-item{position:relative}.masonry-container--grid .masonry-item[data-col-span=\"2\"]{grid-column:span 2}.masonry-container--grid .masonry-item[data-col-span=\"3\"]{grid-column:span 3}.masonry-container--grid .masonry-item[data-col-span=\"4\"]{grid-column:span 4}@media (max-width: 600px){.masonry-container--grid .masonry-item[data-col-span]{grid-column:span 1}}@supports (grid-template-rows: subgrid){.masonry-container--subgrid .masonry-item{display:grid;grid-template-rows:subgrid;grid-row:span 2}.masonry-container--subgrid .masonry-item .ai-section__header{grid-row:1}.masonry-container--subgrid .masonry-item .ai-section__body{grid-row:2}}.masonry-grid-container{position:relative;width:100%;height:auto;min-height:200px;will-change:height;transform:translateZ(0)}.masonry-grid-container .masonry-item{position:absolute;width:auto;height:auto;box-sizing:border-box;transform-origin:top left;will-change:transform,opacity;backface-visibility:hidden}.masonry-item{height:fit-content;min-height:fit-content;width:100%;break-inside:avoid;page-break-inside:avoid;display:flex;flex-direction:column;overflow:visible;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word;transition:top .4s cubic-bezier(.4,0,.2,1),left .4s cubic-bezier(.4,0,.2,1),width .4s cubic-bezier(.4,0,.2,1),opacity .35s ease-out;border:var(--section-border)!important;border-radius:var(--section-border-radius)!important;background:var(--section-surface, var(--section-background, var(--card-section-bg)))!important;box-shadow:var(--section-box-shadow)!important;transition:var(--section-transition, none)!important;animation:var(--section-entrance-animation, none);will-change:opacity,transform;padding:var(--section-container-padding)!important;gap:var(--section-card-gap)}.masonry-item:hover{background:var(--section-surface-hover, var(--section-background-hover, var(--section-surface)))!important;border-color:var(--section-border-hover, var(--section-border))!important;box-shadow:var(--section-box-shadow-hover, var(--section-box-shadow))!important}.masonry-item>*{height:auto!important;min-height:fit-content!important;max-height:none!important}.masonry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px;grid-auto-rows:minmax(100px,auto)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px}.masonry-item--vertical .ai-section__body{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;gap:var(--section-card-gap)!important}.masonry-item--horizontal .ai-section__body{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:var(--section-card-gap)!important}.masonry-item--horizontal .ai-section__body>*{flex:1 1 200px!important;min-width:180px!important;max-width:100%!important}.masonry-item--horizontal .contact-card,.masonry-item--horizontal .network-card{flex:1 1 220px!important;min-width:200px!important;max-width:320px!important}.masonry-item--horizontal .analytics-metric,.masonry-item--horizontal .financial-metric{flex:1 1 160px!important;min-width:140px!important;max-width:260px!important}.masonry-item--horizontal .overview-card{flex:1 1 180px!important;min-width:160px!important;max-width:280px!important}.masonry-item--auto .ai-section__body{display:flex!important;flex-direction:column!important;flex-wrap:wrap!important;gap:var(--section-card-gap)!important}@container (min-width: 500px){.masonry-item--auto .ai-section__body{flex-direction:row!important}.masonry-item--auto .ai-section__body>*{flex:1 1 200px!important;min-width:180px!important}}@media (max-width: 480px){.masonry-item--horizontal .ai-section__body{flex-direction:column!important;flex-wrap:nowrap!important}.masonry-item--horizontal .ai-section__body>*{flex:1 1 auto!important;min-width:100%!important;max-width:100%!important}}.masonry-item{container-type:inline-size;container-name:section}.masonry-item--priority-critical:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);border-radius:0 2px 2px 0}.masonry-item--sticky{position:sticky!important;top:0!important;z-index:10!important;background:var(--card-background)!important}.masonry-item--flex-grow{flex-grow:1!important}@media (prefers-reduced-motion: reduce){.masonry-item,.masonry-grid-container .masonry-item{transition:none}}.masonry-container--compact{--section-card-gap: 8px}.masonry-container--compact .masonry-item{padding:calc(var(--section-container-padding) * .75)!important}.masonry-container--comfortable{--section-card-gap: 16px}.masonry-container--comfortable .masonry-item{padding:calc(var(--section-container-padding) * 1.25)!important}.masonry-container--track-aligned{display:grid;grid-template-columns:repeat(var(--masonry-columns, 4),1fr);grid-auto-rows:minmax(50px,auto);gap:var(--section-card-gap, 12px)}.masonry-container--track-aligned .masonry-item{position:relative!important;left:auto!important;top:auto!important;width:auto!important;align-self:start}.masonry-container--debug{background-image:linear-gradient(to right,rgba(255,121,0,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,121,0,.1) 1px,transparent 1px);background-size:calc(100% / var(--masonry-columns, 4)) 50px}.masonry-container--debug .masonry-item{outline:2px dashed rgba(255,121,0,.5)!important;outline-offset:-2px}.masonry-container--debug .masonry-item:after{content:attr(data-col-span) \" col\";position:absolute;top:4px;right:4px;background:#ff7900e6;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;z-index:100;pointer-events:none}.masonry-container--debug .masonry-item[data-priority=critical]:before{content:\"\\2605 Critical\";position:absolute;top:4px;left:4px;background:#ef4444;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;border-radius:3px;z-index:100}.masonry-container--debug .masonry-item[data-priority=important]:before{content:\"\\25c6 Important\";position:absolute;top:4px;left:4px;background:#f59e0b;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;border-radius:3px;z-index:100}.masonry-container--debug .masonry-item[data-priority=optional]:before{content:\"\\25cb Optional\";position:absolute;top:4px;left:4px;background:#6b7280;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;border-radius:3px;z-index:100}.masonry-container--stagger-animations .masonry-item{animation:masonry-item-appear .4s cubic-bezier(.4,0,.2,1) backwards}.masonry-container--stagger-animations .masonry-item:nth-child(1){animation-delay:0ms}.masonry-container--stagger-animations .masonry-item:nth-child(2){animation-delay:50ms}.masonry-container--stagger-animations .masonry-item:nth-child(3){animation-delay:.1s}.masonry-container--stagger-animations .masonry-item:nth-child(4){animation-delay:.15s}.masonry-container--stagger-animations .masonry-item:nth-child(5){animation-delay:.2s}.masonry-container--stagger-animations .masonry-item:nth-child(6){animation-delay:.25s}.masonry-container--stagger-animations .masonry-item:nth-child(7){animation-delay:.3s}.masonry-container--stagger-animations .masonry-item:nth-child(8){animation-delay:.35s}.masonry-container--stagger-animations .masonry-item:nth-child(9){animation-delay:.4s}.masonry-container--stagger-animations .masonry-item:nth-child(10){animation-delay:.45s}.masonry-container--stagger-animations .masonry-item:nth-child(11){animation-delay:.5s}.masonry-container--stagger-animations .masonry-item:nth-child(12){animation-delay:.55s}.masonry-container--stagger-animations .masonry-item:nth-child(13){animation-delay:.6s}.masonry-container--stagger-animations .masonry-item:nth-child(14){animation-delay:.65s}.masonry-container--stagger-animations .masonry-item:nth-child(15){animation-delay:.7s}.masonry-container--stagger-animations .masonry-item:nth-child(16){animation-delay:.75s}.masonry-container--stagger-animations .masonry-item:nth-child(17){animation-delay:.8s}.masonry-container--stagger-animations .masonry-item:nth-child(18){animation-delay:.85s}.masonry-container--stagger-animations .masonry-item:nth-child(19){animation-delay:.9s}.masonry-container--stagger-animations .masonry-item:nth-child(20){animation-delay:.95s}@keyframes masonry-item-appear{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.masonry-item--transitioning{will-change:transform,left,top,width;transition:top .35s cubic-bezier(.4,0,.2,1),left .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1),transform .35s cubic-bezier(.4,0,.2,1),opacity .25s ease-out}.masonry-container--initializing .masonry-item{transition:none!important}@media (prefers-reduced-motion: reduce){.masonry-item,.masonry-item--transitioning{transition:none!important;animation:none!important}}.masonry-container--balanced:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,transparent,rgba(var(--primary-rgb, 59, 130, 246),.3),transparent);opacity:0;transition:opacity .3s ease}.masonry-container--balanced:hover:after{opacity:1}.masonry-container--debug-balance .masonry-item{position:relative}.masonry-container--debug-balance .masonry-item:after{content:attr(data-column);position:absolute;top:-20px;left:50%;transform:translate(-50%);background:#0009;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;pointer-events:none}.masonry-skeleton{position:relative;background:linear-gradient(90deg,var(--skeleton-base, rgba(200, 200, 200, .2)) 25%,var(--skeleton-highlight, rgba(200, 200, 200, .4)) 50%,var(--skeleton-base, rgba(200, 200, 200, .2)) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--section-border-radius, 8px);overflow:hidden}.masonry-skeleton--single{width:calc((100% - var(--masonry-gap, 12px) * 3) / 4);height:180px}.masonry-skeleton--double{width:calc((100% - var(--masonry-gap, 12px) * 3) / 4 * 2 + var(--masonry-gap, 12px));height:200px}.masonry-skeleton--triple{width:calc((100% - var(--masonry-gap, 12px) * 3) / 4 * 3 + var(--masonry-gap, 12px) * 2);height:220px}.masonry-skeleton--full{width:100%;height:250px}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.masonry-skeleton__header{height:24px;width:60%;margin:16px;background:#0000001a;border-radius:4px}.masonry-skeleton__line{height:16px;margin:8px 16px;background:#00000014;border-radius:4px}.masonry-skeleton__line:nth-child(2){width:90%}.masonry-skeleton__line:nth-child(3){width:75%}.masonry-skeleton__line:nth-child(4){width:60%}.masonry-container--loading{min-height:400px}.masonry-container--loading .masonry-skeleton{position:absolute}.masonry-container--loading .masonry-skeleton:nth-child(1){animation-delay:0ms}.masonry-container--loading .masonry-skeleton:nth-child(2){animation-delay:.1s}.masonry-container--loading .masonry-skeleton:nth-child(3){animation-delay:.2s}.masonry-container--loading .masonry-skeleton:nth-child(4){animation-delay:.3s}.masonry-container--loading .masonry-skeleton:nth-child(5){animation-delay:.4s}.masonry-container--loading .masonry-skeleton:nth-child(6){animation-delay:.5s}.masonry-container--loading .masonry-skeleton:nth-child(7){animation-delay:.6s}.masonry-container--loading .masonry-skeleton:nth-child(8){animation-delay:.7s}.masonry-container--preserve-order .masonry-item{order:var(--item-order, 0)}.masonry-container--preserve-order.masonry-container--debug .masonry-item:before{content:\"#\" attr(data-index);position:absolute;top:4px;right:4px;background:#000000b3;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;z-index:100}.masonry-item:focus-visible{outline:2px solid var(--focus-color, #3b82f6);outline-offset:2px;z-index:10}.masonry-container--show-reading-order .masonry-item:after{content:attr(data-reading-order);position:absolute;bottom:4px;right:4px;background:var(--reading-order-bg, #6366f1);color:#fff;font-size:12px;font-weight:700;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;z-index:100}.masonry-container--show-reading-order .masonry-item[data-next-id]:before{content:\"\";position:absolute;bottom:16px;right:-6px;width:20px;height:2px;background:var(--reading-order-line, rgba(99, 102, 241, .3));z-index:99}.masonry-skip-link{position:absolute;top:-9999px;left:-9999px;z-index:1000;padding:12px 24px;background:var(--skip-link-bg, #1e40af);color:#fff;text-decoration:none;border-radius:4px}.masonry-skip-link:focus{top:12px;left:12px}.masonry-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.feature-grid{display:grid;gap:var(--feature-grid-gap, 1.5rem);width:100%;grid-template-columns:1fr}@media (min-width: 640px){.feature-grid--2col{grid-template-columns:repeat(2,1fr)}}@media (min-width: 640px){.feature-grid--3col{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.feature-grid--3col{grid-template-columns:repeat(3,1fr)}}@media (min-width: 640px){.feature-grid--4col{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.feature-grid--4col{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1280px){.feature-grid--4col{grid-template-columns:repeat(4,1fr)}}.feature-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.feature-grid--auto-lg{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.feature-grid--auto-sm{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.feature-grid--gap-sm{--feature-grid-gap: .75rem;gap:var(--feature-grid-gap)}.feature-grid--gap-md{--feature-grid-gap: 1rem;gap:var(--feature-grid-gap)}.feature-grid--gap-lg{--feature-grid-gap: 2rem;gap:var(--feature-grid-gap)}.feature-grid--gap-xl{--feature-grid-gap: 3rem;gap:var(--feature-grid-gap)}.feature-grid__item{display:flex;flex-direction:column;min-width:0}.feature-grid__item--span-2{grid-column:span 2}@media (max-width: 639px){.feature-grid__item--span-2{grid-column:span 1}}.feature-grid__item--span-full{grid-column:1/-1}.hero-grid{display:grid;gap:1rem;width:100%;grid-template-columns:1fr}@media (min-width: 768px){.hero-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media (min-width: 1024px){.hero-grid{grid-template-columns:repeat(3,1fr)}}.capabilities-grid{display:grid;gap:1.5rem;width:100%;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}@media (min-width: 1024px){.capabilities-grid{grid-template-columns:repeat(3,1fr)}}.features-grid{display:grid;gap:1.5rem;width:100%;grid-template-columns:1fr}@media (min-width: 640px){.features-grid{grid-template-columns:repeat(2,1fr);gap:2rem}}@media (min-width: 1024px){.features-grid{grid-template-columns:repeat(3,1fr)}}.feature-grid--dense{grid-auto-flow:dense}.feature-grid--center{justify-items:center}.feature-grid--stretch{align-items:stretch}.feature-grid--start{align-items:start}.feature-grid--animated .feature-grid__item{opacity:0;animation:fadeInUp .6s ease-out forwards}.feature-grid--animated .feature-grid__item:nth-child(1){animation-delay:0s}.feature-grid--animated .feature-grid__item:nth-child(2){animation-delay:.08s}.feature-grid--animated .feature-grid__item:nth-child(3){animation-delay:.16s}.feature-grid--animated .feature-grid__item:nth-child(4){animation-delay:.24s}.feature-grid--animated .feature-grid__item:nth-child(5){animation-delay:.32s}.feature-grid--animated .feature-grid__item:nth-child(6){animation-delay:.4s}.feature-grid--animated .feature-grid__item:nth-child(7){animation-delay:.48s}.feature-grid--animated .feature-grid__item:nth-child(8){animation-delay:.56s}.feature-grid--animated .feature-grid__item:nth-child(9){animation-delay:.64s}.feature-grid--animated .feature-grid__item:nth-child(10){animation-delay:.72s}.feature-grid--animated .feature-grid__item:nth-child(11){animation-delay:.8s}.feature-grid--animated .feature-grid__item:nth-child(12){animation-delay:.88s}@media (prefers-reduced-motion: reduce){.feature-grid--animated .feature-grid__item{opacity:1;animation:none}}@media (max-width: 639px){.feature-grid--mobile-1col{grid-template-columns:1fr!important}}@media (min-width: 640px) and (max-width: 1023px){.feature-grid--tablet-2col{grid-template-columns:repeat(2,1fr)!important}}.hero-card{position:relative;transition:all .35s cubic-bezier(.4,0,.2,1)}.hero-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}@media (prefers-reduced-motion: reduce){.hero-card{transition:none}.hero-card:hover{transform:none}}.hero-card--accent{position:relative;transition:all .35s cubic-bezier(.4,0,.2,1)}.hero-card--accent:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);border-radius:3px 0 0 3px;opacity:0;transition:opacity .35s ease}.hero-card--accent:hover{transform:translateY(-6px);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.hero-card--accent:hover:before{opacity:1}@media (prefers-reduced-motion: reduce){.hero-card--accent{transition:none}.hero-card--accent:hover{transform:none}}.hero-card--glow-line{position:relative;transition:all .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.hero-card--glow-line:before{content:\"\";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent) 50%,transparent 100%);opacity:0;transition:opacity .35s ease}.hero-card--glow-line:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);opacity:0;transition:opacity .35s ease}.hero-card--glow-line:hover{transform:translateY(-6px);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.hero-card--glow-line:hover:before,.hero-card--glow-line:hover:after{opacity:1}@media (prefers-reduced-motion: reduce){.hero-card--glow-line{transition:none}.hero-card--glow-line:hover{transform:none}.hero-card--glow-line:before,.hero-card--glow-line:after{transition:none}}.hero-card-icon{transition:transform .35s ease,filter .35s ease}.hero-card:hover .hero-card-icon,.hero-feature-card:hover .hero-card-icon,.feature-card:hover .hero-card-icon,[class*=card]:hover .hero-card-icon{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.hero-card-icon{transition:none}.hero-card:hover .hero-card-icon,.hero-feature-card:hover .hero-card-icon,.feature-card:hover .hero-card-icon,[class*=card]:hover .hero-card-icon{transform:none;filter:none}}.icon-hover{transition:transform .35s ease,filter .35s ease}.icon-hover:hover{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.icon-hover{transition:none}.icon-hover:hover{transform:none;filter:none}}.hero-feature-card{position:relative;border-radius:var(--card-border-radius, 1rem);border:1px solid var(--border, rgba(255, 255, 255, .08));background:var(--card-background, rgba(20, 20, 20, .6));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:1.5rem;transition:all .35s cubic-bezier(.4,0,.2,1)}.hero-feature-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--color-brand, #ff7900) 50%,transparent);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.hero-feature-card .hero-feature-card__icon{transition:transform .35s ease,filter .35s ease}.hero-feature-card:hover .hero-feature-card__icon{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.hero-feature-card{transition:none}.hero-feature-card:hover{transform:none}.hero-feature-card .hero-feature-card__icon{transition:none}.hero-feature-card:hover .hero-feature-card__icon{transform:none;filter:none}}.system-capability-card{position:relative;border-radius:var(--card-border-radius, 1rem);border:1px solid var(--border, rgba(255, 255, 255, .08));background:var(--card-background, rgba(20, 20, 20, .6));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:1.25rem;transition:all .35s cubic-bezier(.4,0,.2,1);animation:fadeInUp .6s ease-out backwards}.system-capability-card:nth-child(1){animation-delay:.08s}.system-capability-card:nth-child(2){animation-delay:.16s}.system-capability-card:nth-child(3){animation-delay:.24s}.system-capability-card:nth-child(4){animation-delay:.32s}.system-capability-card:nth-child(5){animation-delay:.4s}.system-capability-card:nth-child(6){animation-delay:.48s}.system-capability-card:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);border-radius:3px 0 0 3px;opacity:0;transition:opacity .35s ease}.system-capability-card:after{content:\"\";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent) 50%,transparent 100%);opacity:0;transition:opacity .35s ease}.system-capability-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--color-brand, #ff7900) 50%,transparent);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.system-capability-card:hover:before,.system-capability-card:hover:after{opacity:1}.system-capability-card .system-capability-card__icon{transition:transform .35s ease,filter .35s ease}.system-capability-card:hover .system-capability-card__icon{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.system-capability-card{animation:none;transition:none}.system-capability-card:hover{transform:none}.system-capability-card:before,.system-capability-card:after{transition:none}.system-capability-card .system-capability-card__icon{transition:none}.system-capability-card:hover .system-capability-card__icon{transform:none;filter:none}}.feature-card{position:relative;border-radius:var(--card-border-radius, 1rem);border:1px solid var(--border, rgba(255, 255, 255, .08));background:var(--card-background);padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.feature-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px -10px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent)}.feature-card:hover .feature-card__icon{transform:scale(1.1)}.feature-card .feature-card__icon{transition:transform .3s ease}@media (prefers-reduced-motion: reduce){.feature-card{transition:none}.feature-card:hover{transform:none}.feature-card .feature-card__icon{transition:none}.feature-card:hover .feature-card__icon{transform:none}}.ai-card-surface.streaming-active{position:relative;border:1px solid rgba(255,121,0,.4);box-shadow:0 0 10px #ff790033,0 0 20px #ff79001a}.ai-card-surface.streaming-active:before{content:\"\";position:absolute;width:3px;height:3px;background:#ff9500;border-radius:50%;box-shadow:0 0 6px 1px #ff9500cc;animation:sparkTravel 3s linear infinite;pointer-events:none;z-index:10}.ai-card-surface.streaming-active .field-value,.ai-card-surface.streaming-active .item-title,.ai-card-surface.streaming-active .item-description,.ai-card-surface.streaming-active .section-title,.ai-card-surface.streaming-active .section-description,.ai-card-surface.streaming-active [class*=value],.ai-card-surface.streaming-active [class*=label]{transition:all .2s ease-out}.ai-card-surface.streaming-active [class*=value]:last-child:after,.ai-card-surface.streaming-active .field-value:last-child:after{content:\"\\258b\";display:inline-block;color:var(--color-brand, #ff7900);animation:cursorBlink .8s step-end infinite;margin-left:2px;font-weight:400}.ai-card-surface.streaming-active .masonry-item:not(.masonry-item--animating){animation:none!important}.ai-card-surface.streaming-active .masonry-item:not(.masonry-item--animating):after{animation:none!important;opacity:0!important}.ai-card-surface.streaming-active .masonry-item--animated,.ai-card-surface.streaming-active .masonry-item--animated *,.ai-card-surface.streaming-active .masonry-item--animated:before,.ai-card-surface.streaming-active .masonry-item--animated:after,.ai-card-surface.streaming-active .masonry-item[data-animated=true],.ai-card-surface.streaming-active .masonry-item[data-animated=true] *{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}.ai-card-surface.streaming-active .masonry-item--animated:after,.ai-card-surface.streaming-active .masonry-item[data-animated=true]:after{display:none!important}.ai-card-surface.streaming-active .masonry-item--animating .section-card,.ai-card-surface.streaming-active .masonry-item--animating [class*=section-]>div{border-color:#ff79004d!important;box-shadow:0 0 15px #ff790040;animation:sectionGlowPulse .8s ease-out forwards;animation-iteration-count:1}.ai-card-surface.streaming-active .masonry-item--animating .section-card:hover{border-color:#ff790099!important;box-shadow:0 0 25px #ff790066}.ai-card-surface.streaming-active .masonry-item--animating .section-card{animation:innerFlash .6s ease-out forwards;animation-iteration-count:1}.ai-card-surface.streaming-active .masonry-item--animating .section-card:before{content:\"\";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ff790026;pointer-events:none;animation:innerBorderPulse .8s ease-out forwards;animation-iteration-count:1}.ai-card-surface.streaming-active .masonry-item--animated .section-card,.ai-card-surface.streaming-active .masonry-item--animated [class*=section-]>div,.ai-card-surface.streaming-active .masonry-item[data-animated=true] .section-card{animation:none!important;box-shadow:none!important;border-color:#ff790026!important}.ai-card-surface.streaming-active .masonry-item--animated .section-card:before,.ai-card-surface.streaming-active .masonry-item[data-animated=true] .section-card:before{animation:none!important;box-shadow:none!important}.ai-card-surface.streaming-active .masonry-item--animating{animation:sectionMagicAppear .7s cubic-bezier(.34,1.56,.64,1) forwards;animation-iteration-count:1;position:relative;overflow:hidden}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(1){animation-delay:0ms}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(2){animation-delay:80ms}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(3){animation-delay:.16s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(4){animation-delay:.24s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(5){animation-delay:.32s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(6){animation-delay:.4s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(7){animation-delay:.48s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(8){animation-delay:.56s}.ai-card-surface.streaming-active .masonry-item--animating:after{content:\"\";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,149,0,.15) 50%,transparent 70%);animation:shimmerSweep .8s ease-out forwards;animation-iteration-count:1;pointer-events:none;border-radius:inherit}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item){opacity:0;transform:translateY(12px);animation:fieldEnterBounce .45s ease forwards;animation-iteration-count:1;will-change:opacity,transform}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(1){animation-delay:0s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(2){animation-delay:.05s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(3){animation-delay:.1s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(4){animation-delay:.15s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(5){animation-delay:.2s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(n+6){animation-delay:.24s}.ai-card-surface.streaming-active .masonry-item--animated :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item){animation:none!important;opacity:1!important;transform:none!important}.streaming-border-glow{position:relative;border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent),0 0 20px color-mix(in srgb,var(--color-brand, #ff7900) 10%,transparent)}.streaming-border-glow:before{content:\"\";position:absolute;width:3px;height:3px;background:var(--color-brand, #ff7900);border-radius:50%;box-shadow:0 0 6px 1px color-mix(in srgb,var(--color-brand, #ff7900) 80%,transparent);animation:sparkTravel 3s linear infinite;pointer-events:none;z-index:10}.typing-cursor:after{content:\"\\258b\";display:inline-block;color:var(--color-brand, #ff7900);animation:cursorBlink .8s step-end infinite;margin-left:2px;font-weight:400}.section-highlight{animation:sectionPulse 2s ease-out;position:relative}.section-highlight:after{content:\"\";position:absolute;inset:-4px;border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent);border-radius:var(--card-border-radius, 14px);pointer-events:none;animation:sectionBorderFade 2s ease-out forwards}.new-section-glow{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);box-shadow:0 0 15px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent);animation:newSectionGlow .6s ease-out forwards}.shimmer-text{background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:textShimmer 2s ease-in-out infinite}.wave-progress{position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent 0%,var(--color-brand, #ff7900) 25%,var(--color-brand, #ff7900) 75%,transparent 100%);background-size:200% 100%;animation:waveSlide 2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.ai-card-surface.streaming-active,.ai-card-surface.streaming-active:before,.ai-card-surface.streaming-active:after,.ai-card-surface.streaming-active *,.streaming-border-glow,.streaming-border-glow:before,.typing-cursor:after,.section-highlight,.section-highlight:after,.new-section-glow,.shimmer-text,.wave-progress{animation:none!important;transition:none!important}.ai-card-surface.streaming-active [class*=value]:last-child:after,.ai-card-surface.streaming-active .field-value:last-child:after,.typing-cursor:after{content:none!important}.shimmer-text{background:none!important;-webkit-text-fill-color:currentColor!important}}:host{display:block;padding:8px;background:transparent!important;background-color:transparent!important}@media (max-width: 480px){:host{padding:4px}}.ai-card-surface{position:relative;display:flex;flex-direction:column;height:100%;overflow:visible;isolation:isolate;border:var(--ai-card-border, 1px solid rgba(255, 121, 0, .12))!important;border-width:1px!important;border-style:solid!important;border-radius:var(--ai-card-border-radius)!important;background:var(--section-item-background)!important;box-shadow:var(--ai-card-box-shadow, none)!important;transition:var(--ai-card-transition, none)!important;animation:var(--ai-card-entrance-animation, none);will-change:opacity,transform;background:var(--ai-card-background)!important;border:var(--theme-ai-card-border)!important;box-shadow:var(--theme-ai-card-box-shadow)!important;padding:var(--card-main-padding)!important;padding-bottom:var(--card-main-padding)!important;border-radius:var(--card-border-radius)!important;gap:var(--section-card-gap)!important;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.ai-card-surface *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.ai-card-surface h1{transition:opacity .2s ease}.ai-card-surface:hover{border-color:var(--ai-card-border-hover, rgba(255, 121, 0, .2))!important;background:var(--section-item-background-hover, var(--section-item-background))!important;box-shadow:var(--ai-card-box-shadow-hover, var(--ai-card-box-shadow, none))!important;background:var(--ai-card-background-hover)!important;border:var(--theme-ai-card-border-hover)!important;box-shadow:var(--theme-ai-card-box-shadow-hover)!important}.ai-card-surface--fullscreen{border:none!important;box-shadow:none!important;background:var(--ai-card-background)!important;max-height:none!important;max-width:none!important;width:100%!important;overflow:visible!important;padding:var(--card-main-padding)!important}.ai-card-surface--fullscreen:hover{background:var(--ai-card-background)!important;border:none!important;box-shadow:none!important}.ai-card-surface--fullscreen .tilt-container{transform:none!important;box-shadow:none!important;width:100%!important;max-width:none!important}.ai-card-surface--fullscreen .glow-container{filter:none!important}.ai-card-surface--fullscreen .card-reflection{display:none!important}.ai-card-surface--fullscreen .ai-card-header{padding:0!important;margin:0!important;border:none!important;background:transparent!important;box-shadow:none!important}.ai-card-surface--fullscreen .ai-card-title{font-size:14px!important}.ai-card-fullscreen-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#ff790014;border:1px solid rgba(255,121,0,.2);color:var(--foreground);cursor:pointer;transition:all .2s ease;flex-shrink:0;position:absolute;top:var(--card-main-padding);right:var(--card-main-padding);z-index:100}.ai-card-fullscreen-btn:hover{transform:translateY(-2px);background:#ff790026;border-color:#ff790066;box-shadow:0 4px 12px #ff790033}.ai-card-fullscreen-btn:active{transform:translateY(0)}.ai-card-fullscreen-btn__icon{color:currentColor}.ai-card-header{position:relative;z-index:10;padding:0!important;padding-block:0!important;padding-block-start:0!important;padding-block-end:0!important;padding-inline:0!important;padding-inline-start:0!important;padding-inline-end:0!important;margin:0!important;display:flex;flex-direction:column;gap:4px;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-block-start:none!important;border-block-end:none!important;border-inline:none!important;border-inline-start:none!important;border-inline-end:none!important;background:transparent!important;background-color:transparent!important;backdrop-filter:none!important;box-shadow:none!important;border-radius:0!important;outline:none!important;outline-offset:0!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important}.ai-card-header:before{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-header:after{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-title-stack{display:flex;flex-direction:column;gap:2px}.ai-card-eyebrow{font-size:var(--font-card-eyebrow);letter-spacing:.08em;text-transform:none;color:#1c1c1fd9;font-weight:600;opacity:.9}.ai-card-title{font-size:18px;font-weight:700;color:var(--foreground);letter-spacing:-.01em;line-height:1.2;text-transform:none;border:0!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-top:0!important;border-right:0!important;border-bottom:0!important;border-left:0!important;border-top:none!important;border-right:none!important;border-bottom:none!important;border-left:none!important;border-block:none!important;border-inline:none!important;border-image:none!important;border-radius:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;outline-offset:0!important;padding:0!important;padding-block:0!important;padding-inline:0!important;margin:0!important;margin-block:0!important;margin-inline:0!important;box-shadow:none!important;text-decoration:none!important;text-decoration-line:none!important;text-decoration-style:none!important;text-decoration-color:transparent!important;text-underline-offset:0!important;text-decoration-thickness:0!important}.ai-card-title:before,.ai-card-title:after{display:none!important;border:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-top:none!important;border-right:none!important;border-bottom:none!important;border-left:none!important;border-block:none!important;border-inline:none!important;border-image:none!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;margin:0!important;content:none!important}.ai-card-type-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:999px;border:1px solid rgba(255,121,0,.32);background:#ff79002e;text-transform:none;letter-spacing:.05em;font-size:var(--font-card-meta);font-weight:600;color:#423d37d9}.ai-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;text-transform:none;font-size:var(--font-card-meta);letter-spacing:.05em;color:#1c1c1fd9}.ai-card-meta__chip{display:inline-flex;align-items:stretch;gap:4px;padding:2px 6px;border-radius:999px;border:1px solid rgba(55,55,60,.65);background:#28282dcc}.ai-card-meta__chip-dot{width:3px;height:3px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px #ff79001f}.ai-card-meta__chip-dot--primary{background:var(--accent)}.ai-card-meta__chip-dot--secondary{background:#ff7900a6}.ai-card-meta__chip-dot--tertiary{background:#ff790059}.ai-card-meta__chip-content{display:flex;flex-direction:column;gap:0px;line-height:1}.ai-card-meta__chip-label{font-size:.48rem;letter-spacing:.05em;text-transform:none;color:#1c1c1fd9;font-weight:600}.ai-card-meta__chip-value{font-size:var(--font-card-meta-value);font-weight:600;color:var(--foreground);letter-spacing:.01em}.ai-card-body{position:relative;z-index:10;flex:1;padding:0!important;padding-block:0!important;padding-block-start:0!important;padding-block-end:0!important;padding-inline:0!important;padding-inline-start:0!important;padding-inline-end:0!important;margin:0!important;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:visible;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-block-start:none!important;border-block-end:none!important;border-inline:none!important;border-inline-start:none!important;border-inline-end:none!important;background:transparent!important;background-color:transparent!important;backdrop-filter:none!important;box-shadow:none!important;border-radius:0!important;outline:none!important;outline-offset:0!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important}.ai-card-body:before{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-body:after{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-action{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-weight:600;font-size:var(--font-card-action, .875rem);letter-spacing:.01em;border:1px solid transparent;text-transform:none;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.ai-card-action--primary{background:var(--primary, #ff7900);color:var(--primary-foreground, #ffffff);border-color:#ff7900cc;box-shadow:0 2px 8px #ff790040,0 1px 2px #0000001a}.ai-card-action--primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #ff790059,0 2px 4px #0000001a;background:#ff7900f2;border-color:var(--primary, #ff7900)}.ai-card-action--secondary{background:#28282de6;color:var(--foreground, #ffffff);border-color:#37373c99;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.ai-card-action--secondary:hover{transform:translateY(-1px);border-color:#ff790066;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;background:#322e2af2}.ai-card-action__shine{position:absolute;inset:0;background:linear-gradient(135deg,#fff3,#fff0,#ffffff1a);opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1);pointer-events:none;border-radius:inherit}.ai-card-action:hover .ai-card-action__shine{opacity:1}.ai-card-action--primary .ai-card-action__shine{background:linear-gradient(135deg,#ffffff4d,#fff0,#ffffff26)}.ai-card-action--secondary .ai-card-action__shine{background:linear-gradient(135deg,#ffffff26,#fff0,#ffffff14)}.ai-card-action__content{position:relative;z-index:10;display:inline-flex;align-items:center;gap:6px}.ai-card-action__icon{color:currentColor;opacity:.9;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ai-card-action__label{font-weight:600;letter-spacing:.01em;transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-card-action:hover .ai-card-action__icon{transform:translate(2px);opacity:1}.ai-card-action:hover .ai-card-action__label{transform:translate(1px)}.ai-card-footnote{margin-top:auto;margin-bottom:0!important;padding:0!important;border:none!important;border-top:none!important;text-align:center;font-size:.65rem!important;letter-spacing:.08em;text-transform:none;color:#1c1c1fb3;line-height:1.2}@media (prefers-reduced-motion: reduce){.ai-card-surface{transition:none!important;transform:none!important;box-shadow:var(--card-box-shadow)!important}.ai-card-surface:before{opacity:0!important}.ai-card-surface:hover{transform:none!important}}.card-container-wrapper,.glow-container,.tilt-container,.w-full{width:100%}.h-full{height:100%}.flex-1{flex:1 1 0%}.min-h-0{min-height:0}.max-w-none{max-width:none}.card-empty-state{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;height:100%;padding:4rem 2rem;border-radius:1.5rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);background:color-mix(in srgb,var(--background, #0c0c0c) 98%,transparent);transition:all .3s ease;flex:1;box-sizing:border-box}.ai-card-surface--empty-state{display:flex;flex-direction:column;min-height:100%;height:100%}.ai-card-surface--empty-state .card-empty-state{flex:1 1 auto;min-height:0;height:100%;display:flex}.card-empty-state:hover{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent);background:color-mix(in srgb,var(--background, #0c0c0c) 99%,transparent)}.empty-state-background{position:absolute;inset:0;overflow:hidden;pointer-events:none}.empty-state-gradient{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:150%;height:150%;background:radial-gradient(circle,color-mix(in srgb,var(--color-brand, #ff7900) 6%,transparent) 0%,color-mix(in srgb,var(--color-brand, #ff7900) 3%,transparent) 50%,transparent 80%);animation:gradient-pulse 5s ease-in-out infinite;opacity:.8}@keyframes gradient-pulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.05)}}.empty-state-particles{position:absolute;inset:0}.empty-state-particles .particle{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--color-brand, #ff7900);box-shadow:0 0 8px var(--color-brand, #ff7900);transition:transform .8s cubic-bezier(.23,1,.32,1),opacity .5s ease;will-change:transform,opacity;top:50%;left:50%;margin-left:-2px;margin-top:-2px;pointer-events:none;opacity:.7}.empty-state-particles .particle:nth-child(odd){width:5px;height:5px;background:var(--color-brand, #ff7900);box-shadow:0 0 10px var(--color-brand, #ff7900);opacity:.8}.empty-state-particles .particle:nth-child(2n){width:3px;height:3px;background:var(--color-brand, #ff7900);box-shadow:0 0 6px var(--color-brand, #ff7900);opacity:.6}.empty-state-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1rem;max-width:420px;width:100%;transition:transform .2s cubic-bezier(.25,.46,.45,.94);will-change:transform}.empty-state-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:88px;height:88px}.empty-state-icon-ring{position:absolute;inset:-8px;border:1.5px solid color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent);border-radius:50%;animation:ring-pulse 3s ease-in-out infinite}.empty-state-icon-pulse{position:absolute;inset:-16px;border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent);border-radius:50%;animation:ring-pulse 3s ease-in-out infinite .75s}@keyframes ring-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}.empty-state-icon{position:relative;z-index:1;color:var(--color-brand, #ff7900);animation:icon-float 4s ease-in-out infinite;filter:drop-shadow(0 2px 8px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent));opacity:.95}@keyframes icon-float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-6px) rotate(-3deg)}50%{transform:translateY(-10px) rotate(0)}75%{transform:translateY(-6px) rotate(3deg)}}.empty-state-text{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%}.empty-state-title{font-size:1.75rem;font-weight:700;color:var(--foreground, #ffffff);margin:0;letter-spacing:-.03em;line-height:1.2;text-align:center;animation:fade-in-up .6s ease-out .2s both}.empty-state-message-container{min-height:2.5rem;display:flex;align-items:center;justify-content:center;width:100%}.empty-state-message{font-size:1rem;color:var(--color-brand, #ff7900);margin:0;line-height:1.6;font-weight:500;font-style:italic;text-align:center;animation:fade-in-up .6s ease-out .4s both;letter-spacing:.01em}.card-empty-state-legacy{min-height:200px;display:flex;align-items:center;justify-content:center;padding:3rem;background:linear-gradient(135deg,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,color-mix(in srgb,var(--background, #0c0c0c) 98%,transparent) 50%,transparent 100%);border-radius:1.5rem;border:1px dashed color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}.empty-state-box{text-align:center;max-width:320px}.empty-state-icon-legacy{display:flex;justify-content:center;margin-bottom:1.5rem;color:var(--color-brand, #ff7900);opacity:.7}.empty-state-message-legacy{font-size:.95rem;color:var(--muted-foreground, #a1a1aa);line-height:1.6;margin:0}.ai-card-surface.has-loading-overlay{display:flex;align-items:center;justify-content:center;min-height:500px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%);animation:generating-bg-pulse 3s ease-in-out infinite,card-generating-pulse 2s ease-in-out infinite}@keyframes card-generating-pulse{0%,to{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent),0 4px 20px #00000026,0 0 0 transparent}50%{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent),0 4px 20px #00000026,0 0 30px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}}@keyframes generating-bg-pulse{0%,to{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%)}50%{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 12%,transparent) 0%,transparent 70%)}}.generating-content{position:relative;z-index:2;text-align:center}.generating-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent) 50%,transparent 100%);animation:shimmer-sweep 2.5s ease-in-out infinite;pointer-events:none;z-index:1}@keyframes shimmer-sweep{0%{left:-100%}to{left:100%}}.generating-text{font-size:1.125rem;font-weight:600;color:var(--foreground, #ffffff);margin:0;background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:text-shimmer-flow 2.5s ease-in-out infinite;position:relative;z-index:2;letter-spacing:.02em}@keyframes text-shimmer-flow{0%,to{background-position:-200% 0}50%{background-position:200% 0}}.loading-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.particle{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--color-brand, #ff7900);box-shadow:0 0 6px var(--color-brand, #ff7900);animation:particle-float 4s ease-in-out infinite}.particle:nth-child(1){top:10%;left:20%;animation-delay:0s}.particle:nth-child(2){top:30%;left:80%;animation-delay:.5s}.particle:nth-child(3){top:70%;left:30%;animation-delay:1s}.particle:nth-child(4){top:80%;left:70%;animation-delay:1.5s}.particle:nth-child(5){top:20%;left:50%;animation-delay:.3s}.particle:nth-child(6){top:60%;left:15%;animation-delay:.9s}.particle:nth-child(7){top:50%;left:90%;animation-delay:1.8s}.particle:nth-child(8){top:15%;left:60%;animation-delay:2.1s}@keyframes particle-float{0%,to{transform:translateY(0) translate(0) scale(1);opacity:.3}25%{transform:translateY(-30px) translate(20px) scale(1.2);opacity:.7}50%{transform:translateY(-60px) translate(-10px) scale(.8);opacity:1}75%{transform:translateY(-30px) translate(15px) scale(1.1);opacity:.6}}.loading-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.loading-spinner{width:64px;height:64px;position:relative}.spinner-svg{width:100%;height:100%;animation:spinner-rotate 1.5s linear infinite;transform-origin:center}.spinner-circle{stroke-dasharray:125.6;stroke-dashoffset:31.4;stroke:var(--color-brand, #ff7900);animation:spinner-dash 1.5s ease-in-out infinite}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinner-dash{0%{stroke-dasharray:1,125.6;stroke-dashoffset:0}50%{stroke-dasharray:94.2,125.6;stroke-dashoffset:-31.4}to{stroke-dasharray:94.2,125.6;stroke-dashoffset:-125.6}}.loading-text{text-align:center}.loading-title{font-size:1.25rem;font-weight:600;color:var(--foreground, #ffffff);margin-bottom:.5rem;background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:text-shimmer 2s ease-in-out infinite}.loading-subtitle{font-size:.875rem;color:var(--muted-foreground, #a1a1aa);margin:0}@keyframes text-shimmer{0%,to{background-position:-200% 0}50%{background-position:200% 0}}.loading-wave{position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent 0%,var(--color-brand, #ff7900) 25%,var(--color-brand, #ff7900) 75%,transparent 100%);background-size:200% 100%;animation:wave-slide 2s ease-in-out infinite}@keyframes wave-slide{0%{background-position:-200% 0}to{background-position:200% 0}}.ai-section{--section-accent: var(--accent, #ff7900);--section-border-hover: 1px solid var(--card-border-hover, rgba(255, 121, 0, .2));--section-background: var( --section-surface, var(--section-background, var(--card-section-bg, #fafafa)) );--section-background-hover: var( --section-surface-hover, var(--section-background-hover, var(--card-section-bg, #fafafa)) );--section-backdrop-filter: blur(12px);--section-spacing-bottom: clamp(4px, .8vw, 12px);--section-glow-background: radial-gradient( circle at top right, rgba(255, 121, 0, .35) 0%, transparent 65% );--section-glow-opacity-hover: .12;--section-title-underline-length: clamp(32px, 3vw, 48px);--section-title-underline-hover-length: clamp(40px, 4vw, 64px);--section-title-underline-height: 3px;--section-title-underline-offset: -10px;--section-title-hover-color: rgba(255, 180, 100, 1);height:100%!important;margin-bottom:var(--section-spacing-bottom)!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.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:var(--section-padding);border-radius:var(--section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow)}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--section-card-gap)!important}.ai-section--main{--section-background: var(--section-bg-main, var(--section-surface, var(--background)));--section-background-hover: var( --section-bg-main-hover, var(--section-surface-hover, var(--background)) )}.ai-section--contrast{--section-background: var(--section-bg-contrast, var(--card-section-bg));--section-background-hover: var(--section-bg-contrast-hover, var(--card-section-card-bg))}.ai-section__header{display:flex;flex-direction:row;gap:calc(var(--card-gap) * .75);width:100%;box-sizing:border-box;align-items:center!important;padding:0 0 calc(var(--card-gap) * .75) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:calc(var(--card-gap) * .75)!important}.ai-section__title{font-size:var(--section-title-font-size, 1.1rem);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(--section-title-font-size, 1.1rem)!important;font-weight:var(--section-title-font-weight, 700)!important;letter-spacing:var(--section-title-letter-spacing, -.02em)!important;line-height:var(--section-title-line-height, 1.3)!important;color:var(--card-text-primary, #1c1c1f)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:color .22s cubic-bezier(.4,0,.2,1)!important;padding:0!important;margin:0 0 var(--section-title-margin-bottom) 0!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--section-title-underline-offset, -10px)!important;width:var(--section-title-underline-length)!important;height:var(--section-title-underline-height)!important;background:var(--section-accent, var(--accent, #ff7900))!important;border-radius:2px!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--card-text-primary, #1c1c1f)!important}.ai-section__title:hover:before{width:var(--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:calc(var(--card-gap) * .75)!important}.ai-section__description{font-size:var(--section-description-font-size, .8rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.4;margin:0;color:#1c1c1fb3!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:calc(var(--card-gap) * .5)!important;transition:color .2s ease!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:#1c1c1fcc!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:calc(var(--tag-padding-y-sm) * .75) calc(var(--tag-padding-x) * .875)!important;background:linear-gradient(135deg,#ff790026,#ff79001f)!important;color:#ff7900e6!important;border:none!important;box-shadow:none!important;border-radius:var(--section-card-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:#ff790033!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:calc(var(--card-padding) * 1.5)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--section-item-background, var(--card-section-bg))!important;border:1px dashed var(--border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--card-gap)!important;opacity:.5!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(--section-item-background-hover, var(--card-section-card-bg))!important;border-color:var(--accent)!important}.ai-section .section-empty:hover lucide-icon{opacity:.7!important}.ai-section--info{--section-accent: var(--section-accent-info, #ff7900)}.ai-section--analytics{--section-accent: var(--section-accent-analytics, #ff7900)}.ai-section--financials{--section-accent: var(--section-accent-financials, #ff7900)}.ai-section--map{--section-accent: var(--section-accent-map, #ff7900)}.ai-section--network-card{--section-accent: var(--section-accent-network, #ff7900)}.ai-section--contact-card{--section-accent: var(--section-accent-contact, #ff7900)}.ai-section--product{--section-accent: var(--section-accent-product, #ff7900)}.ai-section--solutions{--section-accent: var(--section-accent-solutions, #ff7900)}.ai-section--overview{--section-accent: var(--section-accent-overview, #ff7900)}.ai-section--list,.ai-section--info-list{--section-accent: var(--section-accent-list, #ff7900)}.ai-section--event{--section-accent: var(--section-accent-event, #ff7900)}.ai-section--chart{--section-accent: var(--section-accent-chart, var(--accent, #ff7900))}.ai-section--text-reference{--section-accent: var(--section-accent-reference, var(--accent, #ff7900))}.ai-section--quotation{--section-accent: var(--section-accent-quotation, var(--accent, #ff7900))}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--section-padding);--section-spacing-bottom: calc(var(--card-gap) * 1.25);--section-gap: var(--section-card-gap);--section-gap-internal: var(--card-gap);--section-title-underline-length: 32px;--section-title-underline-hover-length: 40px;--section-title-underline-height: 2px;--section-title-underline-offset: -8px;--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:none!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 calc(var(--card-gap) * .75) 0!important;gap:calc(var(--card-gap) * .75)!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(--card-gap)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:4px!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: var(--spacing-md);--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-sticky: 200;--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(--section-item-background);--surface-raised: var(--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:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.section-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card{transition: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)}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes section-item-stream{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes unified-stream-in{0%{opacity:0;transform:translateY(var(--motion-distance-sm))}to{opacity:1;transform:translateY(0)}}.section-card,.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.section-card:hover,.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible,.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card,.unified-card{transition:none}}.section-card.section-item-streaming,.section-card.item-streaming,.section-card.field-streaming,.unified-card.section-item-streaming,.unified-card.item-streaming,.unified-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.section-card.section-item-entered,.section-card.item-entered,.section-card.field-entered,.unified-card.section-item-entered,.unified-card.item-entered,.unified-card.field-entered{animation:none}.section-card.section-item-stagger-0,.section-card.item-stagger-0,.section-card.field-stagger-0,.unified-card.section-item-stagger-0,.unified-card.item-stagger-0,.unified-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.section-card.section-item-stagger-1,.section-card.item-stagger-1,.section-card.field-stagger-1,.unified-card.section-item-stagger-1,.unified-card.item-stagger-1,.unified-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.section-card.section-item-stagger-2,.section-card.item-stagger-2,.section-card.field-stagger-2,.unified-card.section-item-stagger-2,.unified-card.item-stagger-2,.unified-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.section-card.section-item-stagger-3,.section-card.item-stagger-3,.section-card.field-stagger-3,.unified-card.section-item-stagger-3,.unified-card.item-stagger-3,.unified-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.section-card.section-item-stagger-4,.section-card.item-stagger-4,.section-card.field-stagger-4,.unified-card.section-item-stagger-4,.unified-card.item-stagger-4,.unified-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.section-card.section-item-stagger-5,.section-card.item-stagger-5,.section-card.field-stagger-5,.unified-card.section-item-stagger-5,.unified-card.item-stagger-5,.unified-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.section-card.section-item-stagger-6,.section-card.item-stagger-6,.section-card.field-stagger-6,.unified-card.section-item-stagger-6,.unified-card.item-stagger-6,.unified-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.section-card.section-item-stagger-7,.section-card.item-stagger-7,.section-card.field-stagger-7,.unified-card.section-item-stagger-7,.unified-card.item-stagger-7,.unified-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.section-card.section-item-stagger-8,.section-card.item-stagger-8,.section-card.field-stagger-8,.unified-card.section-item-stagger-8,.unified-card.item-stagger-8,.unified-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.section-card.section-item-stagger-9,.section-card.item-stagger-9,.section-card.field-stagger-9,.unified-card.section-item-stagger-9,.unified-card.item-stagger-9,.unified-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.section-card.section-item-stagger-10,.section-card.item-stagger-10,.section-card.field-stagger-10,.unified-card.section-item-stagger-10,.unified-card.item-stagger-10,.unified-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.section-card.section-item-stagger-11,.section-card.item-stagger-11,.section-card.field-stagger-11,.unified-card.section-item-stagger-11,.unified-card.item-stagger-11,.unified-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.section-card.section-item-stagger-12,.section-card.item-stagger-12,.section-card.field-stagger-12,.unified-card.section-item-stagger-12,.unified-card.item-stagger-12,.unified-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.section-card.section-item-stagger-13,.section-card.item-stagger-13,.section-card.field-stagger-13,.unified-card.section-item-stagger-13,.unified-card.item-stagger-13,.unified-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.section-card.section-item-stagger-14,.section-card.item-stagger-14,.section-card.field-stagger-14,.unified-card.section-item-stagger-14,.unified-card.item-stagger-14,.unified-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.section-card.section-item-stagger-15,.section-card.item-stagger-15,.section-card.field-stagger-15,.unified-card.section-item-stagger-15,.unified-card.item-stagger-15,.unified-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.analytics-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.analytics-metrics{grid-template-columns:1fr;gap:var(--gap-sm)}}.analytics-metric{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.analytics-metric:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.analytics-metric:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.analytics-metric{transition:none}}.analytics-metric.section-item-streaming,.analytics-metric.item-streaming,.analytics-metric.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.analytics-metric.section-item-entered,.analytics-metric.item-entered,.analytics-metric.field-entered{animation:none}.analytics-metric.section-item-stagger-0,.analytics-metric.item-stagger-0,.analytics-metric.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-1,.analytics-metric.item-stagger-1,.analytics-metric.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-2,.analytics-metric.item-stagger-2,.analytics-metric.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-3,.analytics-metric.item-stagger-3,.analytics-metric.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-4,.analytics-metric.item-stagger-4,.analytics-metric.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-5,.analytics-metric.item-stagger-5,.analytics-metric.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-6,.analytics-metric.item-stagger-6,.analytics-metric.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-7,.analytics-metric.item-stagger-7,.analytics-metric.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-8,.analytics-metric.item-stagger-8,.analytics-metric.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-9,.analytics-metric.item-stagger-9,.analytics-metric.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-10,.analytics-metric.item-stagger-10,.analytics-metric.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-11,.analytics-metric.item-stagger-11,.analytics-metric.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-12,.analytics-metric.item-stagger-12,.analytics-metric.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-13,.analytics-metric.item-stagger-13,.analytics-metric.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-14,.analytics-metric.item-stagger-14,.analytics-metric.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-15,.analytics-metric.item-stagger-15,.analytics-metric.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.analytics-metric__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height)}.analytics-metric__value{font-size:var(--card-value-font-size);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.analytics-metric__change{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--card-meta-font-size);font-weight:600}.analytics-metric__change lucide-icon,.analytics-metric__change svg{width:var(--icon-xs);height:var(--icon-xs)}.analytics-metric__change.trend--up{color:#4ade80}.analytics-metric__change.trend--down{color:#f87171}.analytics-metric__change.trend--stable{color:#facc15}.analytics-metric__progress{width:100%;height:3px;background:var(--muted);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-2)}.analytics-metric__progress-bar{height:100%;background:var(--accent);border-radius:inherit;transition:width var(--duration-slow) var(--ease-out-smooth)}.analytics-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.analytics-empty lucide-icon,.analytics-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.analytics-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.financials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.financials-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.financial-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.financial-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.financial-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.financial-card{transition:none}}.financial-card.section-item-streaming,.financial-card.item-streaming,.financial-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.financial-card.section-item-entered,.financial-card.item-entered,.financial-card.field-entered{animation:none}.financial-card.section-item-stagger-0,.financial-card.item-stagger-0,.financial-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.financial-card.section-item-stagger-1,.financial-card.item-stagger-1,.financial-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.financial-card.section-item-stagger-2,.financial-card.item-stagger-2,.financial-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.financial-card.section-item-stagger-3,.financial-card.item-stagger-3,.financial-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.financial-card.section-item-stagger-4,.financial-card.item-stagger-4,.financial-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.financial-card.section-item-stagger-5,.financial-card.item-stagger-5,.financial-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.financial-card.section-item-stagger-6,.financial-card.item-stagger-6,.financial-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.financial-card.section-item-stagger-7,.financial-card.item-stagger-7,.financial-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.financial-card.section-item-stagger-8,.financial-card.item-stagger-8,.financial-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.financial-card.section-item-stagger-9,.financial-card.item-stagger-9,.financial-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.financial-card.section-item-stagger-10,.financial-card.item-stagger-10,.financial-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.financial-card.section-item-stagger-11,.financial-card.item-stagger-11,.financial-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.financial-card.section-item-stagger-12,.financial-card.item-stagger-12,.financial-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.financial-card.section-item-stagger-13,.financial-card.item-stagger-13,.financial-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.financial-card.section-item-stagger-14,.financial-card.item-stagger-14,.financial-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.financial-card.section-item-stagger-15,.financial-card.item-stagger-15,.financial-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.financial-card__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height)}.financial-card__value{font-size:var(--card-value-font-size-large);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);display:flex;align-items:baseline;gap:var(--space-2)}.financial-card__change{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--card-meta-font-size);font-weight:600}.financial-card__change lucide-icon,.financial-card__change svg{width:var(--icon-xs);height:var(--icon-xs)}.financial-card__change.trend--up{color:#4ade80}.financial-card__change.trend--down{color:#f87171}.financial-card__change.trend--stable{color:#facc15}.financial-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-md);height:var(--icon-md);color:var(--accent);flex-shrink:0}.financial-card__icon lucide-icon,.financial-card__icon svg{width:calc(var(--icon-md) * .6);height:calc(var(--icon-md) * .6)}.financials-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.financials-empty lucide-icon,.financials-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.financials-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.overview-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.overview-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3)}.overview-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.overview-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.overview-card{transition:none}}.overview-card.section-item-streaming,.overview-card.item-streaming,.overview-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.overview-card.section-item-entered,.overview-card.item-entered,.overview-card.field-entered{animation:none}.overview-card.section-item-stagger-0,.overview-card.item-stagger-0,.overview-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.overview-card.section-item-stagger-1,.overview-card.item-stagger-1,.overview-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.overview-card.section-item-stagger-2,.overview-card.item-stagger-2,.overview-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.overview-card.section-item-stagger-3,.overview-card.item-stagger-3,.overview-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.overview-card.section-item-stagger-4,.overview-card.item-stagger-4,.overview-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.overview-card.section-item-stagger-5,.overview-card.item-stagger-5,.overview-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.overview-card.section-item-stagger-6,.overview-card.item-stagger-6,.overview-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.overview-card.section-item-stagger-7,.overview-card.item-stagger-7,.overview-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.overview-card.section-item-stagger-8,.overview-card.item-stagger-8,.overview-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.overview-card.section-item-stagger-9,.overview-card.item-stagger-9,.overview-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.overview-card.section-item-stagger-10,.overview-card.item-stagger-10,.overview-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.overview-card.section-item-stagger-11,.overview-card.item-stagger-11,.overview-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.overview-card.section-item-stagger-12,.overview-card.item-stagger-12,.overview-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.overview-card.section-item-stagger-13,.overview-card.item-stagger-13,.overview-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.overview-card.section-item-stagger-14,.overview-card.item-stagger-14,.overview-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.overview-card.section-item-stagger-15,.overview-card.item-stagger-15,.overview-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.overview-card__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height);margin-bottom:0}.overview-card__value{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;text-align:right}.overview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.overview-empty lucide-icon,.overview-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.overview-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.info-matrix{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.info-row{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);gap:var(--space-4)}.info-row:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.info-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.info-row{transition:none}}.info-row.section-item-streaming,.info-row.item-streaming,.info-row.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.info-row.section-item-entered,.info-row.item-entered,.info-row.field-entered{animation:none}.info-row.section-item-stagger-0,.info-row.item-stagger-0,.info-row.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.info-row.section-item-stagger-1,.info-row.item-stagger-1,.info-row.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.info-row.section-item-stagger-2,.info-row.item-stagger-2,.info-row.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.info-row.section-item-stagger-3,.info-row.item-stagger-3,.info-row.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.info-row.section-item-stagger-4,.info-row.item-stagger-4,.info-row.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.info-row.section-item-stagger-5,.info-row.item-stagger-5,.info-row.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.info-row.section-item-stagger-6,.info-row.item-stagger-6,.info-row.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.info-row.section-item-stagger-7,.info-row.item-stagger-7,.info-row.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.info-row.section-item-stagger-8,.info-row.item-stagger-8,.info-row.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.info-row.section-item-stagger-9,.info-row.item-stagger-9,.info-row.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.info-row.section-item-stagger-10,.info-row.item-stagger-10,.info-row.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.info-row.section-item-stagger-11,.info-row.item-stagger-11,.info-row.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.info-row.section-item-stagger-12,.info-row.item-stagger-12,.info-row.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.info-row.section-item-stagger-13,.info-row.item-stagger-13,.info-row.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.info-row.section-item-stagger-14,.info-row.item-stagger-14,.info-row.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.info-row.section-item-stagger-15,.info-row.item-stagger-15,.info-row.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.info-row__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height);margin-bottom:0;min-width:80px}.info-row__value{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);text-align:right;flex:1;color:var(--foreground)}.info-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.info-empty lucide-icon,.info-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.info-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.news-feed{display:flex;flex-direction:column;gap:var(--gap-sm);width:100%}.news-item{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.news-item:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.news-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.news-item{transition:none}}.news-item.section-item-streaming,.news-item.item-streaming,.news-item.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.news-item.section-item-entered,.news-item.item-entered,.news-item.field-entered{animation:none}.news-item.section-item-stagger-0,.news-item.item-stagger-0,.news-item.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.news-item.section-item-stagger-1,.news-item.item-stagger-1,.news-item.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.news-item.section-item-stagger-2,.news-item.item-stagger-2,.news-item.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.news-item.section-item-stagger-3,.news-item.item-stagger-3,.news-item.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.news-item.section-item-stagger-4,.news-item.item-stagger-4,.news-item.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.news-item.section-item-stagger-5,.news-item.item-stagger-5,.news-item.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.news-item.section-item-stagger-6,.news-item.item-stagger-6,.news-item.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.news-item.section-item-stagger-7,.news-item.item-stagger-7,.news-item.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.news-item.section-item-stagger-8,.news-item.item-stagger-8,.news-item.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.news-item.section-item-stagger-9,.news-item.item-stagger-9,.news-item.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.news-item.section-item-stagger-10,.news-item.item-stagger-10,.news-item.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.news-item.section-item-stagger-11,.news-item.item-stagger-11,.news-item.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.news-item.section-item-stagger-12,.news-item.item-stagger-12,.news-item.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.news-item.section-item-stagger-13,.news-item.item-stagger-13,.news-item.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.news-item.section-item-stagger-14,.news-item.item-stagger-14,.news-item.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.news-item.section-item-stagger-15,.news-item.item-stagger-15,.news-item.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.news-item__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between;margin-bottom:var(--space-1)}.news-item__tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.news-item__date{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height)}.news-item__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.news-item__summary{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.news-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.news-empty lucide-icon,.news-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.news-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.contact-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.contact-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:flex-start;gap:var(--space-3)}.contact-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.contact-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.contact-card{transition:none}}.contact-card.section-item-streaming,.contact-card.item-streaming,.contact-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.contact-card.section-item-entered,.contact-card.item-entered,.contact-card.field-entered{animation:none}.contact-card.section-item-stagger-0,.contact-card.item-stagger-0,.contact-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.contact-card.section-item-stagger-1,.contact-card.item-stagger-1,.contact-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.contact-card.section-item-stagger-2,.contact-card.item-stagger-2,.contact-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.contact-card.section-item-stagger-3,.contact-card.item-stagger-3,.contact-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.contact-card.section-item-stagger-4,.contact-card.item-stagger-4,.contact-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.contact-card.section-item-stagger-5,.contact-card.item-stagger-5,.contact-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.contact-card.section-item-stagger-6,.contact-card.item-stagger-6,.contact-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.contact-card.section-item-stagger-7,.contact-card.item-stagger-7,.contact-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.contact-card.section-item-stagger-8,.contact-card.item-stagger-8,.contact-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.contact-card.section-item-stagger-9,.contact-card.item-stagger-9,.contact-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.contact-card.section-item-stagger-10,.contact-card.item-stagger-10,.contact-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.contact-card.section-item-stagger-11,.contact-card.item-stagger-11,.contact-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.contact-card.section-item-stagger-12,.contact-card.item-stagger-12,.contact-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.contact-card.section-item-stagger-13,.contact-card.item-stagger-13,.contact-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.contact-card.section-item-stagger-14,.contact-card.item-stagger-14,.contact-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.contact-card.section-item-stagger-15,.contact-card.item-stagger-15,.contact-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.contact-card__avatar{width:36px;height:36px;border-radius:var(--radius-full);background:#ff790026;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.contact-card__avatar img{width:100%;height:100%;object-fit:cover}.contact-card__avatar__initials{font-size:12.6px;font-weight:600;color:var(--accent)}.contact-card__initials{font-size:.75rem;font-weight:600;color:var(--accent)}.contact-card__info{display:flex;flex-direction:column;gap:var(--space-1);width:100%;flex:1;min-width:0}.contact-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.contact-card__role{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.contact-card__email,.contact-card__phone{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1);text-decoration:none}.contact-card__email lucide-icon,.contact-card__email svg,.contact-card__phone lucide-icon,.contact-card__phone svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.6}.contact-card__email:hover,.contact-card__phone:hover{color:var(--accent)}.contact-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.contact-empty lucide-icon,.contact-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.contact-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.event-grid{display:flex;flex-direction:column;gap:var(--gap-sm);width:100%}.event-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:flex-start;gap:var(--space-3)}.event-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.event-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.event-card{transition:none}}.event-card.section-item-streaming,.event-card.item-streaming,.event-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.event-card.section-item-entered,.event-card.item-entered,.event-card.field-entered{animation:none}.event-card.section-item-stagger-0,.event-card.item-stagger-0,.event-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.event-card.section-item-stagger-1,.event-card.item-stagger-1,.event-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.event-card.section-item-stagger-2,.event-card.item-stagger-2,.event-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.event-card.section-item-stagger-3,.event-card.item-stagger-3,.event-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.event-card.section-item-stagger-4,.event-card.item-stagger-4,.event-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.event-card.section-item-stagger-5,.event-card.item-stagger-5,.event-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.event-card.section-item-stagger-6,.event-card.item-stagger-6,.event-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.event-card.section-item-stagger-7,.event-card.item-stagger-7,.event-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.event-card.section-item-stagger-8,.event-card.item-stagger-8,.event-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.event-card.section-item-stagger-9,.event-card.item-stagger-9,.event-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.event-card.section-item-stagger-10,.event-card.item-stagger-10,.event-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.event-card.section-item-stagger-11,.event-card.item-stagger-11,.event-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.event-card.section-item-stagger-12,.event-card.item-stagger-12,.event-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.event-card.section-item-stagger-13,.event-card.item-stagger-13,.event-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.event-card.section-item-stagger-14,.event-card.item-stagger-14,.event-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.event-card.section-item-stagger-15,.event-card.item-stagger-15,.event-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.event-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-xl);height:var(--icon-xl);color:var(--accent);flex-shrink:0;background:#ff79001a;border-radius:var(--radius-sm)}.event-card__icon lucide-icon,.event-card__icon svg{width:calc(var(--icon-xl) * .6);height:calc(var(--icon-xl) * .6)}.event-card__content{display:flex;flex-direction:column;gap:var(--space-1);width:100%;flex:1;min-width:0}.event-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.event-card__datetime{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;flex-direction:row;align-items:center;gap:var(--space-3);width:100%;flex-wrap:wrap}.event-card__datetime lucide-icon,.event-card__datetime svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.5}.event-card__date,.event-card__time,.event-card__location{display:inline-flex;align-items:center;gap:var(--space-1)}.event-card__status{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.event-card__status.status--completed,.event-card__status.status--success{color:var(--status-success);background:var(--status-success-bg)}.event-card__status.status--active,.event-card__status.status--in-progress{color:var(--accent);background:#ff79001a}.event-card__status.status--pending,.event-card__status.status--warning{color:var(--status-warning);background:var(--status-warning-bg)}.event-card__status.status--blocked,.event-card__status.status--cancelled,.event-card__status.status--error{color:var(--status-error);background:var(--status-error-bg)}.event-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.event-empty lucide-icon,.event-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.event-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.quotation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.quotation-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.quotation-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.quotation-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.quotation-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.quotation-card{transition:none}}.quotation-card.section-item-streaming,.quotation-card.item-streaming,.quotation-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.quotation-card.section-item-entered,.quotation-card.item-entered,.quotation-card.field-entered{animation:none}.quotation-card.section-item-stagger-0,.quotation-card.item-stagger-0,.quotation-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-1,.quotation-card.item-stagger-1,.quotation-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-2,.quotation-card.item-stagger-2,.quotation-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-3,.quotation-card.item-stagger-3,.quotation-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-4,.quotation-card.item-stagger-4,.quotation-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-5,.quotation-card.item-stagger-5,.quotation-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-6,.quotation-card.item-stagger-6,.quotation-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-7,.quotation-card.item-stagger-7,.quotation-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-8,.quotation-card.item-stagger-8,.quotation-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-9,.quotation-card.item-stagger-9,.quotation-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-10,.quotation-card.item-stagger-10,.quotation-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-11,.quotation-card.item-stagger-11,.quotation-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-12,.quotation-card.item-stagger-12,.quotation-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-13,.quotation-card.item-stagger-13,.quotation-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-14,.quotation-card.item-stagger-14,.quotation-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-15,.quotation-card.item-stagger-15,.quotation-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.quotation-card__icon{display:none}.quotation-card__text{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);font-style:italic;line-height:1.6;padding-left:var(--space-3);border-left:2px solid var(--accent);color:var(--foreground)}.quotation-card__author{display:flex;flex-direction:column;gap:var(--space-0);width:100%;margin-top:var(--space-3)}.quotation-card__author-name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;color:var(--accent)}.quotation-card__author-role{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height)}.quotation-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.quotation-empty lucide-icon,.quotation-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.quotation-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.reference-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.reference-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.reference-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.reference-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.reference-card{transition:none}}.reference-card.section-item-streaming,.reference-card.item-streaming,.reference-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.reference-card.section-item-entered,.reference-card.item-entered,.reference-card.field-entered{animation:none}.reference-card.section-item-stagger-0,.reference-card.item-stagger-0,.reference-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.reference-card.section-item-stagger-1,.reference-card.item-stagger-1,.reference-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.reference-card.section-item-stagger-2,.reference-card.item-stagger-2,.reference-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.reference-card.section-item-stagger-3,.reference-card.item-stagger-3,.reference-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.reference-card.section-item-stagger-4,.reference-card.item-stagger-4,.reference-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.reference-card.section-item-stagger-5,.reference-card.item-stagger-5,.reference-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.reference-card.section-item-stagger-6,.reference-card.item-stagger-6,.reference-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.reference-card.section-item-stagger-7,.reference-card.item-stagger-7,.reference-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.reference-card.section-item-stagger-8,.reference-card.item-stagger-8,.reference-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.reference-card.section-item-stagger-9,.reference-card.item-stagger-9,.reference-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.reference-card.section-item-stagger-10,.reference-card.item-stagger-10,.reference-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.reference-card.section-item-stagger-11,.reference-card.item-stagger-11,.reference-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.reference-card.section-item-stagger-12,.reference-card.item-stagger-12,.reference-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.reference-card.section-item-stagger-13,.reference-card.item-stagger-13,.reference-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.reference-card.section-item-stagger-14,.reference-card.item-stagger-14,.reference-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.reference-card.section-item-stagger-15,.reference-card.item-stagger-15,.reference-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.reference-card__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between}.reference-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;flex:1}.reference-card__category{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.reference-card__meta{display:flex;flex-direction:row;align-items:center;gap:var(--space-4);width:100%;flex-wrap:wrap;margin-top:var(--space-1)}.reference-card__source,.reference-card__date{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1)}.reference-card__source lucide-icon,.reference-card__source svg,.reference-card__date lucide-icon,.reference-card__date svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.5}.reference-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.reference-empty lucide-icon,.reference-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.reference-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.network-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.network-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.network-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.network-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.network-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.network-card{transition:none}}.network-card.section-item-streaming,.network-card.item-streaming,.network-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.network-card.section-item-entered,.network-card.item-entered,.network-card.field-entered{animation:none}.network-card.section-item-stagger-0,.network-card.item-stagger-0,.network-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.network-card.section-item-stagger-1,.network-card.item-stagger-1,.network-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.network-card.section-item-stagger-2,.network-card.item-stagger-2,.network-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.network-card.section-item-stagger-3,.network-card.item-stagger-3,.network-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.network-card.section-item-stagger-4,.network-card.item-stagger-4,.network-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.network-card.section-item-stagger-5,.network-card.item-stagger-5,.network-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.network-card.section-item-stagger-6,.network-card.item-stagger-6,.network-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.network-card.section-item-stagger-7,.network-card.item-stagger-7,.network-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.network-card.section-item-stagger-8,.network-card.item-stagger-8,.network-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.network-card.section-item-stagger-9,.network-card.item-stagger-9,.network-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.network-card.section-item-stagger-10,.network-card.item-stagger-10,.network-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.network-card.section-item-stagger-11,.network-card.item-stagger-11,.network-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.network-card.section-item-stagger-12,.network-card.item-stagger-12,.network-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.network-card.section-item-stagger-13,.network-card.item-stagger-13,.network-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.network-card.section-item-stagger-14,.network-card.item-stagger-14,.network-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.network-card.section-item-stagger-15,.network-card.item-stagger-15,.network-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.network-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-lg);height:var(--icon-lg);color:var(--accent);flex-shrink:0;margin-bottom:var(--space-1)}.network-card__icon lucide-icon,.network-card__icon svg{width:calc(var(--icon-lg) * .6);height:calc(var(--icon-lg) * .6)}.network-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.network-card__type{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap;margin-bottom:var(--space-1)}.network-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.network-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.network-empty lucide-icon,.network-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.network-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.product-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.product-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.product-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.product-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.product-card{transition:none}}.product-card.section-item-streaming,.product-card.item-streaming,.product-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.product-card.section-item-entered,.product-card.item-entered,.product-card.field-entered{animation:none}.product-card.section-item-stagger-0,.product-card.item-stagger-0,.product-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.product-card.section-item-stagger-1,.product-card.item-stagger-1,.product-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.product-card.section-item-stagger-2,.product-card.item-stagger-2,.product-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.product-card.section-item-stagger-3,.product-card.item-stagger-3,.product-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.product-card.section-item-stagger-4,.product-card.item-stagger-4,.product-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.product-card.section-item-stagger-5,.product-card.item-stagger-5,.product-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.product-card.section-item-stagger-6,.product-card.item-stagger-6,.product-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.product-card.section-item-stagger-7,.product-card.item-stagger-7,.product-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.product-card.section-item-stagger-8,.product-card.item-stagger-8,.product-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.product-card.section-item-stagger-9,.product-card.item-stagger-9,.product-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.product-card.section-item-stagger-10,.product-card.item-stagger-10,.product-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.product-card.section-item-stagger-11,.product-card.item-stagger-11,.product-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.product-card.section-item-stagger-12,.product-card.item-stagger-12,.product-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.product-card.section-item-stagger-13,.product-card.item-stagger-13,.product-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.product-card.section-item-stagger-14,.product-card.item-stagger-14,.product-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.product-card.section-item-stagger-15,.product-card.item-stagger-15,.product-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.product-card__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between;margin-bottom:var(--space-1)}.product-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;flex:1}.product-card__category{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.product-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0 0 var(--space-3) 0}.product-card__features{display:flex;flex-direction:column;gap:var(--space-1);width:100%}.product-card__feature{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;align-items:center;gap:var(--space-2)}.product-card__feature lucide-icon,.product-card__feature svg{width:var(--icon-xs);height:var(--icon-xs);color:var(--status-success)}.product-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.product-empty lucide-icon,.product-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.product-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.solutions-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.solution-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.solution-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.solution-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.solution-card{transition:none}}.solution-card.section-item-streaming,.solution-card.item-streaming,.solution-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.solution-card.section-item-entered,.solution-card.item-entered,.solution-card.field-entered{animation:none}.solution-card.section-item-stagger-0,.solution-card.item-stagger-0,.solution-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.solution-card.section-item-stagger-1,.solution-card.item-stagger-1,.solution-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.solution-card.section-item-stagger-2,.solution-card.item-stagger-2,.solution-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.solution-card.section-item-stagger-3,.solution-card.item-stagger-3,.solution-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.solution-card.section-item-stagger-4,.solution-card.item-stagger-4,.solution-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.solution-card.section-item-stagger-5,.solution-card.item-stagger-5,.solution-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.solution-card.section-item-stagger-6,.solution-card.item-stagger-6,.solution-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.solution-card.section-item-stagger-7,.solution-card.item-stagger-7,.solution-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.solution-card.section-item-stagger-8,.solution-card.item-stagger-8,.solution-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.solution-card.section-item-stagger-9,.solution-card.item-stagger-9,.solution-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.solution-card.section-item-stagger-10,.solution-card.item-stagger-10,.solution-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.solution-card.section-item-stagger-11,.solution-card.item-stagger-11,.solution-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.solution-card.section-item-stagger-12,.solution-card.item-stagger-12,.solution-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.solution-card.section-item-stagger-13,.solution-card.item-stagger-13,.solution-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.solution-card.section-item-stagger-14,.solution-card.item-stagger-14,.solution-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.solution-card.section-item-stagger-15,.solution-card.item-stagger-15,.solution-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.solution-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-xl);height:var(--icon-xl);color:var(--accent);flex-shrink:0;margin-bottom:var(--space-2)}.solution-card__icon lucide-icon,.solution-card__icon svg{width:calc(var(--icon-xl) * .6);height:calc(var(--icon-xl) * .6)}.solution-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.solution-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.solution-card__benefits{display:flex;flex-direction:column;gap:var(--space-1);width:100%;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.solution-card__benefit{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;align-items:center;gap:var(--space-2)}.solution-card__benefit lucide-icon,.solution-card__benefit svg{width:var(--icon-xs);height:var(--icon-xs);color:var(--accent)}.solutions-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.solutions-empty lucide-icon,.solutions-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.solutions-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.timeline-grid{display:flex;flex-direction:column;gap:0;width:100%;position:relative;padding-left:var(--space-5)}.timeline-grid:before{content:\"\";position:absolute;left:var(--space-1);top:var(--space-3);bottom:var(--space-3);width:1px;background:var(--accent);opacity:.3}.timeline-item{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);position:relative}.timeline-item:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.timeline-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.timeline-item{transition:none}}.timeline-item.section-item-streaming,.timeline-item.item-streaming,.timeline-item.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.timeline-item.section-item-entered,.timeline-item.item-entered,.timeline-item.field-entered{animation:none}.timeline-item.section-item-stagger-0,.timeline-item.item-stagger-0,.timeline-item.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-1,.timeline-item.item-stagger-1,.timeline-item.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-2,.timeline-item.item-stagger-2,.timeline-item.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-3,.timeline-item.item-stagger-3,.timeline-item.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-4,.timeline-item.item-stagger-4,.timeline-item.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-5,.timeline-item.item-stagger-5,.timeline-item.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-6,.timeline-item.item-stagger-6,.timeline-item.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-7,.timeline-item.item-stagger-7,.timeline-item.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-8,.timeline-item.item-stagger-8,.timeline-item.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-9,.timeline-item.item-stagger-9,.timeline-item.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-10,.timeline-item.item-stagger-10,.timeline-item.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-11,.timeline-item.item-stagger-11,.timeline-item.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-12,.timeline-item.item-stagger-12,.timeline-item.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-13,.timeline-item.item-stagger-13,.timeline-item.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-14,.timeline-item.item-stagger-14,.timeline-item.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-15,.timeline-item.item-stagger-15,.timeline-item.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.timeline-item:before{content:\"\";position:absolute;left:calc(-1 * var(--space-5) + var(--space-1) - 3px);top:var(--space-3);width:7px;height:7px;background:var(--accent);border-radius:var(--radius-full);z-index:1}.timeline-item__date{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap;margin-bottom:var(--space-1)}.timeline-item__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.timeline-item__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.timeline-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.timeline-empty lucide-icon,.timeline-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.timeline-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.brand-colors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.brand-colors-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.brand-color-tile{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:0;overflow:hidden}.brand-color-tile:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.brand-color-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.brand-color-tile{transition:none}}.brand-color-tile.section-item-streaming,.brand-color-tile.item-streaming,.brand-color-tile.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.brand-color-tile.section-item-entered,.brand-color-tile.item-entered,.brand-color-tile.field-entered{animation:none}.brand-color-tile.section-item-stagger-0,.brand-color-tile.item-stagger-0,.brand-color-tile.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-1,.brand-color-tile.item-stagger-1,.brand-color-tile.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-2,.brand-color-tile.item-stagger-2,.brand-color-tile.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-3,.brand-color-tile.item-stagger-3,.brand-color-tile.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-4,.brand-color-tile.item-stagger-4,.brand-color-tile.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-5,.brand-color-tile.item-stagger-5,.brand-color-tile.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-6,.brand-color-tile.item-stagger-6,.brand-color-tile.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-7,.brand-color-tile.item-stagger-7,.brand-color-tile.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-8,.brand-color-tile.item-stagger-8,.brand-color-tile.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-9,.brand-color-tile.item-stagger-9,.brand-color-tile.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-10,.brand-color-tile.item-stagger-10,.brand-color-tile.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-11,.brand-color-tile.item-stagger-11,.brand-color-tile.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-12,.brand-color-tile.item-stagger-12,.brand-color-tile.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-13,.brand-color-tile.item-stagger-13,.brand-color-tile.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-14,.brand-color-tile.item-stagger-14,.brand-color-tile.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-15,.brand-color-tile.item-stagger-15,.brand-color-tile.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.brand-color-tile__swatch{width:100%;height:48px}.brand-color-tile__info{padding:var(--space-2)}.brand-color-tile__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;font-size:var(--card-subtitle-font-size);margin:0 0 var(--space-0) 0}.brand-color-tile__code{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);font-family:SF Mono,Monaco,Consolas,monospace}.brand-colors-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.brand-colors-empty lucide-icon,.brand-colors-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.brand-colors-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.social-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.social-feed{grid-template-columns:1fr;gap:var(--gap-sm)}}.social-post{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.social-post:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.social-post:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.social-post{transition:none}}.social-post.section-item-streaming,.social-post.item-streaming,.social-post.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.social-post.section-item-entered,.social-post.item-entered,.social-post.field-entered{animation:none}.social-post.section-item-stagger-0,.social-post.item-stagger-0,.social-post.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.social-post.section-item-stagger-1,.social-post.item-stagger-1,.social-post.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.social-post.section-item-stagger-2,.social-post.item-stagger-2,.social-post.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.social-post.section-item-stagger-3,.social-post.item-stagger-3,.social-post.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.social-post.section-item-stagger-4,.social-post.item-stagger-4,.social-post.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.social-post.section-item-stagger-5,.social-post.item-stagger-5,.social-post.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.social-post.section-item-stagger-6,.social-post.item-stagger-6,.social-post.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.social-post.section-item-stagger-7,.social-post.item-stagger-7,.social-post.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.social-post.section-item-stagger-8,.social-post.item-stagger-8,.social-post.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.social-post.section-item-stagger-9,.social-post.item-stagger-9,.social-post.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.social-post.section-item-stagger-10,.social-post.item-stagger-10,.social-post.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.social-post.section-item-stagger-11,.social-post.item-stagger-11,.social-post.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.social-post.section-item-stagger-12,.social-post.item-stagger-12,.social-post.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.social-post.section-item-stagger-13,.social-post.item-stagger-13,.social-post.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.social-post.section-item-stagger-14,.social-post.item-stagger-14,.social-post.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.social-post.section-item-stagger-15,.social-post.item-stagger-15,.social-post.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.social-post__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;margin-bottom:var(--space-2)}.social-post__platform{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap;text-transform:capitalize}.social-post__handle{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.social-post__followers{font-size:var(--card-value-font-size);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);margin-bottom:var(--space-1)}.social-post__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height)}.social-post__content{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:var(--space-2) 0 0 0}.social-media-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.social-media-empty lucide-icon,.social-media-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.social-media-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.gallery-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.gallery-item{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:0;overflow:hidden;aspect-ratio:4/3}.gallery-item:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.gallery-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.gallery-item{transition:none}}.gallery-item.section-item-streaming,.gallery-item.item-streaming,.gallery-item.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.gallery-item.section-item-entered,.gallery-item.item-entered,.gallery-item.field-entered{animation:none}.gallery-item.section-item-stagger-0,.gallery-item.item-stagger-0,.gallery-item.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-1,.gallery-item.item-stagger-1,.gallery-item.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-2,.gallery-item.item-stagger-2,.gallery-item.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-3,.gallery-item.item-stagger-3,.gallery-item.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-4,.gallery-item.item-stagger-4,.gallery-item.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-5,.gallery-item.item-stagger-5,.gallery-item.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-6,.gallery-item.item-stagger-6,.gallery-item.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-7,.gallery-item.item-stagger-7,.gallery-item.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-8,.gallery-item.item-stagger-8,.gallery-item.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-9,.gallery-item.item-stagger-9,.gallery-item.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-10,.gallery-item.item-stagger-10,.gallery-item.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-11,.gallery-item.item-stagger-11,.gallery-item.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-12,.gallery-item.item-stagger-12,.gallery-item.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-13,.gallery-item.item-stagger-13,.gallery-item.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-14,.gallery-item.item-stagger-14,.gallery-item.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-15,.gallery-item.item-stagger-15,.gallery-item.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.gallery-item__image{width:100%;height:100%;object-fit:cover}.gallery-item__caption{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);position:absolute;bottom:0;left:0;right:0;padding:var(--space-2);background:linear-gradient(transparent,#000000b3);color:#fff}.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.gallery-empty lucide-icon,.gallery-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.gallery-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.video-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.video-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:0;overflow:hidden}.video-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.video-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.video-card{transition:none}}.video-card.section-item-streaming,.video-card.item-streaming,.video-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.video-card.section-item-entered,.video-card.item-entered,.video-card.field-entered{animation:none}.video-card.section-item-stagger-0,.video-card.item-stagger-0,.video-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.video-card.section-item-stagger-1,.video-card.item-stagger-1,.video-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.video-card.section-item-stagger-2,.video-card.item-stagger-2,.video-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.video-card.section-item-stagger-3,.video-card.item-stagger-3,.video-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.video-card.section-item-stagger-4,.video-card.item-stagger-4,.video-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.video-card.section-item-stagger-5,.video-card.item-stagger-5,.video-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.video-card.section-item-stagger-6,.video-card.item-stagger-6,.video-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.video-card.section-item-stagger-7,.video-card.item-stagger-7,.video-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.video-card.section-item-stagger-8,.video-card.item-stagger-8,.video-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.video-card.section-item-stagger-9,.video-card.item-stagger-9,.video-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.video-card.section-item-stagger-10,.video-card.item-stagger-10,.video-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.video-card.section-item-stagger-11,.video-card.item-stagger-11,.video-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.video-card.section-item-stagger-12,.video-card.item-stagger-12,.video-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.video-card.section-item-stagger-13,.video-card.item-stagger-13,.video-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.video-card.section-item-stagger-14,.video-card.item-stagger-14,.video-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.video-card.section-item-stagger-15,.video-card.item-stagger-15,.video-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.video-card__thumbnail{width:100%;height:90px;background:#ff79001a;display:flex;align-items:center;justify-content:center;position:relative}.video-card__thumbnail img{width:100%;height:100%;object-fit:cover}.video-card__thumbnail:after{content:\"\\25b6\";position:absolute;width:28px;height:28px;background:#0009;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;padding-left:2px}.video-card__info{padding:var(--space-2) var(--space-3)}.video-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.video-card__meta{display:flex;flex-direction:row;align-items:center;gap:var(--space-3);width:100%}.video-card__duration,.video-card__views{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1)}.video-card__duration lucide-icon,.video-card__duration svg,.video-card__views lucide-icon,.video-card__views svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.5}.video-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.video-empty lucide-icon,.video-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.video-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.chart-container{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);min-height:180px}.chart-container:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.chart-container:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.chart-container{transition:none}}.chart-container canvas{max-width:100%;height:auto!important}.chart-header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between;margin-bottom:var(--space-3)}.chart-title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.chart-legend{display:flex;flex-direction:row;align-items:center;gap:var(--space-4);width:100%}.chart-legend__item{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1)}.chart-legend__color{width:8px;height:8px;border-radius:var(--radius-xs)}.chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.chart-empty lucide-icon,.chart-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.chart-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.list-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.list-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.list-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.list-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.list-card{transition:none}}.list-card.section-item-streaming,.list-card.item-streaming,.list-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.list-card.section-item-entered,.list-card.item-entered,.list-card.field-entered{animation:none}.list-card.section-item-stagger-0,.list-card.item-stagger-0,.list-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.list-card.section-item-stagger-1,.list-card.item-stagger-1,.list-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.list-card.section-item-stagger-2,.list-card.item-stagger-2,.list-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.list-card.section-item-stagger-3,.list-card.item-stagger-3,.list-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.list-card.section-item-stagger-4,.list-card.item-stagger-4,.list-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.list-card.section-item-stagger-5,.list-card.item-stagger-5,.list-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.list-card.section-item-stagger-6,.list-card.item-stagger-6,.list-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.list-card.section-item-stagger-7,.list-card.item-stagger-7,.list-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.list-card.section-item-stagger-8,.list-card.item-stagger-8,.list-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.list-card.section-item-stagger-9,.list-card.item-stagger-9,.list-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.list-card.section-item-stagger-10,.list-card.item-stagger-10,.list-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.list-card.section-item-stagger-11,.list-card.item-stagger-11,.list-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.list-card.section-item-stagger-12,.list-card.item-stagger-12,.list-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.list-card.section-item-stagger-13,.list-card.item-stagger-13,.list-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.list-card.section-item-stagger-14,.list-card.item-stagger-14,.list-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.list-card.section-item-stagger-15,.list-card.item-stagger-15,.list-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.list-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-lg);height:var(--icon-lg);color:var(--accent);flex-shrink:0}.list-card__icon lucide-icon,.list-card__icon svg{width:calc(var(--icon-lg) * .6);height:calc(var(--icon-lg) * .6)}.list-card__content{display:flex;flex-direction:column;gap:var(--space-0);width:100%;flex:1;min-width:0}.list-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.list-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.list-card__badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.list-card__badge.status--completed,.list-card__badge.status--success{color:var(--status-success);background:var(--status-success-bg)}.list-card__badge.status--active,.list-card__badge.status--in-progress{color:var(--accent);background:#ff79001a}.list-card__badge.status--pending,.list-card__badge.status--warning{color:var(--status-warning);background:var(--status-warning-bg)}.list-card__badge.status--blocked,.list-card__badge.status--cancelled,.list-card__badge.status--error{color:var(--status-error);background:var(--status-error-bg)}.list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.list-empty lucide-icon,.list-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.list-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.map-container{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:var(--space-5);min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center}.map-container:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.map-container:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.map-container{transition:none}}.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.map-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.map-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.map-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.map-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.map-card{transition:none}}.map-card.section-item-streaming,.map-card.item-streaming,.map-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.map-card.section-item-entered,.map-card.item-entered,.map-card.field-entered{animation:none}.map-card.section-item-stagger-0,.map-card.item-stagger-0,.map-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.map-card.section-item-stagger-1,.map-card.item-stagger-1,.map-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.map-card.section-item-stagger-2,.map-card.item-stagger-2,.map-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.map-card.section-item-stagger-3,.map-card.item-stagger-3,.map-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.map-card.section-item-stagger-4,.map-card.item-stagger-4,.map-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.map-card.section-item-stagger-5,.map-card.item-stagger-5,.map-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.map-card.section-item-stagger-6,.map-card.item-stagger-6,.map-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.map-card.section-item-stagger-7,.map-card.item-stagger-7,.map-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.map-card.section-item-stagger-8,.map-card.item-stagger-8,.map-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.map-card.section-item-stagger-9,.map-card.item-stagger-9,.map-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.map-card.section-item-stagger-10,.map-card.item-stagger-10,.map-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.map-card.section-item-stagger-11,.map-card.item-stagger-11,.map-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.map-card.section-item-stagger-12,.map-card.item-stagger-12,.map-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.map-card.section-item-stagger-13,.map-card.item-stagger-13,.map-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.map-card.section-item-stagger-14,.map-card.item-stagger-14,.map-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.map-card.section-item-stagger-15,.map-card.item-stagger-15,.map-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.map-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-lg);height:var(--icon-lg);color:var(--accent);flex-shrink:0;margin-bottom:var(--space-2)}.map-card__icon lucide-icon,.map-card__icon svg{width:calc(var(--icon-lg) * .6);height:calc(var(--icon-lg) * .6)}.map-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.map-card__address{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0 0 var(--space-1) 0}.map-card__coordinates{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);font-family:SF Mono,Monaco,Consolas,monospace}.map-location{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.map-placeholder{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height)}.map-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.map-empty lucide-icon,.map-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.map-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.faq-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.faq-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.faq-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.faq-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.faq-card{transition:none}}.faq-card.section-item-streaming,.faq-card.item-streaming,.faq-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.faq-card.section-item-entered,.faq-card.item-entered,.faq-card.field-entered{animation:none}.faq-card.section-item-stagger-0,.faq-card.item-stagger-0,.faq-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.faq-card.section-item-stagger-1,.faq-card.item-stagger-1,.faq-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.faq-card.section-item-stagger-2,.faq-card.item-stagger-2,.faq-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.faq-card.section-item-stagger-3,.faq-card.item-stagger-3,.faq-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.faq-card.section-item-stagger-4,.faq-card.item-stagger-4,.faq-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.faq-card.section-item-stagger-5,.faq-card.item-stagger-5,.faq-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.faq-card.section-item-stagger-6,.faq-card.item-stagger-6,.faq-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.faq-card.section-item-stagger-7,.faq-card.item-stagger-7,.faq-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.faq-card.section-item-stagger-8,.faq-card.item-stagger-8,.faq-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.faq-card.section-item-stagger-9,.faq-card.item-stagger-9,.faq-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.faq-card.section-item-stagger-10,.faq-card.item-stagger-10,.faq-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.faq-card.section-item-stagger-11,.faq-card.item-stagger-11,.faq-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.faq-card.section-item-stagger-12,.faq-card.item-stagger-12,.faq-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.faq-card.section-item-stagger-13,.faq-card.item-stagger-13,.faq-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.faq-card.section-item-stagger-14,.faq-card.item-stagger-14,.faq-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.faq-card.section-item-stagger-15,.faq-card.item-stagger-15,.faq-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.faq-card__question{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-2) 0}.faq-card__answer{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0;padding-left:var(--space-3);border-left:2px solid var(--accent);opacity:.9}.faq-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.faq-empty lucide-icon,.faq-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.faq-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.pricing-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.pricing-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);text-align:center}.pricing-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.pricing-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.pricing-card{transition:none}}.pricing-card.section-item-streaming,.pricing-card.item-streaming,.pricing-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.pricing-card.section-item-entered,.pricing-card.item-entered,.pricing-card.field-entered{animation:none}.pricing-card.section-item-stagger-0,.pricing-card.item-stagger-0,.pricing-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-1,.pricing-card.item-stagger-1,.pricing-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-2,.pricing-card.item-stagger-2,.pricing-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-3,.pricing-card.item-stagger-3,.pricing-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-4,.pricing-card.item-stagger-4,.pricing-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-5,.pricing-card.item-stagger-5,.pricing-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-6,.pricing-card.item-stagger-6,.pricing-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-7,.pricing-card.item-stagger-7,.pricing-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-8,.pricing-card.item-stagger-8,.pricing-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-9,.pricing-card.item-stagger-9,.pricing-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-10,.pricing-card.item-stagger-10,.pricing-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-11,.pricing-card.item-stagger-11,.pricing-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-12,.pricing-card.item-stagger-12,.pricing-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-13,.pricing-card.item-stagger-13,.pricing-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-14,.pricing-card.item-stagger-14,.pricing-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-15,.pricing-card.item-stagger-15,.pricing-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.pricing-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-3) 0}.pricing-card__price{font-size:var(--card-value-font-size-large);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);color:var(--accent);margin-bottom:var(--space-1)}.pricing-card__period{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);margin-bottom:var(--space-4)}.pricing-card__features{display:flex;flex-direction:column;gap:var(--space-2);width:100%;text-align:left;padding-top:var(--space-4);border-top:1px solid var(--border)}.pricing-card__feature{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;align-items:center;gap:var(--space-2)}.pricing-card__feature lucide-icon,.pricing-card__feature svg{width:var(--icon-xs);height:var(--icon-xs);color:var(--status-success)}.pricing-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.pricing-empty lucide-icon,.pricing-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.pricing-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.fallback-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.fallback-empty lucide-icon,.fallback-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.fallback-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.fallback-message{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.ai-section__body{width:100%;box-sizing:border-box}app-card-actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:.75rem!important;margin-top:12px!important;margin-left:4px!important;margin-right:4px!important;padding-bottom:16px!important}.osi-action-button{margin:0!important;-webkit-appearance:none!important;appearance:none!important;display:inline-flex!important;align-items:center!important;gap:.5rem!important;padding:.625rem 1.25rem!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:.875rem!important;font-weight:600!important;line-height:1.25rem!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;border-radius:10px!important;transition:all .2s ease!important;box-sizing:border-box!important}.osi-action-button--primary{background-color:#ff7900!important;color:#fff!important;border:none!important;box-shadow:0 2px 8px #ff790040!important}.osi-action-button--primary *{color:#fff!important}.osi-action-button--primary:hover{background-color:#e66d00!important;color:#fff!important;box-shadow:0 4px 16px #ff790066!important;transform:translateY(-1px)!important}.osi-action-button--primary:active{background-color:#cc6000!important;color:#fff!important;transform:scale(.98) translateY(0)!important;box-shadow:0 2px 4px #ff790033!important}.osi-action-button--primary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button--secondary{background-color:transparent!important;color:#fff!important;border:2px solid #ff7900!important}.osi-action-button--secondary *{color:#fff!important}.osi-action-button--secondary:hover{background-color:#ff79001a!important;color:#fff!important;box-shadow:0 2px 8px #ff790033!important}.osi-action-button--secondary:active{background-color:#ff790026!important;color:#fff!important;transform:scale(.98)!important}.osi-action-button--secondary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button__label{color:#fff!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.osi-action-button__icon{width:18px!important;height:18px!important;object-fit:contain!important;flex-shrink:0!important}.osi-action-button__emoji{font-size:16px!important;line-height:1!important;flex-shrink:0!important}.osi-action-button lucide-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}.osi-action-button lucide-icon svg{width:16px!important;height:16px!important;stroke:currentColor!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.card-signature{display:block!important;width:100%!important;box-sizing:border-box!important;margin:0!important;padding:12px 16px!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:11px!important;font-weight:400!important;line-height:1.4!important;letter-spacing:.02em!important;text-align:center!important;color:#646464b3!important;background:transparent!important;border:none!important;text-decoration:none!important}:host([data-theme=night]) .card-signature,:host-context([data-theme=night]) .card-signature{color:#c8c8c899!important}@media (prefers-reduced-motion: reduce){:host{--duration-instant: 1ms;--duration-fast: 1ms;--duration-normal: 1ms;--duration-moderate: 1ms;--duration-slow: 1ms;--duration-slower: 1ms;--duration-slowest: 1ms;--stagger-delay-base: 0ms;--stagger-delay-fast: 0ms;--stagger-delay-slow: 0ms;--ai-card-entrance-animation: none;--section-entrance-animation: none;--section-item-entrance-animation: none}}@media (prefers-contrast: high){:host{--foreground: #ffffff;--background: #000000;--muted-foreground: #ffffff;--muted: #000000;--border: #ffffff;--card: #000000;--card-foreground: #ffffff;--ai-card-border: 2px solid #ffffff;--section-border: 2px solid #ffffff;--button-border: 2px solid #ffffff;--card-background: #000000;--card-background-hover: #1a1a1a;--section-item-background: #000000;--section-item-background-hover: #1a1a1a}}@media (forced-colors: active){:host{--foreground: ButtonText;--background: Canvas;--border: ButtonBorder;--card: Canvas;--card-foreground: ButtonText}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: LucideIconsModule }, { kind: "component", type: CardHeaderComponent, selector: "app-card-header", inputs: ["cardTitle", "showExport"], outputs: ["export"] }, { kind: "component", type: CardSectionListComponent, selector: "app-card-section-list", inputs: ["sections", "containerWidth", "isStreaming"], outputs: ["sectionEvent", "layoutChange"] }, { kind: "component", type: CardActionsComponent, selector: "app-card-actions", inputs: ["actions"], outputs: ["actionClick"] }], animations: [
29199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: AICardRendererComponent, isStandalone: true, selector: "app-ai-card-renderer", inputs: { loadingMessages: "loadingMessages", loadingTitle: "loadingTitle", cardConfig: "cardConfig", updateSource: "updateSource", isFullscreen: "isFullscreen", tiltEnabled: "tiltEnabled", streamingStage: "streamingStage", streamingProgress: "streamingProgress", streamingProgressLabel: "streamingProgressLabel", isStreaming: "isStreaming", showLoadingByDefault: "showLoadingByDefault", containerWidth: "containerWidth", changeType: "changeType", llmFallbackEndpoint: "llmFallbackEndpoint", llmFallbackPrompt: "llmFallbackPrompt" }, outputs: { fieldInteraction: "fieldInteraction", cardInteraction: "cardInteraction", fullscreenToggle: "fullscreenToggle", agentAction: "agentAction", questionAction: "questionAction", export: "export" }, viewQueries: [{ propertyName: "cardContainer", first: true, predicate: ["cardContainer"], descendants: true }, { propertyName: "tiltContainerRef", first: true, predicate: ["tiltContainer"], descendants: true }, { propertyName: "emptyStateContainer", first: true, predicate: ["emptyStateContainer"], descendants: true }], ngImport: i0, template: "<div\n *ngIf=\"cardConfig\"\n #cardContainer\n class=\"w-full h-full card-container-wrapper\"\n [class.max-w-none]=\"isFullscreen\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n [style.min-height]=\"'0'\"\n (mouseenter)=\"onMouseEnter($event)\"\n (mouseleave)=\"onMouseLeave()\"\n (mousemove)=\"onMouseMove($event)\"\n>\n <div\n class=\"glow-container w-full flex-1 min-h-0\"\n [ngClass]=\"{ 'max-w-none': isFullscreen }\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n >\n <div\n class=\"tilt-container w-full flex-1 min-h-0\"\n [ngClass]=\"{ 'max-w-none': isFullscreen }\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n #tiltContainer\n [ngStyle]=\"tiltStyle\"\n >\n <article\n class=\"ai-card-surface flex-1 min-h-0\"\n [style.display]=\"'flex'\"\n [style.flex-direction]=\"'column'\"\n [ngClass]=\"{\n 'ai-card-surface--fullscreen': isFullscreen,\n 'ai-card-surface--empty-state': !processedSections.length,\n 'streaming-active': isStreamingActive,\n }\"\n [attr.aria-label]=\"(cardConfig && cardConfig.cardTitle) || 'Card'\"\n [attr.aria-live]=\"effectiveStreamingStage === 'streaming' ? 'polite' : 'off'\"\n [attr.aria-busy]=\"effectiveStreamingStage === 'streaming' || effectiveStreamingStage === 'thinking'\"\n role=\"article\"\n >\n <!-- Card Header -->\n <app-card-header\n *ngIf=\"processedSections.length\"\n [cardTitle]=\"cardConfig.cardTitle\"\n [showExport]=\"true\"\n (export)=\"onExport()\"\n >\n </app-card-header>\n\n <!-- Card Section List -->\n <app-card-section-list\n *ngIf=\"processedSections.length; else emptyState\"\n [sections]=\"processedSections\"\n [containerWidth]=\"effectiveContainerWidth\"\n [isStreaming]=\"isStreamingActive\"\n (sectionEvent)=\"onSectionEvent($event)\"\n (layoutChange)=\"onLayoutChange($event)\"\n >\n </app-card-section-list>\n\n <ng-template #emptyState>\n <div\n class=\"card-empty-state\"\n #emptyStateContainer\n (mousemove)=\"onEmptyStateMouseMove($event)\"\n (mouseleave)=\"onEmptyStateMouseLeave()\"\n >\n <div class=\"empty-state-background\">\n <div class=\"empty-state-gradient\" [style.transform]=\"gradientTransform\"></div>\n <div class=\"empty-state-particles\">\n <div\n *ngFor=\"let particle of particles; let i = index; trackBy: trackByParticle\"\n class=\"particle\"\n [class]=\"'particle-' + (i + 1)\"\n [style.transform]=\"particle.transform\"\n [style.opacity]=\"particle.opacity\"\n ></div>\n </div>\n </div>\n <div class=\"empty-state-content\" [style.transform]=\"contentTransform\">\n <div class=\"empty-state-text\">\n <h3 class=\"empty-state-title\">{{ loadingTitle }}</h3>\n <div class=\"empty-state-message-container\">\n <p class=\"empty-state-message\" [@messageAnimation]=\"currentMessageIndex\">\n {{ currentMessage }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- Card Actions -->\n <app-card-actions\n *ngIf=\"processedSections.length && cardConfig.actions?.length\"\n [actions]=\"cardConfig.actions || []\"\n (actionClick)=\"onActionClick($event)\"\n >\n </app-card-actions>\n\n <!-- Signature at bottom of card -->\n <div *ngIf=\"processedSections.length\" class=\"card-signature\">Powered by Orange Sales Intelligence</div>\n </article>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{all:initial;display:block;position:relative;box-sizing:border-box;padding:8px;background:transparent!important;background-color:transparent!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:var(--font-size-base, 14px);line-height:1.5;color:var(--foreground, #1c1c1f);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:\"kern\" 1;-webkit-tap-highlight-color:transparent;contain:layout style}:host([hidden]){display:none!important}:host([disabled]){pointer-events:none;opacity:.6}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;border-width:0;border-style:solid;border-color:currentColor}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}p,span,div{margin:0;padding:0}a{color:inherit;text-decoration:inherit;cursor:pointer}a:focus-visible{outline:2px solid var(--color-brand, #ff7900);outline-offset:2px;border-radius:2px}ul,ol{list-style:none;margin:0;padding:0}li{margin:0;padding:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0;background:transparent;border:none}button,[type=button],[type=reset],[type=submit]{cursor:pointer;-webkit-appearance:button;background-color:transparent;background-image:none}button:focus-visible,[type=button]:focus-visible,[type=reset]:focus-visible,[type=submit]:focus-visible{outline:2px solid var(--color-brand, #ff7900);outline-offset:2px}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;max-width:100%;height:auto}img,video{max-width:100%;height:auto}svg{fill:currentColor}lucide-icon,lucide-angular{display:inline-flex!important;align-items:center!important;justify-content:center!important;vertical-align:middle!important;flex-shrink:0}lucide-icon svg,lucide-angular svg{display:block!important;width:inherit!important;height:inherit!important;stroke:currentColor!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}table{text-indent:0;border-color:inherit;border-collapse:collapse}summary{display:list-item;cursor:pointer}[role=button]{cursor:pointer}:focus-visible{outline:2px solid var(--color-brand, #ff7900);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){*{border-color:currentColor!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--muted, #f0f0f1);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--muted-foreground, #92999e);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--foreground, #1c1c1f)}*{scrollbar-width:thin;scrollbar-color:var(--muted-foreground, #92999e) var(--muted, #f0f0f1)}@media print{*,*:before,*:after{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}}:host{color-scheme:light dark;--color-white: #ffffff;--color-black: #000000;--color-brand: #ff7900;--color-brand-dark: #cc5f00;--color-brand-light: #ff9933;--color-gray-50: #ffffff;--color-gray-100: #fcfcfc;--color-gray-150: #f7f7f7;--color-gray-200: #f0f0f1;--color-gray-300: #e9e9e9;--color-gray-400: #92999e;--color-gray-500: #5a5f62;--color-gray-600: #343541;--color-gray-700: #2a2a2a;--color-gray-800: #232323;--color-gray-850: #171717;--color-gray-900: #000000;--background: #ffffff;--surface-contrast-color: #000000;--theme-ai-card-border: 1px solid rgba(255, 255, 255, .06);--theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, .25);--theme-ai-card-background: var(--background);--theme-ai-card-background-hover: var(--background);--theme-ai-card-box-shadow: 0 2px 12px -1px rgba(0, 0, 0, .12);--theme-ai-card-box-shadow-hover: 0 8px 20px -3px rgba(0, 0, 0, .18), 0 0 0 1px rgba(255, 121, 0, .12);--theme-ai-card-transition: all .28s cubic-bezier(.4, 0, .2, 1);--theme-card-border: 1px solid rgba(0, 0, 0, .06);--theme-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-card-background: var(--background);--theme-card-background-hover: var(--background);--theme-card-box-shadow: 0 1px 2px rgba(15, 15, 20, .03);--theme-card-box-shadow-hover: 0 1px 3px rgba(10, 10, 16, .05);--theme-section-border: 1px solid rgba(0, 0, 0, .06);--theme-section-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, .04);--theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, .05);--theme-section-transition: border-color .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s cubic-bezier(.4, 0, .2, 1);--section-background: var(--background);--section-background-hover: var(--background);--section-surface: var(--background);--section-surface-hover: var(--background);--theme-section-item-border: 1px solid rgba(0, 0, 0, .06);--theme-section-item-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-item-background: var(--background);--theme-section-item-background-hover: var(--background);--theme-section-item-box-shadow: var(--shadow-md, 0 1px 2px rgba(0, 0, 0, .04));--theme-section-item-box-shadow-hover: var(--shadow-lg, 0 1px 3px rgba(0, 0, 0, .05));--theme-section-item-hover-transform: none;--theme-section-item-transition: border-color .2s cubic-bezier(.4, 0, .2, 1), background .2s cubic-bezier(.4, 0, .2, 1), box-shadow .2s cubic-bezier(.4, 0, .2, 1);--shadow-sm: 0 1px 1px rgba(0, 0, 0, .03);--shadow-md: 0 1px 2px rgba(0, 0, 0, .04);--shadow-lg: 0 1px 3px rgba(0, 0, 0, .05);--shadow-xl: 0 2px 4px rgba(0, 0, 0, .06);--shadow-glow-sm: 0 0 3px rgba(255, 121, 0, .05);--shadow-glow-md: 0 0 5px rgba(255, 121, 0, .08);--shadow-glow-lg: 0 0 8px rgba(255, 121, 0, .1);--shadow-inset-sm: inset 0 1px 2px rgba(0, 0, 0, .04);--shadow-inset-md: inset 0 2px 4px rgba(0, 0, 0, .05);--shadow-hover: var(--shadow-lg), var(--shadow-glow-sm);--radius-base: .625rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--spacing-base: .25rem;--space-1: clamp(2px, .4vw, 6px);--space-2: clamp(4px, .6vw, 8px);--space-3: clamp(6px, .8vw, 12px);--space-4: clamp(8px, 1vw, 14px);--space-5: clamp(10px, 1.2vw, 18px);--space-6: clamp(12px, 1.4vw, 20px);--space-7: clamp(14px, 1.6vw, 22px);--space-8: clamp(16px, 1.8vw, 24px);--space-9: clamp(18px, 2vw, 28px);--space-10: clamp(20px, 2.2vw, 32px);--space-11: clamp(22px, 2.4vw, 36px);--space-12: clamp(24px, 2.6vw, 40px);--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-3);--spacing-lg: var(--space-4);--spacing-xl: var(--space-5);--spacing-2xl: var(--space-6);--spacing-3xl: var(--space-7);--spacing-4xl: var(--space-8);--gap-xs: 4px;--gap-sm: 6px;--gap-md: 8px;--gap-lg: 12px;--gap-xl: 16px;--gap-2xl: 20px;--gap-3xl: 24px;--gap-4xl: 32px;--z-base: 0;--z-content: 1;--z-elevated: 10;--z-card: 10;--z-section: 15;--z-dropdown: 100;--z-tooltip: 200;--z-popover: 300;--z-overlay: 400;--z-modal: 500;--z-dialog: 600;--z-notification: 700;--z-toast: 800;--z-max: 999;--duration-instant: 40ms;--duration-fast: 80ms;--duration-normal: .16s;--duration-moderate: .22s;--duration-slow: .3s;--duration-slower: .38s;--duration-slowest: .46s;--ease-out-smooth: cubic-bezier(.23, 1, .32, 1);--ease-in-out-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--ease-in-out-quad: cubic-bezier(.455, .03, .515, .955);--motion-distance-xs: 2px;--motion-distance-sm: 4px;--motion-distance-md: 6px;--motion-distance-lg: 10px;--motion-distance-xl: 12px;--motion-scale-soft-start: .992;--motion-scale-soft-end: 1;--motion-scale-pop: 1.015;--stagger-delay-fast: 15ms;--stagger-delay-base: 25ms;--stagger-delay-slow: 45ms;--animation-fill-mode: both;--animation-play-state: running;--opacity-subtle: .05;--opacity-muted: .15;--opacity-medium: .4;--opacity-strong: .7;--opacity-solid: .9;--font-size-base: 13px;--text-xs: .625rem;--text-sm: .75rem;--text-base: .875rem;--text-lg: .8125rem;--text-xl: 1.125rem;--text-2xl: 1.0625rem;--text-3xl: 1.75rem;--text-4xl: 2.125rem;--text-5xl: 2.875rem;--text-7xl: 4.375rem;--font-weight-normal: 400;--font-weight-medium: 500;--section-title-font-size: clamp(.92rem, .87rem + .2vw, 1.07rem);--section-title-font-weight: 700;--section-title-letter-spacing: -.02em;--section-title-line-height: 1.3;--section-title-text-shadow: 0 1px 2px rgba(0, 0, 0, .08);--card-title-font-size: clamp(.83rem, .78rem + .15vw, .93rem);--card-title-font-weight: 700;--card-title-letter-spacing: -.01em;--card-title-line-height: 1.4;--card-title-text-shadow: 0 1px 1px rgba(0, 0, 0, .06);--card-subtitle-font-size: clamp(.65rem, .625rem + .1vw, .7rem);--card-subtitle-font-weight: 500;--card-subtitle-letter-spacing: .015em;--card-subtitle-line-height: 1.3;--card-label-font-size: clamp(.5rem, .48rem + .05vw, .5rem);--card-label-font-weight: 700;--card-label-letter-spacing: .065em;--card-label-line-height: 1.25;--card-label-text-transform: uppercase;--card-label-text-shadow: 0 1px 1px rgba(0, 0, 0, .05);--card-value-font-size: clamp(1rem, .95rem + .2vw, 1rem);--card-value-font-size-large: clamp(1.2rem, 1.15rem + .2vw, 1.25rem);--card-value-font-size-xl: clamp(1.25rem, 1.2rem + .2vw, 1.25rem);--card-value-font-weight: 600;--card-value-letter-spacing: -.015em;--card-value-line-height: 1.35;--card-value-text-shadow: 0 2px 4px rgba(0, 0, 0, .1);--card-meta-font-size: clamp(.55rem, .525rem + .1vw, .6rem);--card-meta-font-weight: 500;--card-meta-line-height: 1.3;--card-text-small-font-size: clamp(.355rem, .295rem + .13vw, .455rem);--section-grid-min-width: 200px;--font-size-section-header: var(--section-title-font-size);--card-main-padding: 16px;--card-padding-vertical: 12px;--card-padding-horizontal: 16px;--card-padding: 16px;--card-padding-large: 20px;--section-padding: 12px;--section-container-padding: 12px;--card-min-height: auto;--card-gap: clamp(6px, .6vw, 10px);--card-gap-large: clamp(10px, .8vw, 14px);--card-nested-gap: clamp(3px, .4vw, 6px);--section-header-gap: clamp(3px, .4vw, 6px);--section-header-padding-bottom: clamp(0px, .2vw, 2px);--section-title-margin-bottom: 2px;--card-border-radius: 12px;--card-border-radius-large: 16px;--section-card-gap: 8px;--section-card-border-radius: 10px;--card-element-gap-xs: 2px;--card-element-gap-sm: 3px;--card-element-gap-md: 4px;--card-element-gap-lg: 6px;--card-element-gap-xl: 8px;--border-width-default: 1px;--border-width-accent: 3px;--border-width-accent-sm: 2px;--icon-xs: 10px;--icon-sm: 13px;--icon-md: 16px;--icon-lg: 22px;--icon-xl: 36px;--avatar-sm: 32px;--avatar-md: 36px;--progress-height: 2px;--progress-margin: 4px 0;--tag-padding: 3px 6px;--tag-padding-sm: 2px 4px;--tag-padding-lg: 3px 7px;--grid-gap-xs: var(--gap-sm);--grid-gap-sm: var(--gap-md);--grid-gap-md: var(--gap-lg);--grid-gap-lg: var(--gap-xl);--grid-gap-xl: var(--gap-2xl);--section-grid-gap: var(--gap-md);--section-stack-gap: var(--gap-lg);--section-item-gap: var(--gap-sm);--section-item-padding: var(--gap-lg);--metric-item-padding: 10px 12px;--list-item-padding: 10px 12px;--card-text-primary: var(--foreground);--card-text-secondary: var(--muted-foreground);--card-text-muted: var(--muted-foreground);--card-text-hover: var(--primary);--card-text-label: var(--muted-foreground);--card-meta-color: var(--muted-foreground);--card-background: var(--ai-card-background, rgba(255, 121, 0, .03));--card-background-hover: var(--ai-card-background-hover, rgba(255, 121, 0, .05));--card-transition: all .28s cubic-bezier(.4, 0, .2, 1);--card-transition-fast: all .22s ease;--status-success: #22c55e;--status-success-bg: rgba(34, 197, 94, .15);--status-success-border: rgba(74, 222, 128, .4);--status-warning: #f59e0b;--status-warning-bg: rgba(253, 186, 116, .15);--status-warning-border: rgba(251, 191, 36, .4);--status-error: #ef4444;--status-error-bg: rgba(239, 68, 68, .15);--status-error-border: rgba(248, 113, 113, .4);--status-info: #3b82f6;--status-info-bg: rgba(59, 130, 246, .15);--status-info-border: rgba(147, 197, 253, .4);--status-neutral: #6b7280;--status-neutral-bg: rgba(107, 114, 128, .15);--status-neutral-border: rgba(156, 163, 175, .4);--interactive-hover-bg: rgba(255, 121, 0, .08);--interactive-active-bg: rgba(255, 121, 0, .12);--interactive-focus-ring: 0 0 0 2px rgba(255, 121, 0, .4);--interactive-glow: 0 0 12px rgba(255, 121, 0, .3);--hero-card-border: 1px solid rgba(146, 153, 158, .15);--hero-card-border-hover: rgba(255, 121, 0, .4);--hero-card-background: var(--card);--hero-card-background-hover: var(--card);--hero-card-border-radius: var(--radius-lg);--hero-card-box-shadow: var(--shadow-md);--hero-card-box-shadow-hover: var(--shadow-lg);--hero-card-hover-transform: translateY(-2px);--button-border: 1px solid transparent;--button-border-hover: 1px solid rgba(255, 121, 0, .4);--button-background: var(--primary);--button-background-hover: color-mix(in srgb, var(--primary) 85%, transparent);--button-border-radius: var(--radius-md);--button-box-shadow: var(--shadow-sm);--button-box-shadow-hover: var(--shadow-md);--button-hover-transform: translateY(-1px);--ai-card-border: var(--theme-ai-card-border, none);--ai-card-border-hover: var(--theme-ai-card-border-hover, var(--ai-card-border));--ai-card-background: var( --theme-ai-card-background, var(--card-surface, var(--card-section-bg)) );--ai-card-background-hover: var( --theme-ai-card-background-hover, var(--card-surface-hover, var(--card-section-bg)) );--ai-card-border-radius: var(--radius-lg);--ai-card-box-shadow: var(--theme-ai-card-box-shadow, var(--shadow-md));--ai-card-box-shadow-hover: var(--theme-ai-card-box-shadow-hover, var(--shadow-lg));--ai-card-hover-transform: none;--ai-card-transition-default: border .32s cubic-bezier(.4, 0, .2, 1), background .32s cubic-bezier(.4, 0, .2, 1), box-shadow .32s cubic-bezier(.4, 0, .2, 1);--ai-card-transition: var(--theme-ai-card-transition, var(--ai-card-transition-default));--section-border: var(--theme-section-border, 1px solid rgba(255, 255, 255, .05));--section-border-hover: var(--theme-section-border-hover, 1px solid rgba(255, 121, 0, .15));--section-border-radius: var(--radius-lg);--section-box-shadow-default: var(--shadow-md);--section-box-shadow-hover-default: var(--shadow-lg), var(--shadow-glow-sm);--section-box-shadow: var(--theme-section-box-shadow, var(--section-box-shadow-default));--section-box-shadow-hover: var( --theme-section-box-shadow-hover, var(--section-box-shadow-hover-default) );--section-hover-transform: none;--section-transition: var(--theme-section-transition, none);--section-item-border: var(--theme-section-item-border, 1px solid rgba(255, 255, 255, .05));--section-item-border-hover: var(--theme-section-item-border-hover, 1px solid rgba(255, 121, 0, .08));--section-item-background: var(--theme-section-item-background, var(--card-section-bg));--section-item-background-hover: var( --theme-section-item-background-hover, var(--card-section-bg) );--section-item-border-radius: var(--radius-md);--section-item-box-shadow: var(--theme-section-item-box-shadow, var(--shadow-sm));--section-item-box-shadow-hover-default: var(--shadow-md), var(--shadow-glow-sm);--section-item-box-shadow-hover: var( --theme-section-item-box-shadow-hover, var(--section-item-box-shadow-hover-default) );--section-item-hover-transform: var(--theme-section-item-hover-transform, none);--section-item-transition-default: background .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s cubic-bezier(.4, 0, .2, 1), border-color .22s cubic-bezier(.4, 0, .2, 1);--section-item-transition: var( --theme-section-item-transition, var(--section-item-transition-default) );--card-border: var(--theme-card-border, 1px solid rgba(146, 153, 158, .15));--card-border-hover: var(--theme-card-border-hover, rgba(255, 121, 0, .4));--card-box-shadow: var(--theme-card-box-shadow, var(--shadow-md));--card-box-shadow-hover: var(--theme-card-box-shadow-hover, var(--shadow-lg));--card-hover-transform: none;--ai-card-entrance-animation: fadeInUpSoft var(--duration-moderate) var(--ease-out-smooth) 10ms 1 normal both;--section-entrance-animation: fadeInSoft var(--duration-moderate) var(--ease-out-smooth) 20ms 1 normal both;--section-item-entrance-animation: fadeInScaleSoft var(--duration-normal) var(--ease-out-smooth) 30ms 1 normal both;display:block;width:100%}:host([data-theme=night]),:host-context([data-theme=night]){color-scheme:dark;--background: #030303;--surface-contrast-color: #ffffff;--foreground: #ffffff;--muted: #242424;--muted-foreground: #aaaaaa;--card: var(--background);--card-surface: var(--background);--card-foreground: #ffffff;--card-surface-hover: var(--background);--card-section-bg: #141414;--card-section-card-bg: #1a1a1a;--theme-ai-card-border: 1px solid rgba(255, 255, 255, .06);--theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-ai-card-background: #141414;--theme-ai-card-background-hover: #1a1a1a;--theme-ai-card-box-shadow: 0 2px 12px -1px rgba(0, 0, 0, .15);--theme-ai-card-box-shadow-hover: 0 6px 16px -2px rgba(0, 0, 0, .22), 0 0 0 1px rgba(255, 121, 0, .1);--theme-card-border: 1px solid rgba(255, 255, 255, .06);--theme-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-card-background: var(--background);--theme-card-background-hover: var(--background);--theme-card-box-shadow: 0 1px 3px rgba(0, 0, 0, .25);--theme-card-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, .3);--section-background: var(--background);--section-background-hover: var(--background);--section-surface: #141414;--section-surface-hover: #1a1a1a;--popover: #111111;--popover-foreground: #ffffff;--primary: #ff7900;--primary-foreground: #ffffff;--secondary: #333333;--secondary-foreground: #ffffff;--accent: #ff7900;--accent-foreground: #000000;--destructive: #d4183d;--destructive-foreground: #ffffff;--border: rgba(200, 200, 200, .3);--input: transparent;--input-background: #222222;--switch-background: #333333;--ring: rgba(255, 121, 0, .6);--chart-1: #ff7900;--chart-2: #ff9933;--chart-3: #cc5f00;--chart-4: #ffe6cc;--chart-5: #ff4500;--hero-card-border: 1px solid rgba(233, 233, 233, .2);--hero-card-border-hover: 1px solid rgba(255, 121, 0, .25);--theme-section-border: 1px solid rgba(255, 255, 255, .1);--theme-section-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);--theme-section-box-shadow-hover: 0 2px 5px rgba(0, 0, 0, .35);--theme-section-item-border: 1px solid rgba(255, 255, 255, .06);--theme-section-item-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-section-item-background: #1a1a1a;--theme-section-item-background-hover: #1e1e1e;--theme-section-item-box-shadow: 0 1px 2px rgba(0, 0, 0, .25);--theme-section-item-box-shadow-hover: 0 1px 4px rgba(0, 0, 0, .3);--theme-section-item-hover-transform: none}:host([data-theme=day]),:host-context([data-theme=day]){color-scheme:light;--background: #ffffff;--foreground: #1c1c1f;--muted: #f4f4f6;--muted-foreground: #555861;--card: var(--background);--card-surface: var(--background);--card-foreground: #1c1c1f;--card-surface-hover: var(--background);--card-section-bg: #fafafa;--card-section-card-bg: #f5f5f5;--theme-ai-card-border: 1px solid rgba(0, 0, 0, .06);--theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-ai-card-background: #ffffff;--theme-ai-card-background-hover: #fcfcfc;--theme-ai-card-box-shadow: 0 2px 12px -1px rgba(0, 0, 0, .06);--theme-ai-card-box-shadow-hover: 0 6px 16px -2px rgba(0, 0, 0, .1), 0 0 0 1px rgba(255, 121, 0, .08);--theme-card-border: 1px solid rgba(0, 0, 0, .05);--theme-card-border-hover: 1px solid rgba(255, 121, 0, .15);--theme-card-background: var(--background);--theme-card-background-hover: var(--background);--theme-card-box-shadow: 0 1px 2px rgba(15, 15, 20, .03);--theme-card-box-shadow-hover: 0 1px 3px rgba(10, 10, 16, .04);--section-background: var(--background);--section-background-hover: var(--background);--section-surface: #fafafa;--section-surface-hover: #f5f5f5;--popover: #ffffff;--popover-foreground: #1a1a1a;--primary: #ff7900;--primary-foreground: #ffffff;--secondary: #f5f5f5;--secondary-foreground: #1a1a1a;--accent: #ff7900;--accent-foreground: #ffffff;--destructive: #d4183d;--destructive-foreground: #ffffff;--border: rgba(200, 200, 200, .5);--input: transparent;--input-background: #f9f9f9;--switch-background: #e5e5e5;--ring: rgba(255, 121, 0, .4);--chart-1: #ff7900;--chart-2: #ff9933;--chart-3: #cc5f00;--chart-4: #ffe6cc;--chart-5: #ff4500;--color-gray-700: #e0e0e0;--color-gray-600: #d0d0d0;--hero-card-border: 1px solid rgba(146, 153, 158, .25);--hero-card-border-hover: 1px solid rgba(255, 121, 0, .2);--theme-section-border: 1px solid rgba(0, 0, 0, .05);--theme-section-border-hover: 1px solid rgba(255, 121, 0, .12);--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, .04);--theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, .05);--theme-section-item-border: 1px solid rgba(0, 0, 0, .05);--theme-section-item-border-hover: 1px solid rgba(255, 121, 0, .12);--theme-section-item-background: #f7f7f7;--theme-section-item-background-hover: #f4f4f4;--theme-section-item-box-shadow: 0 1px 2px rgba(0, 0, 0, .04);--theme-section-item-box-shadow-hover: 0 1px 3px rgba(0, 0, 0, .05);--theme-section-item-hover-transform: none}div [class$=-icon]:before{vertical-align:middle}.bg-red-500\\/10{background-color:#ef44441a}.bg-yellow-500\\/10{background-color:#ecaf221a}.border-red-500\\/50{border-color:#ef444480}.border-red-500\\/20{border-color:#ef444433}.border-yellow-500\\/50{border-color:#ecaf2280}.transition-smooth{transition:all var(--duration-normal) var(--ease-out-smooth)}.transition-fast{transition:all var(--duration-fast) var(--ease-out-smooth)}.transition-slow{transition:all var(--duration-slow) var(--ease-out-smooth)}.transition-transform{transition:transform var(--duration-normal) var(--ease-out-smooth)}.transition-transform-fast{transition:transform var(--duration-fast) var(--ease-out-smooth)}.transition-opacity{transition:opacity var(--duration-normal) var(--ease-out-smooth)}.transition-opacity-fast{transition:opacity var(--duration-fast) var(--ease-out-smooth)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.hover-lift{transition:transform var(--duration-normal) var(--ease-out-smooth)}.hover-lift:hover{transform:translateZ(0)}.hover-scale{transition:transform var(--duration-normal) var(--ease-out-smooth)}.hover-scale:hover{transform:scale(1.05) translateZ(0)}.hover-glow{transition:box-shadow var(--duration-normal) var(--ease-out-smooth)}.hover-glow:hover{box-shadow:0 0 20px color-mix(in srgb,var(--primary) 40%,transparent)}.active-press:active{transform:scale(.98) translateZ(0)}.focus-ring:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.backdrop-blur-md{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.backdrop-blur-lg{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.backdrop-blur-xl{backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px)}.backdrop-blur-none{backdrop-filter:none;-webkit-backdrop-filter:none}.glass-panel{background:color-mix(in srgb,var(--background, #0c0c0c) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--border, rgba(255, 255, 255, .1)) 50%,transparent)}.glass-panel-dark{background:color-mix(in srgb,rgba(16,16,24,.86) 90%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.08);box-shadow:0 28px 70px #00000080}.glass-panel-light{background:color-mix(in srgb,rgba(255,255,255,.8) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.1)}.glass-panel-brand{background:color-mix(in srgb,var(--background, #0c0c0c) 85%,var(--color-brand, #ff7900) 5%);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}.stagger-delay-1{animation-delay:80ms}.stagger-delay-2{animation-delay:.16s}.stagger-delay-3{animation-delay:.24s}.stagger-delay-4{animation-delay:.32s}.stagger-delay-5{animation-delay:.4s}.stagger-delay-6{animation-delay:.48s}.stagger-delay-7{animation-delay:.56s}.stagger-delay-8{animation-delay:.64s}.stagger-delay-9{animation-delay:.72s}.stagger-delay-10{animation-delay:.8s}.transition-delay-1{transition-delay:80ms}.transition-delay-2{transition-delay:.16s}.transition-delay-3{transition-delay:.24s}.transition-delay-4{transition-delay:.32s}.transition-delay-5{transition-delay:.4s}@media (prefers-reduced-motion: reduce){.transition-smooth,.transition-fast,.transition-slow,.transition-transform,.transition-transform-fast,.transition-opacity,.transition-opacity-fast,.transition-colors,.hover-lift,.hover-scale,.hover-glow{transition:none!important}.hover-scale:hover,.active-press:active{transform:none!important}}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,var(--motion-distance-lg),0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateZ(0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeInSoft{0%{opacity:0;transform:translate3d(0,var(--motion-distance-sm),0) scale(var(--motion-scale-soft-start))}to{opacity:1;transform:translateZ(0) scale(var(--motion-scale-soft-end))}}@keyframes slideUp{0%{transform:translate3d(0,var(--motion-distance-xl),0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes slideDown{0%{transform:translate3d(0,calc(var(--motion-distance-xl) * -1),0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate3d(calc(var(--motion-distance-xl) * -1),0,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes slideInRight{0%{transform:translate3d(var(--motion-distance-xl),0,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes fadeInUpSoft{0%{opacity:0;transform:translate3d(0,var(--motion-distance-md),0) scale(var(--motion-scale-soft-start))}to{opacity:1;transform:translateZ(0) scale(var(--motion-scale-soft-end))}}@keyframes scale{0%{transform:scale(var(--motion-scale-pulse-min)) translateZ(0)}70%{transform:scale(var(--motion-scale-pop)) translateZ(0)}to{transform:scale(var(--motion-scale-soft-end)) translateZ(0)}}@keyframes scaleIn{0%{transform:scale(var(--motion-scale-soft-start)) translateZ(0);opacity:0}to{transform:scale(var(--motion-scale-soft-end)) translateZ(0);opacity:1}}@keyframes fadeInScaleSoft{0%{opacity:0;transform:scale(var(--motion-scale-soft-start)) translateZ(0)}to{opacity:1;transform:scale(var(--motion-scale-soft-end)) translateZ(0)}}@keyframes pulse{0%,to{transform:scale(var(--motion-scale-soft-end)) translateZ(0);opacity:1}50%{transform:scale(var(--motion-scale-pop)) translateZ(0);opacity:.8}}@keyframes hoverLift{0%{transform:translateY(0) translateZ(0)}to{transform:translateY(-2px) translateZ(0)}}@keyframes glowAccent{0%,to{text-shadow:0 1px 2px rgba(0,0,0,.08)}50%{text-shadow:0 2px 6px rgba(255,121,0,.25)}}@keyframes valueEmphasize{0%,to{color:var(--card-text-primary)}50%{color:color-mix(in srgb,var(--card-text-primary) 85%,var(--color-brand) 15%)}}@keyframes glowPulse{0%,to{opacity:.6;filter:blur(25px)}50%{opacity:1;filter:blur(30px)}}@keyframes glowDrift{0%,to{opacity:.7;transform:translateZ(0)}25%{opacity:.8;transform:translate3d(5px,-5px,0)}50%{opacity:.9;transform:translate3d(0,5px,0)}75%{opacity:.8;transform:translate3d(-5px,0,0)}}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:.8}}@keyframes spin{0%{transform:rotate(0) translateZ(0)}to{transform:rotate(360deg) translateZ(0)}}@keyframes spinSlow{0%{transform:rotate(0) translateZ(0)}to{transform:rotate(360deg) translateZ(0)}}@keyframes shake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(calc(var(--motion-distance-sm) * -1),0,0)}20%,40%,60%,80%{transform:translate3d(var(--motion-distance-sm),0,0)}}@keyframes bounce{0%,to{transform:translateZ(0);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translate3d(0,calc(var(--motion-distance-lg) * -1),0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes sectionEnter{0%{opacity:0;transform:translate3d(0,20px,0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes sectionStreamingGlow{0%,to{box-shadow:0 0 #ff790000}50%{box-shadow:0 0 12px 2px #ff790026}}@keyframes fieldEnter{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes itemEnter{0%{opacity:0;transform:translate3d(-10px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes sparkTravel{0%{top:-1.5px;left:0}25%{top:-1.5px;left:calc(100% - 1.5px)}50%{top:calc(100% - 1.5px);left:calc(100% - 1.5px)}75%{top:calc(100% - 1.5px);left:0}to{top:-1.5px;left:0}}@keyframes sectionMagicAppear{0%{opacity:0;transform:translateY(20px) scale(.95);filter:blur(8px)}60%{opacity:1;transform:translateY(-4px) scale(1.02);filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes shimmerSweep{0%{transform:translate(-100%);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes innerFlash{0%{box-shadow:inset 0 0 30px #ff950066}to{box-shadow:inset 0 0 #ff950000}}@keyframes innerBorderPulse{0%,to{box-shadow:inset 0 0 0 1px #ff79001a}50%{box-shadow:inset 0 0 0 1px #ff79004d}}@keyframes cursorBlink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes sectionGlowPulse{0%,to{box-shadow:0 0 10px #ff790026}50%{box-shadow:0 0 20px #ff790059}}@keyframes fieldEnterBounce{0%{opacity:0;transform:translateY(12px) scale(.98)}60%{opacity:1;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes stateFade{0%{opacity:0;transform:translate3d(0,8px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes stateSlideOut{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-10px,0)}}@keyframes stateSlideIn{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes errorShake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-4px,0,0)}20%,40%,60%,80%{transform:translate3d(4px,0,0)}}@keyframes errorPulse{0%,to{opacity:1;box-shadow:0 0 #ef444466}50%{opacity:.9;box-shadow:0 0 0 8px #ef444400}}@keyframes shimmerWave{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeletonPulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98) translateZ(0)}to{opacity:1;transform:scale(1) translateZ(0)}}@keyframes pulseGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes float{0%,to{transform:translateY(0) translateZ(0)}50%{transform:translateY(-10px) translateZ(0)}}@keyframes pulseRing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@keyframes textShimmer{0%,to{background-position:-200% 0}50%{background-position:200% 0}}@keyframes waveSlide{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes sectionPulse{0%,to{transform:scale(1)}50%{transform:scale(1.01)}}@keyframes sectionBorderFade{0%{opacity:1;box-shadow:0 0 20px color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent)}to{opacity:0;box-shadow:0 0 0 transparent}}@keyframes newSectionGlow{0%{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent);box-shadow:0 0 25px color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent)}to{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent)}}@keyframes dotPulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.6}50%{transform:translate(-50%,-50%) scale(1.5);opacity:.3}}@keyframes ringExpand{0%{transform:translate(-50%,-50%) scale(.8);opacity:.2}50%{transform:translate(-50%,-50%) scale(1);opacity:.1}to{transform:translate(-50%,-50%) scale(1.2);opacity:0}}@keyframes generatingBgPulse{0%,to{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%)}50%{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 12%,transparent) 0%,transparent 70%)}}@keyframes cardGeneratingPulse{0%,to{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent),0 4px 20px #00000026,0 0 0 transparent}50%{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent),0 4px 20px #00000026,0 0 30px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}}@keyframes gradientPulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.05)}}@keyframes ringPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}@keyframes iconFloat{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-6px) rotate(-3deg)}50%{transform:translateY(-10px) rotate(0)}75%{transform:translateY(-6px) rotate(3deg)}}@keyframes particleFloat{0%,to{transform:translateY(0) translate(0) scale(1);opacity:.3}25%{transform:translateY(-30px) translate(20px) scale(1.2);opacity:.7}50%{transform:translateY(-60px) translate(-10px) scale(.8);opacity:1}75%{transform:translateY(-30px) translate(15px) scale(1.1);opacity:.6}}@keyframes spinnerRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinnerDash{0%{stroke-dasharray:1,125.6;stroke-dashoffset:0}50%{stroke-dasharray:94.2,125.6;stroke-dashoffset:-31.4}to{stroke-dasharray:94.2,125.6;stroke-dashoffset:-125.6}}@keyframes textShimmerFlow{0%,to{background-position:-200% 0}50%{background-position:200% 0}}@keyframes rippleEffect{0%{transform:scale(0);opacity:.6}to{transform:scale(2.5);opacity:0}}.animate-fade-in{animation:fadeIn var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-up{animation:fadeInUp var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-soft{animation:fadeInSoft var(--duration-slow) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-up-soft{animation:fadeInUpSoft var(--duration-slow) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-fade-in-scale-soft{animation:fadeInScaleSoft var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-up{animation:slideUp var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-down{animation:slideDown var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-in-left{animation:slideInLeft var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-slide-in-right{animation:slideInRight var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-scale{animation:scale var(--duration-moderate) var(--ease-spring);animation-fill-mode:var(--animation-fill-mode)}.animate-scale-in{animation:scaleIn var(--duration-moderate) var(--ease-out-smooth);animation-fill-mode:var(--animation-fill-mode)}.animate-pulse{animation:pulse var(--duration-slow) var(--ease-in-out-smooth) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-spin-slow{animation:spinSlow 3s linear infinite}.animate-shake{animation:shake var(--duration-slow) var(--ease-in-out-smooth)}.animate-bounce{animation:bounce 1s infinite}.section-streaming{animation:sectionEnter .4s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(0,20px,0) scale(.95);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px;contain:layout style paint;transform-origin:center center}.section-entered{opacity:1;transform:translateZ(0) scale(1);will-change:auto;backface-visibility:visible;perspective:none}.section-streaming-glow{animation:sectionStreamingGlow 1.5s ease-in-out infinite}.section-stagger-0{animation-delay:0ms}.section-stagger-1{animation-delay:80ms}.section-stagger-2{animation-delay:.16s}.section-stagger-3{animation-delay:.24s}.section-stagger-4{animation-delay:.32s}.section-stagger-5{animation-delay:.4s}.section-stagger-6{animation-delay:.48s}.section-stagger-7{animation-delay:.56s}.section-stagger-8{animation-delay:.64s}.section-stagger-9{animation-delay:.72s}.section-stagger-10{animation-delay:.8s}.field-streaming{animation:fieldEnter .3s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(0,10px,0);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px;contain:layout style paint;transform-origin:center center}.field-entered{opacity:1;transform:translateZ(0);will-change:auto;backface-visibility:visible;perspective:none}.item-streaming{animation:itemEnter .35s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(-10px,0,0);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px;contain:layout style paint;transform-origin:center center}.item-entered{opacity:1;transform:translateZ(0);will-change:auto;backface-visibility:visible;perspective:none}.field-stagger-0{animation-delay:0ms}.field-stagger-1{animation-delay:40ms}.field-stagger-2{animation-delay:80ms}.field-stagger-3{animation-delay:.12s}.field-stagger-4{animation-delay:.16s}.field-stagger-5{animation-delay:.2s}.field-stagger-6{animation-delay:.24s}.field-stagger-7{animation-delay:.28s}.field-stagger-8{animation-delay:.32s}.field-stagger-9{animation-delay:.36s}.field-stagger-10{animation-delay:.4s}.field-stagger-11{animation-delay:.44s}.field-stagger-12{animation-delay:.48s}.field-stagger-13{animation-delay:.52s}.field-stagger-14{animation-delay:.56s}.field-stagger-15{animation-delay:.6s}.item-stagger-0{animation-delay:0ms}.item-stagger-1{animation-delay:40ms}.item-stagger-2{animation-delay:80ms}.item-stagger-3{animation-delay:.12s}.item-stagger-4{animation-delay:.16s}.item-stagger-5{animation-delay:.2s}.item-stagger-6{animation-delay:.24s}.item-stagger-7{animation-delay:.28s}.item-stagger-8{animation-delay:.32s}.item-stagger-9{animation-delay:.36s}.item-stagger-10{animation-delay:.4s}.item-stagger-11{animation-delay:.44s}.item-stagger-12{animation-delay:.48s}.item-stagger-13{animation-delay:.52s}.item-stagger-14{animation-delay:.56s}.item-stagger-15{animation-delay:.6s}.state-transition-enter{animation:stateFade .4s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translate3d(0,8px,0) scale(.98);will-change:transform,opacity;backface-visibility:hidden;perspective:1000px}.state-transition-exit{animation:stateSlideOut .3s cubic-bezier(.4,0,.2,1) forwards;will-change:transform,opacity;backface-visibility:hidden;perspective:1000px}.state-entered{opacity:1;transform:translateZ(0) scale(1);will-change:auto;backface-visibility:visible;perspective:none}.error-shake{animation:errorShake .5s cubic-bezier(.4,0,.2,1)}.error-pulse{animation:errorPulse 2s ease-in-out infinite}.skeleton-shimmer{background:linear-gradient(90deg,var(--muted, rgba(255, 255, 255, .1)) 0%,var(--muted-foreground, rgba(255, 255, 255, .2)) 20%,var(--muted, rgba(255, 255, 255, .1)) 40%,var(--muted, rgba(255, 255, 255, .1)) 100%);background-size:200% 100%;animation:shimmerWave 1.5s ease-in-out infinite}.skeleton-pulse{animation:skeletonPulse 2s ease-in-out infinite}.animate-delay-1{animation-delay:calc(var(--stagger-delay-base) * 1)}.animate-delay-2{animation-delay:calc(var(--stagger-delay-base) * 2)}.animate-delay-3{animation-delay:calc(var(--stagger-delay-base) * 3)}.animate-delay-4{animation-delay:calc(var(--stagger-delay-base) * 4)}.animate-delay-5{animation-delay:calc(var(--stagger-delay-base) * 5)}.animate-fade-in-scale{animation:fadeInScale .5s cubic-bezier(.4,0,.2,1);animation-fill-mode:var(--animation-fill-mode)}.animate-pulse-glow{animation:pulseGlow 2s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulse-ring{animation:pulseRing 2s ease-in-out infinite}.animate-text-shimmer{background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:textShimmer 2s ease-in-out infinite}.animate-wave-slide{background:linear-gradient(90deg,transparent 0%,var(--color-brand, #ff7900) 25%,var(--color-brand, #ff7900) 75%,transparent 100%);background-size:200% 100%;animation:waveSlide 2s ease-in-out infinite}.animate-section-pulse{animation:sectionPulse 2s ease-out}.animate-section-border-fade{animation:sectionBorderFade 2s ease-out forwards}.animate-new-section-glow{animation:newSectionGlow .6s ease-out forwards}.animate-dot-pulse{animation:dotPulse 2s ease-in-out infinite}.animate-ring-expand{animation:ringExpand 2s ease-in-out infinite}.animate-generating-pulse{animation:generatingBgPulse 3s ease-in-out infinite,cardGeneratingPulse 2s ease-in-out infinite}.animate-gradient-pulse{animation:gradientPulse 5s ease-in-out infinite}.animate-ring-pulse{animation:ringPulse 3s ease-in-out infinite}.animate-icon-float{animation:iconFloat 4s ease-in-out infinite}.animate-particle-float{animation:particleFloat 4s ease-in-out infinite}.animate-spinner{animation:spinnerRotate 1.5s linear infinite}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:\"\";position:absolute;width:100%;height:100%;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);background:radial-gradient(circle,color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent) 0%,transparent 70%);pointer-events:none;border-radius:inherit;opacity:0}.btn-ripple:active:after{animation:rippleEffect .6s ease-out}.animate-cursor-blink{animation:cursorBlink .8s step-end infinite}.animate-spark-travel{position:relative}.animate-spark-travel:before{content:\"\";position:absolute;width:3px;height:3px;background:var(--color-brand, #ff7900);border-radius:50%;box-shadow:0 0 6px 1px color-mix(in srgb,var(--color-brand, #ff7900) 80%,transparent);animation:sparkTravel 3s linear infinite;pointer-events:none;z-index:10}.section-highlight:after{content:\"\";position:absolute;inset:-4px;border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent);border-radius:14px;pointer-events:none;animation:sectionBorderFade 2s ease-out forwards}.will-animate{will-change:transform,opacity}.will-animate-transform{will-change:transform}.will-animate-opacity{will-change:opacity}.animation-complete{will-change:auto}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}@media (prefers-reduced-motion: reduce){.animate-fade-in,.animate-fade-in-up,.animate-fade-in-scale,.animate-slide-up,.animate-slide-down,.animate-slide-in-left,.animate-slide-in-right,.animate-scale,.animate-scale-in,.animate-pulse,.animate-pulse-glow,.animate-float,.animate-pulse-ring,.animate-text-shimmer,.animate-wave-slide,.animate-section-pulse,.animate-section-border-fade,.animate-new-section-glow,.animate-dot-pulse,.animate-ring-expand,.animate-generating-pulse,.animate-gradient-pulse,.animate-ring-pulse,.animate-icon-float,.animate-particle-float,.animate-spinner,.animate-cursor-blink,.animate-spark-travel,.animate-spin,.animate-spin-slow,.animate-shake,.animate-bounce,.section-streaming,.section-streaming-glow,.section-highlight,.field-streaming,.item-streaming,.state-transition-enter,.state-transition-exit,.error-shake,.error-pulse,.skeleton-shimmer,.skeleton-pulse,.btn-ripple{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}.animate-spark-travel:before,.section-highlight:after,.btn-ripple:after{animation:none!important;display:none}.animate-text-shimmer{background:none!important;-webkit-text-fill-color:var(--foreground, currentColor)!important}.will-animate,.will-animate-transform,.will-animate-opacity,.section-streaming{will-change:auto!important}}.tilt-container{transform:perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) scale(var(--tilt-scale, 1)) translateZ(0)!important;transition:box-shadow .2s cubic-bezier(.2,0,.2,1);transform-style:preserve-3d;backface-visibility:hidden;position:relative;border-radius:var(--card-border-radius);contain:layout style;isolation:isolate;will-change:transform;transform-origin:center center}.tilt-container:not(:hover){transition:box-shadow .8s cubic-bezier(.22,.61,.36,1);will-change:auto}.tilt-container:hover{will-change:transform;box-shadow:0 0 var(--glow-blur) var(--glow-color, rgba(255, 121, 0, .375));transition:box-shadow .2s cubic-bezier(.2,0,.2,1)}.glow-container{position:relative;filter:drop-shadow(0 0 var(--glow-blur) var(--glow-color, rgba(255, 121, 0, .225)));transition:filter .2s cubic-bezier(.4,0,.2,1);will-change:filter;contain:layout style;isolation:isolate;transform:translateZ(0)}.glow-container:hover{will-change:filter;transition:filter .2s cubic-bezier(.4,0,.2,1)}.glow-container:not(:hover){will-change:auto;transition:filter .5s cubic-bezier(.25,.46,.45,.94)}.card-reflection{position:absolute;inset:0;background:transparent;opacity:var(--reflection-opacity, .08);transition:opacity .2s cubic-bezier(.4,0,.2,1);pointer-events:none;border-radius:inherit;will-change:opacity;backface-visibility:hidden}.tilt-container:not(:hover) .card-reflection{transition:opacity .5s cubic-bezier(.25,.46,.45,.94)}.tilt-wrapper{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.4,0,.2,1);backface-visibility:hidden;contain:layout style}.tilt-content{transform-style:preserve-3d;backface-visibility:hidden}.tilt-glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:transparent;opacity:var(--glare-opacity, 0);transition:opacity var(--glow-duration) var(--ease-out-smooth);will-change:opacity;backface-visibility:hidden}@media (max-width: 768px){.tilt-container{transform:perspective(800px) rotateX(calc(var(--tilt-x, 0deg) * .7)) rotateY(calc(var(--tilt-y, 0deg) * .7)) scale(var(--tilt-scale, 1)) translateZ(0)}.tilt-container:hover{box-shadow:0 0 var(--glow-blur) var(--glow-color, rgba(255, 121, 0, .375))}}.ai-card-surface--fullscreen .tilt-container{transform:perspective(1000px) translateZ(0)!important;box-shadow:none!important;will-change:auto!important}.ai-card-surface--fullscreen .glow-container{filter:none!important;will-change:auto!important}.ai-card-surface--fullscreen .card-reflection,.ai-card-surface--fullscreen .tilt-glare{opacity:0!important;display:none}@media (prefers-reduced-motion: reduce){.tilt-container,.tilt-wrapper{transform:none!important;transition:none!important}.tilt-container:hover{box-shadow:none!important}.glow-container{filter:none!important;transition:none!important}.card-reflection,.tilt-glare{opacity:0!important;transition:none!important}.tilt-container,.glow-container,.card-reflection,.tilt-glare{will-change:auto!important}}@supports (grid-template-rows: masonry){.masonry-container--native{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(var(--section-grid-min-width, 260px),1fr));grid-template-rows:masonry;gap:var(--section-card-gap, 12px);align-tracks:stretch}.masonry-container--native .masonry-item{position:relative!important;left:auto!important;top:auto!important;width:auto!important}}.masonry-container--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--section-grid-min-width, 260px),1fr));grid-auto-rows:minmax(100px,auto);grid-auto-flow:dense;gap:var(--section-card-gap, 12px)}.masonry-container--grid .masonry-item{position:relative}.masonry-container--grid .masonry-item[data-col-span=\"2\"]{grid-column:span 2}.masonry-container--grid .masonry-item[data-col-span=\"3\"]{grid-column:span 3}.masonry-container--grid .masonry-item[data-col-span=\"4\"]{grid-column:span 4}@media (max-width: 600px){.masonry-container--grid .masonry-item[data-col-span]{grid-column:span 1}}@supports (grid-template-rows: subgrid){.masonry-container--subgrid .masonry-item{display:grid;grid-template-rows:subgrid;grid-row:span 2}.masonry-container--subgrid .masonry-item .ai-section__header{grid-row:1}.masonry-container--subgrid .masonry-item .ai-section__body{grid-row:2}}.masonry-grid-container{position:relative;width:100%;height:auto;min-height:200px;will-change:height;transform:translateZ(0)}.masonry-grid-container .masonry-item{position:absolute;width:auto;height:auto;box-sizing:border-box;transform-origin:top left;will-change:transform,opacity;backface-visibility:hidden}.masonry-item{height:fit-content;min-height:fit-content;width:100%;break-inside:avoid;page-break-inside:avoid;display:flex;flex-direction:column;overflow:visible;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word;transition:top .4s cubic-bezier(.4,0,.2,1),left .4s cubic-bezier(.4,0,.2,1),width .4s cubic-bezier(.4,0,.2,1),opacity .35s ease-out;border:var(--section-border)!important;border-radius:var(--section-border-radius)!important;background:var(--section-surface, var(--section-background, var(--card-section-bg)))!important;box-shadow:var(--section-box-shadow)!important;transition:var(--section-transition, none)!important;animation:var(--section-entrance-animation, none);will-change:opacity,transform;padding:var(--section-container-padding)!important;gap:var(--section-card-gap)}.masonry-item:hover{background:var(--section-surface-hover, var(--section-background-hover, var(--section-surface)))!important;border-color:var(--section-border-hover, var(--section-border))!important;box-shadow:var(--section-box-shadow-hover, var(--section-box-shadow))!important}.masonry-item>*{height:auto!important;min-height:fit-content!important;max-height:none!important}.masonry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px;grid-auto-rows:minmax(100px,auto)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px}.masonry-item--vertical .ai-section__body{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;gap:var(--section-card-gap)!important}.masonry-item--horizontal .ai-section__body{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:var(--section-card-gap)!important}.masonry-item--horizontal .ai-section__body>*{flex:1 1 200px!important;min-width:180px!important;max-width:100%!important}.masonry-item--horizontal .contact-card,.masonry-item--horizontal .network-card{flex:1 1 220px!important;min-width:200px!important;max-width:320px!important}.masonry-item--horizontal .analytics-metric,.masonry-item--horizontal .financial-metric{flex:1 1 160px!important;min-width:140px!important;max-width:260px!important}.masonry-item--horizontal .overview-card{flex:1 1 180px!important;min-width:160px!important;max-width:280px!important}.masonry-item--auto .ai-section__body{display:flex!important;flex-direction:column!important;flex-wrap:wrap!important;gap:var(--section-card-gap)!important}@container (min-width: 500px){.masonry-item--auto .ai-section__body{flex-direction:row!important}.masonry-item--auto .ai-section__body>*{flex:1 1 200px!important;min-width:180px!important}}@media (max-width: 480px){.masonry-item--horizontal .ai-section__body{flex-direction:column!important;flex-wrap:nowrap!important}.masonry-item--horizontal .ai-section__body>*{flex:1 1 auto!important;min-width:100%!important;max-width:100%!important}}.masonry-item{container-type:inline-size;container-name:section}.masonry-item--priority-critical:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);border-radius:0 2px 2px 0}.masonry-item--sticky{position:sticky!important;top:0!important;z-index:10!important;background:var(--card-background)!important}.masonry-item--flex-grow{flex-grow:1!important}@media (prefers-reduced-motion: reduce){.masonry-item,.masonry-grid-container .masonry-item{transition:none}}.masonry-container--compact{--section-card-gap: 8px}.masonry-container--compact .masonry-item{padding:calc(var(--section-container-padding) * .75)!important}.masonry-container--comfortable{--section-card-gap: 16px}.masonry-container--comfortable .masonry-item{padding:calc(var(--section-container-padding) * 1.25)!important}.masonry-container--track-aligned{display:grid;grid-template-columns:repeat(var(--masonry-columns, 4),1fr);grid-auto-rows:minmax(50px,auto);gap:var(--section-card-gap, 12px)}.masonry-container--track-aligned .masonry-item{position:relative!important;left:auto!important;top:auto!important;width:auto!important;align-self:start}.masonry-container--debug{background-image:linear-gradient(to right,rgba(255,121,0,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,121,0,.1) 1px,transparent 1px);background-size:calc(100% / var(--masonry-columns, 4)) 50px}.masonry-container--debug .masonry-item{outline:2px dashed rgba(255,121,0,.5)!important;outline-offset:-2px}.masonry-container--debug .masonry-item:after{content:attr(data-col-span) \" col\";position:absolute;top:4px;right:4px;background:#ff7900e6;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;z-index:100;pointer-events:none}.masonry-container--debug .masonry-item[data-priority=critical]:before{content:\"\\2605 Critical\";position:absolute;top:4px;left:4px;background:#ef4444;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;border-radius:3px;z-index:100}.masonry-container--debug .masonry-item[data-priority=important]:before{content:\"\\25c6 Important\";position:absolute;top:4px;left:4px;background:#f59e0b;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;border-radius:3px;z-index:100}.masonry-container--debug .masonry-item[data-priority=optional]:before{content:\"\\25cb Optional\";position:absolute;top:4px;left:4px;background:#6b7280;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;border-radius:3px;z-index:100}.masonry-container--stagger-animations .masonry-item{animation:masonry-item-appear .4s cubic-bezier(.4,0,.2,1) backwards}.masonry-container--stagger-animations .masonry-item:nth-child(1){animation-delay:0ms}.masonry-container--stagger-animations .masonry-item:nth-child(2){animation-delay:50ms}.masonry-container--stagger-animations .masonry-item:nth-child(3){animation-delay:.1s}.masonry-container--stagger-animations .masonry-item:nth-child(4){animation-delay:.15s}.masonry-container--stagger-animations .masonry-item:nth-child(5){animation-delay:.2s}.masonry-container--stagger-animations .masonry-item:nth-child(6){animation-delay:.25s}.masonry-container--stagger-animations .masonry-item:nth-child(7){animation-delay:.3s}.masonry-container--stagger-animations .masonry-item:nth-child(8){animation-delay:.35s}.masonry-container--stagger-animations .masonry-item:nth-child(9){animation-delay:.4s}.masonry-container--stagger-animations .masonry-item:nth-child(10){animation-delay:.45s}.masonry-container--stagger-animations .masonry-item:nth-child(11){animation-delay:.5s}.masonry-container--stagger-animations .masonry-item:nth-child(12){animation-delay:.55s}.masonry-container--stagger-animations .masonry-item:nth-child(13){animation-delay:.6s}.masonry-container--stagger-animations .masonry-item:nth-child(14){animation-delay:.65s}.masonry-container--stagger-animations .masonry-item:nth-child(15){animation-delay:.7s}.masonry-container--stagger-animations .masonry-item:nth-child(16){animation-delay:.75s}.masonry-container--stagger-animations .masonry-item:nth-child(17){animation-delay:.8s}.masonry-container--stagger-animations .masonry-item:nth-child(18){animation-delay:.85s}.masonry-container--stagger-animations .masonry-item:nth-child(19){animation-delay:.9s}.masonry-container--stagger-animations .masonry-item:nth-child(20){animation-delay:.95s}@keyframes masonry-item-appear{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.masonry-item--transitioning{will-change:transform,left,top,width;transition:top .35s cubic-bezier(.4,0,.2,1),left .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1),transform .35s cubic-bezier(.4,0,.2,1),opacity .25s ease-out}.masonry-container--initializing .masonry-item{transition:none!important}@media (prefers-reduced-motion: reduce){.masonry-item,.masonry-item--transitioning{transition:none!important;animation:none!important}}.masonry-container--balanced:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,transparent,rgba(var(--primary-rgb, 59, 130, 246),.3),transparent);opacity:0;transition:opacity .3s ease}.masonry-container--balanced:hover:after{opacity:1}.masonry-container--debug-balance .masonry-item{position:relative}.masonry-container--debug-balance .masonry-item:after{content:attr(data-column);position:absolute;top:-20px;left:50%;transform:translate(-50%);background:#0009;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;pointer-events:none}.masonry-skeleton{position:relative;background:linear-gradient(90deg,var(--skeleton-base, rgba(200, 200, 200, .2)) 25%,var(--skeleton-highlight, rgba(200, 200, 200, .4)) 50%,var(--skeleton-base, rgba(200, 200, 200, .2)) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--section-border-radius, 8px);overflow:hidden}.masonry-skeleton--single{width:calc((100% - var(--masonry-gap, 12px) * 3) / 4);height:180px}.masonry-skeleton--double{width:calc((100% - var(--masonry-gap, 12px) * 3) / 4 * 2 + var(--masonry-gap, 12px));height:200px}.masonry-skeleton--triple{width:calc((100% - var(--masonry-gap, 12px) * 3) / 4 * 3 + var(--masonry-gap, 12px) * 2);height:220px}.masonry-skeleton--full{width:100%;height:250px}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.masonry-skeleton__header{height:24px;width:60%;margin:16px;background:#0000001a;border-radius:4px}.masonry-skeleton__line{height:16px;margin:8px 16px;background:#00000014;border-radius:4px}.masonry-skeleton__line:nth-child(2){width:90%}.masonry-skeleton__line:nth-child(3){width:75%}.masonry-skeleton__line:nth-child(4){width:60%}.masonry-container--loading{min-height:400px}.masonry-container--loading .masonry-skeleton{position:absolute}.masonry-container--loading .masonry-skeleton:nth-child(1){animation-delay:0ms}.masonry-container--loading .masonry-skeleton:nth-child(2){animation-delay:.1s}.masonry-container--loading .masonry-skeleton:nth-child(3){animation-delay:.2s}.masonry-container--loading .masonry-skeleton:nth-child(4){animation-delay:.3s}.masonry-container--loading .masonry-skeleton:nth-child(5){animation-delay:.4s}.masonry-container--loading .masonry-skeleton:nth-child(6){animation-delay:.5s}.masonry-container--loading .masonry-skeleton:nth-child(7){animation-delay:.6s}.masonry-container--loading .masonry-skeleton:nth-child(8){animation-delay:.7s}.masonry-container--preserve-order .masonry-item{order:var(--item-order, 0)}.masonry-container--preserve-order.masonry-container--debug .masonry-item:before{content:\"#\" attr(data-index);position:absolute;top:4px;right:4px;background:#000000b3;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;z-index:100}.masonry-item:focus-visible{outline:2px solid var(--focus-color, #3b82f6);outline-offset:2px;z-index:10}.masonry-container--show-reading-order .masonry-item:after{content:attr(data-reading-order);position:absolute;bottom:4px;right:4px;background:var(--reading-order-bg, #6366f1);color:#fff;font-size:12px;font-weight:700;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;z-index:100}.masonry-container--show-reading-order .masonry-item[data-next-id]:before{content:\"\";position:absolute;bottom:16px;right:-6px;width:20px;height:2px;background:var(--reading-order-line, rgba(99, 102, 241, .3));z-index:99}.masonry-skip-link{position:absolute;top:-9999px;left:-9999px;z-index:1000;padding:12px 24px;background:var(--skip-link-bg, #1e40af);color:#fff;text-decoration:none;border-radius:4px}.masonry-skip-link:focus{top:12px;left:12px}.masonry-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.feature-grid{display:grid;gap:var(--feature-grid-gap, 1.5rem);width:100%;grid-template-columns:1fr}@media (min-width: 640px){.feature-grid--2col{grid-template-columns:repeat(2,1fr)}}@media (min-width: 640px){.feature-grid--3col{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.feature-grid--3col{grid-template-columns:repeat(3,1fr)}}@media (min-width: 640px){.feature-grid--4col{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.feature-grid--4col{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1280px){.feature-grid--4col{grid-template-columns:repeat(4,1fr)}}.feature-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.feature-grid--auto-lg{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.feature-grid--auto-sm{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.feature-grid--gap-sm{--feature-grid-gap: .75rem;gap:var(--feature-grid-gap)}.feature-grid--gap-md{--feature-grid-gap: 1rem;gap:var(--feature-grid-gap)}.feature-grid--gap-lg{--feature-grid-gap: 2rem;gap:var(--feature-grid-gap)}.feature-grid--gap-xl{--feature-grid-gap: 3rem;gap:var(--feature-grid-gap)}.feature-grid__item{display:flex;flex-direction:column;min-width:0}.feature-grid__item--span-2{grid-column:span 2}@media (max-width: 639px){.feature-grid__item--span-2{grid-column:span 1}}.feature-grid__item--span-full{grid-column:1/-1}.hero-grid{display:grid;gap:1rem;width:100%;grid-template-columns:1fr}@media (min-width: 768px){.hero-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media (min-width: 1024px){.hero-grid{grid-template-columns:repeat(3,1fr)}}.capabilities-grid{display:grid;gap:1.5rem;width:100%;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}@media (min-width: 1024px){.capabilities-grid{grid-template-columns:repeat(3,1fr)}}.features-grid{display:grid;gap:1.5rem;width:100%;grid-template-columns:1fr}@media (min-width: 640px){.features-grid{grid-template-columns:repeat(2,1fr);gap:2rem}}@media (min-width: 1024px){.features-grid{grid-template-columns:repeat(3,1fr)}}.feature-grid--dense{grid-auto-flow:dense}.feature-grid--center{justify-items:center}.feature-grid--stretch{align-items:stretch}.feature-grid--start{align-items:start}.feature-grid--animated .feature-grid__item{opacity:0;animation:fadeInUp .6s ease-out forwards}.feature-grid--animated .feature-grid__item:nth-child(1){animation-delay:0s}.feature-grid--animated .feature-grid__item:nth-child(2){animation-delay:.08s}.feature-grid--animated .feature-grid__item:nth-child(3){animation-delay:.16s}.feature-grid--animated .feature-grid__item:nth-child(4){animation-delay:.24s}.feature-grid--animated .feature-grid__item:nth-child(5){animation-delay:.32s}.feature-grid--animated .feature-grid__item:nth-child(6){animation-delay:.4s}.feature-grid--animated .feature-grid__item:nth-child(7){animation-delay:.48s}.feature-grid--animated .feature-grid__item:nth-child(8){animation-delay:.56s}.feature-grid--animated .feature-grid__item:nth-child(9){animation-delay:.64s}.feature-grid--animated .feature-grid__item:nth-child(10){animation-delay:.72s}.feature-grid--animated .feature-grid__item:nth-child(11){animation-delay:.8s}.feature-grid--animated .feature-grid__item:nth-child(12){animation-delay:.88s}@media (prefers-reduced-motion: reduce){.feature-grid--animated .feature-grid__item{opacity:1;animation:none}}@media (max-width: 639px){.feature-grid--mobile-1col{grid-template-columns:1fr!important}}@media (min-width: 640px) and (max-width: 1023px){.feature-grid--tablet-2col{grid-template-columns:repeat(2,1fr)!important}}.hero-card{position:relative;transition:all .35s cubic-bezier(.4,0,.2,1)}.hero-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}@media (prefers-reduced-motion: reduce){.hero-card{transition:none}.hero-card:hover{transform:none}}.hero-card--accent{position:relative;transition:all .35s cubic-bezier(.4,0,.2,1)}.hero-card--accent:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);border-radius:3px 0 0 3px;opacity:0;transition:opacity .35s ease}.hero-card--accent:hover{transform:translateY(-6px);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.hero-card--accent:hover:before{opacity:1}@media (prefers-reduced-motion: reduce){.hero-card--accent{transition:none}.hero-card--accent:hover{transform:none}}.hero-card--glow-line{position:relative;transition:all .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.hero-card--glow-line:before{content:\"\";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent) 50%,transparent 100%);opacity:0;transition:opacity .35s ease}.hero-card--glow-line:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);opacity:0;transition:opacity .35s ease}.hero-card--glow-line:hover{transform:translateY(-6px);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.hero-card--glow-line:hover:before,.hero-card--glow-line:hover:after{opacity:1}@media (prefers-reduced-motion: reduce){.hero-card--glow-line{transition:none}.hero-card--glow-line:hover{transform:none}.hero-card--glow-line:before,.hero-card--glow-line:after{transition:none}}.hero-card-icon{transition:transform .35s ease,filter .35s ease}.hero-card:hover .hero-card-icon,.hero-feature-card:hover .hero-card-icon,.feature-card:hover .hero-card-icon,[class*=card]:hover .hero-card-icon{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.hero-card-icon{transition:none}.hero-card:hover .hero-card-icon,.hero-feature-card:hover .hero-card-icon,.feature-card:hover .hero-card-icon,[class*=card]:hover .hero-card-icon{transform:none;filter:none}}.icon-hover{transition:transform .35s ease,filter .35s ease}.icon-hover:hover{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.icon-hover{transition:none}.icon-hover:hover{transform:none;filter:none}}.hero-feature-card{position:relative;border-radius:var(--card-border-radius, 1rem);border:1px solid var(--border, rgba(255, 255, 255, .08));background:var(--card-background, rgba(20, 20, 20, .6));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:1.5rem;transition:all .35s cubic-bezier(.4,0,.2,1)}.hero-feature-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--color-brand, #ff7900) 50%,transparent);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.hero-feature-card .hero-feature-card__icon{transition:transform .35s ease,filter .35s ease}.hero-feature-card:hover .hero-feature-card__icon{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.hero-feature-card{transition:none}.hero-feature-card:hover{transform:none}.hero-feature-card .hero-feature-card__icon{transition:none}.hero-feature-card:hover .hero-feature-card__icon{transform:none;filter:none}}.system-capability-card{position:relative;border-radius:var(--card-border-radius, 1rem);border:1px solid var(--border, rgba(255, 255, 255, .08));background:var(--card-background, rgba(20, 20, 20, .6));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:1.25rem;transition:all .35s cubic-bezier(.4,0,.2,1);animation:fadeInUp .6s ease-out backwards}.system-capability-card:nth-child(1){animation-delay:.08s}.system-capability-card:nth-child(2){animation-delay:.16s}.system-capability-card:nth-child(3){animation-delay:.24s}.system-capability-card:nth-child(4){animation-delay:.32s}.system-capability-card:nth-child(5){animation-delay:.4s}.system-capability-card:nth-child(6){animation-delay:.48s}.system-capability-card:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand, #ff7900);border-radius:3px 0 0 3px;opacity:0;transition:opacity .35s ease}.system-capability-card:after{content:\"\";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent) 50%,transparent 100%);opacity:0;transition:opacity .35s ease}.system-capability-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--color-brand, #ff7900) 50%,transparent);box-shadow:0 20px 40px color-mix(in srgb,var(--foreground, #000) 15%,transparent),0 0 0 1px color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent)}.system-capability-card:hover:before,.system-capability-card:hover:after{opacity:1}.system-capability-card .system-capability-card__icon{transition:transform .35s ease,filter .35s ease}.system-capability-card:hover .system-capability-card__icon{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent))}@media (prefers-reduced-motion: reduce){.system-capability-card{animation:none;transition:none}.system-capability-card:hover{transform:none}.system-capability-card:before,.system-capability-card:after{transition:none}.system-capability-card .system-capability-card__icon{transition:none}.system-capability-card:hover .system-capability-card__icon{transform:none;filter:none}}.feature-card{position:relative;border-radius:var(--card-border-radius, 1rem);border:1px solid var(--border, rgba(255, 255, 255, .08));background:var(--card-background);padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.feature-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px -10px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent)}.feature-card:hover .feature-card__icon{transform:scale(1.1)}.feature-card .feature-card__icon{transition:transform .3s ease}@media (prefers-reduced-motion: reduce){.feature-card{transition:none}.feature-card:hover{transform:none}.feature-card .feature-card__icon{transition:none}.feature-card:hover .feature-card__icon{transform:none}}.ai-card-surface.streaming-active{position:relative;border:1px solid rgba(255,121,0,.4);box-shadow:0 0 10px #ff790033,0 0 20px #ff79001a}.ai-card-surface.streaming-active:before{content:\"\";position:absolute;width:3px;height:3px;background:#ff9500;border-radius:50%;box-shadow:0 0 6px 1px #ff9500cc;animation:sparkTravel 3s linear infinite;pointer-events:none;z-index:10}.ai-card-surface.streaming-active .field-value,.ai-card-surface.streaming-active .item-title,.ai-card-surface.streaming-active .item-description,.ai-card-surface.streaming-active .section-title,.ai-card-surface.streaming-active .section-description,.ai-card-surface.streaming-active [class*=value],.ai-card-surface.streaming-active [class*=label]{transition:all .2s ease-out}.ai-card-surface.streaming-active [class*=value]:last-child:after,.ai-card-surface.streaming-active .field-value:last-child:after{content:\"\\258b\";display:inline-block;color:var(--color-brand, #ff7900);animation:cursorBlink .8s step-end infinite;margin-left:2px;font-weight:400}.ai-card-surface.streaming-active .masonry-item:not(.masonry-item--animating){animation:none!important}.ai-card-surface.streaming-active .masonry-item:not(.masonry-item--animating):after{animation:none!important;opacity:0!important}.ai-card-surface.streaming-active .masonry-item--animated,.ai-card-surface.streaming-active .masonry-item--animated *,.ai-card-surface.streaming-active .masonry-item--animated:before,.ai-card-surface.streaming-active .masonry-item--animated:after,.ai-card-surface.streaming-active .masonry-item[data-animated=true],.ai-card-surface.streaming-active .masonry-item[data-animated=true] *{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}.ai-card-surface.streaming-active .masonry-item--animated:after,.ai-card-surface.streaming-active .masonry-item[data-animated=true]:after{display:none!important}.ai-card-surface.streaming-active .masonry-item--animating .section-card,.ai-card-surface.streaming-active .masonry-item--animating [class*=section-]>div{border-color:#ff79004d!important;box-shadow:0 0 15px #ff790040;animation:sectionGlowPulse .8s ease-out forwards;animation-iteration-count:1}.ai-card-surface.streaming-active .masonry-item--animating .section-card:hover{border-color:#ff790099!important;box-shadow:0 0 25px #ff790066}.ai-card-surface.streaming-active .masonry-item--animating .section-card{animation:innerFlash .6s ease-out forwards;animation-iteration-count:1}.ai-card-surface.streaming-active .masonry-item--animating .section-card:before{content:\"\";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ff790026;pointer-events:none;animation:innerBorderPulse .8s ease-out forwards;animation-iteration-count:1}.ai-card-surface.streaming-active .masonry-item--animated .section-card,.ai-card-surface.streaming-active .masonry-item--animated [class*=section-]>div,.ai-card-surface.streaming-active .masonry-item[data-animated=true] .section-card{animation:none!important;box-shadow:none!important;border-color:#ff790026!important}.ai-card-surface.streaming-active .masonry-item--animated .section-card:before,.ai-card-surface.streaming-active .masonry-item[data-animated=true] .section-card:before{animation:none!important;box-shadow:none!important}.ai-card-surface.streaming-active .masonry-item--animating{animation:sectionMagicAppear .7s cubic-bezier(.34,1.56,.64,1) forwards;animation-iteration-count:1;position:relative;overflow:hidden}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(1){animation-delay:0ms}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(2){animation-delay:80ms}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(3){animation-delay:.16s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(4){animation-delay:.24s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(5){animation-delay:.32s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(6){animation-delay:.4s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(7){animation-delay:.48s}.ai-card-surface.streaming-active .masonry-item--animating:nth-child(8){animation-delay:.56s}.ai-card-surface.streaming-active .masonry-item--animating:after{content:\"\";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,149,0,.15) 50%,transparent 70%);animation:shimmerSweep .8s ease-out forwards;animation-iteration-count:1;pointer-events:none;border-radius:inherit}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item){opacity:0;transform:translateY(12px);animation:fieldEnterBounce .45s ease forwards;animation-iteration-count:1;will-change:opacity,transform}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(1){animation-delay:0s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(2){animation-delay:.05s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(3){animation-delay:.1s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(4){animation-delay:.15s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(5){animation-delay:.2s}.ai-card-surface.streaming-active .masonry-item--animating :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item):nth-child(n+6){animation-delay:.24s}.ai-card-surface.streaming-active .masonry-item--animated :where(.info-row,.section-card,.list-card,.event-timeline__item,.product-card,.solutions-card,.contact-card,.network-card__item,.map-point,.text-reference-entry,.quote-card,.overview-card__item){animation:none!important;opacity:1!important;transform:none!important}.streaming-border-glow{position:relative;border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent),0 0 20px color-mix(in srgb,var(--color-brand, #ff7900) 10%,transparent)}.streaming-border-glow:before{content:\"\";position:absolute;width:3px;height:3px;background:var(--color-brand, #ff7900);border-radius:50%;box-shadow:0 0 6px 1px color-mix(in srgb,var(--color-brand, #ff7900) 80%,transparent);animation:sparkTravel 3s linear infinite;pointer-events:none;z-index:10}.typing-cursor:after{content:\"\\258b\";display:inline-block;color:var(--color-brand, #ff7900);animation:cursorBlink .8s step-end infinite;margin-left:2px;font-weight:400}.section-highlight{animation:sectionPulse 2s ease-out;position:relative}.section-highlight:after{content:\"\";position:absolute;inset:-4px;border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 60%,transparent);border-radius:var(--card-border-radius, 14px);pointer-events:none;animation:sectionBorderFade 2s ease-out forwards}.new-section-glow{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);box-shadow:0 0 15px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent);animation:newSectionGlow .6s ease-out forwards}.shimmer-text{background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:textShimmer 2s ease-in-out infinite}.wave-progress{position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent 0%,var(--color-brand, #ff7900) 25%,var(--color-brand, #ff7900) 75%,transparent 100%);background-size:200% 100%;animation:waveSlide 2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.ai-card-surface.streaming-active,.ai-card-surface.streaming-active:before,.ai-card-surface.streaming-active:after,.ai-card-surface.streaming-active *,.streaming-border-glow,.streaming-border-glow:before,.typing-cursor:after,.section-highlight,.section-highlight:after,.new-section-glow,.shimmer-text,.wave-progress{animation:none!important;transition:none!important}.ai-card-surface.streaming-active [class*=value]:last-child:after,.ai-card-surface.streaming-active .field-value:last-child:after,.typing-cursor:after{content:none!important}.shimmer-text{background:none!important;-webkit-text-fill-color:currentColor!important}}:host{display:block;padding:8px;background:transparent!important;background-color:transparent!important}@media (max-width: 480px){:host{padding:4px}}.ai-card-surface{position:relative;display:flex;flex-direction:column;height:100%;overflow:visible;isolation:isolate;border:var(--ai-card-border, 1px solid rgba(255, 121, 0, .12))!important;border-width:1px!important;border-style:solid!important;border-radius:var(--ai-card-border-radius)!important;background:var(--section-item-background)!important;box-shadow:var(--ai-card-box-shadow, none)!important;transition:var(--ai-card-transition, none)!important;animation:var(--ai-card-entrance-animation, none);will-change:opacity,transform;background:var(--ai-card-background)!important;border:var(--theme-ai-card-border)!important;box-shadow:var(--theme-ai-card-box-shadow)!important;padding:var(--card-main-padding)!important;padding-bottom:var(--card-main-padding)!important;border-radius:var(--card-border-radius)!important;gap:var(--section-card-gap)!important;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.ai-card-surface *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.ai-card-surface h1{transition:opacity .2s ease}.ai-card-surface:hover{border-color:var(--ai-card-border-hover, rgba(255, 121, 0, .2))!important;background:var(--section-item-background-hover, var(--section-item-background))!important;box-shadow:var(--ai-card-box-shadow-hover, var(--ai-card-box-shadow, none))!important;background:var(--ai-card-background-hover)!important;border:var(--theme-ai-card-border-hover)!important;box-shadow:var(--theme-ai-card-box-shadow-hover)!important}.ai-card-surface--fullscreen{border:none!important;box-shadow:none!important;background:var(--ai-card-background)!important;max-height:none!important;max-width:none!important;width:100%!important;overflow:visible!important;padding:var(--card-main-padding)!important}.ai-card-surface--fullscreen:hover{background:var(--ai-card-background)!important;border:none!important;box-shadow:none!important}.ai-card-surface--fullscreen .tilt-container{transform:none!important;box-shadow:none!important;width:100%!important;max-width:none!important}.ai-card-surface--fullscreen .glow-container{filter:none!important}.ai-card-surface--fullscreen .card-reflection{display:none!important}.ai-card-surface--fullscreen .ai-card-header{padding:0!important;margin:0!important;border:none!important;background:transparent!important;box-shadow:none!important}.ai-card-surface--fullscreen .ai-card-title{font-size:14px!important}.ai-card-fullscreen-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#ff790014;border:1px solid rgba(255,121,0,.2);color:var(--foreground);cursor:pointer;transition:all .2s ease;flex-shrink:0;position:absolute;top:var(--card-main-padding);right:var(--card-main-padding);z-index:100}.ai-card-fullscreen-btn:hover{transform:translateY(-2px);background:#ff790026;border-color:#ff790066;box-shadow:0 4px 12px #ff790033}.ai-card-fullscreen-btn:active{transform:translateY(0)}.ai-card-fullscreen-btn__icon{color:currentColor}.ai-card-header{position:relative;z-index:10;padding:0!important;padding-block:0!important;padding-block-start:0!important;padding-block-end:0!important;padding-inline:0!important;padding-inline-start:0!important;padding-inline-end:0!important;margin:0!important;display:flex;flex-direction:column;gap:4px;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-block-start:none!important;border-block-end:none!important;border-inline:none!important;border-inline-start:none!important;border-inline-end:none!important;background:transparent!important;background-color:transparent!important;backdrop-filter:none!important;box-shadow:none!important;border-radius:0!important;outline:none!important;outline-offset:0!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important}.ai-card-header:before{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-header:after{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-title-stack{display:flex;flex-direction:column;gap:2px}.ai-card-eyebrow{font-size:var(--font-card-eyebrow);letter-spacing:.08em;text-transform:none;color:#1c1c1fd9;font-weight:600;opacity:.9}.ai-card-title{font-size:18px;font-weight:700;color:var(--foreground);letter-spacing:-.01em;line-height:1.2;text-transform:none;border:0!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-top:0!important;border-right:0!important;border-bottom:0!important;border-left:0!important;border-top:none!important;border-right:none!important;border-bottom:none!important;border-left:none!important;border-block:none!important;border-inline:none!important;border-image:none!important;border-radius:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;outline-offset:0!important;padding:0!important;padding-block:0!important;padding-inline:0!important;margin:0!important;margin-block:0!important;margin-inline:0!important;box-shadow:none!important;text-decoration:none!important;text-decoration-line:none!important;text-decoration-style:none!important;text-decoration-color:transparent!important;text-underline-offset:0!important;text-decoration-thickness:0!important}.ai-card-title:before,.ai-card-title:after{display:none!important;border:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-top:none!important;border-right:none!important;border-bottom:none!important;border-left:none!important;border-block:none!important;border-inline:none!important;border-image:none!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;margin:0!important;content:none!important}.ai-card-type-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:999px;border:1px solid rgba(255,121,0,.32);background:#ff79002e;text-transform:none;letter-spacing:.05em;font-size:var(--font-card-meta);font-weight:600;color:#423d37d9}.ai-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;text-transform:none;font-size:var(--font-card-meta);letter-spacing:.05em;color:#1c1c1fd9}.ai-card-meta__chip{display:inline-flex;align-items:stretch;gap:4px;padding:2px 6px;border-radius:999px;border:1px solid rgba(55,55,60,.65);background:#28282dcc}.ai-card-meta__chip-dot{width:3px;height:3px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px #ff79001f}.ai-card-meta__chip-dot--primary{background:var(--accent)}.ai-card-meta__chip-dot--secondary{background:#ff7900a6}.ai-card-meta__chip-dot--tertiary{background:#ff790059}.ai-card-meta__chip-content{display:flex;flex-direction:column;gap:0px;line-height:1}.ai-card-meta__chip-label{font-size:.48rem;letter-spacing:.05em;text-transform:none;color:#1c1c1fd9;font-weight:600}.ai-card-meta__chip-value{font-size:var(--font-card-meta-value);font-weight:600;color:var(--foreground);letter-spacing:.01em}.ai-card-body{position:relative;z-index:10;flex:1;padding:0!important;padding-block:0!important;padding-block-start:0!important;padding-block-end:0!important;padding-inline:0!important;padding-inline-start:0!important;padding-inline-end:0!important;margin:0!important;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:visible;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-block-start:none!important;border-block-end:none!important;border-inline:none!important;border-inline-start:none!important;border-inline-end:none!important;background:transparent!important;background-color:transparent!important;backdrop-filter:none!important;box-shadow:none!important;border-radius:0!important;outline:none!important;outline-offset:0!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important}.ai-card-body:before{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-body:after{display:none!important;border:none!important;border-top:none!important;border-bottom:none!important;border-left:none!important;border-right:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-image:none!important;border-block:none!important;border-inline:none!important;padding:0!important;padding-block:0!important;padding-inline:0!important;outline:none!important;outline-width:0!important;outline-style:none!important;outline-color:transparent!important;box-shadow:none!important}.ai-card-action{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-weight:600;font-size:var(--font-card-action, .875rem);letter-spacing:.01em;border:1px solid transparent;text-transform:none;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.ai-card-action--primary{background:var(--primary, #ff7900);color:var(--primary-foreground, #ffffff);border-color:#ff7900cc;box-shadow:0 2px 8px #ff790040,0 1px 2px #0000001a}.ai-card-action--primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #ff790059,0 2px 4px #0000001a;background:#ff7900f2;border-color:var(--primary, #ff7900)}.ai-card-action--secondary{background:#28282de6;color:var(--foreground, #ffffff);border-color:#37373c99;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.ai-card-action--secondary:hover{transform:translateY(-1px);border-color:#ff790066;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;background:#322e2af2}.ai-card-action__shine{position:absolute;inset:0;background:linear-gradient(135deg,#fff3,#fff0,#ffffff1a);opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1);pointer-events:none;border-radius:inherit}.ai-card-action:hover .ai-card-action__shine{opacity:1}.ai-card-action--primary .ai-card-action__shine{background:linear-gradient(135deg,#ffffff4d,#fff0,#ffffff26)}.ai-card-action--secondary .ai-card-action__shine{background:linear-gradient(135deg,#ffffff26,#fff0,#ffffff14)}.ai-card-action__content{position:relative;z-index:10;display:inline-flex;align-items:center;gap:6px}.ai-card-action__icon{color:currentColor;opacity:.9;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ai-card-action__label{font-weight:600;letter-spacing:.01em;transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-card-action:hover .ai-card-action__icon{transform:translate(2px);opacity:1}.ai-card-action:hover .ai-card-action__label{transform:translate(1px)}.ai-card-footnote{margin-top:auto;margin-bottom:0!important;padding:0!important;border:none!important;border-top:none!important;text-align:center;font-size:.65rem!important;letter-spacing:.08em;text-transform:none;color:#1c1c1fb3;line-height:1.2}@media (prefers-reduced-motion: reduce){.ai-card-surface{transition:none!important;transform:none!important;box-shadow:var(--card-box-shadow)!important}.ai-card-surface:before{opacity:0!important}.ai-card-surface:hover{transform:none!important}}.card-container-wrapper,.glow-container,.tilt-container,.w-full{width:100%}.h-full{height:100%}.flex-1{flex:1 1 0%}.min-h-0{min-height:0}.max-w-none{max-width:none}.card-empty-state{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;height:100%;padding:4rem 2rem;border-radius:1.5rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);background:color-mix(in srgb,var(--background, #0c0c0c) 98%,transparent);transition:all .3s ease;flex:1;box-sizing:border-box}.ai-card-surface--empty-state{display:flex;flex-direction:column;min-height:100%;height:100%}.ai-card-surface--empty-state .card-empty-state{flex:1 1 auto;min-height:0;height:100%;display:flex}.card-empty-state:hover{border-color:color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent);background:color-mix(in srgb,var(--background, #0c0c0c) 99%,transparent)}.empty-state-background{position:absolute;inset:0;overflow:hidden;pointer-events:none}.empty-state-gradient{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:150%;height:150%;background:radial-gradient(circle,color-mix(in srgb,var(--color-brand, #ff7900) 6%,transparent) 0%,color-mix(in srgb,var(--color-brand, #ff7900) 3%,transparent) 50%,transparent 80%);animation:gradient-pulse 5s ease-in-out infinite;opacity:.8}@keyframes gradient-pulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.05)}}.empty-state-particles{position:absolute;inset:0}.empty-state-particles .particle{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--color-brand, #ff7900);box-shadow:0 0 8px var(--color-brand, #ff7900);transition:transform .8s cubic-bezier(.23,1,.32,1),opacity .5s ease;will-change:transform,opacity;top:50%;left:50%;margin-left:-2px;margin-top:-2px;pointer-events:none;opacity:.7}.empty-state-particles .particle:nth-child(odd){width:5px;height:5px;background:var(--color-brand, #ff7900);box-shadow:0 0 10px var(--color-brand, #ff7900);opacity:.8}.empty-state-particles .particle:nth-child(2n){width:3px;height:3px;background:var(--color-brand, #ff7900);box-shadow:0 0 6px var(--color-brand, #ff7900);opacity:.6}.empty-state-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1rem;max-width:420px;width:100%;transition:transform .2s cubic-bezier(.25,.46,.45,.94);will-change:transform}.empty-state-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:88px;height:88px}.empty-state-icon-ring{position:absolute;inset:-8px;border:1.5px solid color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent);border-radius:50%;animation:ring-pulse 3s ease-in-out infinite}.empty-state-icon-pulse{position:absolute;inset:-16px;border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent);border-radius:50%;animation:ring-pulse 3s ease-in-out infinite .75s}@keyframes ring-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}.empty-state-icon{position:relative;z-index:1;color:var(--color-brand, #ff7900);animation:icon-float 4s ease-in-out infinite;filter:drop-shadow(0 2px 8px color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent));opacity:.95}@keyframes icon-float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-6px) rotate(-3deg)}50%{transform:translateY(-10px) rotate(0)}75%{transform:translateY(-6px) rotate(3deg)}}.empty-state-text{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%}.empty-state-title{font-size:1.75rem;font-weight:700;color:var(--foreground, #ffffff);margin:0;letter-spacing:-.03em;line-height:1.2;text-align:center;animation:fade-in-up .6s ease-out .2s both}.empty-state-message-container{min-height:2.5rem;display:flex;align-items:center;justify-content:center;width:100%}.empty-state-message{font-size:1rem;color:var(--color-brand, #ff7900);margin:0;line-height:1.6;font-weight:500;font-style:italic;text-align:center;animation:fade-in-up .6s ease-out .4s both;letter-spacing:.01em}.card-empty-state-legacy{min-height:200px;display:flex;align-items:center;justify-content:center;padding:3rem;background:linear-gradient(135deg,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,color-mix(in srgb,var(--background, #0c0c0c) 98%,transparent) 50%,transparent 100%);border-radius:1.5rem;border:1px dashed color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}.empty-state-box{text-align:center;max-width:320px}.empty-state-icon-legacy{display:flex;justify-content:center;margin-bottom:1.5rem;color:var(--color-brand, #ff7900);opacity:.7}.empty-state-message-legacy{font-size:.95rem;color:var(--muted-foreground, #a1a1aa);line-height:1.6;margin:0}.ai-card-surface.has-loading-overlay{display:flex;align-items:center;justify-content:center;min-height:500px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%);animation:generating-bg-pulse 3s ease-in-out infinite,card-generating-pulse 2s ease-in-out infinite}@keyframes card-generating-pulse{0%,to{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent),0 4px 20px #00000026,0 0 0 transparent}50%{box-shadow:inset 0 1px 3px color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent),0 4px 20px #00000026,0 0 30px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent)}}@keyframes generating-bg-pulse{0%,to{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%)}50%{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--color-brand, #ff7900) 12%,transparent) 0%,transparent 70%)}}.generating-content{position:relative;z-index:2;text-align:center}.generating-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-brand, #ff7900) 15%,transparent) 50%,transparent 100%);animation:shimmer-sweep 2.5s ease-in-out infinite;pointer-events:none;z-index:1}@keyframes shimmer-sweep{0%{left:-100%}to{left:100%}}.generating-text{font-size:1.125rem;font-weight:600;color:var(--foreground, #ffffff);margin:0;background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:text-shimmer-flow 2.5s ease-in-out infinite;position:relative;z-index:2;letter-spacing:.02em}@keyframes text-shimmer-flow{0%,to{background-position:-200% 0}50%{background-position:200% 0}}.loading-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.particle{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--color-brand, #ff7900);box-shadow:0 0 6px var(--color-brand, #ff7900);animation:particle-float 4s ease-in-out infinite}.particle:nth-child(1){top:10%;left:20%;animation-delay:0s}.particle:nth-child(2){top:30%;left:80%;animation-delay:.5s}.particle:nth-child(3){top:70%;left:30%;animation-delay:1s}.particle:nth-child(4){top:80%;left:70%;animation-delay:1.5s}.particle:nth-child(5){top:20%;left:50%;animation-delay:.3s}.particle:nth-child(6){top:60%;left:15%;animation-delay:.9s}.particle:nth-child(7){top:50%;left:90%;animation-delay:1.8s}.particle:nth-child(8){top:15%;left:60%;animation-delay:2.1s}@keyframes particle-float{0%,to{transform:translateY(0) translate(0) scale(1);opacity:.3}25%{transform:translateY(-30px) translate(20px) scale(1.2);opacity:.7}50%{transform:translateY(-60px) translate(-10px) scale(.8);opacity:1}75%{transform:translateY(-30px) translate(15px) scale(1.1);opacity:.6}}.loading-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.loading-spinner{width:64px;height:64px;position:relative}.spinner-svg{width:100%;height:100%;animation:spinner-rotate 1.5s linear infinite;transform-origin:center}.spinner-circle{stroke-dasharray:125.6;stroke-dashoffset:31.4;stroke:var(--color-brand, #ff7900);animation:spinner-dash 1.5s ease-in-out infinite}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinner-dash{0%{stroke-dasharray:1,125.6;stroke-dashoffset:0}50%{stroke-dasharray:94.2,125.6;stroke-dashoffset:-31.4}to{stroke-dasharray:94.2,125.6;stroke-dashoffset:-125.6}}.loading-text{text-align:center}.loading-title{font-size:1.25rem;font-weight:600;color:var(--foreground, #ffffff);margin-bottom:.5rem;background:linear-gradient(90deg,var(--foreground, #ffffff) 0%,var(--color-brand, #ff7900) 50%,var(--foreground, #ffffff) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:text-shimmer 2s ease-in-out infinite}.loading-subtitle{font-size:.875rem;color:var(--muted-foreground, #a1a1aa);margin:0}@keyframes text-shimmer{0%,to{background-position:-200% 0}50%{background-position:200% 0}}.loading-wave{position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent 0%,var(--color-brand, #ff7900) 25%,var(--color-brand, #ff7900) 75%,transparent 100%);background-size:200% 100%;animation:wave-slide 2s ease-in-out infinite}@keyframes wave-slide{0%{background-position:-200% 0}to{background-position:200% 0}}.ai-section{--section-accent: var(--accent, #ff7900);--section-border-hover: 1px solid var(--card-border-hover, rgba(255, 121, 0, .2));--section-background: var( --section-surface, var(--section-background, var(--card-section-bg, #fafafa)) );--section-background-hover: var( --section-surface-hover, var(--section-background-hover, var(--card-section-bg, #fafafa)) );--section-backdrop-filter: blur(12px);--section-spacing-bottom: clamp(4px, .8vw, 12px);--section-glow-background: radial-gradient( circle at top right, rgba(255, 121, 0, .35) 0%, transparent 65% );--section-glow-opacity-hover: .12;--section-title-underline-length: clamp(32px, 3vw, 48px);--section-title-underline-hover-length: clamp(40px, 4vw, 64px);--section-title-underline-height: 3px;--section-title-underline-offset: -10px;--section-title-hover-color: rgba(255, 180, 100, 1);height:100%!important;margin-bottom:var(--section-spacing-bottom)!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.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:var(--section-padding);border-radius:var(--section-item-border-radius);background:var(--section-background);border:var(--section-border);box-shadow:var(--section-box-shadow)}.masonry-item .ai-section{display:flex!important;flex-direction:column!important;gap:var(--section-card-gap)!important}.ai-section--main{--section-background: var(--section-bg-main, var(--section-surface, var(--background)));--section-background-hover: var( --section-bg-main-hover, var(--section-surface-hover, var(--background)) )}.ai-section--contrast{--section-background: var(--section-bg-contrast, var(--card-section-bg));--section-background-hover: var(--section-bg-contrast-hover, var(--card-section-card-bg))}.ai-section__header{display:flex;flex-direction:row;gap:calc(var(--card-gap) * .75);width:100%;box-sizing:border-box;align-items:center!important;padding:0 0 calc(var(--card-gap) * .75) 0!important;border-bottom:none!important;background:transparent!important;margin:0!important;flex-wrap:wrap!important;gap:calc(var(--card-gap) * .75)!important}.ai-section__title{font-size:var(--section-title-font-size, 1.1rem);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(--section-title-font-size, 1.1rem)!important;font-weight:var(--section-title-font-weight, 700)!important;letter-spacing:var(--section-title-letter-spacing, -.02em)!important;line-height:var(--section-title-line-height, 1.3)!important;color:var(--card-text-primary, #1c1c1f)!important;opacity:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;position:relative!important;transition:color .22s cubic-bezier(.4,0,.2,1)!important;padding:0!important;margin:0 0 var(--section-title-margin-bottom) 0!important;font-family:inherit!important;border:none!important}.ai-section__title:before{content:\"\"!important;position:absolute!important;left:0!important;bottom:var(--section-title-underline-offset, -10px)!important;width:var(--section-title-underline-length)!important;height:var(--section-title-underline-height)!important;background:var(--section-accent, var(--accent, #ff7900))!important;border-radius:2px!important;transition:width .22s ease,opacity .22s ease!important;transform-origin:left!important;opacity:.6!important}.ai-section__title:hover{color:var(--card-text-primary, #1c1c1f)!important}.ai-section__title:hover:before{width:var(--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:calc(var(--card-gap) * .75)!important}.ai-section__description{font-size:var(--section-description-font-size, .8rem);font-weight:400;color:var(--card-text-secondary, rgba(28, 28, 31, .6));line-height:1.4;margin:0;color:#1c1c1fb3!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:calc(var(--card-gap) * .5)!important;transition:color .2s ease!important;font-family:inherit!important}.ai-section:hover .ai-section__description{color:#1c1c1fcc!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:calc(var(--tag-padding-y-sm) * .75) calc(var(--tag-padding-x) * .875)!important;background:linear-gradient(135deg,#ff790026,#ff79001f)!important;color:#ff7900e6!important;border:none!important;box-shadow:none!important;border-radius:var(--section-card-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:#ff790033!important}.ai-section__body{display:flex;flex-direction:column;gap:var(--section-gap-internal);width:100%;box-sizing:border-box;padding:0!important;margin:0!important}.ai-section .section-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:calc(var(--card-padding) * 1.5)!important;text-align:center!important;color:var(--muted-foreground)!important;min-height:auto!important;border-radius:var(--radius-md)!important;background:var(--section-item-background, var(--card-section-bg))!important;border:1px dashed var(--border)!important;transition:opacity .2s ease,background .2s ease!important}.ai-section .section-empty lucide-icon{margin-bottom:var(--card-gap)!important;opacity:.5!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(--section-item-background-hover, var(--card-section-card-bg))!important;border-color:var(--accent)!important}.ai-section .section-empty:hover lucide-icon{opacity:.7!important}.ai-section--info{--section-accent: var(--section-accent-info, #ff7900)}.ai-section--analytics{--section-accent: var(--section-accent-analytics, #ff7900)}.ai-section--financials{--section-accent: var(--section-accent-financials, #ff7900)}.ai-section--map{--section-accent: var(--section-accent-map, #ff7900)}.ai-section--network-card{--section-accent: var(--section-accent-network, #ff7900)}.ai-section--contact-card{--section-accent: var(--section-accent-contact, #ff7900)}.ai-section--product{--section-accent: var(--section-accent-product, #ff7900)}.ai-section--solutions{--section-accent: var(--section-accent-solutions, #ff7900)}.ai-section--overview{--section-accent: var(--section-accent-overview, #ff7900)}.ai-section--list,.ai-section--info-list{--section-accent: var(--section-accent-list, #ff7900)}.ai-section--event{--section-accent: var(--section-accent-event, #ff7900)}.ai-section--chart{--section-accent: var(--section-accent-chart, var(--accent, #ff7900))}.ai-section--text-reference{--section-accent: var(--section-accent-reference, var(--accent, #ff7900))}.ai-section--quotation{--section-accent: var(--section-accent-quotation, var(--accent, #ff7900))}.ai-card-surface--fullscreen .ai-section{--section-padding: var(--section-padding);--section-spacing-bottom: calc(var(--card-gap) * 1.25);--section-gap: var(--section-card-gap);--section-gap-internal: var(--card-gap);--section-title-underline-length: 32px;--section-title-underline-hover-length: 40px;--section-title-underline-height: 2px;--section-title-underline-offset: -8px;--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:none!important}.ai-card-surface--fullscreen .ai-section__header{padding:0 0 calc(var(--card-gap) * .75) 0!important;gap:calc(var(--card-gap) * .75)!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(--card-gap)!important}.ai-card-surface--fullscreen .ai-section__description{font-size:var(--card-meta-font-size, .6rem)!important;margin-top:4px!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: var(--spacing-md);--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-sticky: 200;--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(--section-item-background);--surface-raised: var(--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:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.unified-card{transition:none}}.section-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius);box-shadow:var(--section-item-box-shadow);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--card-gap);min-height:var(--card-min-height, auto);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;text-align:left;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.section-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card{transition: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)}@media (prefers-reduced-motion: reduce){.unified-card,.section-card,[class*=__card],[class*=-card],[class*=__item],[class*=-item]{transition:none;animation:none}}@keyframes section-item-stream{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes unified-stream-in{0%{opacity:0;transform:translateY(var(--motion-distance-sm))}to{opacity:1;transform:translateY(0)}}.section-card,.unified-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.section-card:hover,.unified-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.section-card:focus-visible,.unified-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.section-card,.unified-card{transition:none}}.section-card.section-item-streaming,.section-card.item-streaming,.section-card.field-streaming,.unified-card.section-item-streaming,.unified-card.item-streaming,.unified-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.section-card.section-item-entered,.section-card.item-entered,.section-card.field-entered,.unified-card.section-item-entered,.unified-card.item-entered,.unified-card.field-entered{animation:none}.section-card.section-item-stagger-0,.section-card.item-stagger-0,.section-card.field-stagger-0,.unified-card.section-item-stagger-0,.unified-card.item-stagger-0,.unified-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.section-card.section-item-stagger-1,.section-card.item-stagger-1,.section-card.field-stagger-1,.unified-card.section-item-stagger-1,.unified-card.item-stagger-1,.unified-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.section-card.section-item-stagger-2,.section-card.item-stagger-2,.section-card.field-stagger-2,.unified-card.section-item-stagger-2,.unified-card.item-stagger-2,.unified-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.section-card.section-item-stagger-3,.section-card.item-stagger-3,.section-card.field-stagger-3,.unified-card.section-item-stagger-3,.unified-card.item-stagger-3,.unified-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.section-card.section-item-stagger-4,.section-card.item-stagger-4,.section-card.field-stagger-4,.unified-card.section-item-stagger-4,.unified-card.item-stagger-4,.unified-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.section-card.section-item-stagger-5,.section-card.item-stagger-5,.section-card.field-stagger-5,.unified-card.section-item-stagger-5,.unified-card.item-stagger-5,.unified-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.section-card.section-item-stagger-6,.section-card.item-stagger-6,.section-card.field-stagger-6,.unified-card.section-item-stagger-6,.unified-card.item-stagger-6,.unified-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.section-card.section-item-stagger-7,.section-card.item-stagger-7,.section-card.field-stagger-7,.unified-card.section-item-stagger-7,.unified-card.item-stagger-7,.unified-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.section-card.section-item-stagger-8,.section-card.item-stagger-8,.section-card.field-stagger-8,.unified-card.section-item-stagger-8,.unified-card.item-stagger-8,.unified-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.section-card.section-item-stagger-9,.section-card.item-stagger-9,.section-card.field-stagger-9,.unified-card.section-item-stagger-9,.unified-card.item-stagger-9,.unified-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.section-card.section-item-stagger-10,.section-card.item-stagger-10,.section-card.field-stagger-10,.unified-card.section-item-stagger-10,.unified-card.item-stagger-10,.unified-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.section-card.section-item-stagger-11,.section-card.item-stagger-11,.section-card.field-stagger-11,.unified-card.section-item-stagger-11,.unified-card.item-stagger-11,.unified-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.section-card.section-item-stagger-12,.section-card.item-stagger-12,.section-card.field-stagger-12,.unified-card.section-item-stagger-12,.unified-card.item-stagger-12,.unified-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.section-card.section-item-stagger-13,.section-card.item-stagger-13,.section-card.field-stagger-13,.unified-card.section-item-stagger-13,.unified-card.item-stagger-13,.unified-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.section-card.section-item-stagger-14,.section-card.item-stagger-14,.section-card.field-stagger-14,.unified-card.section-item-stagger-14,.unified-card.item-stagger-14,.unified-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.section-card.section-item-stagger-15,.section-card.item-stagger-15,.section-card.field-stagger-15,.unified-card.section-item-stagger-15,.unified-card.item-stagger-15,.unified-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.analytics-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.analytics-metrics{grid-template-columns:1fr;gap:var(--gap-sm)}}.analytics-metric{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.analytics-metric:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.analytics-metric:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.analytics-metric{transition:none}}.analytics-metric.section-item-streaming,.analytics-metric.item-streaming,.analytics-metric.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.analytics-metric.section-item-entered,.analytics-metric.item-entered,.analytics-metric.field-entered{animation:none}.analytics-metric.section-item-stagger-0,.analytics-metric.item-stagger-0,.analytics-metric.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-1,.analytics-metric.item-stagger-1,.analytics-metric.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-2,.analytics-metric.item-stagger-2,.analytics-metric.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-3,.analytics-metric.item-stagger-3,.analytics-metric.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-4,.analytics-metric.item-stagger-4,.analytics-metric.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-5,.analytics-metric.item-stagger-5,.analytics-metric.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-6,.analytics-metric.item-stagger-6,.analytics-metric.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-7,.analytics-metric.item-stagger-7,.analytics-metric.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-8,.analytics-metric.item-stagger-8,.analytics-metric.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-9,.analytics-metric.item-stagger-9,.analytics-metric.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-10,.analytics-metric.item-stagger-10,.analytics-metric.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-11,.analytics-metric.item-stagger-11,.analytics-metric.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-12,.analytics-metric.item-stagger-12,.analytics-metric.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-13,.analytics-metric.item-stagger-13,.analytics-metric.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-14,.analytics-metric.item-stagger-14,.analytics-metric.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.analytics-metric.section-item-stagger-15,.analytics-metric.item-stagger-15,.analytics-metric.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.analytics-metric__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height)}.analytics-metric__value{font-size:var(--card-value-font-size);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.analytics-metric__change{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--card-meta-font-size);font-weight:600}.analytics-metric__change lucide-icon,.analytics-metric__change svg{width:var(--icon-xs);height:var(--icon-xs)}.analytics-metric__change.trend--up{color:#4ade80}.analytics-metric__change.trend--down{color:#f87171}.analytics-metric__change.trend--stable{color:#facc15}.analytics-metric__progress{width:100%;height:3px;background:var(--muted);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-2)}.analytics-metric__progress-bar{height:100%;background:var(--accent);border-radius:inherit;transition:width var(--duration-slow) var(--ease-out-smooth)}.analytics-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.analytics-empty lucide-icon,.analytics-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.analytics-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.financials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.financials-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.financial-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.financial-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.financial-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.financial-card{transition:none}}.financial-card.section-item-streaming,.financial-card.item-streaming,.financial-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.financial-card.section-item-entered,.financial-card.item-entered,.financial-card.field-entered{animation:none}.financial-card.section-item-stagger-0,.financial-card.item-stagger-0,.financial-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.financial-card.section-item-stagger-1,.financial-card.item-stagger-1,.financial-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.financial-card.section-item-stagger-2,.financial-card.item-stagger-2,.financial-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.financial-card.section-item-stagger-3,.financial-card.item-stagger-3,.financial-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.financial-card.section-item-stagger-4,.financial-card.item-stagger-4,.financial-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.financial-card.section-item-stagger-5,.financial-card.item-stagger-5,.financial-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.financial-card.section-item-stagger-6,.financial-card.item-stagger-6,.financial-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.financial-card.section-item-stagger-7,.financial-card.item-stagger-7,.financial-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.financial-card.section-item-stagger-8,.financial-card.item-stagger-8,.financial-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.financial-card.section-item-stagger-9,.financial-card.item-stagger-9,.financial-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.financial-card.section-item-stagger-10,.financial-card.item-stagger-10,.financial-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.financial-card.section-item-stagger-11,.financial-card.item-stagger-11,.financial-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.financial-card.section-item-stagger-12,.financial-card.item-stagger-12,.financial-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.financial-card.section-item-stagger-13,.financial-card.item-stagger-13,.financial-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.financial-card.section-item-stagger-14,.financial-card.item-stagger-14,.financial-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.financial-card.section-item-stagger-15,.financial-card.item-stagger-15,.financial-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.financial-card__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height)}.financial-card__value{font-size:var(--card-value-font-size-large);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);display:flex;align-items:baseline;gap:var(--space-2)}.financial-card__change{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--card-meta-font-size);font-weight:600}.financial-card__change lucide-icon,.financial-card__change svg{width:var(--icon-xs);height:var(--icon-xs)}.financial-card__change.trend--up{color:#4ade80}.financial-card__change.trend--down{color:#f87171}.financial-card__change.trend--stable{color:#facc15}.financial-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-md);height:var(--icon-md);color:var(--accent);flex-shrink:0}.financial-card__icon lucide-icon,.financial-card__icon svg{width:calc(var(--icon-md) * .6);height:calc(var(--icon-md) * .6)}.financials-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.financials-empty lucide-icon,.financials-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.financials-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.overview-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.overview-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3)}.overview-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.overview-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.overview-card{transition:none}}.overview-card.section-item-streaming,.overview-card.item-streaming,.overview-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.overview-card.section-item-entered,.overview-card.item-entered,.overview-card.field-entered{animation:none}.overview-card.section-item-stagger-0,.overview-card.item-stagger-0,.overview-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.overview-card.section-item-stagger-1,.overview-card.item-stagger-1,.overview-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.overview-card.section-item-stagger-2,.overview-card.item-stagger-2,.overview-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.overview-card.section-item-stagger-3,.overview-card.item-stagger-3,.overview-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.overview-card.section-item-stagger-4,.overview-card.item-stagger-4,.overview-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.overview-card.section-item-stagger-5,.overview-card.item-stagger-5,.overview-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.overview-card.section-item-stagger-6,.overview-card.item-stagger-6,.overview-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.overview-card.section-item-stagger-7,.overview-card.item-stagger-7,.overview-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.overview-card.section-item-stagger-8,.overview-card.item-stagger-8,.overview-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.overview-card.section-item-stagger-9,.overview-card.item-stagger-9,.overview-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.overview-card.section-item-stagger-10,.overview-card.item-stagger-10,.overview-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.overview-card.section-item-stagger-11,.overview-card.item-stagger-11,.overview-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.overview-card.section-item-stagger-12,.overview-card.item-stagger-12,.overview-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.overview-card.section-item-stagger-13,.overview-card.item-stagger-13,.overview-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.overview-card.section-item-stagger-14,.overview-card.item-stagger-14,.overview-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.overview-card.section-item-stagger-15,.overview-card.item-stagger-15,.overview-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.overview-card__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height);margin-bottom:0}.overview-card__value{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;text-align:right}.overview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.overview-empty lucide-icon,.overview-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.overview-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.info-matrix{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.info-row{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);gap:var(--space-4)}.info-row:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.info-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.info-row{transition:none}}.info-row.section-item-streaming,.info-row.item-streaming,.info-row.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.info-row.section-item-entered,.info-row.item-entered,.info-row.field-entered{animation:none}.info-row.section-item-stagger-0,.info-row.item-stagger-0,.info-row.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.info-row.section-item-stagger-1,.info-row.item-stagger-1,.info-row.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.info-row.section-item-stagger-2,.info-row.item-stagger-2,.info-row.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.info-row.section-item-stagger-3,.info-row.item-stagger-3,.info-row.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.info-row.section-item-stagger-4,.info-row.item-stagger-4,.info-row.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.info-row.section-item-stagger-5,.info-row.item-stagger-5,.info-row.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.info-row.section-item-stagger-6,.info-row.item-stagger-6,.info-row.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.info-row.section-item-stagger-7,.info-row.item-stagger-7,.info-row.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.info-row.section-item-stagger-8,.info-row.item-stagger-8,.info-row.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.info-row.section-item-stagger-9,.info-row.item-stagger-9,.info-row.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.info-row.section-item-stagger-10,.info-row.item-stagger-10,.info-row.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.info-row.section-item-stagger-11,.info-row.item-stagger-11,.info-row.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.info-row.section-item-stagger-12,.info-row.item-stagger-12,.info-row.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.info-row.section-item-stagger-13,.info-row.item-stagger-13,.info-row.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.info-row.section-item-stagger-14,.info-row.item-stagger-14,.info-row.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.info-row.section-item-stagger-15,.info-row.item-stagger-15,.info-row.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.info-row__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height);margin-bottom:0;min-width:80px}.info-row__value{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);text-align:right;flex:1;color:var(--foreground)}.info-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.info-empty lucide-icon,.info-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.info-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.news-feed{display:flex;flex-direction:column;gap:var(--gap-sm);width:100%}.news-item{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.news-item:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.news-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.news-item{transition:none}}.news-item.section-item-streaming,.news-item.item-streaming,.news-item.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.news-item.section-item-entered,.news-item.item-entered,.news-item.field-entered{animation:none}.news-item.section-item-stagger-0,.news-item.item-stagger-0,.news-item.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.news-item.section-item-stagger-1,.news-item.item-stagger-1,.news-item.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.news-item.section-item-stagger-2,.news-item.item-stagger-2,.news-item.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.news-item.section-item-stagger-3,.news-item.item-stagger-3,.news-item.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.news-item.section-item-stagger-4,.news-item.item-stagger-4,.news-item.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.news-item.section-item-stagger-5,.news-item.item-stagger-5,.news-item.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.news-item.section-item-stagger-6,.news-item.item-stagger-6,.news-item.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.news-item.section-item-stagger-7,.news-item.item-stagger-7,.news-item.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.news-item.section-item-stagger-8,.news-item.item-stagger-8,.news-item.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.news-item.section-item-stagger-9,.news-item.item-stagger-9,.news-item.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.news-item.section-item-stagger-10,.news-item.item-stagger-10,.news-item.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.news-item.section-item-stagger-11,.news-item.item-stagger-11,.news-item.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.news-item.section-item-stagger-12,.news-item.item-stagger-12,.news-item.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.news-item.section-item-stagger-13,.news-item.item-stagger-13,.news-item.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.news-item.section-item-stagger-14,.news-item.item-stagger-14,.news-item.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.news-item.section-item-stagger-15,.news-item.item-stagger-15,.news-item.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.news-item__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between;margin-bottom:var(--space-1)}.news-item__tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.news-item__date{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height)}.news-item__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.news-item__summary{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.news-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.news-empty lucide-icon,.news-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.news-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.contact-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.contact-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:flex-start;gap:var(--space-3)}.contact-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.contact-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.contact-card{transition:none}}.contact-card.section-item-streaming,.contact-card.item-streaming,.contact-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.contact-card.section-item-entered,.contact-card.item-entered,.contact-card.field-entered{animation:none}.contact-card.section-item-stagger-0,.contact-card.item-stagger-0,.contact-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.contact-card.section-item-stagger-1,.contact-card.item-stagger-1,.contact-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.contact-card.section-item-stagger-2,.contact-card.item-stagger-2,.contact-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.contact-card.section-item-stagger-3,.contact-card.item-stagger-3,.contact-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.contact-card.section-item-stagger-4,.contact-card.item-stagger-4,.contact-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.contact-card.section-item-stagger-5,.contact-card.item-stagger-5,.contact-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.contact-card.section-item-stagger-6,.contact-card.item-stagger-6,.contact-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.contact-card.section-item-stagger-7,.contact-card.item-stagger-7,.contact-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.contact-card.section-item-stagger-8,.contact-card.item-stagger-8,.contact-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.contact-card.section-item-stagger-9,.contact-card.item-stagger-9,.contact-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.contact-card.section-item-stagger-10,.contact-card.item-stagger-10,.contact-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.contact-card.section-item-stagger-11,.contact-card.item-stagger-11,.contact-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.contact-card.section-item-stagger-12,.contact-card.item-stagger-12,.contact-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.contact-card.section-item-stagger-13,.contact-card.item-stagger-13,.contact-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.contact-card.section-item-stagger-14,.contact-card.item-stagger-14,.contact-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.contact-card.section-item-stagger-15,.contact-card.item-stagger-15,.contact-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.contact-card__avatar{width:36px;height:36px;border-radius:var(--radius-full);background:#ff790026;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.contact-card__avatar img{width:100%;height:100%;object-fit:cover}.contact-card__avatar__initials{font-size:12.6px;font-weight:600;color:var(--accent)}.contact-card__initials{font-size:.75rem;font-weight:600;color:var(--accent)}.contact-card__info{display:flex;flex-direction:column;gap:var(--space-1);width:100%;flex:1;min-width:0}.contact-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.contact-card__role{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.contact-card__email,.contact-card__phone{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1);text-decoration:none}.contact-card__email lucide-icon,.contact-card__email svg,.contact-card__phone lucide-icon,.contact-card__phone svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.6}.contact-card__email:hover,.contact-card__phone:hover{color:var(--accent)}.contact-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.contact-empty lucide-icon,.contact-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.contact-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.event-grid{display:flex;flex-direction:column;gap:var(--gap-sm);width:100%}.event-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:flex-start;gap:var(--space-3)}.event-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.event-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.event-card{transition:none}}.event-card.section-item-streaming,.event-card.item-streaming,.event-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.event-card.section-item-entered,.event-card.item-entered,.event-card.field-entered{animation:none}.event-card.section-item-stagger-0,.event-card.item-stagger-0,.event-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.event-card.section-item-stagger-1,.event-card.item-stagger-1,.event-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.event-card.section-item-stagger-2,.event-card.item-stagger-2,.event-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.event-card.section-item-stagger-3,.event-card.item-stagger-3,.event-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.event-card.section-item-stagger-4,.event-card.item-stagger-4,.event-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.event-card.section-item-stagger-5,.event-card.item-stagger-5,.event-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.event-card.section-item-stagger-6,.event-card.item-stagger-6,.event-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.event-card.section-item-stagger-7,.event-card.item-stagger-7,.event-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.event-card.section-item-stagger-8,.event-card.item-stagger-8,.event-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.event-card.section-item-stagger-9,.event-card.item-stagger-9,.event-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.event-card.section-item-stagger-10,.event-card.item-stagger-10,.event-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.event-card.section-item-stagger-11,.event-card.item-stagger-11,.event-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.event-card.section-item-stagger-12,.event-card.item-stagger-12,.event-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.event-card.section-item-stagger-13,.event-card.item-stagger-13,.event-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.event-card.section-item-stagger-14,.event-card.item-stagger-14,.event-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.event-card.section-item-stagger-15,.event-card.item-stagger-15,.event-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.event-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-xl);height:var(--icon-xl);color:var(--accent);flex-shrink:0;background:#ff79001a;border-radius:var(--radius-sm)}.event-card__icon lucide-icon,.event-card__icon svg{width:calc(var(--icon-xl) * .6);height:calc(var(--icon-xl) * .6)}.event-card__content{display:flex;flex-direction:column;gap:var(--space-1);width:100%;flex:1;min-width:0}.event-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.event-card__datetime{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;flex-direction:row;align-items:center;gap:var(--space-3);width:100%;flex-wrap:wrap}.event-card__datetime lucide-icon,.event-card__datetime svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.5}.event-card__date,.event-card__time,.event-card__location{display:inline-flex;align-items:center;gap:var(--space-1)}.event-card__status{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.event-card__status.status--completed,.event-card__status.status--success{color:var(--status-success);background:var(--status-success-bg)}.event-card__status.status--active,.event-card__status.status--in-progress{color:var(--accent);background:#ff79001a}.event-card__status.status--pending,.event-card__status.status--warning{color:var(--status-warning);background:var(--status-warning-bg)}.event-card__status.status--blocked,.event-card__status.status--cancelled,.event-card__status.status--error{color:var(--status-error);background:var(--status-error-bg)}.event-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.event-empty lucide-icon,.event-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.event-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.quotation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.quotation-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.quotation-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.quotation-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.quotation-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.quotation-card{transition:none}}.quotation-card.section-item-streaming,.quotation-card.item-streaming,.quotation-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.quotation-card.section-item-entered,.quotation-card.item-entered,.quotation-card.field-entered{animation:none}.quotation-card.section-item-stagger-0,.quotation-card.item-stagger-0,.quotation-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-1,.quotation-card.item-stagger-1,.quotation-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-2,.quotation-card.item-stagger-2,.quotation-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-3,.quotation-card.item-stagger-3,.quotation-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-4,.quotation-card.item-stagger-4,.quotation-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-5,.quotation-card.item-stagger-5,.quotation-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-6,.quotation-card.item-stagger-6,.quotation-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-7,.quotation-card.item-stagger-7,.quotation-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-8,.quotation-card.item-stagger-8,.quotation-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-9,.quotation-card.item-stagger-9,.quotation-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-10,.quotation-card.item-stagger-10,.quotation-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-11,.quotation-card.item-stagger-11,.quotation-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-12,.quotation-card.item-stagger-12,.quotation-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-13,.quotation-card.item-stagger-13,.quotation-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-14,.quotation-card.item-stagger-14,.quotation-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.quotation-card.section-item-stagger-15,.quotation-card.item-stagger-15,.quotation-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.quotation-card__icon{display:none}.quotation-card__text{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);font-style:italic;line-height:1.6;padding-left:var(--space-3);border-left:2px solid var(--accent);color:var(--foreground)}.quotation-card__author{display:flex;flex-direction:column;gap:var(--space-0);width:100%;margin-top:var(--space-3)}.quotation-card__author-name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;color:var(--accent)}.quotation-card__author-role{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height)}.quotation-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.quotation-empty lucide-icon,.quotation-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.quotation-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.reference-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.reference-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.reference-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.reference-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.reference-card{transition:none}}.reference-card.section-item-streaming,.reference-card.item-streaming,.reference-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.reference-card.section-item-entered,.reference-card.item-entered,.reference-card.field-entered{animation:none}.reference-card.section-item-stagger-0,.reference-card.item-stagger-0,.reference-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.reference-card.section-item-stagger-1,.reference-card.item-stagger-1,.reference-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.reference-card.section-item-stagger-2,.reference-card.item-stagger-2,.reference-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.reference-card.section-item-stagger-3,.reference-card.item-stagger-3,.reference-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.reference-card.section-item-stagger-4,.reference-card.item-stagger-4,.reference-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.reference-card.section-item-stagger-5,.reference-card.item-stagger-5,.reference-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.reference-card.section-item-stagger-6,.reference-card.item-stagger-6,.reference-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.reference-card.section-item-stagger-7,.reference-card.item-stagger-7,.reference-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.reference-card.section-item-stagger-8,.reference-card.item-stagger-8,.reference-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.reference-card.section-item-stagger-9,.reference-card.item-stagger-9,.reference-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.reference-card.section-item-stagger-10,.reference-card.item-stagger-10,.reference-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.reference-card.section-item-stagger-11,.reference-card.item-stagger-11,.reference-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.reference-card.section-item-stagger-12,.reference-card.item-stagger-12,.reference-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.reference-card.section-item-stagger-13,.reference-card.item-stagger-13,.reference-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.reference-card.section-item-stagger-14,.reference-card.item-stagger-14,.reference-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.reference-card.section-item-stagger-15,.reference-card.item-stagger-15,.reference-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.reference-card__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between}.reference-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;flex:1}.reference-card__category{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.reference-card__meta{display:flex;flex-direction:row;align-items:center;gap:var(--space-4);width:100%;flex-wrap:wrap;margin-top:var(--space-1)}.reference-card__source,.reference-card__date{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1)}.reference-card__source lucide-icon,.reference-card__source svg,.reference-card__date lucide-icon,.reference-card__date svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.5}.reference-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.reference-empty lucide-icon,.reference-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.reference-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.network-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.network-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.network-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.network-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.network-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.network-card{transition:none}}.network-card.section-item-streaming,.network-card.item-streaming,.network-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.network-card.section-item-entered,.network-card.item-entered,.network-card.field-entered{animation:none}.network-card.section-item-stagger-0,.network-card.item-stagger-0,.network-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.network-card.section-item-stagger-1,.network-card.item-stagger-1,.network-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.network-card.section-item-stagger-2,.network-card.item-stagger-2,.network-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.network-card.section-item-stagger-3,.network-card.item-stagger-3,.network-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.network-card.section-item-stagger-4,.network-card.item-stagger-4,.network-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.network-card.section-item-stagger-5,.network-card.item-stagger-5,.network-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.network-card.section-item-stagger-6,.network-card.item-stagger-6,.network-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.network-card.section-item-stagger-7,.network-card.item-stagger-7,.network-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.network-card.section-item-stagger-8,.network-card.item-stagger-8,.network-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.network-card.section-item-stagger-9,.network-card.item-stagger-9,.network-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.network-card.section-item-stagger-10,.network-card.item-stagger-10,.network-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.network-card.section-item-stagger-11,.network-card.item-stagger-11,.network-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.network-card.section-item-stagger-12,.network-card.item-stagger-12,.network-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.network-card.section-item-stagger-13,.network-card.item-stagger-13,.network-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.network-card.section-item-stagger-14,.network-card.item-stagger-14,.network-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.network-card.section-item-stagger-15,.network-card.item-stagger-15,.network-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.network-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-lg);height:var(--icon-lg);color:var(--accent);flex-shrink:0;margin-bottom:var(--space-1)}.network-card__icon lucide-icon,.network-card__icon svg{width:calc(var(--icon-lg) * .6);height:calc(var(--icon-lg) * .6)}.network-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.network-card__type{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap;margin-bottom:var(--space-1)}.network-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.network-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.network-empty lucide-icon,.network-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.network-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.product-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.product-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.product-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.product-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.product-card{transition:none}}.product-card.section-item-streaming,.product-card.item-streaming,.product-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.product-card.section-item-entered,.product-card.item-entered,.product-card.field-entered{animation:none}.product-card.section-item-stagger-0,.product-card.item-stagger-0,.product-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.product-card.section-item-stagger-1,.product-card.item-stagger-1,.product-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.product-card.section-item-stagger-2,.product-card.item-stagger-2,.product-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.product-card.section-item-stagger-3,.product-card.item-stagger-3,.product-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.product-card.section-item-stagger-4,.product-card.item-stagger-4,.product-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.product-card.section-item-stagger-5,.product-card.item-stagger-5,.product-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.product-card.section-item-stagger-6,.product-card.item-stagger-6,.product-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.product-card.section-item-stagger-7,.product-card.item-stagger-7,.product-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.product-card.section-item-stagger-8,.product-card.item-stagger-8,.product-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.product-card.section-item-stagger-9,.product-card.item-stagger-9,.product-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.product-card.section-item-stagger-10,.product-card.item-stagger-10,.product-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.product-card.section-item-stagger-11,.product-card.item-stagger-11,.product-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.product-card.section-item-stagger-12,.product-card.item-stagger-12,.product-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.product-card.section-item-stagger-13,.product-card.item-stagger-13,.product-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.product-card.section-item-stagger-14,.product-card.item-stagger-14,.product-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.product-card.section-item-stagger-15,.product-card.item-stagger-15,.product-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.product-card__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between;margin-bottom:var(--space-1)}.product-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;flex:1}.product-card__category{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.product-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0 0 var(--space-3) 0}.product-card__features{display:flex;flex-direction:column;gap:var(--space-1);width:100%}.product-card__feature{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;align-items:center;gap:var(--space-2)}.product-card__feature lucide-icon,.product-card__feature svg{width:var(--icon-xs);height:var(--icon-xs);color:var(--status-success)}.product-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.product-empty lucide-icon,.product-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.product-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.solutions-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.solution-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.solution-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.solution-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.solution-card{transition:none}}.solution-card.section-item-streaming,.solution-card.item-streaming,.solution-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.solution-card.section-item-entered,.solution-card.item-entered,.solution-card.field-entered{animation:none}.solution-card.section-item-stagger-0,.solution-card.item-stagger-0,.solution-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.solution-card.section-item-stagger-1,.solution-card.item-stagger-1,.solution-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.solution-card.section-item-stagger-2,.solution-card.item-stagger-2,.solution-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.solution-card.section-item-stagger-3,.solution-card.item-stagger-3,.solution-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.solution-card.section-item-stagger-4,.solution-card.item-stagger-4,.solution-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.solution-card.section-item-stagger-5,.solution-card.item-stagger-5,.solution-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.solution-card.section-item-stagger-6,.solution-card.item-stagger-6,.solution-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.solution-card.section-item-stagger-7,.solution-card.item-stagger-7,.solution-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.solution-card.section-item-stagger-8,.solution-card.item-stagger-8,.solution-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.solution-card.section-item-stagger-9,.solution-card.item-stagger-9,.solution-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.solution-card.section-item-stagger-10,.solution-card.item-stagger-10,.solution-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.solution-card.section-item-stagger-11,.solution-card.item-stagger-11,.solution-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.solution-card.section-item-stagger-12,.solution-card.item-stagger-12,.solution-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.solution-card.section-item-stagger-13,.solution-card.item-stagger-13,.solution-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.solution-card.section-item-stagger-14,.solution-card.item-stagger-14,.solution-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.solution-card.section-item-stagger-15,.solution-card.item-stagger-15,.solution-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.solution-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-xl);height:var(--icon-xl);color:var(--accent);flex-shrink:0;margin-bottom:var(--space-2)}.solution-card__icon lucide-icon,.solution-card__icon svg{width:calc(var(--icon-xl) * .6);height:calc(var(--icon-xl) * .6)}.solution-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.solution-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.solution-card__benefits{display:flex;flex-direction:column;gap:var(--space-1);width:100%;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.solution-card__benefit{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;align-items:center;gap:var(--space-2)}.solution-card__benefit lucide-icon,.solution-card__benefit svg{width:var(--icon-xs);height:var(--icon-xs);color:var(--accent)}.solutions-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.solutions-empty lucide-icon,.solutions-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.solutions-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.timeline-grid{display:flex;flex-direction:column;gap:0;width:100%;position:relative;padding-left:var(--space-5)}.timeline-grid:before{content:\"\";position:absolute;left:var(--space-1);top:var(--space-3);bottom:var(--space-3);width:1px;background:var(--accent);opacity:.3}.timeline-item{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);position:relative}.timeline-item:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.timeline-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.timeline-item{transition:none}}.timeline-item.section-item-streaming,.timeline-item.item-streaming,.timeline-item.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.timeline-item.section-item-entered,.timeline-item.item-entered,.timeline-item.field-entered{animation:none}.timeline-item.section-item-stagger-0,.timeline-item.item-stagger-0,.timeline-item.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-1,.timeline-item.item-stagger-1,.timeline-item.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-2,.timeline-item.item-stagger-2,.timeline-item.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-3,.timeline-item.item-stagger-3,.timeline-item.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-4,.timeline-item.item-stagger-4,.timeline-item.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-5,.timeline-item.item-stagger-5,.timeline-item.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-6,.timeline-item.item-stagger-6,.timeline-item.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-7,.timeline-item.item-stagger-7,.timeline-item.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-8,.timeline-item.item-stagger-8,.timeline-item.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-9,.timeline-item.item-stagger-9,.timeline-item.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-10,.timeline-item.item-stagger-10,.timeline-item.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-11,.timeline-item.item-stagger-11,.timeline-item.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-12,.timeline-item.item-stagger-12,.timeline-item.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-13,.timeline-item.item-stagger-13,.timeline-item.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-14,.timeline-item.item-stagger-14,.timeline-item.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.timeline-item.section-item-stagger-15,.timeline-item.item-stagger-15,.timeline-item.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.timeline-item:before{content:\"\";position:absolute;left:calc(-1 * var(--space-5) + var(--space-1) - 3px);top:var(--space-3);width:7px;height:7px;background:var(--accent);border-radius:var(--radius-full);z-index:1}.timeline-item__date{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap;margin-bottom:var(--space-1)}.timeline-item__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.timeline-item__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.timeline-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.timeline-empty lucide-icon,.timeline-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.timeline-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.brand-colors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.brand-colors-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.brand-color-tile{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:0;overflow:hidden}.brand-color-tile:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.brand-color-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.brand-color-tile{transition:none}}.brand-color-tile.section-item-streaming,.brand-color-tile.item-streaming,.brand-color-tile.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.brand-color-tile.section-item-entered,.brand-color-tile.item-entered,.brand-color-tile.field-entered{animation:none}.brand-color-tile.section-item-stagger-0,.brand-color-tile.item-stagger-0,.brand-color-tile.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-1,.brand-color-tile.item-stagger-1,.brand-color-tile.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-2,.brand-color-tile.item-stagger-2,.brand-color-tile.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-3,.brand-color-tile.item-stagger-3,.brand-color-tile.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-4,.brand-color-tile.item-stagger-4,.brand-color-tile.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-5,.brand-color-tile.item-stagger-5,.brand-color-tile.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-6,.brand-color-tile.item-stagger-6,.brand-color-tile.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-7,.brand-color-tile.item-stagger-7,.brand-color-tile.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-8,.brand-color-tile.item-stagger-8,.brand-color-tile.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-9,.brand-color-tile.item-stagger-9,.brand-color-tile.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-10,.brand-color-tile.item-stagger-10,.brand-color-tile.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-11,.brand-color-tile.item-stagger-11,.brand-color-tile.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-12,.brand-color-tile.item-stagger-12,.brand-color-tile.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-13,.brand-color-tile.item-stagger-13,.brand-color-tile.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-14,.brand-color-tile.item-stagger-14,.brand-color-tile.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.brand-color-tile.section-item-stagger-15,.brand-color-tile.item-stagger-15,.brand-color-tile.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.brand-color-tile__swatch{width:100%;height:48px}.brand-color-tile__info{padding:var(--space-2)}.brand-color-tile__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;font-size:var(--card-subtitle-font-size);margin:0 0 var(--space-0) 0}.brand-color-tile__code{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);font-family:SF Mono,Monaco,Consolas,monospace}.brand-colors-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.brand-colors-empty lucide-icon,.brand-colors-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.brand-colors-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.social-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.social-feed{grid-template-columns:1fr;gap:var(--gap-sm)}}.social-post{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.social-post:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.social-post:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.social-post{transition:none}}.social-post.section-item-streaming,.social-post.item-streaming,.social-post.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.social-post.section-item-entered,.social-post.item-entered,.social-post.field-entered{animation:none}.social-post.section-item-stagger-0,.social-post.item-stagger-0,.social-post.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.social-post.section-item-stagger-1,.social-post.item-stagger-1,.social-post.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.social-post.section-item-stagger-2,.social-post.item-stagger-2,.social-post.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.social-post.section-item-stagger-3,.social-post.item-stagger-3,.social-post.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.social-post.section-item-stagger-4,.social-post.item-stagger-4,.social-post.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.social-post.section-item-stagger-5,.social-post.item-stagger-5,.social-post.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.social-post.section-item-stagger-6,.social-post.item-stagger-6,.social-post.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.social-post.section-item-stagger-7,.social-post.item-stagger-7,.social-post.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.social-post.section-item-stagger-8,.social-post.item-stagger-8,.social-post.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.social-post.section-item-stagger-9,.social-post.item-stagger-9,.social-post.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.social-post.section-item-stagger-10,.social-post.item-stagger-10,.social-post.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.social-post.section-item-stagger-11,.social-post.item-stagger-11,.social-post.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.social-post.section-item-stagger-12,.social-post.item-stagger-12,.social-post.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.social-post.section-item-stagger-13,.social-post.item-stagger-13,.social-post.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.social-post.section-item-stagger-14,.social-post.item-stagger-14,.social-post.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.social-post.section-item-stagger-15,.social-post.item-stagger-15,.social-post.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.social-post__header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;margin-bottom:var(--space-2)}.social-post__platform{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap;text-transform:capitalize}.social-post__handle{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.social-post__followers{font-size:var(--card-value-font-size);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);margin-bottom:var(--space-1)}.social-post__label{font-size:var(--card-label-font-size);font-weight:var(--card-label-font-weight);letter-spacing:var(--card-label-letter-spacing);text-transform:var(--card-label-text-transform);color:var(--muted-foreground);line-height:var(--card-label-line-height)}.social-post__content{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:var(--space-2) 0 0 0}.social-media-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.social-media-empty lucide-icon,.social-media-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.social-media-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.gallery-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.gallery-item{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:0;overflow:hidden;aspect-ratio:4/3}.gallery-item:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.gallery-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.gallery-item{transition:none}}.gallery-item.section-item-streaming,.gallery-item.item-streaming,.gallery-item.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.gallery-item.section-item-entered,.gallery-item.item-entered,.gallery-item.field-entered{animation:none}.gallery-item.section-item-stagger-0,.gallery-item.item-stagger-0,.gallery-item.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-1,.gallery-item.item-stagger-1,.gallery-item.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-2,.gallery-item.item-stagger-2,.gallery-item.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-3,.gallery-item.item-stagger-3,.gallery-item.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-4,.gallery-item.item-stagger-4,.gallery-item.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-5,.gallery-item.item-stagger-5,.gallery-item.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-6,.gallery-item.item-stagger-6,.gallery-item.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-7,.gallery-item.item-stagger-7,.gallery-item.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-8,.gallery-item.item-stagger-8,.gallery-item.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-9,.gallery-item.item-stagger-9,.gallery-item.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-10,.gallery-item.item-stagger-10,.gallery-item.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-11,.gallery-item.item-stagger-11,.gallery-item.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-12,.gallery-item.item-stagger-12,.gallery-item.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-13,.gallery-item.item-stagger-13,.gallery-item.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-14,.gallery-item.item-stagger-14,.gallery-item.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.gallery-item.section-item-stagger-15,.gallery-item.item-stagger-15,.gallery-item.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.gallery-item__image{width:100%;height:100%;object-fit:cover}.gallery-item__caption{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);position:absolute;bottom:0;left:0;right:0;padding:var(--space-2);background:linear-gradient(transparent,#000000b3);color:#fff}.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.gallery-empty lucide-icon,.gallery-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.gallery-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.video-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.video-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:0;overflow:hidden}.video-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.video-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.video-card{transition:none}}.video-card.section-item-streaming,.video-card.item-streaming,.video-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.video-card.section-item-entered,.video-card.item-entered,.video-card.field-entered{animation:none}.video-card.section-item-stagger-0,.video-card.item-stagger-0,.video-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.video-card.section-item-stagger-1,.video-card.item-stagger-1,.video-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.video-card.section-item-stagger-2,.video-card.item-stagger-2,.video-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.video-card.section-item-stagger-3,.video-card.item-stagger-3,.video-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.video-card.section-item-stagger-4,.video-card.item-stagger-4,.video-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.video-card.section-item-stagger-5,.video-card.item-stagger-5,.video-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.video-card.section-item-stagger-6,.video-card.item-stagger-6,.video-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.video-card.section-item-stagger-7,.video-card.item-stagger-7,.video-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.video-card.section-item-stagger-8,.video-card.item-stagger-8,.video-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.video-card.section-item-stagger-9,.video-card.item-stagger-9,.video-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.video-card.section-item-stagger-10,.video-card.item-stagger-10,.video-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.video-card.section-item-stagger-11,.video-card.item-stagger-11,.video-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.video-card.section-item-stagger-12,.video-card.item-stagger-12,.video-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.video-card.section-item-stagger-13,.video-card.item-stagger-13,.video-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.video-card.section-item-stagger-14,.video-card.item-stagger-14,.video-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.video-card.section-item-stagger-15,.video-card.item-stagger-15,.video-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.video-card__thumbnail{width:100%;height:90px;background:#ff79001a;display:flex;align-items:center;justify-content:center;position:relative}.video-card__thumbnail img{width:100%;height:100%;object-fit:cover}.video-card__thumbnail:after{content:\"\\25b6\";position:absolute;width:28px;height:28px;background:#0009;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;padding-left:2px}.video-card__info{padding:var(--space-2) var(--space-3)}.video-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.video-card__meta{display:flex;flex-direction:row;align-items:center;gap:var(--space-3);width:100%}.video-card__duration,.video-card__views{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1)}.video-card__duration lucide-icon,.video-card__duration svg,.video-card__views lucide-icon,.video-card__views svg{width:var(--icon-xs);height:var(--icon-xs);opacity:.5}.video-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.video-empty lucide-icon,.video-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.video-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.chart-container{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);min-height:180px}.chart-container:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.chart-container:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.chart-container{transition:none}}.chart-container canvas{max-width:100%;height:auto!important}.chart-header{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%;justify-content:space-between;margin-bottom:var(--space-3)}.chart-title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.chart-legend{display:flex;flex-direction:row;align-items:center;gap:var(--space-4);width:100%}.chart-legend__item{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:inline-flex;align-items:center;gap:var(--space-1)}.chart-legend__color{width:8px;height:8px;border-radius:var(--radius-xs)}.chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.chart-empty lucide-icon,.chart-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.chart-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.list-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.list-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);flex-direction:row;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.list-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.list-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.list-card{transition:none}}.list-card.section-item-streaming,.list-card.item-streaming,.list-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.list-card.section-item-entered,.list-card.item-entered,.list-card.field-entered{animation:none}.list-card.section-item-stagger-0,.list-card.item-stagger-0,.list-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.list-card.section-item-stagger-1,.list-card.item-stagger-1,.list-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.list-card.section-item-stagger-2,.list-card.item-stagger-2,.list-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.list-card.section-item-stagger-3,.list-card.item-stagger-3,.list-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.list-card.section-item-stagger-4,.list-card.item-stagger-4,.list-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.list-card.section-item-stagger-5,.list-card.item-stagger-5,.list-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.list-card.section-item-stagger-6,.list-card.item-stagger-6,.list-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.list-card.section-item-stagger-7,.list-card.item-stagger-7,.list-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.list-card.section-item-stagger-8,.list-card.item-stagger-8,.list-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.list-card.section-item-stagger-9,.list-card.item-stagger-9,.list-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.list-card.section-item-stagger-10,.list-card.item-stagger-10,.list-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.list-card.section-item-stagger-11,.list-card.item-stagger-11,.list-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.list-card.section-item-stagger-12,.list-card.item-stagger-12,.list-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.list-card.section-item-stagger-13,.list-card.item-stagger-13,.list-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.list-card.section-item-stagger-14,.list-card.item-stagger-14,.list-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.list-card.section-item-stagger-15,.list-card.item-stagger-15,.list-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.list-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-lg);height:var(--icon-lg);color:var(--accent);flex-shrink:0}.list-card__icon lucide-icon,.list-card__icon svg{width:calc(var(--icon-lg) * .6);height:calc(var(--icon-lg) * .6)}.list-card__content{display:flex;flex-direction:column;gap:var(--space-0);width:100%;flex:1;min-width:0}.list-card__title{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.list-card__description{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.list-card__badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--card-text-small-font-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#ff79001a;border-radius:var(--radius-xs);white-space:nowrap}.list-card__badge.status--completed,.list-card__badge.status--success{color:var(--status-success);background:var(--status-success-bg)}.list-card__badge.status--active,.list-card__badge.status--in-progress{color:var(--accent);background:#ff79001a}.list-card__badge.status--pending,.list-card__badge.status--warning{color:var(--status-warning);background:var(--status-warning-bg)}.list-card__badge.status--blocked,.list-card__badge.status--cancelled,.list-card__badge.status--error{color:var(--status-error);background:var(--status-error-bg)}.list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.list-empty lucide-icon,.list-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.list-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.map-container{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);padding:var(--space-5);min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center}.map-container:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.map-container:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.map-container{transition:none}}.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.map-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.map-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.map-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.map-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.map-card{transition:none}}.map-card.section-item-streaming,.map-card.item-streaming,.map-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.map-card.section-item-entered,.map-card.item-entered,.map-card.field-entered{animation:none}.map-card.section-item-stagger-0,.map-card.item-stagger-0,.map-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.map-card.section-item-stagger-1,.map-card.item-stagger-1,.map-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.map-card.section-item-stagger-2,.map-card.item-stagger-2,.map-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.map-card.section-item-stagger-3,.map-card.item-stagger-3,.map-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.map-card.section-item-stagger-4,.map-card.item-stagger-4,.map-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.map-card.section-item-stagger-5,.map-card.item-stagger-5,.map-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.map-card.section-item-stagger-6,.map-card.item-stagger-6,.map-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.map-card.section-item-stagger-7,.map-card.item-stagger-7,.map-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.map-card.section-item-stagger-8,.map-card.item-stagger-8,.map-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.map-card.section-item-stagger-9,.map-card.item-stagger-9,.map-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.map-card.section-item-stagger-10,.map-card.item-stagger-10,.map-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.map-card.section-item-stagger-11,.map-card.item-stagger-11,.map-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.map-card.section-item-stagger-12,.map-card.item-stagger-12,.map-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.map-card.section-item-stagger-13,.map-card.item-stagger-13,.map-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.map-card.section-item-stagger-14,.map-card.item-stagger-14,.map-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.map-card.section-item-stagger-15,.map-card.item-stagger-15,.map-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.map-card__icon{display:flex;align-items:center;justify-content:center;width:var(--icon-lg);height:var(--icon-lg);color:var(--accent);flex-shrink:0;margin-bottom:var(--space-2)}.map-card__icon lucide-icon,.map-card__icon svg{width:calc(var(--icon-lg) * .6);height:calc(var(--icon-lg) * .6)}.map-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-1) 0}.map-card__address{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0 0 var(--space-1) 0}.map-card__coordinates{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);font-family:SF Mono,Monaco,Consolas,monospace}.map-location{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0}.map-placeholder{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height)}.map-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.map-empty lucide-icon,.map-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.map-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.faq-grid{display:flex;flex-direction:column;gap:var(--gap-xs);width:100%}.faq-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth)}.faq-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.faq-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.faq-card{transition:none}}.faq-card.section-item-streaming,.faq-card.item-streaming,.faq-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.faq-card.section-item-entered,.faq-card.item-entered,.faq-card.field-entered{animation:none}.faq-card.section-item-stagger-0,.faq-card.item-stagger-0,.faq-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.faq-card.section-item-stagger-1,.faq-card.item-stagger-1,.faq-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.faq-card.section-item-stagger-2,.faq-card.item-stagger-2,.faq-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.faq-card.section-item-stagger-3,.faq-card.item-stagger-3,.faq-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.faq-card.section-item-stagger-4,.faq-card.item-stagger-4,.faq-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.faq-card.section-item-stagger-5,.faq-card.item-stagger-5,.faq-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.faq-card.section-item-stagger-6,.faq-card.item-stagger-6,.faq-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.faq-card.section-item-stagger-7,.faq-card.item-stagger-7,.faq-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.faq-card.section-item-stagger-8,.faq-card.item-stagger-8,.faq-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.faq-card.section-item-stagger-9,.faq-card.item-stagger-9,.faq-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.faq-card.section-item-stagger-10,.faq-card.item-stagger-10,.faq-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.faq-card.section-item-stagger-11,.faq-card.item-stagger-11,.faq-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.faq-card.section-item-stagger-12,.faq-card.item-stagger-12,.faq-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.faq-card.section-item-stagger-13,.faq-card.item-stagger-13,.faq-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.faq-card.section-item-stagger-14,.faq-card.item-stagger-14,.faq-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.faq-card.section-item-stagger-15,.faq-card.item-stagger-15,.faq-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.faq-card__question{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-2) 0}.faq-card__answer{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0;padding-left:var(--space-3);border-left:2px solid var(--accent);opacity:.9}.faq-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.faq-empty lucide-icon,.faq-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.faq-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--section-card-gap);width:100%}@media (max-width: 480px){.pricing-grid{grid-template-columns:1fr;gap:var(--gap-sm)}}.pricing-card{background:var(--section-item-background);border:var(--section-item-border);border-radius:var(--section-item-border-radius, var(--radius-md));display:flex;flex-direction:column;gap:var(--card-element-gap-md);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;overflow:hidden;box-sizing:border-box;transition:background var(--duration-normal) var(--ease-out-smooth),border-color var(--duration-normal) var(--ease-out-smooth),box-shadow var(--duration-normal) var(--ease-out-smooth);text-align:center}.pricing-card:hover{background:var(--section-item-background-hover);border-color:var(--section-item-border-hover);box-shadow:var(--section-item-box-shadow-hover)}.pricing-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.pricing-card{transition:none}}.pricing-card.section-item-streaming,.pricing-card.item-streaming,.pricing-card.field-streaming{animation:unified-stream-in var(--duration-moderate) var(--ease-out-smooth) var(--animation-fill-mode)}.pricing-card.section-item-entered,.pricing-card.item-entered,.pricing-card.field-entered{animation:none}.pricing-card.section-item-stagger-0,.pricing-card.item-stagger-0,.pricing-card.field-stagger-0{animation-delay:calc(0 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-1,.pricing-card.item-stagger-1,.pricing-card.field-stagger-1{animation-delay:calc(1 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-2,.pricing-card.item-stagger-2,.pricing-card.field-stagger-2{animation-delay:calc(2 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-3,.pricing-card.item-stagger-3,.pricing-card.field-stagger-3{animation-delay:calc(3 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-4,.pricing-card.item-stagger-4,.pricing-card.field-stagger-4{animation-delay:calc(4 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-5,.pricing-card.item-stagger-5,.pricing-card.field-stagger-5{animation-delay:calc(5 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-6,.pricing-card.item-stagger-6,.pricing-card.field-stagger-6{animation-delay:calc(6 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-7,.pricing-card.item-stagger-7,.pricing-card.field-stagger-7{animation-delay:calc(7 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-8,.pricing-card.item-stagger-8,.pricing-card.field-stagger-8{animation-delay:calc(8 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-9,.pricing-card.item-stagger-9,.pricing-card.field-stagger-9{animation-delay:calc(9 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-10,.pricing-card.item-stagger-10,.pricing-card.field-stagger-10{animation-delay:calc(10 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-11,.pricing-card.item-stagger-11,.pricing-card.field-stagger-11{animation-delay:calc(11 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-12,.pricing-card.item-stagger-12,.pricing-card.field-stagger-12{animation-delay:calc(12 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-13,.pricing-card.item-stagger-13,.pricing-card.field-stagger-13{animation-delay:calc(13 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-14,.pricing-card.item-stagger-14,.pricing-card.field-stagger-14{animation-delay:calc(14 * var(--stagger-delay-base))}.pricing-card.section-item-stagger-15,.pricing-card.item-stagger-15,.pricing-card.field-stagger-15{animation-delay:calc(15 * var(--stagger-delay-base))}.pricing-card__name{font-size:var(--card-title-font-size);font-weight:var(--card-title-font-weight);letter-spacing:var(--card-title-letter-spacing);color:var(--foreground);line-height:var(--card-title-line-height);margin:0;margin:0 0 var(--space-3) 0}.pricing-card__price{font-size:var(--card-value-font-size-large);font-weight:var(--card-value-font-weight);letter-spacing:var(--card-value-letter-spacing);color:var(--foreground);line-height:var(--card-value-line-height);color:var(--accent);margin-bottom:var(--space-1)}.pricing-card__period{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);margin-bottom:var(--space-4)}.pricing-card__features{display:flex;flex-direction:column;gap:var(--space-2);width:100%;text-align:left;padding-top:var(--space-4);border-top:1px solid var(--border)}.pricing-card__feature{font-size:var(--card-meta-font-size);font-weight:var(--card-meta-font-weight);color:var(--muted-foreground);line-height:var(--card-meta-line-height);display:flex;align-items:center;gap:var(--space-2)}.pricing-card__feature lucide-icon,.pricing-card__feature svg{width:var(--icon-xs);height:var(--icon-xs);color:var(--status-success)}.pricing-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.pricing-empty lucide-icon,.pricing-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.pricing-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.fallback-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);background:var(--section-item-background);border-radius:var(--section-item-border-radius);border:1px dashed var(--border)}.fallback-empty lucide-icon,.fallback-empty svg{opacity:.4;width:var(--icon-lg);height:var(--icon-lg)}.fallback-empty p{margin:0;font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height)}.fallback-message{font-size:var(--card-subtitle-font-size);font-weight:var(--card-subtitle-font-weight);letter-spacing:var(--card-subtitle-letter-spacing);color:var(--muted-foreground);line-height:var(--card-subtitle-line-height);margin:0}.ai-section__body{width:100%;box-sizing:border-box}app-card-actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:.75rem!important;margin-top:12px!important;margin-left:4px!important;margin-right:4px!important;padding-bottom:16px!important}.osi-action-button{margin:0!important;-webkit-appearance:none!important;appearance:none!important;display:inline-flex!important;align-items:center!important;gap:.5rem!important;padding:.625rem 1.25rem!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:.875rem!important;font-weight:600!important;line-height:1.25rem!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;border-radius:10px!important;transition:all .2s ease!important;box-sizing:border-box!important}.osi-action-button--primary{background-color:#ff7900!important;color:#fff!important;border:none!important;box-shadow:0 2px 8px #ff790040!important}.osi-action-button--primary *{color:#fff!important}.osi-action-button--primary:hover{background-color:#e66d00!important;color:#fff!important;box-shadow:0 4px 16px #ff790066!important;transform:translateY(-1px)!important}.osi-action-button--primary:active{background-color:#cc6000!important;color:#fff!important;transform:scale(.98) translateY(0)!important;box-shadow:0 2px 4px #ff790033!important}.osi-action-button--primary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button--secondary{background-color:transparent!important;color:#fff!important;border:2px solid #ff7900!important}.osi-action-button--secondary *{color:#fff!important}.osi-action-button--secondary:hover{background-color:#ff79001a!important;color:#fff!important;box-shadow:0 2px 8px #ff790033!important}.osi-action-button--secondary:active{background-color:#ff790026!important;color:#fff!important;transform:scale(.98)!important}.osi-action-button--secondary:focus-visible{outline:2px solid #ff7900!important;outline-offset:2px!important}.osi-action-button__label{color:#fff!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.osi-action-button__icon{width:18px!important;height:18px!important;object-fit:contain!important;flex-shrink:0!important}.osi-action-button__emoji{font-size:16px!important;line-height:1!important;flex-shrink:0!important}.osi-action-button lucide-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}.osi-action-button lucide-icon svg{width:16px!important;height:16px!important;stroke:currentColor!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.card-signature{display:block!important;width:100%!important;box-sizing:border-box!important;margin:0!important;padding:12px 16px!important;font-family:Helvetica,Helvetica Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-size:11px!important;font-weight:400!important;line-height:1.4!important;letter-spacing:.02em!important;text-align:center!important;color:#646464b3!important;background:transparent!important;border:none!important;text-decoration:none!important}:host([data-theme=night]) .card-signature,:host-context([data-theme=night]) .card-signature{color:#c8c8c899!important}@media (prefers-reduced-motion: reduce){:host{--duration-instant: 1ms;--duration-fast: 1ms;--duration-normal: 1ms;--duration-moderate: 1ms;--duration-slow: 1ms;--duration-slower: 1ms;--duration-slowest: 1ms;--stagger-delay-base: 0ms;--stagger-delay-fast: 0ms;--stagger-delay-slow: 0ms;--ai-card-entrance-animation: none;--section-entrance-animation: none;--section-item-entrance-animation: none}}@media (prefers-contrast: high){:host{--foreground: #ffffff;--background: #000000;--muted-foreground: #ffffff;--muted: #000000;--border: #ffffff;--card: #000000;--card-foreground: #ffffff;--ai-card-border: 2px solid #ffffff;--section-border: 2px solid #ffffff;--button-border: 2px solid #ffffff;--card-background: #000000;--card-background-hover: #1a1a1a;--section-item-background: #000000;--section-item-background-hover: #1a1a1a}}@media (forced-colors: active){:host{--foreground: ButtonText;--background: Canvas;--border: ButtonBorder;--card: Canvas;--card-foreground: ButtonText}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: LucideIconsModule }, { kind: "component", type: CardHeaderComponent, selector: "app-card-header", inputs: ["cardTitle", "showExport"], outputs: ["export"] }, { kind: "component", type: CardSectionListComponent, selector: "app-card-section-list", inputs: ["sections", "containerWidth", "isStreaming"], outputs: ["sectionEvent", "layoutChange"] }, { kind: "component", type: CardActionsComponent, selector: "app-card-actions", inputs: ["actions"], outputs: ["actionClick"] }], animations: [
27490
29200
  trigger('messageAnimation', [
27491
29201
  transition('* => *', [
27492
29202
  style({ opacity: 0, transform: 'translateY(10px)' }),
@@ -27558,6 +29268,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
27558
29268
  }], emptyStateContainer: [{
27559
29269
  type: ViewChild,
27560
29270
  args: ['emptyStateContainer']
29271
+ }], llmFallbackEndpoint: [{
29272
+ type: Input
29273
+ }], llmFallbackPrompt: [{
29274
+ type: Input
27561
29275
  }] } });
27562
29276
 
27563
29277
  /**
@@ -27736,7 +29450,7 @@ class CardPreviewComponent {
27736
29450
  this.questionAction.emit(event);
27737
29451
  }
27738
29452
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CardPreviewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
27739
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: CardPreviewComponent, isStandalone: true, selector: "app-card-preview", inputs: { generatedCard: "generatedCard", isGenerating: "isGenerating", isInitialized: "isInitialized", isFullscreen: "isFullscreen" }, outputs: { cardInteraction: "cardInteraction", fieldInteraction: "fieldInteraction", fullscreenToggle: "fullscreenToggle", agentAction: "agentAction", questionAction: "questionAction" }, usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- Initial loading state -->\n <ng-container *ngIf=\"!isInitialized; else initializedState\">\n <div class=\"preview-loading\" role=\"status\">\n <div class=\"preview-spinner\"></div>\n <div>\n <p class=\"preview-loading-title\">Initializing System\u2026</p>\n <p class=\"preview-loading-subtitle\">Loading templates and services</p>\n </div>\n </div>\n </ng-container>\n\n <ng-template #initializedState>\n <!-- Show skeleton frame only when generating -->\n <ng-container *ngIf=\"showSkeleton; else cardContent\">\n <app-card-skeleton\n [cardTitle]=\"generatedCard?.cardTitle || ''\"\n [sectionCount]=\"generatedCard?.sections?.length || 0\"\n [isFullscreen]=\"isFullscreen\"\n >\n </app-card-skeleton>\n </ng-container>\n\n <ng-template #cardContent>\n <!-- Show card if we have generatedCard -->\n <ng-container *ngIf=\"generatedCard; else previewEmpty\">\n <div class=\"card-preview-container\">\n <app-ai-card-renderer\n [cardConfig]=\"generatedCard\"\n [updateSource]=\"'liveEdit'\"\n [isFullscreen]=\"isFullscreen\"\n (cardInteraction)=\"onCardInteraction($event)\"\n (fieldInteraction)=\"onFieldInteraction($event)\"\n (fullscreenToggle)=\"onFullscreenToggle($event)\"\n (agentAction)=\"onAgentAction($event)\"\n (questionAction)=\"onQuestionAction($event)\"\n >\n </app-ai-card-renderer>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #previewEmpty>\n <div class=\"preview-empty\">\n <div class=\"preview-empty-icon\" aria-hidden=\"true\">\n <div class=\"code-icon w-8 h-8\"></div>\n </div>\n <div class=\"preview-empty-copy\">\n <p class=\"preview-empty-title\">No Card Preview</p>\n <p class=\"preview-empty-subtitle\">\n Enter a valid JSON configuration or load a template to see your card design render in real time.\n </p>\n </div>\n <div class=\"preview-empty-hints\">\n <div class=\"preview-empty-hint\">\n <div class=\"hint-dot bg-green-500\"></div>\n <span>Valid JSON auto-generates layouts</span>\n </div>\n <div class=\"preview-empty-hint\">\n <div class=\"hint-dot bg-blue-500\"></div>\n <span>Magnetic tilt responds to cursor position</span>\n </div>\n <div class=\"preview-empty-hint\">\n <div class=\"hint-dot bg-purple-500\"></div>\n <span>Export high-fidelity PNG snapshots</span>\n </div>\n </div>\n </div>\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block;width:100%;height:100%}.preview-shell{position:relative;padding:clamp(1.5rem,3vw,2.25rem);border-radius:1.25rem;background:color-mix(in srgb,var(--card, #0c0c0c) 90%,transparent);border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent);box-shadow:0 4px 14px #0000002e,0 0 12px color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent);backdrop-filter:blur(20px);overflow:hidden}.preview-shell:before,.preview-shell:after{content:\"\";position:absolute;inset:0;opacity:0;pointer-events:none}.preview-header{position:relative;z-index:1;display:flex;align-items:center;gap:.75rem;margin-bottom:1.75rem}.preview-heading{display:flex;flex-direction:column;gap:.25rem}.preview-title{font-size:1.125rem;font-weight:700;color:var(--foreground, #ffffff)}.preview-subtitle{font-size:.85rem;color:var(--muted-foreground, #aaaaaa);letter-spacing:.05em;text-transform:uppercase}app-ai-card-renderer{display:block;width:100%;height:100%}.card-preview-container{display:block;width:100%;height:100%;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);will-change:opacity,transform;animation:fadeInScale .5s cubic-bezier(.4,0,.2,1)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.preview-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;text-align:center;padding:5rem 1.5rem;position:relative;min-height:400px}.preview-loading:before{content:\"\";position:absolute;inset:0;background:radial-gradient(circle at center,color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent) 0%,transparent 70%);animation:pulseGlow 2s ease-in-out infinite;pointer-events:none}@keyframes pulseGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.preview-spinner{width:3.5rem;height:3.5rem;border-radius:999px;border:4px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);border-top-color:var(--color-brand, #ff7900);border-right-color:var(--color-brand, #ff7900);animation:spin .8s linear infinite;position:relative;z-index:1;box-shadow:0 0 20px color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent)}.preview-spinner:after{content:\"\";position:absolute;inset:-4px;border-radius:999px;border:4px solid transparent;border-top-color:color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);animation:spin 1.2s linear infinite reverse}.preview-loading-title{font-size:1.25rem;font-weight:700;color:var(--foreground, #ffffff);position:relative;z-index:1;letter-spacing:-.01em;animation:fadeInUp .6s ease-out}.preview-loading-subtitle{font-size:.9375rem;color:var(--muted-foreground, #aaaaaa);position:relative;z-index:1;animation:fadeInUp .6s ease-out .2s both}.preview-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2rem;padding:5rem 1.5rem;position:relative;min-height:400px}.preview-empty:before{content:\"\";position:absolute;inset:0;background:radial-gradient(circle at center,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%);animation:pulseGlow 3s ease-in-out infinite;pointer-events:none}.preview-empty-icon{width:5rem;height:5rem;border-radius:999px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent),color-mix(in srgb,var(--color-brand, #ff7900) 12%,transparent));border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);box-shadow:0 8px 24px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--color-white, #ffffff) 10%,transparent);position:relative;z-index:1;animation:float 3s ease-in-out infinite}.preview-empty-icon:after{content:\"\";position:absolute;inset:-4px;border-radius:999px;border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);animation:pulseRing 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulseRing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.preview-empty-title{font-size:1.375rem;font-weight:700;color:var(--foreground, #ffffff);letter-spacing:-.01em;position:relative;z-index:1;animation:fadeInUp .6s ease-out}.preview-empty-subtitle{font-size:1rem;color:var(--muted-foreground, #aaaaaa);max-width:28rem;line-height:1.6;position:relative;z-index:1;animation:fadeInUp .6s ease-out .2s both}.preview-empty-hints{display:flex;flex-direction:column;gap:1rem;font-size:.875rem;color:var(--muted-foreground, #aaaaaa);position:relative;z-index:1;animation:fadeInUp .6s ease-out .4s both}.preview-empty-hint{display:flex;align-items:center;gap:.75rem;justify-content:center;padding:.5rem 1rem;background:color-mix(in srgb,var(--card-background, var(--card, #1c1c1f)) 80%,transparent);border:1px solid color-mix(in srgb,var(--border, rgba(200, 200, 200, .3)) 50%,transparent);border-radius:.5rem;transition:all .3s ease}.preview-empty-hint:hover{background:color-mix(in srgb,var(--card-background, var(--card, #1c1c1f)) 90%,transparent);border-color:color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent);transform:translate(4px)}.hint-dot{width:8px;height:8px;border-radius:999px;box-shadow:0 0 12px currentColor;flex-shrink:0;animation:pulse 2s ease-in-out infinite}.badge{background-color:color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);color:var(--primary, #ff7900);border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent);padding:.3rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-left:auto}.sparkles-icon,.code-icon{display:inline-flex;align-items:center;justify-content:center}.sparkles-icon:before{content:\"\\2728\";font-size:1.2rem;color:var(--primary, #ff7900)}.code-icon:before{content:\"\\1f4bb\";font-size:1.2rem;color:var(--primary, #ff7900)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (min-width: 768px){.preview-empty{padding:5rem 2rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AICardRendererComponent, selector: "app-ai-card-renderer", inputs: ["loadingMessages", "loadingTitle", "cardConfig", "updateSource", "isFullscreen", "tiltEnabled", "streamingStage", "streamingProgress", "streamingProgressLabel", "isStreaming", "showLoadingByDefault", "containerWidth", "changeType"], outputs: ["fieldInteraction", "cardInteraction", "fullscreenToggle", "agentAction", "questionAction", "export"] }, { kind: "component", type: CardSkeletonComponent, selector: "app-card-skeleton", inputs: ["cardTitle", "sectionCount", "isFullscreen", "sections", "animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29453
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: CardPreviewComponent, isStandalone: true, selector: "app-card-preview", inputs: { generatedCard: "generatedCard", isGenerating: "isGenerating", isInitialized: "isInitialized", isFullscreen: "isFullscreen" }, outputs: { cardInteraction: "cardInteraction", fieldInteraction: "fieldInteraction", fullscreenToggle: "fullscreenToggle", agentAction: "agentAction", questionAction: "questionAction" }, usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- Initial loading state -->\n <ng-container *ngIf=\"!isInitialized; else initializedState\">\n <div class=\"preview-loading\" role=\"status\">\n <div class=\"preview-spinner\"></div>\n <div>\n <p class=\"preview-loading-title\">Initializing System\u2026</p>\n <p class=\"preview-loading-subtitle\">Loading templates and services</p>\n </div>\n </div>\n </ng-container>\n\n <ng-template #initializedState>\n <!-- Show skeleton frame only when generating -->\n <ng-container *ngIf=\"showSkeleton; else cardContent\">\n <app-card-skeleton\n [cardTitle]=\"generatedCard?.cardTitle || ''\"\n [sectionCount]=\"generatedCard?.sections?.length || 0\"\n [isFullscreen]=\"isFullscreen\"\n >\n </app-card-skeleton>\n </ng-container>\n\n <ng-template #cardContent>\n <!-- Show card if we have generatedCard -->\n <ng-container *ngIf=\"generatedCard; else previewEmpty\">\n <div class=\"card-preview-container\">\n <app-ai-card-renderer\n [cardConfig]=\"generatedCard\"\n [updateSource]=\"'liveEdit'\"\n [isFullscreen]=\"isFullscreen\"\n (cardInteraction)=\"onCardInteraction($event)\"\n (fieldInteraction)=\"onFieldInteraction($event)\"\n (fullscreenToggle)=\"onFullscreenToggle($event)\"\n (agentAction)=\"onAgentAction($event)\"\n (questionAction)=\"onQuestionAction($event)\"\n >\n </app-ai-card-renderer>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #previewEmpty>\n <div class=\"preview-empty\">\n <div class=\"preview-empty-icon\" aria-hidden=\"true\">\n <div class=\"code-icon w-8 h-8\"></div>\n </div>\n <div class=\"preview-empty-copy\">\n <p class=\"preview-empty-title\">No Card Preview</p>\n <p class=\"preview-empty-subtitle\">\n Enter a valid JSON configuration or load a template to see your card design render in real time.\n </p>\n </div>\n <div class=\"preview-empty-hints\">\n <div class=\"preview-empty-hint\">\n <div class=\"hint-dot bg-green-500\"></div>\n <span>Valid JSON auto-generates layouts</span>\n </div>\n <div class=\"preview-empty-hint\">\n <div class=\"hint-dot bg-blue-500\"></div>\n <span>Magnetic tilt responds to cursor position</span>\n </div>\n <div class=\"preview-empty-hint\">\n <div class=\"hint-dot bg-purple-500\"></div>\n <span>Export high-fidelity PNG snapshots</span>\n </div>\n </div>\n </div>\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block;width:100%;height:100%}.preview-shell{position:relative;padding:clamp(1.5rem,3vw,2.25rem);border-radius:1.25rem;background:color-mix(in srgb,var(--card, #0c0c0c) 90%,transparent);border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 25%,transparent);box-shadow:0 4px 14px #0000002e,0 0 12px color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent);backdrop-filter:blur(20px);overflow:hidden}.preview-shell:before,.preview-shell:after{content:\"\";position:absolute;inset:0;opacity:0;pointer-events:none}.preview-header{position:relative;z-index:1;display:flex;align-items:center;gap:.75rem;margin-bottom:1.75rem}.preview-heading{display:flex;flex-direction:column;gap:.25rem}.preview-title{font-size:1.125rem;font-weight:700;color:var(--foreground, #ffffff)}.preview-subtitle{font-size:.85rem;color:var(--muted-foreground, #aaaaaa);letter-spacing:.05em;text-transform:uppercase}app-ai-card-renderer{display:block;width:100%;height:100%}.card-preview-container{display:block;width:100%;height:100%;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);will-change:opacity,transform;animation:fadeInScale .5s cubic-bezier(.4,0,.2,1)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.preview-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;text-align:center;padding:5rem 1.5rem;position:relative;min-height:400px}.preview-loading:before{content:\"\";position:absolute;inset:0;background:radial-gradient(circle at center,color-mix(in srgb,var(--color-brand, #ff7900) 8%,transparent) 0%,transparent 70%);animation:pulseGlow 2s ease-in-out infinite;pointer-events:none}@keyframes pulseGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.preview-spinner{width:3.5rem;height:3.5rem;border-radius:999px;border:4px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);border-top-color:var(--color-brand, #ff7900);border-right-color:var(--color-brand, #ff7900);animation:spin .8s linear infinite;position:relative;z-index:1;box-shadow:0 0 20px color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent)}.preview-spinner:after{content:\"\";position:absolute;inset:-4px;border-radius:999px;border:4px solid transparent;border-top-color:color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);animation:spin 1.2s linear infinite reverse}.preview-loading-title{font-size:1.25rem;font-weight:700;color:var(--foreground, #ffffff);position:relative;z-index:1;letter-spacing:-.01em;animation:fadeInUp .6s ease-out}.preview-loading-subtitle{font-size:.9375rem;color:var(--muted-foreground, #aaaaaa);position:relative;z-index:1;animation:fadeInUp .6s ease-out .2s both}.preview-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2rem;padding:5rem 1.5rem;position:relative;min-height:400px}.preview-empty:before{content:\"\";position:absolute;inset:0;background:radial-gradient(circle at center,color-mix(in srgb,var(--color-brand, #ff7900) 5%,transparent) 0%,transparent 70%);animation:pulseGlow 3s ease-in-out infinite;pointer-events:none}.preview-empty-icon{width:5rem;height:5rem;border-radius:999px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent),color-mix(in srgb,var(--color-brand, #ff7900) 12%,transparent));border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 40%,transparent);box-shadow:0 8px 24px color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--color-white, #ffffff) 10%,transparent);position:relative;z-index:1;animation:float 3s ease-in-out infinite}.preview-empty-icon:after{content:\"\";position:absolute;inset:-4px;border-radius:999px;border:2px solid color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);animation:pulseRing 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulseRing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.preview-empty-title{font-size:1.375rem;font-weight:700;color:var(--foreground, #ffffff);letter-spacing:-.01em;position:relative;z-index:1;animation:fadeInUp .6s ease-out}.preview-empty-subtitle{font-size:1rem;color:var(--muted-foreground, #aaaaaa);max-width:28rem;line-height:1.6;position:relative;z-index:1;animation:fadeInUp .6s ease-out .2s both}.preview-empty-hints{display:flex;flex-direction:column;gap:1rem;font-size:.875rem;color:var(--muted-foreground, #aaaaaa);position:relative;z-index:1;animation:fadeInUp .6s ease-out .4s both}.preview-empty-hint{display:flex;align-items:center;gap:.75rem;justify-content:center;padding:.5rem 1rem;background:color-mix(in srgb,var(--card-background, var(--card, #1c1c1f)) 80%,transparent);border:1px solid color-mix(in srgb,var(--border, rgba(200, 200, 200, .3)) 50%,transparent);border-radius:.5rem;transition:all .3s ease}.preview-empty-hint:hover{background:color-mix(in srgb,var(--card-background, var(--card, #1c1c1f)) 90%,transparent);border-color:color-mix(in srgb,var(--color-brand, #ff7900) 30%,transparent);transform:translate(4px)}.hint-dot{width:8px;height:8px;border-radius:999px;box-shadow:0 0 12px currentColor;flex-shrink:0;animation:pulse 2s ease-in-out infinite}.badge{background-color:color-mix(in srgb,var(--color-brand, #ff7900) 20%,transparent);color:var(--primary, #ff7900);border:1px solid color-mix(in srgb,var(--color-brand, #ff7900) 35%,transparent);padding:.3rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-left:auto}.sparkles-icon,.code-icon{display:inline-flex;align-items:center;justify-content:center}.sparkles-icon:before{content:\"\\2728\";font-size:1.2rem;color:var(--primary, #ff7900)}.code-icon:before{content:\"\\1f4bb\";font-size:1.2rem;color:var(--primary, #ff7900)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (min-width: 768px){.preview-empty{padding:5rem 2rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AICardRendererComponent, selector: "app-ai-card-renderer", inputs: ["loadingMessages", "loadingTitle", "cardConfig", "updateSource", "isFullscreen", "tiltEnabled", "streamingStage", "streamingProgress", "streamingProgressLabel", "isStreaming", "showLoadingByDefault", "containerWidth", "changeType", "llmFallbackEndpoint", "llmFallbackPrompt"], outputs: ["fieldInteraction", "cardInteraction", "fullscreenToggle", "agentAction", "questionAction", "export"] }, { kind: "component", type: CardSkeletonComponent, selector: "app-card-skeleton", inputs: ["cardTitle", "sectionCount", "isFullscreen", "sections", "animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27740
29454
  }
27741
29455
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CardPreviewComponent, decorators: [{
27742
29456
  type: Component,
@@ -27900,7 +29614,7 @@ class OsiCardsComponent {
27900
29614
  >
27901
29615
  </app-ai-card-renderer>
27902
29616
  </div>
27903
- `, isInline: true, styles: [":host{display:block;width:100%}.osi-cards-root{width:100%;min-height:200px}.osi-cards-fullscreen{position:fixed;inset:0;z-index:var(--z-modal, 500);background:var(--background, #ffffff)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AICardRendererComponent, selector: "app-ai-card-renderer", inputs: ["loadingMessages", "loadingTitle", "cardConfig", "updateSource", "isFullscreen", "tiltEnabled", "streamingStage", "streamingProgress", "streamingProgressLabel", "isStreaming", "showLoadingByDefault", "containerWidth", "changeType"], outputs: ["fieldInteraction", "cardInteraction", "fullscreenToggle", "agentAction", "questionAction", "export"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
29617
+ `, isInline: true, styles: [":host{display:block;width:100%}.osi-cards-root{width:100%;min-height:200px}.osi-cards-fullscreen{position:fixed;inset:0;z-index:var(--z-modal, 500);background:var(--background, #ffffff)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AICardRendererComponent, selector: "app-ai-card-renderer", inputs: ["loadingMessages", "loadingTitle", "cardConfig", "updateSource", "isFullscreen", "tiltEnabled", "streamingStage", "streamingProgress", "streamingProgressLabel", "isStreaming", "showLoadingByDefault", "containerWidth", "changeType", "llmFallbackEndpoint", "llmFallbackPrompt"], outputs: ["fieldInteraction", "cardInteraction", "fullscreenToggle", "agentAction", "questionAction", "export"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
27904
29618
  }
27905
29619
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: OsiCardsComponent, decorators: [{
27906
29620
  type: Component,
@@ -31980,11 +33694,11 @@ class SubscriptionPool {
31980
33694
  * Do not edit manually - generated by scripts/generate-version.js
31981
33695
  *
31982
33696
  * Source of truth: version.config.json
31983
- * Last synced: 2025-12-05T12:54:46.125Z
33697
+ * Last synced: 2025-12-05T16:14:02.608Z
31984
33698
  */
31985
- const VERSION = '1.5.13';
31986
- const BUILD_DATE = '2025-12-05T12:54:46.125Z';
31987
- const BUILD_HASH = 'b927d9d';
33699
+ const VERSION = '1.5.14';
33700
+ const BUILD_DATE = '2025-12-05T16:14:02.608Z';
33701
+ const BUILD_HASH = 'c8e1b38';
31988
33702
  const BUILD_BRANCH = 'main';
31989
33703
  const VERSION_INFO = {
31990
33704
  version: VERSION,