/* Vendored fonts for air-gap compatibility */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/playfair-display-latin-400.woff2') format('woff2');
}

:root {
  --dg-theme-primary: #2563EB;
  --dg-theme-danger: var(--dg-theme-primary);
  --dg-theme-success: var(--dg-theme-primary);
  --dg-theme-warning: var(--dg-theme-primary);
  --dg-theme-info: var(--dg-theme-primary);
  --dg-theme-bg: #FFFFFF;
  --dg-theme-bg-dark: #0F0F11;
  --dg-theme-border: #E5E7EB;
  --dg-theme-border-dark: #222224;
  --dg-theme-text: #4B5563;
  --dg-theme-text-dark: #A8B7CC;
  --dg-theme-text-strong: #000000;
  --dg-theme-text-strong-dark: #FFFFFF;
  --dg-theme-muted: #6B7280;
  --dg-theme-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --dg-theme-font-heading: TASA Orbiter;
  --dg-theme-font-display: "Playfair Display", "Times New Roman", serif;
  --dg-theme-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  --dg-theme-font-weight-body: 400;
  --dg-theme-font-weight-heading: 600;
  --dg-theme-label-font-size: var(--dg-text-sm);
  --dg-theme-label-font-weight: var(--dg-font-normal);
  --dg-theme-label-letter-spacing: 0;
  --dg-theme-label-text-transform: none;
  --dg-theme-label-color: var(--dg-text-secondary);
  --dg-theme-eyebrow-font-size: var(--dg-text-xs);
  --dg-theme-eyebrow-font-weight: var(--dg-font-normal);
  --dg-theme-eyebrow-letter-spacing: 0.08em;
  --dg-theme-eyebrow-text-transform: uppercase;
  --dg-theme-eyebrow-color: var(--dg-text-secondary);
  --dg-theme-radius: 0.25rem;
  --dg-theme-density: 1;
  --dg-gray-50: #f9fafb;
  --dg-gray-100: #f3f4f6;
  --dg-gray-200: #e5e7eb;
  --dg-gray-300: #d1d5db;
  --dg-gray-400: #9ca3af;
  --dg-gray-500: #6b7280;
  --dg-gray-600: #4b5563;
  --dg-gray-700: #374151;
  --dg-gray-800: #1f2937;
  --dg-gray-900: #111827;
  --dg-gray-950: #0f0f11;
  --dg-primary: var(--dg-theme-primary);
  --dg-primary-dark: color-mix(in srgb, var(--dg-theme-primary) 75%, black 25%);
  --dg-primary-muted-light: color-mix(in srgb, var(--dg-theme-primary) 85%, black 15%);
  --dg-primary-muted-dark: color-mix(in srgb, var(--dg-theme-primary) 85%, white 15%);
  --dg-bg-light: var(--dg-theme-bg);
  --dg-bg-dark: var(--dg-theme-bg-dark);
  --dg-accent-light: var(--dg-theme-border);
  --dg-accent-dark: var(--dg-theme-border-dark);
  --dg-text-normal-light: var(--dg-theme-text);
  --dg-text-normal-dark: var(--dg-theme-text-dark);
  --dg-text-bright-light: var(--dg-theme-text-strong);
  --dg-text-bright-dark: var(--dg-theme-text-strong-dark);
  --dg-text-dim: var(--dg-theme-muted);
  --dg-success: #16a34a;
  --dg-success-light: #dcfce7;
  --dg-success-dark: #166534;
  --dg-error: #dc2626;
  --dg-error-light: #fee2e2;
  --dg-error-dark: #991b1b;
  --dg-warning: #ea580c;
  --dg-warning-light: #fed7aa;
  --dg-warning-dark: #9a3412;
  --dg-info: #0284c7;
  --dg-info-light: #e0f2fe;
  --dg-info-dark: #075985;
  --dg-chart-series-0: var(--dg-info);
  --dg-chart-series-1: var(--dg-success);
  --dg-chart-series-2: var(--dg-warning);
  --dg-chart-series-3: var(--dg-error);
  --dg-chart-series-4: var(--dg-text-secondary);
  --dg-chart-grid-color: color-mix(in srgb, var(--dg-border) 60%, transparent);
  --dg-chart-axis-color: var(--dg-text-muted);
  --dg-chart-tooltip-bg: var(--dg-glass-bg);
  --dg-chart-tooltip-border: var(--dg-glass-border);
  --dg-chart-tooltip-color: var(--dg-text);
  --dg-chart-marker-fill: var(--dg-card-bg);
  --dg-chart-line-width: 2px;
  --dg-chart-sparkline-width: 1.5px;
  --dg-chart-bar-radius: 4px;
  --dg-chart-marker-size: 3px;
  --dg-chart-marker-hit-size: 12px;
  --dg-chart-marker-stroke-width: 2px;
  --dg-chart-area-opacity: 0.12;
  --dg-chart-donut-thickness: 0.4;
  --dg-space-0: 0;
  --dg-space-1: 0.25rem;
  --dg-space-2: 0.5rem;
  --dg-space-3: 0.75rem;
  --dg-space-4: 1rem;
  --dg-space-5: 1.25rem;
  --dg-space-6: 1.5rem;
  --dg-space-7: 2rem;
  --dg-space-8: 2.5rem;
  --dg-space-9: 3rem;
  --dg-space-10: 4rem;
  --dg-radius-0: 0;
  --dg-radius-sm: calc(var(--dg-theme-radius) * 0.5);
  --dg-radius-md: var(--dg-theme-radius);
  --dg-radius-lg: calc(var(--dg-theme-radius) * 2);
  --dg-radius-xl: calc(var(--dg-theme-radius) * 3);
  --dg-radius-2xl: calc(var(--dg-theme-radius) * 4);
  --dg-radius-full: 9999px;
  --dg-radius-round: 50%;
  --dg-font-sans: var(--dg-theme-font-body);
  --dg-font-display: var(--dg-theme-font-display);
  --dg-font-mono: var(--dg-theme-font-mono);
  --dg-font-body: var(--dg-theme-font-body);
  --dg-font-heading: var(--dg-theme-font-heading);
  --dg-text-2xs: 0.6875rem;
  --dg-text-xs: 0.75rem;
  --dg-text-sm: 0.875rem;
  --dg-text-md: 0.95rem;
  --dg-text-base: 1rem;
  --dg-text-lg: 1.125rem;
  --dg-text-xl: 1.25rem;
  --dg-text-2xl: 1.5rem;
  --dg-text-3xl: 2rem;
  --dg-text-4xl: 2.5rem;
  --dg-text-5xl: 3rem;
  --dg-font-normal: 400;
  --dg-font-medium: 500;
  --dg-font-semibold: 600;
  --dg-font-bold: 700;
  --dg-font-weight-body: var(--dg-theme-font-weight-body);
  --dg-font-weight-heading: var(--dg-theme-font-weight-heading);
  --dg-leading-tight: 1.2;
  --dg-leading-snug: 1.35;
  --dg-leading-normal: 1.6;
  --dg-leading-relaxed: 1.75;
  --dg-shadow-xs: 0 1px 2px 0 rgb(17 24 39 / 0.04);
  --dg-shadow-sm: 0 2px 6px -4px rgb(17 24 39 / 0.12);
  --dg-shadow-md: 0 8px 16px -12px rgb(17 24 39 / 0.18);
  --dg-shadow-lg: 0 16px 28px -20px rgb(17 24 39 / 0.2);
  --dg-shadow-xl: 0 24px 40px -28px rgb(17 24 39 / 0.24);
  --dg-border-width: 1px;
  --dg-transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --dg-container-max: 80rem;
  --dg-container-padding: 1.5rem;
  --dg-z-base: 0;
  --dg-z-dropdown: 1000;
  --dg-z-sticky: 1020;
  --dg-z-modal: 1040;
  --dg-z-tooltip: 1060;
  --dg-on-primary: #ffffff;
  --dg-on-accent: #ffffff;
  --dg-on-surface: var(--dg-text-normal-light);
  --dg-on-surface-dark: var(--dg-text-normal-dark);
  --dg-on-error: #ffffff;
  --dg-on-warning: #ffffff;
  --dg-on-success: #ffffff;
  --dg-on-info: #ffffff;
  --dg-control-height-xs: calc(1.5rem * var(--dg-theme-density));
  --dg-control-height-sm: calc(2rem * var(--dg-theme-density));
  --dg-control-height-md: calc(2.5rem * var(--dg-theme-density));
  --dg-control-height-lg: calc(3rem * var(--dg-theme-density));
  --dg-control-padding-x: calc(var(--dg-space-3) * var(--dg-theme-density));
  --dg-control-padding-y: calc(var(--dg-space-2) * var(--dg-theme-density));
  --dg-control-icon-sm: calc(1rem * var(--dg-theme-density));
  --dg-control-icon-md: calc(1.25rem * var(--dg-theme-density));
  --dg-control-icon-lg: calc(1.5rem * var(--dg-theme-density));
  --dg-row-padding-y: calc(var(--dg-space-3) * var(--dg-theme-density));
  --dg-row-padding-x: var(--dg-space-4);
  --dg-control-radius: var(--dg-radius-md);
  --dg-success-dark-text: #86efac;
  --dg-success-dark-bg: rgba(22, 163, 74, 0.15);
  --dg-success-dark-border: rgba(22, 163, 74, 0.3);
  --dg-error-dark-text: #fca5a5;
  --dg-error-dark-bg: rgba(220, 38, 38, 0.15);
  --dg-error-dark-border: rgba(220, 38, 38, 0.3);
  --dg-warning-dark-text: #fdba74;
  --dg-warning-dark-bg: rgba(234, 88, 12, 0.15);
  --dg-warning-dark-border: rgba(234, 88, 12, 0.3);
  --dg-info-dark-text: #7dd3fc;
  --dg-info-dark-bg: rgba(2, 132, 199, 0.1);
  --dg-info-dark-border: rgba(2, 132, 199, 0.3);
  --dg-frame-bg-light: #0c0c0e;
  --dg-frame-bg-dark: #060607;
  --dg-frame-border-light: rgba(255, 255, 255, 0.06);
  --dg-frame-border-dark: rgba(255, 255, 255, 0.04);
  --dg-sidebar-panel-bg-light: #0c0c0e;
  --dg-sidebar-panel-bg-dark: #060607;
  --dg-sidebar-rail-bg-light: #080809;
  --dg-sidebar-rail-bg-dark: #040405;
  --dg-sidebar-divider-light: rgba(255, 255, 255, 0.06);
  --dg-sidebar-divider-dark: rgba(255, 255, 255, 0.04);
  --dg-sidebar-hover-bg-light: rgba(255, 255, 255, 0.05);
  --dg-sidebar-hover-bg-dark: rgba(255, 255, 255, 0.04);
  --dg-sidebar-muted-ink-light: rgba(255, 255, 255, 0.55);
  --dg-sidebar-muted-ink-dark: rgba(255, 255, 255, 0.5);
  --dg-sidebar-icon-muted-light: rgba(255, 255, 255, 0.4);
  --dg-sidebar-icon-muted-dark: rgba(255, 255, 255, 0.35);
  --dg-sidebar-active-ink: #ffffff;
  --dg-header-glass-bg-light: rgba(250, 250, 250, 0.8);
  --dg-header-glass-bg-dark: rgba(23, 23, 23, 0.9);
  --dg-content-card-shadow-light: 0 4px 24px -4px rgba(0, 0, 0, 0.15);
  --dg-content-card-shadow-dark: 0 4px 24px -4px rgba(0, 0, 0, 0.5);
  --dg-matrix-bg-start-light: var(--dg-bg-light);
  --dg-matrix-bg-end-light: var(--dg-bg-light);
  --dg-matrix-bg-start-dark: var(--dg-bg-dark);
  --dg-matrix-bg-end-dark: var(--dg-bg-dark);
  --dg-glass-bg-light: rgba(255, 255, 255, 0.94);
  --dg-glass-bg-dark: rgba(15, 15, 17, 0.94);
  --dg-glass-border-light: rgba(148, 163, 184, 0.25);
  --dg-glass-border-dark: rgba(255, 255, 255, 0.08);
  --dg-glass-filter-light: blur(10px) saturate(120%);
  --dg-glass-filter-dark: blur(10px) saturate(120%);
  --dg-glass-filter-strong-light: blur(14px) saturate(120%);
  --dg-glass-filter-strong-dark: blur(14px) saturate(120%);
  --dg-matrix-dot-color-light: rgba(15, 23, 42, 0.18);
  --dg-matrix-dot-color-dark: rgba(255, 255, 255, 0.18);
  --dg-matrix-dot-strong-light: color-mix(in srgb, var(--dg-primary) 32%, transparent);
  --dg-matrix-dot-strong-dark: color-mix(in srgb, var(--dg-primary) 36%, transparent);
  --dg-matrix-accent-soft-light: color-mix(in srgb, var(--dg-primary) 70%, white 30%);
  --dg-matrix-accent-soft-dark: color-mix(in srgb, var(--dg-primary) 70%, white 30%);
  --dg-matrix-ink-strong-light: rgba(255, 255, 255, 0.94);
  --dg-matrix-ink-strong-dark: rgba(255, 255, 255, 0.94);
  --dg-matrix-ink-muted-light: rgba(226, 232, 240, 0.7);
  --dg-matrix-ink-muted-dark: rgba(198, 210, 230, 0.72);
  --dg-matrix-glyph-strong-light: var(--dg-matrix-ink-strong-light);
  --dg-matrix-glyph-strong-dark: var(--dg-matrix-ink-strong-dark);
  --dg-matrix-glyph-muted-light: var(--dg-matrix-ink-muted-light);
  --dg-matrix-glyph-muted-dark: var(--dg-matrix-ink-muted-dark);
  --dg-matrix-bg-start: var(--dg-bg);
  --dg-matrix-bg-end: var(--dg-bg);
  --dg-matrix-grid-size: 7px;
  --dg-matrix-dot-size: 0.6px;
  --dg-matrix-dot-opacity: 0.5;
  --dg-matrix-dot-color: var(--dg-matrix-dot-color-light);
  --dg-matrix-dot-blend: multiply;
  --dg-matrix-overlay-opacity: 0.9;
  --dg-matrix-glyph-offset-y: 0;
  --dg-matrix-glyph-opacity: 1;
  --dg-matrix-glyph-depth: 1;
  --dg-matrix-dot-strong: var(--dg-matrix-dot-strong-light);
  --dg-matrix-accent: var(--dg-primary);
  --dg-matrix-accent-soft: var(--dg-primary);
  --dg-matrix-ink-strong: var(--dg-text-strong);
  --dg-matrix-ink-muted: var(--dg-text-muted);
  --dg-matrix-glyph-strong: var(--dg-primary);
  --dg-matrix-glyph-muted: var(--dg-primary);
  --dg-matrix-fade-mask: none;
  --dg-overlay-bg: rgba(0, 0, 0, 0.5);
  --dg-overlay-bg-light: rgba(0, 0, 0, 0.45);
  --dg-surface-subtle-light: rgba(15, 23, 42, 0.08);
  --dg-surface-subtle-dark: rgba(255, 255, 255, 0.08);
  --dg-surface-hover-dark: rgba(255, 255, 255, 0.04);
  --dg-surface-active-dark: rgba(255, 255, 255, 0.06);
  --dg-ring-glow: rgba(37, 99, 235, 0.1);
  --dg-border-subtle-light: rgba(148, 163, 184, 0.18);
  --dg-border-subtle-light-hover: rgba(148, 163, 184, 0.35);
  --dg-border-subtle-light-active: rgba(148, 163, 184, 0.4);
  --dg-border-subtle-dark: rgba(255, 255, 255, 0.06);
  --dg-border-subtle-dark-hover: rgba(255, 255, 255, 0.08);
  --dg-border-subtle-dark-strong: rgba(255, 255, 255, 0.18);
  --dg-border-strong-light: var(--dg-gray-300);
  --dg-border-strong-dark: rgba(255, 255, 255, 0.12);
  --dg-matrix-fade-mask-light: linear-gradient(to bottom right, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.5) 45%, rgba(0, 0, 0, 0.08) 72%, rgba(0, 0, 0, 0) 100%);
  --dg-matrix-fade-mask-dark: linear-gradient(to bottom right, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.62) 45%, rgba(0, 0, 0, 0.14) 75%, rgba(0, 0, 0, 0) 100%);
  --dg-error-lightest: rgba(220, 38, 38, 0.12);
}

:root[data-dg-palette="mono"],
[data-dg-root][data-dg-palette="mono"] {
  /* Monochrome palette overrides */
  --dg-success: color-mix(in srgb, var(--dg-theme-success) 70%, white 30%);
  --dg-info: color-mix(in srgb, var(--dg-theme-info) 85%, white 15%);
  --dg-warning: color-mix(in srgb, var(--dg-theme-warning) 80%, black 20%);
  --dg-error: color-mix(in srgb, var(--dg-theme-danger) 75%, black 25%);

  --dg-success-light: color-mix(in srgb, var(--dg-success) 18%, white 82%);
  --dg-success-dark: color-mix(in srgb, var(--dg-success) 70%, black 30%);

  --dg-info-light: color-mix(in srgb, var(--dg-info) 18%, white 82%);
  --dg-info-dark: color-mix(in srgb, var(--dg-info) 70%, black 30%);

  --dg-warning-light: color-mix(in srgb, var(--dg-warning) 18%, white 82%);
  --dg-warning-dark: color-mix(in srgb, var(--dg-warning) 70%, black 30%);

  --dg-error-light: color-mix(in srgb, var(--dg-error) 18%, white 82%);
  --dg-error-dark: color-mix(in srgb, var(--dg-error) 70%, black 30%);
  --dg-error-lightest: color-mix(in srgb, var(--dg-error) 12%, transparent);

  --dg-success-dark-text: color-mix(in srgb, var(--dg-success) 70%, white 30%);
  --dg-success-dark-bg: color-mix(in srgb, var(--dg-success) 15%, transparent);
  --dg-success-dark-border: color-mix(in srgb, var(--dg-success) 30%, transparent);

  --dg-info-dark-text: color-mix(in srgb, var(--dg-info) 70%, white 30%);
  --dg-info-dark-bg: color-mix(in srgb, var(--dg-info) 15%, transparent);
  --dg-info-dark-border: color-mix(in srgb, var(--dg-info) 30%, transparent);

  --dg-warning-dark-text: color-mix(in srgb, var(--dg-warning) 70%, white 30%);
  --dg-warning-dark-bg: color-mix(in srgb, var(--dg-warning) 15%, transparent);
  --dg-warning-dark-border: color-mix(in srgb, var(--dg-warning) 30%, transparent);

  --dg-error-dark-text: color-mix(in srgb, var(--dg-error) 70%, white 30%);
  --dg-error-dark-bg: color-mix(in srgb, var(--dg-error) 15%, transparent);
  --dg-error-dark-border: color-mix(in srgb, var(--dg-error) 30%, transparent);

  --dg-on-error: var(--dg-on-primary);
  --dg-on-warning: var(--dg-on-primary);
  --dg-on-success: var(--dg-on-primary);
  --dg-on-info: var(--dg-on-primary);
}

.dg-theme--dark {
  --dg-matrix-dot-opacity: 0.45;
  --dg-matrix-dot-color: var(--dg-matrix-dot-color-dark);
  --dg-matrix-dot-blend: screen;
  --dg-matrix-fade-mask: none;
}

.dg-theme--dark[data-dg-palette="mono"],
[data-dg-root].dg-theme--dark[data-dg-palette="mono"] {
  --dg-success: color-mix(in srgb, var(--dg-theme-success) 60%, white 40%);
  --dg-info: color-mix(in srgb, var(--dg-theme-info) 72%, white 28%);
  --dg-warning: color-mix(in srgb, var(--dg-theme-warning) 55%, white 45%);
  --dg-error: color-mix(in srgb, var(--dg-theme-danger) 65%, white 35%);

  --dg-success-light: color-mix(in srgb, var(--dg-success) 22%, white 78%);
  --dg-success-dark: color-mix(in srgb, var(--dg-success) 65%, black 35%);

  --dg-info-light: color-mix(in srgb, var(--dg-info) 22%, white 78%);
  --dg-info-dark: color-mix(in srgb, var(--dg-info) 65%, black 35%);

  --dg-warning-light: color-mix(in srgb, var(--dg-warning) 22%, white 78%);
  --dg-warning-dark: color-mix(in srgb, var(--dg-warning) 65%, black 35%);

  --dg-error-light: color-mix(in srgb, var(--dg-error) 22%, white 78%);
  --dg-error-dark: color-mix(in srgb, var(--dg-error) 65%, black 35%);
  --dg-error-lightest: color-mix(in srgb, var(--dg-error) 12%, transparent);

  --dg-success-dark-text: color-mix(in srgb, var(--dg-success) 75%, white 25%);
  --dg-success-dark-bg: color-mix(in srgb, var(--dg-success) 18%, transparent);
  --dg-success-dark-border: color-mix(in srgb, var(--dg-success) 32%, transparent);

  --dg-info-dark-text: color-mix(in srgb, var(--dg-info) 75%, white 25%);
  --dg-info-dark-bg: color-mix(in srgb, var(--dg-info) 18%, transparent);
  --dg-info-dark-border: color-mix(in srgb, var(--dg-info) 32%, transparent);

  --dg-warning-dark-text: color-mix(in srgb, var(--dg-warning) 75%, white 25%);
  --dg-warning-dark-bg: color-mix(in srgb, var(--dg-warning) 18%, transparent);
  --dg-warning-dark-border: color-mix(in srgb, var(--dg-warning) 32%, transparent);

  --dg-error-dark-text: color-mix(in srgb, var(--dg-error) 75%, white 25%);
  --dg-error-dark-bg: color-mix(in srgb, var(--dg-error) 18%, transparent);
  --dg-error-dark-border: color-mix(in srgb, var(--dg-error) 32%, transparent);
}

:root[data-dg-chart-palette="mono"],
[data-dg-root][data-dg-chart-palette="mono"],
.dg-chart[data-dg-chart-palette="mono"] {
  --dg-chart-series-0: var(--dg-primary);
  --dg-chart-series-1: color-mix(in srgb, var(--dg-primary) 82%, var(--dg-bg) 18%);
  --dg-chart-series-2: color-mix(in srgb, var(--dg-primary) 68%, var(--dg-bg) 32%);
  --dg-chart-series-3: color-mix(in srgb, var(--dg-primary) 54%, var(--dg-bg) 46%);
  --dg-chart-series-4: color-mix(in srgb, var(--dg-primary) 40%, var(--dg-bg) 60%);
}

:root[data-dg-chart-palette="muted"],
[data-dg-root][data-dg-chart-palette="muted"],
.dg-chart[data-dg-chart-palette="muted"] {
  --dg-chart-series-0: color-mix(in srgb, var(--dg-info) 65%, var(--dg-bg) 35%);
  --dg-chart-series-1: color-mix(in srgb, var(--dg-success) 65%, var(--dg-bg) 35%);
  --dg-chart-series-2: color-mix(in srgb, var(--dg-warning) 65%, var(--dg-bg) 35%);
  --dg-chart-series-3: color-mix(in srgb, var(--dg-error) 65%, var(--dg-bg) 35%);
  --dg-chart-series-4: color-mix(in srgb, var(--dg-text-muted) 75%, var(--dg-bg) 25%);
}
