@import url(https://fonts.cdnfonts.com/css/opendyslexic);
/**
 * Così GlassNav — Design System Variables
 * =============================================
 * 
 * SOURCE UNIQUE DE VÉRITÉ POUR TOUT LE DESIGN.
 * 
 * Architecture :
 * - :root = thème darkGlass (défaut)
 * - [data-theme="light"] = thème lightGlass
 * - Tous les composants utilisent ces variables
 * - Changer ici = changer partout
 */

/* =============================================
   DARK GLASS THEME (défaut)
   ============================================= */
:root {
  /* --- Core Colors --- */
  --glass-bg: #050814;
  --glass-panel-bg: rgba(15, 25, 45, 0.72);
  --glass-panel-border: rgba(255, 255, 255, 0.06);
  --glass-blur: 24px;
  --glass-radius: 16px;
  --glass-inner-glow: 0 0 0 1px rgba(255, 255, 255, 0.02);

  /* --- Text --- */
  --text-primary: #F5F7FF;
  --text-secondary: #A9B3C9;
  --text-muted: #6E7890;

  /* --- Accent --- */
  --accent-primary: #0C8298;
  --accent-secondary: #F5B544;
  --accent-danger: #FF4D6A;
  --accent-warning: #FFB347;
  --accent-success: #3CCB8C;

  /* --- Surfaces --- */
  --surface-hover: rgba(255, 255, 255, 0.06);
  --surface-active: rgba(12, 130, 152, 0.12); /* Alpine Teal */
  --surface-elevated: rgba(15, 25, 45, 0.85);
  --divider: rgba(255, 255, 255, 0.06);

  /* --- Shadows --- */
  --shadow-soft: 0 18px 45px rgba(0, 0, 0, 0.55);
  --shadow-card: 0 8px 32px rgba(0, 0, 0, 0.3);
  --shadow-dropdown: 0 12px 40px rgba(0, 0, 0, 0.5);

  /* --- Navigation --- */
  --nav-bg: rgba(10, 16, 32, 0.92);
  --nav-item-hover: rgba(255, 255, 255, 0.06);
  --nav-item-active-bg: rgba(12, 130, 152, 0.12);
  --nav-item-active-border: var(--accent-primary);
  --nav-item-active-text: var(--accent-primary);
  --nav-collapse-bg: rgba(15, 25, 45, 0.95);

  /* --- Header --- */
  --header-bg: rgba(10, 16, 32, 0.82);
  --header-border: rgba(255, 255, 255, 0.06);

  /* --- Inputs --- */
  --input-bg: rgba(255, 255, 255, 0.04);
  --input-border: rgba(255, 255, 255, 0.08);
  --input-focus-border: var(--accent-primary);
  --input-focus-glow: 0 0 0 3px rgba(12, 130, 152, 0.15);

  /* --- Buttons --- */
  --btn-primary-bg: var(--accent-primary);
  --btn-primary-text: #ffffff;
  --btn-primary-hover: #0F697D;
  --btn-secondary-bg: rgba(255, 255, 255, 0.06);
  --btn-secondary-text: var(--text-primary);
  --btn-secondary-hover: rgba(255, 255, 255, 0.1);
  --btn-ghost-hover: rgba(255, 255, 255, 0.06);
  --btn-danger-bg: var(--accent-danger);
  --btn-danger-text: #ffffff;

  /* --- Badges --- */
  --badge-critical-bg: rgba(255, 77, 106, 0.15);
  --badge-critical-text: var(--accent-danger);
  --badge-warning-bg: rgba(255, 179, 71, 0.15);
  --badge-warning-text: var(--accent-warning);
  --badge-success-bg: rgba(60, 203, 140, 0.15);
  --badge-success-text: var(--accent-success);
  --badge-info-bg: rgba(0, 163, 255, 0.15);
  --badge-info-text: var(--accent-primary);

  /* --- Scrollbar --- */
  --scrollbar-track: transparent;
  --scrollbar-thumb: rgba(255, 255, 255, 0.08);
  --scrollbar-thumb-hover: rgba(255, 255, 255, 0.15);
}

/* =============================================
   LIGHT GLASS THEME
   ============================================= */
[data-theme="light"] {
  --glass-bg: #F4F6FB;
  --glass-panel-bg: rgba(255, 255, 255, 0.82);
  --glass-panel-border: rgba(15, 25, 45, 0.06);
  --glass-blur: 18px;
  --glass-inner-glow: 0 0 0 1px rgba(255, 255, 255, 0.4);

  --text-primary: #111827;
  --text-secondary: #4B5563;
  --text-muted: #9CA3AF;

  --accent-primary: #0C8298;
  --accent-secondary: #F59E0B;
  --accent-danger: #DC2626;
  --accent-warning: #F97316;
  --accent-success: #16A34A;

  --surface-hover: rgba(15, 25, 45, 0.04);
  --surface-active: rgba(12, 130, 152, 0.08);
  --surface-elevated: rgba(255, 255, 255, 0.95);
  --divider: rgba(15, 25, 45, 0.06);

  --shadow-soft: 0 16px 40px rgba(15, 23, 42, 0.18);
  --shadow-card: 0 4px 16px rgba(15, 23, 42, 0.08);
  --shadow-dropdown: 0 8px 30px rgba(15, 23, 42, 0.15);

  --nav-bg: rgba(255, 255, 255, 0.92);
  --nav-item-hover: rgba(15, 25, 45, 0.04);
  --nav-item-active-bg: rgba(12, 130, 152, 0.08);
  --nav-item-active-border: var(--accent-primary);
  --nav-item-active-text: var(--accent-primary);
  --nav-collapse-bg: rgba(255, 255, 255, 0.98);

  --header-bg: rgba(255, 255, 255, 0.85);
  --header-border: rgba(15, 25, 45, 0.06);

  --input-bg: rgba(15, 25, 45, 0.03);
  --input-border: rgba(15, 25, 45, 0.1);
  --input-focus-glow: 0 0 0 3px rgba(12, 130, 152, 0.12);

  --btn-primary-hover: #005EA6;
  --btn-secondary-bg: rgba(15, 25, 45, 0.04);
  --btn-secondary-hover: rgba(15, 25, 45, 0.08);
  --btn-ghost-hover: rgba(15, 25, 45, 0.04);

  --badge-critical-bg: rgba(220, 38, 38, 0.1);
  --badge-warning-bg: rgba(249, 115, 22, 0.1);
  --badge-success-bg: rgba(22, 163, 74, 0.1);
  --badge-info-bg: rgba(12, 130, 152, 0.1);

  --scrollbar-thumb: rgba(15, 25, 45, 0.1);
  --scrollbar-thumb-hover: rgba(15, 25, 45, 0.2);
}

/* =============================================
   LAYOUT DIMENSIONS (statiques)
   ============================================= */
:root {
  --topbar-height: 64px;
  --nav-expanded-width: 240px;
  --nav-collapsed-width: 72px;
  --content-padding: 24px;
  --panel-radius: 16px;
  --grid-max-width: 1600px;
  --grid-gutter: 24px;
  --base-unit: 8px;
}

/* =============================================
   TYPOGRAPHY
   ============================================= */
:root {
  --font-display: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

  --text-xs: 11px;
  --text-sm: 13px;
  --text-base: 15px;
  --text-lg: 17px;
  --text-xl: 20px;
  --text-2xl: 24px;
  --text-3xl: 30px;
  --text-4xl: 36px;

  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  --leading-tight: 1.2;
  --leading-normal: 1.5;
  --leading-relaxed: 1.7;
}

/* =============================================
   SPACING
   ============================================= */
:root {
  --sp-0: 0;
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;
}

/* =============================================
   RADIUS
   ============================================= */
:root {
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;
}

/* =============================================
   TRANSITIONS & ANIMATIONS
   ============================================= */
:root {
  --ease-glass: cubic-bezier(0.22, 0.61, 0.36, 1);
  --duration-fast: 120ms;
  --duration-normal: 180ms;
  --duration-slow: 280ms;
  --duration-page: 220ms;
}

/* =============================================
   Z-INDEX (audit #142, #154, #305)
   Échelle canonique. Tuer tous les nombres magiques 9999/99999/100000.
   ============================================= */
:root {
  --z-base: 0;
  --z-content: 10;
  --z-sticky: 100;
  --z-nav: 100;
  --z-header: 200;
  --z-dropdown: 1000;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
  --z-toast: 1080;
  --z-command-palette: 1090;
  --z-floating-nav: 1100;
  /* A11y criticals : doivent rester au-dessus de TOUT */
  --z-a11y-overlay: 9000;
  --z-a11y-skip-link: 9100;
}

/* =============================================
   SHADCN/UI BRIDGE
   ============================================= */
:root {
  --background: var(--glass-bg);
  --foreground: var(--text-primary);
  --card: var(--glass-panel-bg);
  --card-foreground: var(--text-primary);
  --popover: var(--surface-elevated);
  --popover-foreground: var(--text-primary);
  --primary: var(--accent-primary);
  --primary-foreground: #ffffff;
  --secondary: var(--btn-secondary-bg);
  --secondary-foreground: var(--text-primary);
  --muted: var(--surface-hover);
  --muted-foreground: var(--text-muted);
  --accent: var(--surface-active);
  --accent-foreground: var(--text-primary);
  --destructive: var(--accent-danger);
  --destructive-foreground: #ffffff;
  --border: var(--glass-panel-border);
  --input: var(--input-border);
  --ring: var(--accent-primary);
  --radius: var(--radius-md);
}

/* =============================================
   LEGACY VARIABLE BRIDGE
   (compatibilité avec les anciens composants)
   ============================================= */
:root {
  --color-bg-canvas: var(--glass-bg);
  --color-bg-primary: var(--glass-bg);
  --color-bg-secondary: var(--glass-panel-bg);
  --color-bg-surface: var(--glass-panel-bg);
  --color-bg-tertiary: var(--surface-hover);
  --color-bg-subtle: var(--surface-hover);
  --color-bg-muted: var(--surface-hover);
  --color-bg-inverse: var(--text-primary);
  --bg-app: var(--glass-bg);
  --bg-elevated: var(--surface-elevated);

  --color-text-primary: var(--text-primary);
  --color-text-secondary: var(--text-secondary);
  --color-text-muted: var(--text-muted);
  --color-text-inverse: #ffffff;

  --color-border: var(--glass-panel-border);
  --color-border-default: var(--glass-panel-border);
  --color-border-strong: var(--glass-panel-border);
  --color-border-subtle: var(--divider);
  --color-border-focus: var(--accent-primary);
  --border-light: var(--divider);

  --color-primary: var(--accent-primary);
  --color-primary-dark: var(--btn-primary-hover);
  --color-accent: var(--accent-primary);

  --color-action-primary: var(--btn-primary-bg);
  --color-action-primary-hover: var(--btn-primary-hover);
  --color-action-secondary: var(--btn-secondary-bg);
  --color-action-secondary-hover: var(--btn-secondary-hover);

  --color-feedback-success: var(--accent-success);
  --color-feedback-warning: var(--accent-warning);
  --color-feedback-danger: var(--accent-danger);
  --color-feedback-info: var(--accent-primary);
  --color-feedback-success-light: var(--badge-success-bg);
  --color-feedback-warning-light: var(--badge-warning-bg);
  --color-feedback-danger-light: var(--badge-critical-bg);
  --color-feedback-info-light: var(--badge-info-bg);

  --color-nav-bg: var(--nav-bg);
  --color-nav-text: var(--text-secondary);
  --color-nav-text-active: var(--nav-item-active-text);
  --color-nav-item-hover: var(--nav-item-hover);
  --color-nav-item-active: var(--nav-item-active-bg);
  --color-nav-active-text: #ffffff;

  --color-logout-text: var(--accent-danger);
  --color-logout-hover-bg: var(--badge-critical-bg);

  /* Tab colors for legacy sidebar */
  --color-tab-home: var(--accent-primary);
  --color-tab-personnel: var(--accent-success);
  --color-tab-paie: var(--accent-secondary);
  --color-tab-temps: #8B5CF6;
  --color-tab-documents: var(--accent-danger);
  --color-tab-analytics: #06B6D4;
  --color-tab-config: var(--text-muted);

  /* Shadows legacy */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.1);
  --shadow-sm: var(--shadow-card);
  --shadow-md: var(--shadow-card);
  --shadow-lg: var(--shadow-soft);
  --shadow-xl: var(--shadow-soft);

  /* Theme engine bridge */
  --theme-accent: var(--accent-primary);
  --theme-text-primary: var(--text-primary);
  --theme-text-secondary: var(--text-secondary);
  --theme-text-muted: var(--text-muted);
  --theme-glass-bg: var(--glass-panel-bg);
  --theme-glass-border: var(--glass-panel-border);
  --theme-glass-panel-bg: var(--glass-panel-bg);
  --theme-glass-panel-border: var(--glass-panel-border);
  --theme-glass-shadow: var(--shadow-card);
  --theme-glass-panel-shadow: var(--shadow-soft);
  --theme-glass-hover: var(--surface-hover);
  --theme-hover-bg: var(--surface-hover);
  --theme-divider: var(--divider);
  --theme-sidebar-bg: var(--nav-bg);
  --theme-sidebar-item-hover: var(--nav-item-hover);
  --theme-sidebar-item-active: var(--nav-item-active-bg);
  --theme-accent-soft: var(--surface-active);
  --theme-accent-dark: var(--btn-primary-hover);
  --theme-accent-contrast: #ffffff;
  --theme-btn-primary-bg: var(--btn-primary-bg);
  --theme-btn-primary-hover: var(--btn-primary-hover);
  --theme-btn-primary-active: var(--btn-primary-hover);
  --theme-btn-secondary-bg: var(--btn-secondary-bg);
  --theme-btn-secondary-hover: var(--btn-secondary-hover);
  --theme-btn-secondary-text: var(--text-primary);
  --theme-input-border: var(--input-border);
  --theme-focus-ring: var(--accent-primary);
  --theme-success: var(--accent-success);
  --theme-warning: var(--accent-warning);
  --theme-danger: var(--accent-danger);
}

/* =============================================
   GLASS UTILITY CLASSES
   ============================================= */
.glass-panel {
  background: rgba(15, 25, 45, 0.72);
  background: var(--glass-panel-bg);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 16px;
  border-radius: var(--panel-radius);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.02), 0 8px 32px rgba(0, 0, 0, 0.3);
  box-shadow: var(--glass-inner-glow), var(--shadow-card);
}

.glass-panel-elevated {
  background: rgba(15, 25, 45, 0.85);
  background: var(--surface-elevated);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 16px;
  border-radius: var(--panel-radius);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.02), 0 18px 45px rgba(0, 0, 0, 0.55);
  box-shadow: var(--glass-inner-glow), var(--shadow-soft);
}

.glass-nav {
  background: rgba(10, 16, 32, 0.92);
  background: var(--nav-bg);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  border-right: 1px solid var(--glass-panel-border);
}

/* Audit #163, #170, #209, #314 — Header glass adaptif au scroll
   + Mica surface, edge-lighting top, élévation 1, hauteur 64px sticky. */
.glass-header {
  background: rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
          backdrop-filter: blur(20px) saturate(150%);
  border-top: 1px solid rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04),
    0 1px 1px rgba(15, 23, 42, 0.06);
  box-shadow: var(--elev-1, 0 1px 2px rgba(15, 23, 42, 0.04));
  transition:
    background 280ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1),
    -webkit-backdrop-filter 280ms cubic-bezier(0.22, 1, 0.36, 1);
  transition:
    background 280ms cubic-bezier(0.22, 1, 0.36, 1),
    backdrop-filter 280ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1);
  transition:
    background 280ms cubic-bezier(0.22, 1, 0.36, 1),
    backdrop-filter 280ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1),
    -webkit-backdrop-filter 280ms cubic-bezier(0.22, 1, 0.36, 1);
}
.glass-header.is-scrolled {
  background: rgba(255, 255, 255, 0.78);
  -webkit-backdrop-filter: blur(48px) saturate(200%);
          backdrop-filter: blur(48px) saturate(200%);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06),
    0 8px 16px -4px rgba(15, 23, 42, 0.08),
    0 24px 48px -12px rgba(12, 130, 152, 0.12);
  box-shadow: var(--elev-3, 0 8px 16px -4px rgba(15, 23, 42, 0.08));
}

.glass-input {
  background: rgba(255, 255, 255, 0.04);
  background: var(--input-bg);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border: 1px solid var(--input-border);
  border-radius: 10px;
  border-radius: var(--radius-md);
  color: #F5F7FF;
  color: var(--text-primary);
  transition: border-color 120ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: border-color var(--duration-fast) var(--ease-glass),
              box-shadow var(--duration-fast) var(--ease-glass);
}

.glass-input:focus {
  border-color: #0C8298;
  border-color: var(--input-focus-border);
  box-shadow: 0 0 0 3px rgba(12, 130, 152, 0.15);
  box-shadow: var(--input-focus-glow);
  outline: none;
}

/* =============================================
   SCROLLBAR STYLING
   ============================================= */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
  background: var(--scrollbar-track);
}
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  background: var(--scrollbar-thumb);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.15);
  background: var(--scrollbar-thumb-hover);
}

/* Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.08) transparent;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

/* =============================================
   PAGE TRANSITION ANIMATION
   ============================================= */
@keyframes pageEnter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.page-enter {
  animation: pageEnter 220ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation: pageEnter var(--duration-page) var(--ease-glass) forwards;
}

/* =============================================
   CARD HOVER LIFT
   ============================================= */
.glass-card-hover {
  transition: transform 180ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform var(--duration-normal) var(--ease-glass),
              box-shadow var(--duration-normal) var(--ease-glass);
}
.glass-card-hover:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.55);
  box-shadow: var(--shadow-soft);
}

/* =============================================
   SKELETON LOADER (glassmorphic)
   ============================================= */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.glass-skeleton {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.06) 25%,
    rgba(255, 255, 255, 0.06) 50%,
    rgba(255, 255, 255, 0.06) 75%
  );
  background: linear-gradient(
    90deg,
    var(--surface-hover) 25%,
    rgba(255, 255, 255, 0.06) 50%,
    var(--surface-hover) 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
  border-radius: 10px;
  border-radius: var(--radius-md);
}

/* =============================================
   NAV ITEM ANIMATIONS
   ============================================= */
.nav-item-enter {
  transition: opacity 280ms cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 280ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity var(--duration-slow) var(--ease-glass),
              transform var(--duration-slow) var(--ease-glass);
}

.nav-label-enter {
  animation: labelSlideIn 280ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation: labelSlideIn var(--duration-slow) var(--ease-glass) forwards;
}

@keyframes labelSlideIn {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* =============================================
   FOCUS RING (accessibility)
   ============================================= */
:focus-visible {
  outline: 2px solid #0C8298;
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

/* =============================================
   THEME TRANSITION (Dark ↔ Light smooth)
   ============================================= */
[data-theme-transitioning] * {
  transition: background-color 280ms cubic-bezier(0.22, 0.61, 0.36, 1),
              color 280ms cubic-bezier(0.22, 0.61, 0.36, 1),
              border-color 280ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 280ms cubic-bezier(0.22, 0.61, 0.36, 1) !important;
  transition: background-color 280ms var(--ease-glass),
              color 280ms var(--ease-glass),
              border-color 280ms var(--ease-glass),
              box-shadow 280ms var(--ease-glass) !important;
}

/* =============================================
   SECTION COLOR PALETTE
   =============================================
   Auto-appliqué par AppLayoutV2 via data-section.
   Aucune page n'a besoin de connaître sa couleur.
   Le layout détecte la section depuis l'URL.
   ============================================= */
:root {
  --section-home: #1A9FB5;
  --section-employees: #06B6D4;
  --section-payroll: #F5B544;
  --section-declarations: #3CCB8C;
  --section-anomalies: #FF4D6A;
  --section-analytics: #8B5CF6;
  --section-settings: #64748B;
  --section-temps: #A855F7;

  /* Active section — overridden by [data-section] */
  --section-color: var(--accent-primary);
}

[data-theme="light"] {
  --section-home: #0C8298;
  --section-employees: #0891B2;
  --section-payroll: #D97706;
  --section-declarations: #16A34A;
  --section-anomalies: #DC2626;
  --section-analytics: #7C3AED;
  --section-settings: #475569;
  --section-temps: #9333EA;
}

/* Section auto-coloring via data-section attribute */
[data-section="home"]         { --section-color: var(--section-home); }
[data-section="employees"]    { --section-color: var(--section-employees); }
[data-section="payroll"]      { --section-color: var(--section-payroll); }
[data-section="declarations"] { --section-color: var(--section-declarations); }
[data-section="anomalies"]    { --section-color: var(--section-anomalies); }
[data-section="analytics"]    { --section-color: var(--section-analytics); }
[data-section="settings"]     { --section-color: var(--section-settings); }
[data-section="temps"]        { --section-color: var(--section-temps); }

/* =============================================
   SECTION HALO — fond coloré diffus derrière chaque page
   (Prop 2: "Glass Rainbow" — halo subtil)
   ============================================= */
[data-section]::before {
  content: '';
  position: fixed;
  top: 10%;
  left: 30%;
  width: 50vw;
  height: 50vh;
  border-radius: 50%;
  background: radial-gradient(ellipse, #0C8298, transparent 70%);
  background: radial-gradient(ellipse, var(--section-color), transparent 70%);
  opacity: 0.04;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
  transition: background 600ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: background 600ms var(--ease-glass);
}

/* =============================================
   GLASS CARD — auto-section coloring
   Toute card avec .glass-card hérite la couleur section
   ============================================= */
.glass-card {
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  border-radius: var(--panel-radius);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  transition: transform 180ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 180ms cubic-bezier(0.22, 0.61, 0.36, 1),
              border-color 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform var(--duration-normal) var(--ease-glass),
              box-shadow var(--duration-normal) var(--ease-glass),
              border-color var(--duration-normal) var(--ease-glass);
}

[data-theme="light"] .glass-card {
  background: rgba(255, 255, 255, 0.7);
  border-color: rgba(15, 25, 45, 0.06);
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
}

/* Card hover — glow de la section (Prop 3) */
.glass-card:hover {
  transform: translateY(-2px) scale(1.01);
  border-color: color-mix(in srgb, #0C8298 30%, transparent);
  border-color: color-mix(in srgb, var(--section-color) 30%, transparent);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
              0 0 24px color-mix(in srgb, #0C8298 15%, transparent);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
              0 0 24px color-mix(in srgb, var(--section-color) 15%, transparent);
}

[data-theme="light"] .glass-card:hover {
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.1),
              0 0 20px color-mix(in srgb, #0C8298 10%, transparent);
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.1),
              0 0 20px color-mix(in srgb, var(--section-color) 10%, transparent);
}

/* Card icon inherits section color */
.glass-card .card-icon {
  color: #0C8298;
  color: var(--section-color);
}

/* =============================================
   SECTION TITLE — bandeau coloré vertical (Prop 3)
   ============================================= */
.section-title {
  position: relative;
  padding-left: 14px;
}
.section-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 60%;
  border-radius: 2px;
  background: #0C8298;
  background: var(--section-color);
  box-shadow: 0 0 10px color-mix(in srgb, #0C8298 40%, transparent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--section-color) 40%, transparent);
}

/* =============================================
   SECTION DIVIDER — ligne de lumière colorée
   ============================================= */
.section-divider {
  position: relative;
  width: 100%;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.section-divider::before {
  content: '';
  position: absolute;
  inset: 0;
  height: 1px;
  top: 50%;
  background: linear-gradient(90deg, transparent 5%, color-mix(in srgb, #0C8298 15%, transparent) 20%, color-mix(in srgb, #0C8298 35%, transparent) 50%, color-mix(in srgb, #0C8298 15%, transparent) 80%, transparent 95%);
  background: linear-gradient(90deg, transparent 5%, color-mix(in srgb, var(--section-color) 15%, transparent) 20%, color-mix(in srgb, var(--section-color) 35%, transparent) 50%, color-mix(in srgb, var(--section-color) 15%, transparent) 80%, transparent 95%);
}
.section-divider::after {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0C8298;
  background: var(--section-color);
  box-shadow: 0 0 10px #0C8298, 0 0 20px color-mix(in srgb, #0C8298 40%, transparent);
  box-shadow: 0 0 10px var(--section-color), 0 0 20px color-mix(in srgb, var(--section-color) 40%, transparent);
  z-index: 1;
}

/* =============================================
   CAROUSEL DOTS — auto-colored
   ============================================= */
.carousel-dot-active {
  background: #0C8298 !important;
  background: var(--section-color) !important;
  box-shadow: 0 0 8px color-mix(in srgb, #0C8298 50%, transparent) !important;
  box-shadow: 0 0 8px color-mix(in srgb, var(--section-color) 50%, transparent) !important;
}

/* =============================================
   HSCROLL ROW — utilitaire global scroll horizontal
   Utilisable sur n'importe quelle page :
   <div class="hscroll-row">...</div>
   ============================================= */
.hscroll-row {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 8px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.hscroll-row::-webkit-scrollbar { display: none; }
.hscroll-row > * {
  flex-shrink: 0;
  scroll-snap-align: start;
}

/* Indicateur visuel de scroll disponible */
.hscroll-fade-right {
  position: relative;
}
.hscroll-fade-right::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 8px;
  width: 48px;
  background: linear-gradient(to left, #050814 0%, transparent 100%);
  background: linear-gradient(to left, var(--glass-bg, rgba(10,15,35,1)) 0%, transparent 100%);
  pointer-events: none;
  z-index: 1;
}

/* Page wrapper — permet le scroll vertical global */
.page-scroll-container {
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

/* =============================================
   CAROUSEL ARROWS — section-colored glow
   ============================================= */
.carousel-arrow {
  background: rgba(15, 25, 45, 0.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 12px color-mix(in srgb, #0C8298 20%, transparent);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 12px color-mix(in srgb, var(--section-color) 20%, transparent);
  transition: opacity 180ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity var(--duration-normal) var(--ease-glass),
              box-shadow var(--duration-normal) var(--ease-glass);
}
.carousel-arrow:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 20px color-mix(in srgb, #0C8298 35%, transparent);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 20px color-mix(in srgb, var(--section-color) 35%, transparent);
}
[data-theme="light"] .carousel-arrow {
  background: rgba(255, 255, 255, 0.85);
  border-color: rgba(15, 25, 45, 0.08);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
}

/* =============================================
   NEBULA BACKGROUND — animated color clouds (Prop 1)
   ============================================= */
@keyframes nebula-drift {
  0%   { transform: translate(0, 0) scale(1); }
  33%  { transform: translate(30px, -20px) scale(1.05); }
  66%  { transform: translate(-20px, 15px) scale(0.95); }
  100% { transform: translate(0, 0) scale(1); }
}

.nebula-layer {
  position: fixed;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none;
  animation: nebula-drift 25s ease-in-out infinite;
  z-index: 0;
}

/* =============================================
   AURORA BACKGROUND — for light theme (Prop 2)
   ============================================= */
@keyframes aurora-shift {
  0%   { transform: translateX(0) scaleY(1); opacity: 0.08; }
  50%  { transform: translateX(60px) scaleY(1.2); opacity: 0.12; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.08; }
}

/* =============================================
   NAV ICON — section color in sidebar (Prop 1)
   ============================================= */
[data-section="employees"] ~ * [data-testid="nav-item-employees"],
[data-section="payroll"] ~ * [data-testid="nav-item-payroll"],
[data-section="declarations"] ~ * [data-testid="nav-item-declarations"],
[data-section="anomalies"] ~ * [data-testid="nav-item-anomalies"],
[data-section="analytics"] ~ * [data-testid="nav-item-analytics"] {
  --nav-item-active-text: var(--section-color);
  --nav-item-active-bg: color-mix(in srgb, var(--section-color) 12%, transparent);
  --nav-item-active-border: var(--section-color);
}

/* =============================================
   LOGIN PAGE — glass styling
   ============================================= */
.login-glass-bg {
  background: #050814;
  background: var(--glass-bg);
  min-height: 100vh;
  position: relative;
  overflow: hidden;
}
[data-theme="light"] .login-glass-bg {
  background: #050814;
  background: var(--glass-bg);
}

.login-glass-card {
  background: rgba(15, 25, 45, 0.72);
  background: var(--glass-panel-bg);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 16px;
  border-radius: var(--panel-radius);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.02), 0 18px 45px rgba(0, 0, 0, 0.55);
  box-shadow: var(--glass-inner-glow), var(--shadow-soft);
}

/* =============================================================================
   RESPONSIVE BREAKPOINTS
   =============================================================================
   Mobile-first approach:
   - xs: 0-479px (default mobile)
   - sm: 480px+ (large mobile / small tablet)
   - md: 768px+ (tablet)
   - lg: 1024px+ (small desktop)
   - xl: 1280px+ (desktop)
   - 2xl: 1536px+ (large desktop)
   ============================================================================= */
:root {
  --breakpoint-sm: 480px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1536px;
}

/* =============================================================================
   CONTAINER — responsive max-width wrapper
   ============================================================================= */
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-left: var(--sp-4);
  padding-right: 16px;
  padding-right: var(--sp-4);
}

@media (min-width: 480px) {
  .container { max-width: 460px; }
}
@media (min-width: 768px) {
  .container { max-width: 720px; padding-left: 24px; padding-left: var(--sp-6); padding-right: 24px; padding-right: var(--sp-6); }
}
@media (min-width: 1024px) {
  .container { max-width: 960px; }
}
@media (min-width: 1280px) {
  .container { max-width: 1200px; }
}
@media (min-width: 1536px) {
  .container { max-width: 1400px; }
}

.container-fluid {
  width: 100%;
  padding-left: 16px;
  padding-left: var(--sp-4);
  padding-right: 16px;
  padding-right: var(--sp-4);
}

@media (min-width: 768px) {
  .container-fluid { padding-left: 24px; padding-left: var(--sp-6); padding-right: 24px; padding-right: var(--sp-6); }
}

/* =============================================================================
   FLEXBOX UTILITIES
   ============================================================================= */

/* Display */
.flex { display: flex; }
.inline-flex { display: inline-flex; }

/* Direction */
.flex-row { flex-direction: row; }
.flex-col { flex-direction: column; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-col-reverse { flex-direction: column-reverse; }

/* Wrap */
.flex-wrap { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }
.flex-wrap-reverse { flex-wrap: wrap-reverse; }

/* Justify Content (main axis) */
.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
.justify-evenly { justify-content: space-evenly; }

/* Align Items (cross axis) */
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.items-center { align-items: center; }
.items-baseline { align-items: baseline; }
.items-stretch { align-items: stretch; }

/* Align Content (multi-line) */
.content-start { align-content: flex-start; }
.content-end { align-content: flex-end; }
.content-center { align-content: center; }
.content-between { align-content: space-between; }
.content-around { align-content: space-around; }
.content-stretch { align-content: stretch; }

/* Align Self */
.self-auto { align-self: auto; }
.self-start { align-self: flex-start; }
.self-end { align-self: flex-end; }
.self-center { align-self: center; }
.self-stretch { align-self: stretch; }

/* Flex Grow / Shrink */
.flex-1 { flex: 1 1; }
.flex-auto { flex: 1 1 auto; }
.flex-initial { flex: 0 1 auto; }
.flex-none { flex: none; }
.grow { flex-grow: 1; }
.grow-0 { flex-grow: 0; }
.shrink { flex-shrink: 1; }
.shrink-0 { flex-shrink: 0; }

/* Gap */
.gap-0 { gap: 0; }
.gap-1 { gap: 4px; gap: var(--sp-1); }
.gap-2 { gap: 8px; gap: var(--sp-2); }
.gap-3 { gap: 12px; gap: var(--sp-3); }
.gap-4 { gap: 16px; gap: var(--sp-4); }
.gap-5 { gap: 20px; gap: var(--sp-5); }
.gap-6 { gap: 24px; gap: var(--sp-6); }
.gap-8 { gap: 32px; gap: var(--sp-8); }
.gap-10 { gap: 40px; gap: var(--sp-10); }
.gap-12 { gap: 48px; gap: var(--sp-12); }

.gap-x-2 { column-gap: 8px; column-gap: var(--sp-2); }
.gap-x-4 { column-gap: 16px; column-gap: var(--sp-4); }
.gap-x-6 { column-gap: 24px; column-gap: var(--sp-6); }
.gap-x-8 { column-gap: 32px; column-gap: var(--sp-8); }

.gap-y-2 { row-gap: 8px; row-gap: var(--sp-2); }
.gap-y-4 { row-gap: 16px; row-gap: var(--sp-4); }
.gap-y-6 { row-gap: 24px; row-gap: var(--sp-6); }
.gap-y-8 { row-gap: 32px; row-gap: var(--sp-8); }

/* =============================================================================
   CSS GRID UTILITIES
   ============================================================================= */

/* Display */
.grid { display: grid; }
.inline-grid { display: inline-grid; }

/* Grid Template Columns */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.grid-cols-none { grid-template-columns: none; }

/* Auto-fit / Auto-fill responsive grids */
.grid-auto-fit-xs { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.grid-auto-fit-sm { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.grid-auto-fit-md { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.grid-auto-fit-lg { grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); }

.grid-auto-fill-xs { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.grid-auto-fill-sm { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.grid-auto-fill-md { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.grid-auto-fill-lg { grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); }

/* Grid Template Rows */
.grid-rows-1 { grid-template-rows: repeat(1, minmax(0, 1fr)); }
.grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.grid-rows-3 { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.grid-rows-4 { grid-template-rows: repeat(4, minmax(0, 1fr)); }
.grid-rows-none { grid-template-rows: none; }

/* Grid Column Span */
.col-span-1 { grid-column: span 1 / span 1; }
.col-span-2 { grid-column: span 2 / span 2; }
.col-span-3 { grid-column: span 3 / span 3; }
.col-span-4 { grid-column: span 4 / span 4; }
.col-span-6 { grid-column: span 6 / span 6; }
.col-span-12 { grid-column: span 12 / span 12; }
.col-span-full { grid-column: 1 / -1; }

/* Grid Row Span */
.row-span-1 { grid-row: span 1 / span 1; }
.row-span-2 { grid-row: span 2 / span 2; }
.row-span-3 { grid-row: span 3 / span 3; }
.row-span-full { grid-row: 1 / -1; }

/* Grid Flow */
.grid-flow-row { grid-auto-flow: row; }
.grid-flow-col { grid-auto-flow: column; }
.grid-flow-dense { grid-auto-flow: dense; }
.grid-flow-row-dense { grid-auto-flow: row dense; }
.grid-flow-col-dense { grid-auto-flow: column dense; }

/* Place Items (shorthand for align-items + justify-items) */
.place-items-start { place-items: start; }
.place-items-end { place-items: end; }
.place-items-center { place-items: center; }
.place-items-stretch { place-items: stretch; }

/* Place Content */
.place-content-start { place-content: start; }
.place-content-end { place-content: end; }
.place-content-center { place-content: center; }
.place-content-between { place-content: space-between; }
.place-content-around { place-content: space-around; }
.place-content-evenly { place-content: space-evenly; }
.place-content-stretch { place-content: stretch; }

/* =============================================================================
   RESPONSIVE FLEXBOX (per breakpoint)
   ============================================================================= */

/* sm: 480px+ */
@media (min-width: 480px) {
  .sm\:flex { display: flex; }
  .sm\:flex-row { flex-direction: row; }
  .sm\:flex-col { flex-direction: column; }
  .sm\:flex-wrap { flex-wrap: wrap; }
  .sm\:justify-start { justify-content: flex-start; }
  .sm\:justify-center { justify-content: center; }
  .sm\:justify-between { justify-content: space-between; }
  .sm\:items-start { align-items: flex-start; }
  .sm\:items-center { align-items: center; }
  .sm\:gap-4 { gap: 16px; gap: var(--sp-4); }
  .sm\:gap-6 { gap: 24px; gap: var(--sp-6); }
}

/* md: 768px+ */
@media (min-width: 768px) {
  .md\:flex { display: flex; }
  .md\:hidden { display: none; }
  .md\:block { display: block; }
  .md\:flex-row { flex-direction: row; }
  .md\:flex-col { flex-direction: column; }
  .md\:flex-wrap { flex-wrap: wrap; }
  .md\:flex-nowrap { flex-wrap: nowrap; }
  .md\:justify-start { justify-content: flex-start; }
  .md\:justify-center { justify-content: center; }
  .md\:justify-between { justify-content: space-between; }
  .md\:justify-end { justify-content: flex-end; }
  .md\:items-start { align-items: flex-start; }
  .md\:items-center { align-items: center; }
  .md\:items-end { align-items: flex-end; }
  .md\:gap-4 { gap: 16px; gap: var(--sp-4); }
  .md\:gap-6 { gap: 24px; gap: var(--sp-6); }
  .md\:gap-8 { gap: 32px; gap: var(--sp-8); }
}

/* lg: 1024px+ */
@media (min-width: 1024px) {
  .lg\:flex { display: flex; }
  .lg\:hidden { display: none; }
  .lg\:block { display: block; }
  .lg\:flex-row { flex-direction: row; }
  .lg\:flex-col { flex-direction: column; }
  .lg\:justify-start { justify-content: flex-start; }
  .lg\:justify-center { justify-content: center; }
  .lg\:justify-between { justify-content: space-between; }
  .lg\:items-center { align-items: center; }
  .lg\:gap-6 { gap: 24px; gap: var(--sp-6); }
  .lg\:gap-8 { gap: 32px; gap: var(--sp-8); }
  .lg\:gap-10 { gap: 40px; gap: var(--sp-10); }
}

/* xl: 1280px+ */
@media (min-width: 1280px) {
  .xl\:flex { display: flex; }
  .xl\:hidden { display: none; }
  .xl\:flex-row { flex-direction: row; }
  .xl\:justify-between { justify-content: space-between; }
  .xl\:gap-8 { gap: 32px; gap: var(--sp-8); }
  .xl\:gap-10 { gap: 40px; gap: var(--sp-10); }
}

/* =============================================================================
   RESPONSIVE GRID (per breakpoint)
   ============================================================================= */

/* sm: 480px+ */
@media (min-width: 480px) {
  .sm\:grid { display: grid; }
  .sm\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* md: 768px+ */
@media (min-width: 768px) {
  .md\:grid { display: grid; }
  .md\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .md\:col-span-1 { grid-column: span 1 / span 1; }
  .md\:col-span-2 { grid-column: span 2 / span 2; }
  .md\:col-span-3 { grid-column: span 3 / span 3; }
  .md\:col-span-4 { grid-column: span 4 / span 4; }
}

/* lg: 1024px+ */
@media (min-width: 1024px) {
  .lg\:grid { display: grid; }
  .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .lg\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .lg\:col-span-1 { grid-column: span 1 / span 1; }
  .lg\:col-span-2 { grid-column: span 2 / span 2; }
  .lg\:col-span-3 { grid-column: span 3 / span 3; }
  .lg\:col-span-4 { grid-column: span 4 / span 4; }
}

/* xl: 1280px+ */
@media (min-width: 1280px) {
  .xl\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .xl\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .xl\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* =============================================================================
   RESPONSIVE VISIBILITY
   ============================================================================= */

/* Hide on specific breakpoints */
.hidden { display: none; }
.block { display: block; }
.inline-block { display: inline-block; }
.inline { display: inline; }

@media (max-width: 479px) {
  .hide-xs { display: none !important; }
}
@media (min-width: 480px) and (max-width: 767px) {
  .hide-sm { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .hide-md { display: none !important; }
}
@media (min-width: 1024px) {
  .hide-lg { display: none !important; }
}

/* Show only on specific breakpoints */
@media (min-width: 480px) {
  .sm\:block { display: block; }
  .sm\:inline-block { display: inline-block; }
  .sm\:hidden { display: none; }
}

@media (max-width: 767px) {
  .mobile-only { display: block; }
  .desktop-only { display: none !important; }
}
@media (min-width: 768px) {
  .mobile-only { display: none !important; }
  .desktop-only { display: block; }
}

/* =============================================================================
   RESPONSIVE SPACING
   ============================================================================= */

/* Padding */
.p-0 { padding: 0; }
.p-1 { padding: 4px; padding: var(--sp-1); }
.p-2 { padding: 8px; padding: var(--sp-2); }
.p-3 { padding: 12px; padding: var(--sp-3); }
.p-4 { padding: 16px; padding: var(--sp-4); }
.p-5 { padding: 20px; padding: var(--sp-5); }
.p-6 { padding: 24px; padding: var(--sp-6); }
.p-8 { padding: 32px; padding: var(--sp-8); }

.px-0 { padding-left: 0; padding-right: 0; }
.px-2 { padding-left: 8px; padding-left: var(--sp-2); padding-right: 8px; padding-right: var(--sp-2); }
.px-3 { padding-left: 12px; padding-left: var(--sp-3); padding-right: 12px; padding-right: var(--sp-3); }
.px-4 { padding-left: 16px; padding-left: var(--sp-4); padding-right: 16px; padding-right: var(--sp-4); }
.px-6 { padding-left: 24px; padding-left: var(--sp-6); padding-right: 24px; padding-right: var(--sp-6); }
.px-8 { padding-left: 32px; padding-left: var(--sp-8); padding-right: 32px; padding-right: var(--sp-8); }

.py-0 { padding-top: 0; padding-bottom: 0; }
.py-2 { padding-top: 8px; padding-top: var(--sp-2); padding-bottom: 8px; padding-bottom: var(--sp-2); }
.py-3 { padding-top: 12px; padding-top: var(--sp-3); padding-bottom: 12px; padding-bottom: var(--sp-3); }
.py-4 { padding-top: 16px; padding-top: var(--sp-4); padding-bottom: 16px; padding-bottom: var(--sp-4); }
.py-6 { padding-top: 24px; padding-top: var(--sp-6); padding-bottom: 24px; padding-bottom: var(--sp-6); }
.py-8 { padding-top: 32px; padding-top: var(--sp-8); padding-bottom: 32px; padding-bottom: var(--sp-8); }

/* Margin */
.m-0 { margin: 0; }
.m-auto { margin: auto; }
.mx-auto { margin-left: auto; margin-right: auto; }
.my-auto { margin-top: auto; margin-bottom: auto; }

.mt-0 { margin-top: 0; }
.mt-2 { margin-top: 8px; margin-top: var(--sp-2); }
.mt-4 { margin-top: 16px; margin-top: var(--sp-4); }
.mt-6 { margin-top: 24px; margin-top: var(--sp-6); }
.mt-8 { margin-top: 32px; margin-top: var(--sp-8); }

.mb-0 { margin-bottom: 0; }
.mb-2 { margin-bottom: 8px; margin-bottom: var(--sp-2); }
.mb-4 { margin-bottom: 16px; margin-bottom: var(--sp-4); }
.mb-6 { margin-bottom: 24px; margin-bottom: var(--sp-6); }
.mb-8 { margin-bottom: 32px; margin-bottom: var(--sp-8); }

.ml-auto { margin-left: auto; }
.mr-auto { margin-right: auto; }

/* Responsive padding */
@media (min-width: 768px) {
  .md\:p-4 { padding: 16px; padding: var(--sp-4); }
  .md\:p-6 { padding: 24px; padding: var(--sp-6); }
  .md\:p-8 { padding: 32px; padding: var(--sp-8); }
  .md\:px-6 { padding-left: 24px; padding-left: var(--sp-6); padding-right: 24px; padding-right: var(--sp-6); }
  .md\:px-8 { padding-left: 32px; padding-left: var(--sp-8); padding-right: 32px; padding-right: var(--sp-8); }
  .md\:py-6 { padding-top: 24px; padding-top: var(--sp-6); padding-bottom: 24px; padding-bottom: var(--sp-6); }
}

@media (min-width: 1024px) {
  .lg\:p-6 { padding: 24px; padding: var(--sp-6); }
  .lg\:p-8 { padding: 32px; padding: var(--sp-8); }
  .lg\:px-8 { padding-left: 32px; padding-left: var(--sp-8); padding-right: 32px; padding-right: var(--sp-8); }
  .lg\:px-10 { padding-left: 40px; padding-left: var(--sp-10); padding-right: 40px; padding-right: var(--sp-10); }
}

/* =============================================================================
   RESPONSIVE WIDTH & HEIGHT
   ============================================================================= */

.w-full { width: 100%; }
.w-auto { width: auto; }
.w-screen { width: 100vw; }
.w-1\/2 { width: 50%; }
.w-1\/3 { width: 33.333333%; }
.w-2\/3 { width: 66.666667%; }
.w-1\/4 { width: 25%; }
.w-3\/4 { width: 75%; }

.min-w-0 { min-width: 0; }
.min-w-full { min-width: 100%; }
.max-w-none { max-width: none; }
.max-w-xs { max-width: 320px; }
.max-w-sm { max-width: 384px; }
.max-w-md { max-width: 448px; }
.max-w-lg { max-width: 512px; }
.max-w-xl { max-width: 576px; }
.max-w-2xl { max-width: 672px; }
.max-w-3xl { max-width: 768px; }
.max-w-4xl { max-width: 896px; }
.max-w-5xl { max-width: 1024px; }
.max-w-6xl { max-width: 1152px; }
.max-w-7xl { max-width: 1280px; }
.max-w-full { max-width: 100%; }

.h-full { height: 100%; }
.h-auto { height: auto; }
.h-screen { height: 100vh; }
.min-h-0 { min-height: 0; }
.min-h-full { min-height: 100%; }
.min-h-screen { min-height: 100vh; }

/* Responsive widths */
@media (min-width: 768px) {
  .md\:w-full { width: 100%; }
  .md\:w-auto { width: auto; }
  .md\:w-1\/2 { width: 50%; }
  .md\:w-1\/3 { width: 33.333333%; }
  .md\:w-2\/3 { width: 66.666667%; }
}

@media (min-width: 1024px) {
  .lg\:w-full { width: 100%; }
  .lg\:w-auto { width: auto; }
  .lg\:w-1\/2 { width: 50%; }
  .lg\:w-1\/3 { width: 33.333333%; }
  .lg\:w-1\/4 { width: 25%; }
}

/* =============================================================================
   TEXT UTILITIES
   ============================================================================= */

.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }

.text-xs { font-size: 11px; font-size: var(--text-xs); }
.text-sm { font-size: 13px; font-size: var(--text-sm); }
.text-base { font-size: 15px; font-size: var(--text-base); }
.text-lg { font-size: 17px; font-size: var(--text-lg); }
.text-xl { font-size: 20px; font-size: var(--text-xl); }
.text-2xl { font-size: 24px; font-size: var(--text-2xl); }
.text-3xl { font-size: 30px; font-size: var(--text-3xl); }
.text-4xl { font-size: 36px; font-size: var(--text-4xl); }

.font-normal { font-weight: 400; font-weight: var(--weight-normal); }
.font-medium { font-weight: 500; font-weight: var(--weight-medium); }
.font-semibold { font-weight: 600; font-weight: var(--weight-semibold); }
.font-bold { font-weight: 700; font-weight: var(--weight-bold); }

.leading-tight { line-height: 1.2; line-height: var(--leading-tight); }
.leading-normal { line-height: 1.5; line-height: var(--leading-normal); }
.leading-relaxed { line-height: 1.7; line-height: var(--leading-relaxed); }

.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.whitespace-nowrap { white-space: nowrap; }
.break-words { overflow-wrap: break-word; }

/* Responsive text alignment */
@media (min-width: 768px) {
  .md\:text-left { text-align: left; }
  .md\:text-center { text-align: center; }
  .md\:text-right { text-align: right; }
}

/* =============================================================================
   OVERFLOW UTILITIES
   ============================================================================= */

.overflow-auto { overflow: auto; }
.overflow-hidden { overflow: hidden; }
.overflow-visible { overflow: visible; }
.overflow-scroll { overflow: scroll; }
.overflow-x-auto { overflow-x: auto; }
.overflow-y-auto { overflow-y: auto; }
.overflow-x-hidden { overflow-x: hidden; }
.overflow-y-hidden { overflow-y: hidden; }

/* =============================================================================
   POSITION UTILITIES
   ============================================================================= */

.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.sticky { position: sticky; }
.static { position: static; }

.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.top-0 { top: 0; }
.right-0 { right: 0; }
.bottom-0 { bottom: 0; }
.left-0 { left: 0; }

/* =============================================================================
   GLASSMORPHIC PAGE LAYOUTS — Ready-to-use templates
   ============================================================================= */

/* Page Layout: Standard content page with header */
.page-layout {
  display: flex;
  flex-direction: column;
  gap: 24px;
  gap: var(--sp-6);
  padding: 16px;
  padding: var(--sp-4);
  min-height: calc(100vh - 64px);
  min-height: calc(100vh - var(--topbar-height));
}

@media (min-width: 768px) {
  .page-layout {
    padding: 24px;
    padding: var(--sp-6);
  }
}

@media (min-width: 1024px) {
  .page-layout {
    padding: 32px;
    padding: var(--sp-8);
  }
}

/* Page Header: Title + Actions */
.page-header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  gap: var(--sp-4);
}

@media (min-width: 768px) {
  .page-header {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.page-title {
  font-size: 24px;
  font-size: var(--text-2xl);
  font-weight: 700;
  font-weight: var(--weight-bold);
  color: #F5F7FF;
  color: var(--text-primary);
}

@media (min-width: 768px) {
  .page-title {
    font-size: 30px;
    font-size: var(--text-3xl);
  }
}

.page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  gap: var(--sp-2);
}

@media (min-width: 768px) {
  .page-actions {
    gap: 12px;
    gap: var(--sp-3);
  }
}

/* Content Area: Main content wrapper */
.page-content {
  display: flex;
  flex-direction: column;
  gap: 24px;
  gap: var(--sp-6);
  flex: 1 1;
}

/* Two-column layout */
.layout-split {
  display: flex;
  flex-direction: column;
  gap: 24px;
  gap: var(--sp-6);
}

@media (min-width: 1024px) {
  .layout-split {
    flex-direction: row;
  }
  
  .layout-split > .layout-main {
    flex: 1 1;
    min-width: 0;
  }
  
  .layout-split > .layout-sidebar {
    width: 320px;
    flex-shrink: 0;
  }
}

/* =============================================================================
   GLASSMORPHIC FORM LAYOUTS
   ============================================================================= */

/* Form Container */
.form-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  gap: var(--sp-5);
}

/* Form Grid — responsive columns */
.form-grid {
  display: grid;
  gap: 16px;
  grid-gap: 16px;
  grid-gap: var(--sp-4);
  gap: var(--sp-4);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .form-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .form-grid {
    gap: 20px;
    gap: var(--sp-5);
  }
}

/* Form Group */
.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  gap: var(--sp-2);
}

.form-label {
  font-size: 13px;
  font-size: var(--text-sm);
  font-weight: 500;
  font-weight: var(--weight-medium);
  color: #A9B3C9;
  color: var(--text-secondary);
}

/* Form Row — horizontal layout on desktop */
.form-row {
  display: flex;
  flex-direction: column;
  gap: 16px;
  gap: var(--sp-4);
}

@media (min-width: 640px) {
  .form-row {
    flex-direction: row;
    align-items: flex-start;
  }
  
  .form-row > * {
    flex: 1 1;
  }
}

/* Form Actions (buttons) */
.form-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  gap: var(--sp-3);
  padding-top: 16px;
  padding-top: var(--sp-4);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-top: 1px solid var(--divider);
}

@media (min-width: 480px) {
  .form-actions {
    flex-direction: row;
    justify-content: flex-end;
  }
}

/* Full-width form field */
.form-full {
  grid-column: 1 / -1;
}

/* =============================================================================
   GLASSMORPHIC TABLE — Responsive Data Tables
   ============================================================================= */

/* Table Container — enables horizontal scroll on mobile */
.table-container {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 16px;
  border-radius: var(--panel-radius);
  background: rgba(15, 25, 45, 0.72);
  background: var(--glass-panel-bg);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
}

/* Glass Table */
.glass-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
}

.glass-table th,
.glass-table td {
  padding: 12px 16px;
  padding: var(--sp-3) var(--sp-4);
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
}

.glass-table th {
  font-size: 11px;
  font-size: var(--text-xs);
  font-weight: 600;
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6E7890;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.02);
  position: sticky;
  top: 0;
  z-index: 1;
}

[data-theme="light"] .glass-table th {
  background: rgba(15, 25, 45, 0.02);
}

.glass-table td {
  font-size: 13px;
  font-size: var(--text-sm);
  color: #F5F7FF;
  color: var(--text-primary);
}

.glass-table tbody tr {
  transition: background-color 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: background-color var(--duration-fast) var(--ease-glass);
}

.glass-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.06);
  background: var(--surface-hover);
}

.glass-table tbody tr:last-child td {
  border-bottom: none;
}

/* Responsive: Card view on mobile */
@media (max-width: 767px) {
  .table-responsive-cards .glass-table {
    min-width: 0;
  }
  
  .table-responsive-cards .glass-table,
  .table-responsive-cards .glass-table thead,
  .table-responsive-cards .glass-table tbody,
  .table-responsive-cards .glass-table th,
  .table-responsive-cards .glass-table td,
  .table-responsive-cards .glass-table tr {
    display: block;
  }
  
  .table-responsive-cards .glass-table thead {
    position: absolute;
    top: -9999px;
    left: -9999px;
  }
  
  .table-responsive-cards .glass-table tr {
    margin-bottom: 16px;
    margin-bottom: var(--sp-4);
    padding: 16px;
    padding: var(--sp-4);
    border-radius: 14px;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border: 1px solid var(--divider);
    background: rgba(15, 25, 45, 0.72);
    background: var(--glass-panel-bg);
  }
  
  .table-responsive-cards .glass-table td {
    border: none;
    padding: 8px 0;
    padding: var(--sp-2) 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  
  .table-responsive-cards .glass-table td::before {
    content: attr(data-label);
    font-weight: 500;
    font-weight: var(--weight-medium);
    font-size: 11px;
    font-size: var(--text-xs);
    color: #6E7890;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
}

/* =============================================================================
   GLASSMORPHIC CARD GRID — for lists of items
   ============================================================================= */

.card-grid {
  display: grid;
  gap: 16px;
  grid-gap: 16px;
  grid-gap: var(--sp-4);
  gap: var(--sp-4);
  grid-template-columns: 1fr;
}

@media (min-width: 480px) {
  .card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 768px) {
  .card-grid {
    gap: 20px;
    gap: var(--sp-5);
  }
}

@media (min-width: 1024px) {
  .card-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    gap: var(--sp-6);
  }
}

@media (min-width: 1280px) {
  .card-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Card Grid variants */
.card-grid-2 {
  display: grid;
  gap: 16px;
  grid-gap: 16px;
  grid-gap: var(--sp-4);
  gap: var(--sp-4);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .card-grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.card-grid-3 {
  display: grid;
  gap: 16px;
  grid-gap: 16px;
  grid-gap: var(--sp-4);
  gap: var(--sp-4);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .card-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .card-grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* =============================================================================
   GLASSMORPHIC LIST — for simple lists
   ============================================================================= */

.glass-list {
  display: flex;
  flex-direction: column;
  background: rgba(15, 25, 45, 0.72);
  background: var(--glass-panel-bg);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 16px;
  border-radius: var(--panel-radius);
  overflow: hidden;
}

.glass-list-item {
  display: flex;
  align-items: center;
  gap: 12px;
  gap: var(--sp-3);
  padding: 16px;
  padding: var(--sp-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
  transition: background-color 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: background-color var(--duration-fast) var(--ease-glass);
}

.glass-list-item:last-child {
  border-bottom: none;
}

.glass-list-item:hover {
  background: rgba(255, 255, 255, 0.06);
  background: var(--surface-hover);
}

.glass-list-item-clickable {
  cursor: pointer;
}

/* =============================================================================
   GLASSMORPHIC MODAL — Centered dialog
   ============================================================================= */

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  padding: var(--sp-4);
  z-index: 1040;
  z-index: var(--z-modal-backdrop);
}

.modal-content {
  width: 100%;
  max-width: 500px;
  max-height: calc(100vh - 32px);
  max-height: calc(100vh - var(--sp-8));
  overflow-y: auto;
  background: rgba(15, 25, 45, 0.72);
  background: var(--glass-panel-bg);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 16px;
  border-radius: var(--panel-radius);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.55);
  box-shadow: var(--shadow-soft);
}

.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  padding: var(--sp-5) var(--sp-6);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
}

.modal-title {
  font-size: 17px;
  font-size: var(--text-lg);
  font-weight: 600;
  font-weight: var(--weight-semibold);
  color: #F5F7FF;
  color: var(--text-primary);
}

.modal-body {
  padding: 24px;
  padding: var(--sp-6);
}

.modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  gap: var(--sp-3);
  padding: 16px 24px;
  padding: var(--sp-4) var(--sp-6);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-top: 1px solid var(--divider);
}

/* Modal sizes */
.modal-sm { max-width: 400px; }
.modal-lg { max-width: 700px; }
.modal-xl { max-width: 900px; }
.modal-full { max-width: calc(100vw - 32px); max-width: calc(100vw - var(--sp-8)); }

/* =============================================================================
   GLASSMORPHIC INPUTS — Global form element styling
   ============================================================================= */

/* Base input styles.
   Enveloppés dans :where() — spécificité nulle — pour qu'ils restent une VRAIE
   base surchargeable. Écrits en sélecteurs d'attribut nus, ils pesaient (0,1,1)
   et l'emportaient donc sur toute classe utilitaire (0,1,0) : un `pl-10` posé sur
   un champ était silencieusement ignoré, dans toute l'application. Symptôme
   observé en production : icônes de formulaire recouvertes par le texte. */
:where(
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"],
  textarea,
  select
) {
  width: 100%;
  padding: 12px 16px;
  padding: var(--sp-3) var(--sp-4);
  font-size: 15px;
  font-size: var(--text-base);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-family: var(--font-body);
  color: #F5F7FF;
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.04);
  background: var(--input-bg);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border: 1px solid var(--input-border);
  border-radius: 10px;
  border-radius: var(--radius-md);
  transition: border-color 120ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: border-color var(--duration-fast) var(--ease-glass),
              box-shadow var(--duration-fast) var(--ease-glass);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: #0C8298;
  border-color: var(--input-focus-border);
  box-shadow: 0 0 0 3px rgba(12, 130, 152, 0.15);
  box-shadow: var(--input-focus-glow);
}

input::placeholder,
textarea::placeholder {
  color: #6E7890;
  color: var(--text-muted);
}

/* Disabled state */
input:disabled,
textarea:disabled,
select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Select dropdown arrow */
select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236E7890' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-position: right var(--sp-3) center;
  padding-right: 40px;
  padding-right: var(--sp-10);
}

/* Textarea */
textarea {
  min-height: 100px;
  resize: vertical;
}

/* =============================================================================
   GLASSMORPHIC BUTTONS — Global button styling
   ============================================================================= */

button,
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  gap: var(--sp-2);
  padding: 12px 20px;
  padding: var(--sp-3) var(--sp-5);
  font-size: 13px;
  font-size: var(--text-sm);
  font-weight: 500;
  font-weight: var(--weight-medium);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-family: var(--font-body);
  border-radius: 10px;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: all var(--duration-fast) var(--ease-glass);
  border: none;
  outline: none;
}

button:disabled,
.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Primary button */
.btn-primary,
button[type="submit"] {
  background: #0C8298;
  background: var(--btn-primary-bg);
  color: #ffffff;
  color: var(--btn-primary-text);
}

.btn-primary:hover:not(:disabled),
button[type="submit"]:hover:not(:disabled) {
  background: #0F697D;
  background: var(--btn-primary-hover);
}

/* Secondary button */
.btn-secondary {
  background: rgba(255, 255, 255, 0.06);
  background: var(--btn-secondary-bg);
  color: #F5F7FF;
  color: var(--btn-secondary-text);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
}

.btn-secondary:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  background: var(--btn-secondary-hover);
}

/* Ghost button */
.btn-ghost {
  background: transparent;
  color: #F5F7FF;
  color: var(--text-primary);
}

.btn-ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.06);
  background: var(--btn-ghost-hover);
}

/* Danger button */
.btn-danger {
  background: #FF4D6A;
  background: var(--btn-danger-bg);
  color: #ffffff;
  color: var(--btn-danger-text);
}

.btn-danger:hover:not(:disabled) {
  background: color-mix(in srgb, #FF4D6A 85%, black);
  background: color-mix(in srgb, var(--btn-danger-bg) 85%, black);
}

/* Button sizes */
.btn-sm {
  padding: 8px 12px;
  padding: var(--sp-2) var(--sp-3);
  font-size: 11px;
  font-size: var(--text-xs);
}

.btn-lg {
  padding: 16px 24px;
  padding: var(--sp-4) var(--sp-6);
  font-size: 15px;
  font-size: var(--text-base);
}

/* Icon button */
.btn-icon {
  padding: 8px;
  padding: var(--sp-2);
  width: 36px;
  height: 36px;
}

.btn-icon-sm {
  padding: 4px;
  padding: var(--sp-1);
  width: 28px;
  height: 28px;
}

.btn-icon-lg {
  padding: 12px;
  padding: var(--sp-3);
  width: 44px;
  height: 44px;
}

/* =============================================================================
   GLASSMORPHIC BADGES — Status indicators
   ============================================================================= */

.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  gap: var(--sp-1);
  padding: 4px 12px;
  padding: var(--sp-1) var(--sp-3);
  font-size: 11px;
  font-size: var(--text-xs);
  font-weight: 500;
  font-weight: var(--weight-medium);
  border-radius: 9999px;
  border-radius: var(--radius-full);
}

.badge-success {
  background: rgba(60, 203, 140, 0.15);
  background: var(--badge-success-bg);
  color: #3CCB8C;
  color: var(--badge-success-text);
}

.badge-warning {
  background: rgba(255, 179, 71, 0.15);
  background: var(--badge-warning-bg);
  color: #FFB347;
  color: var(--badge-warning-text);
}

.badge-danger {
  background: rgba(255, 77, 106, 0.15);
  background: var(--badge-critical-bg);
  color: #FF4D6A;
  color: var(--badge-critical-text);
}

.badge-info {
  background: rgba(0, 163, 255, 0.15);
  background: var(--badge-info-bg);
  color: #0C8298;
  color: var(--badge-info-text);
}

/* =============================================================================
   HELPER UTILITIES
   ============================================================================= */

/* Centering */
.center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.center-y {
  display: flex;
  align-items: center;
}

.center-x {
  display: flex;
  justify-content: center;
}

/* Cursor */
.cursor-pointer { cursor: pointer; }
.cursor-not-allowed { cursor: not-allowed; }

/* Opacity */
.opacity-0 { opacity: 0; }
.opacity-50 { opacity: 0.5; }
.opacity-75 { opacity: 0.75; }
.opacity-100 { opacity: 1; }

/* Border radius shortcuts */
.rounded { border-radius: 10px; border-radius: var(--radius-md); }
.rounded-sm { border-radius: 6px; border-radius: var(--radius-sm); }
.rounded-lg { border-radius: 14px; border-radius: var(--radius-lg); }
.rounded-xl { border-radius: 16px; border-radius: var(--radius-xl); }
.rounded-2xl { border-radius: 24px; border-radius: var(--radius-2xl); }
.rounded-full { border-radius: 9999px; border-radius: var(--radius-full); }
.rounded-none { border-radius: 0; }

/* Border */
.border { border: 1px solid rgba(255, 255, 255, 0.06); border: 1px solid var(--glass-panel-border); }
.border-0 { border: none; }
.border-t { border-top: 1px solid rgba(255, 255, 255, 0.06); border-top: 1px solid var(--divider); }
.border-b { border-bottom: 1px solid rgba(255, 255, 255, 0.06); border-bottom: 1px solid var(--divider); }

/* Shadows */
.shadow-none { box-shadow: none; }
.shadow-sm { box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); box-shadow: var(--shadow-card); }
.shadow { box-shadow: 0 18px 45px rgba(0, 0, 0, 0.55); box-shadow: var(--shadow-soft); }
.shadow-lg { box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); box-shadow: var(--shadow-dropdown); }

/* Pointer events */
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }

/* Selection */
.select-none { -webkit-user-select: none; user-select: none; }
.select-text { -webkit-user-select: text; user-select: text; }
.select-all { -webkit-user-select: all; user-select: all; }

/* =============================================================================
   RESET CSS / NORMALIZE
   =============================================================================
   Uniformisation entre navigateurs pour éviter les comportements inattendus
   ============================================================================= */

*, *::before, *::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  min-height: 100vh;
  line-height: 1.5;
  line-height: var(--leading-normal);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-family: var(--font-body);
  color: #F5F7FF;
  color: var(--text-primary);
  background: #050814;
  background: var(--glass-bg);
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
}

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* =============================================================================
   BOX MODEL UTILITIES
   =============================================================================
   Gestion des espacements et du modèle de boîte
   ============================================================================= */

.box-border { box-sizing: border-box; }
.box-content { box-sizing: content-box; }

/* Negative margins (utile pour certains layouts) */
.-mt-1 { margin-top: calc(4px * -1); margin-top: calc(var(--sp-1) * -1); }
.-mt-2 { margin-top: calc(8px * -1); margin-top: calc(var(--sp-2) * -1); }
.-mt-4 { margin-top: calc(16px * -1); margin-top: calc(var(--sp-4) * -1); }
.-ml-2 { margin-left: calc(8px * -1); margin-left: calc(var(--sp-2) * -1); }
.-ml-4 { margin-left: calc(16px * -1); margin-left: calc(var(--sp-4) * -1); }

/* Aspect ratio (pour images et vidéos) */
.aspect-auto { aspect-ratio: auto; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-video { aspect-ratio: 16 / 9; }
.aspect-4-3 { aspect-ratio: 4 / 3; }
.aspect-3-2 { aspect-ratio: 3 / 2; }

/* Object fit (pour images) */
.object-contain { object-fit: contain; }
.object-cover { object-fit: cover; }
.object-fill { object-fit: fill; }
.object-none { object-fit: none; }
.object-scale-down { object-fit: scale-down; }

.object-center { object-position: center; }
.object-top { object-position: top; }
.object-bottom { object-position: bottom; }

/* =============================================================================
   UNITS MODERNES - REM/EM/VW/VH
   ============================================================================= */

/* Font sizes en rem (scalables) */
.text-rem-xs { font-size: 0.6875rem; }   /* 11px */
.text-rem-sm { font-size: 0.8125rem; }   /* 13px */
.text-rem-base { font-size: 0.9375rem; } /* 15px */
.text-rem-lg { font-size: 1.0625rem; }   /* 17px */
.text-rem-xl { font-size: 1.25rem; }     /* 20px */
.text-rem-2xl { font-size: 1.5rem; }     /* 24px */
.text-rem-3xl { font-size: 1.875rem; }   /* 30px */
.text-rem-4xl { font-size: 2.25rem; }    /* 36px */

/* Viewport units */
.w-vw-full { width: 100vw; }
.h-vh-full { height: 100vh; }
.min-h-vh-full { min-height: 100vh; }
.max-h-vh-full { max-height: 100vh; }

.h-vh-50 { height: 50vh; }
.h-vh-75 { height: 75vh; }
.min-h-vh-50 { min-height: 50vh; }

/* Dynamic viewport units (mobile-safe) */
.h-dvh-full { height: 100dvh; }
.min-h-dvh-full { min-height: 100dvh; }

/* =============================================================================
   ACCESSIBILITY - FOCUS STATES
   =============================================================================
   Accessibilité clavier et lecteurs d'écran
   ============================================================================= */

/* Focus visible amélioré */
:focus-visible {
  outline: 2px solid #0C8298;
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

/* Suppression de l'outline pour souris, conservation pour clavier */
:focus:not(:focus-visible) {
  outline: none;
}

/* Focus ring personnalisé */
.focus-ring {
  transition: box-shadow 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: box-shadow var(--duration-fast) var(--ease-glass);
}

.focus-ring:focus-visible {
  box-shadow: 0 0 0 3px 0 0 0 3px rgba(12, 130, 152, 0.15);
  box-shadow: 0 0 0 3px var(--input-focus-glow);
}

/* Skip link (accessibilité navigation) */
.skip-link {
  position: absolute;
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 24px;
  padding: var(--sp-3) var(--sp-6);
  background: #0C8298;
  background: var(--accent-primary);
  color: white;
  border-radius: 10px;
  border-radius: var(--radius-md);
  z-index: 9100;
  z-index: var(--z-a11y-skip-link, 9100);
  transition: top 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: top var(--duration-fast) var(--ease-glass);
}

.skip-link:focus {
  top: 16px;
  top: var(--sp-4);
}

/* Visually hidden (pour screen readers) */
.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;
}

.not-sr-only {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* =============================================================================
   BUTTON STATES AVANCÉS
   =============================================================================
   États visuels complets pour boutons
   ============================================================================= */

/* État loading avec spinner */
.btn-loading {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}

.btn-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1em;
  height: 1em;
  margin: -0.5em 0 0 -0.5em;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: btn-spin 0.6s linear infinite;
  opacity: 1;
  color: #ffffff;
  color: var(--btn-primary-text);
}

.btn-secondary.btn-loading::after {
  color: #F5F7FF;
  color: var(--text-primary);
}

@keyframes btn-spin {
  to { transform: rotate(360deg); }
}

/* État actif (pressed) */
button:active:not(:disabled),
.btn:active:not(:disabled) {
  transform: scale(0.98);
}

/* État désactivé amélioré */
button:disabled,
.btn:disabled,
.btn-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Bouton avec icône */
.btn-with-icon {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  gap: var(--sp-2);
}

.btn-with-icon svg {
  width: 1em;
  height: 1em;
  flex-shrink: 0;
}

/* Bouton pleine largeur */
.btn-block {
  display: flex;
  width: 100%;
  justify-content: center;
}

/* Groupe de boutons */
.btn-group {
  display: inline-flex;
}

.btn-group > .btn {
  border-radius: 0;
}

.btn-group > .btn:first-child {
  border-radius: 10px 0 0 10px;
  border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.btn-group > .btn:last-child {
  border-radius: 0 10px 10px 0;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.btn-group > .btn:not(:last-child) {
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  border-right: 1px solid var(--divider);
}

/* =============================================================================
   FORM VALIDATION STATES
   =============================================================================
   États visuels pour la validation des formulaires
   ============================================================================= */

/* Champ en erreur */
.input-error,
input.input-error,
textarea.input-error,
select.input-error,
.has-error input,
.has-error textarea,
.has-error select {
  border-color: #FF4D6A !important;
  border-color: var(--accent-danger) !important;
  background: color-mix(in srgb, #FF4D6A 5%, rgba(255, 255, 255, 0.04));
  background: color-mix(in srgb, var(--accent-danger) 5%, var(--input-bg));
}

.input-error:focus,
.has-error input:focus,
.has-error textarea:focus,
.has-error select:focus {
  box-shadow: 0 0 0 3px rgba(255, 77, 106, 0.15) !important;
}

/* Champ valide */
.input-success,
input.input-success,
textarea.input-success,
select.input-success,
.has-success input,
.has-success textarea,
.has-success select {
  border-color: #3CCB8C !important;
  border-color: var(--accent-success) !important;
}

.input-success:focus,
.has-success input:focus {
  box-shadow: 0 0 0 3px rgba(60, 203, 140, 0.15) !important;
}

/* Champ en warning */
.input-warning,
.has-warning input,
.has-warning textarea,
.has-warning select {
  border-color: #FFB347 !important;
  border-color: var(--accent-warning) !important;
}

/* Message d'erreur */
.field-error {
  display: flex;
  align-items: center;
  gap: 4px;
  gap: var(--sp-1);
  margin-top: 4px;
  margin-top: var(--sp-1);
  font-size: 11px;
  font-size: var(--text-xs);
  color: #FF4D6A;
  color: var(--accent-danger);
}

.field-error::before {
  content: '!';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  font-size: 10px;
  font-weight: bold;
  background: rgba(255, 77, 106, 0.15);
  background: var(--badge-critical-bg);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Message de succès */
.field-success {
  display: flex;
  align-items: center;
  gap: 4px;
  gap: var(--sp-1);
  margin-top: 4px;
  margin-top: var(--sp-1);
  font-size: 11px;
  font-size: var(--text-xs);
  color: #3CCB8C;
  color: var(--accent-success);
}

/* Message d'aide */
.field-hint {
  margin-top: 4px;
  margin-top: var(--sp-1);
  font-size: 11px;
  font-size: var(--text-xs);
  color: #6E7890;
  color: var(--text-muted);
}

/* Label obligatoire */
.required::after {
  content: ' *';
  color: #FF4D6A;
  color: var(--accent-danger);
}

/* Compteur de caractères */
.char-counter {
  text-align: right;
  font-size: 11px;
  font-size: var(--text-xs);
  color: #6E7890;
  color: var(--text-muted);
  margin-top: 4px;
  margin-top: var(--sp-1);
}

.char-counter.near-limit {
  color: #FFB347;
  color: var(--accent-warning);
}

.char-counter.over-limit {
  color: #FF4D6A;
  color: var(--accent-danger);
}

/* =============================================================================
   FEEDBACK IMMÉDIAT - MICRO-INTERACTIONS
   =============================================================================
   Animations subtiles pour feedback utilisateur
   ============================================================================= */

/* Animation de succès (checkmark) */
@keyframes success-pop {
  0% { transform: scale(0); opacity: 0; }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); opacity: 1; }
}

.animate-success {
  animation: success-pop 0.3s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation: success-pop 0.3s var(--ease-glass) forwards;
}

/* Animation d'erreur (shake) */
@keyframes error-shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
  20%, 40%, 60%, 80% { transform: translateX(4px); }
}

.animate-error,
.shake {
  animation: error-shake 0.5s ease-in-out;
}

/* Animation de pulse (attente attention) */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

.animate-pulse {
  animation: pulse 2s ease-in-out infinite;
}

/* Animation de bounce (notification) */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-10px); }
  60% { transform: translateY(-5px); }
}

.animate-bounce {
  animation: bounce 1s ease infinite;
}

/* Fade in/out */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

.animate-fadeIn {
  animation: fadeIn 180ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation: fadeIn var(--duration-normal) var(--ease-glass) forwards;
}

.animate-fadeOut {
  animation: fadeOut 180ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation: fadeOut var(--duration-normal) var(--ease-glass) forwards;
}

/* Slide in depuis différentes directions */
@keyframes slideInUp {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes slideInDown {
  from { transform: translateY(-20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes slideInLeft {
  from { transform: translateX(-20px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

@keyframes slideInRight {
  from { transform: translateX(20px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

.animate-slideInUp { animation: slideInUp 180ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards; animation: slideInUp var(--duration-normal) var(--ease-glass) forwards; }
.animate-slideInDown { animation: slideInDown 180ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards; animation: slideInDown var(--duration-normal) var(--ease-glass) forwards; }
.animate-slideInLeft { animation: slideInLeft 180ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards; animation: slideInLeft var(--duration-normal) var(--ease-glass) forwards; }
.animate-slideInRight { animation: slideInRight 180ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards; animation: slideInRight var(--duration-normal) var(--ease-glass) forwards; }

/* Transition hover smooth */
.hover-lift {
  transition: transform 120ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform var(--duration-fast) var(--ease-glass),
              box-shadow var(--duration-fast) var(--ease-glass);
}

.hover-lift:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  box-shadow: var(--shadow-card);
}

/* Effet ripple au clic */
.ripple {
  position: relative;
  overflow: hidden;
}

.ripple::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.3s, height 0.3s;
}

.ripple:active::after {
  width: 200%;
  height: 200%;
}

/* =============================================================================
   STATUS SYSTEM - STATUTS MÉTIER
   =============================================================================
   Système de statuts cohérent pour application payroll
   ============================================================================= */

/* Statuts standards */
.status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  gap: var(--sp-2);
  padding: 4px 12px;
  padding: var(--sp-1) var(--sp-3);
  font-size: 11px;
  font-size: var(--text-xs);
  font-weight: 500;
  font-weight: var(--weight-medium);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  white-space: nowrap;
}

.status::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Brouillon */
.status-draft {
  background: rgba(110, 120, 144, 0.15);
  color: #6E7890;
  color: var(--text-muted);
}
.status-draft::before {
  background: #6E7890;
  background: var(--text-muted);
}

/* En cours */
.status-pending,
.status-in-progress {
  background: rgba(0, 163, 255, 0.15);
  background: var(--badge-info-bg);
  color: #0C8298;
  color: var(--badge-info-text);
}
.status-pending::before,
.status-in-progress::before {
  background: #0C8298;
  background: var(--accent-primary);
  animation: pulse 2s ease-in-out infinite;
}

/* En validation */
.status-review,
.status-awaiting {
  background: rgba(255, 179, 71, 0.15);
  background: var(--badge-warning-bg);
  color: #FFB347;
  color: var(--badge-warning-text);
}
.status-review::before,
.status-awaiting::before {
  background: #FFB347;
  background: var(--accent-warning);
}

/* Validé */
.status-validated,
.status-approved,
.status-success,
.status-active {
  background: rgba(60, 203, 140, 0.15);
  background: var(--badge-success-bg);
  color: #3CCB8C;
  color: var(--badge-success-text);
}
.status-validated::before,
.status-approved::before,
.status-success::before,
.status-active::before {
  background: #3CCB8C;
  background: var(--accent-success);
}

/* Rejeté / Erreur */
.status-rejected,
.status-error,
.status-failed {
  background: rgba(255, 77, 106, 0.15);
  background: var(--badge-critical-bg);
  color: #FF4D6A;
  color: var(--badge-critical-text);
}
.status-rejected::before,
.status-error::before,
.status-failed::before {
  background: #FF4D6A;
  background: var(--accent-danger);
}

/* Archivé / Inactif */
.status-archived,
.status-inactive {
  background: rgba(110, 120, 144, 0.1);
  color: #6E7890;
  color: var(--text-muted);
  opacity: 0.7;
}
.status-archived::before,
.status-inactive::before {
  background: #6E7890;
  background: var(--text-muted);
  opacity: 0.5;
}

/* =============================================================================
   TABLES AVANCÉES - MÉTIER PAYROLL
   =============================================================================
   Tables optimisées pour données salariales
   ============================================================================= */

/* Colonnes de montants (alignement à droite) */
.glass-table td.col-amount,
.glass-table th.col-amount,
.col-amount {
  text-align: right;
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* Colonnes de dates */
.glass-table td.col-date,
.glass-table th.col-date,
.col-date {
  white-space: nowrap;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* Colonnes de statut */
.glass-table td.col-status,
.col-status {
  white-space: nowrap;
}

/* Colonnes d'actions */
.glass-table td.col-actions,
.col-actions {
  text-align: right;
  white-space: nowrap;
}

/* Ligne sélectionnée */
.glass-table tr.selected {
  background: rgba(12, 130, 152, 0.12) !important;
  background: var(--surface-active) !important;
}

/* Ligne en erreur */
.glass-table tr.row-error {
  background: color-mix(in srgb, #FF4D6A 8%, transparent);
  background: color-mix(in srgb, var(--accent-danger) 8%, transparent);
}

/* Ligne en avertissement */
.glass-table tr.row-warning {
  background: color-mix(in srgb, #FFB347 8%, transparent);
  background: color-mix(in srgb, var(--accent-warning) 8%, transparent);
}

/* Total row */
.glass-table tr.row-total {
  font-weight: 600;
  font-weight: var(--weight-semibold);
  background: rgba(255, 255, 255, 0.04);
  border-top: 2px solid rgba(255, 255, 255, 0.06);
  border-top: 2px solid var(--divider);
}

[data-theme="light"] .glass-table tr.row-total {
  background: rgba(15, 25, 45, 0.03);
}

/* Colonne fixe (sticky) */
.glass-table th.sticky-col,
.glass-table td.sticky-col {
  position: sticky;
  left: 0;
  background: rgba(15, 25, 45, 0.72);
  background: var(--glass-panel-bg);
  z-index: 2;
}

.glass-table th.sticky-col::after,
.glass-table td.sticky-col::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(90deg, rgba(0,0,0,0.1), transparent);
}

/* Table compacte */
.glass-table-compact th,
.glass-table-compact td {
  padding: 8px 12px;
  padding: var(--sp-2) var(--sp-3);
  font-size: 11px;
  font-size: var(--text-xs);
}

/* Table avec bandes alternées */
.glass-table-striped tbody tr:nth-child(even) {
  background: rgba(255, 255, 255, 0.02);
}

[data-theme="light"] .glass-table-striped tbody tr:nth-child(even) {
  background: rgba(15, 25, 45, 0.02);
}

/* =============================================================================
   FORMATS MONÉTAIRES & DATES (SUISSE)
   =============================================================================
   Formatage spécifique pour application payroll suisse
   ============================================================================= */

/* Format monétaire CHF */
.currency {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.currency::before {
  content: 'CHF ';
  font-size: 0.85em;
  opacity: 0.7;
}

.currency-positive {
  color: #3CCB8C;
  color: var(--accent-success);
}

.currency-negative {
  color: #FF4D6A;
  color: var(--accent-danger);
}

/* Format pourcentage */
.percentage {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

.percentage::after {
  content: '%';
  font-size: 0.85em;
  opacity: 0.7;
  margin-left: 1px;
}

/* Format date (affichage) */
.date-display {
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Période (mois/année) */
.period {
  font-weight: 500;
  font-weight: var(--weight-medium);
  white-space: nowrap;
}

/* =============================================================================
   SKELETON LOADERS AVANCÉS
   =============================================================================
   Indicateurs de chargement progressif
   ============================================================================= */

/* Skeleton de base amélioré */
.skeleton {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.06) 25%,
    rgba(255, 255, 255, 0.08) 50%,
    rgba(255, 255, 255, 0.06) 75%
  );
  background: linear-gradient(
    90deg,
    var(--surface-hover) 25%,
    rgba(255, 255, 255, 0.08) 50%,
    var(--surface-hover) 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
  border-radius: 6px;
  border-radius: var(--radius-sm);
}

[data-theme="light"] .skeleton {
  background: linear-gradient(
    90deg,
    rgba(15, 25, 45, 0.06) 25%,
    rgba(15, 25, 45, 0.02) 50%,
    rgba(15, 25, 45, 0.06) 75%
  );
  background-size: 200% 100%;
}

/* Skeleton types */
.skeleton-text {
  height: 1em;
  margin-bottom: 8px;
  margin-bottom: var(--sp-2);
}

.skeleton-text-sm {
  height: 0.75em;
  width: 60%;
}

.skeleton-title {
  height: 1.5em;
  width: 40%;
  margin-bottom: 12px;
  margin-bottom: var(--sp-3);
}

.skeleton-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}

.skeleton-avatar-lg {
  width: 64px;
  height: 64px;
  border-radius: 50%;
}

.skeleton-button {
  height: 40px;
  width: 120px;
  border-radius: 10px;
  border-radius: var(--radius-md);
}

.skeleton-card {
  height: 200px;
  border-radius: 16px;
  border-radius: var(--panel-radius);
}

.skeleton-table-row {
  height: 48px;
  margin-bottom: 8px;
  margin-bottom: var(--sp-2);
}

/* =============================================================================
   LOADING STATES
   =============================================================================
   États de chargement pour composants
   ============================================================================= */

/* Container loading overlay */
.loading-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, #050814 80%, transparent);
  background: color-mix(in srgb, var(--glass-bg) 80%, transparent);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  z-index: 10;
}

/* Spinner */
.spinner {
  width: 24px;
  height: 24px;
  border: 2px solid rgba(255, 255, 255, 0.06);
  border: 2px solid var(--divider);
  border-top-color: #0C8298;
  border-top-color: var(--accent-primary);
  border-radius: 50%;
  animation: btn-spin 0.6s linear infinite;
}

.spinner-sm {
  width: 16px;
  height: 16px;
  border-width: 2px;
}

.spinner-lg {
  width: 40px;
  height: 40px;
  border-width: 3px;
}

/* Spinner avec texte */
.loading-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  gap: var(--sp-3);
  padding: 32px;
  padding: var(--sp-8);
  color: #6E7890;
  color: var(--text-muted);
}

.loading-state .spinner {
  width: 32px;
  height: 32px;
}

/* Progress bar */
.progress-bar {
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.06);
  background: var(--surface-hover);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  overflow: hidden;
}

.progress-bar-fill {
  height: 100%;
  background: #0C8298;
  background: var(--accent-primary);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  transition: width 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: width var(--duration-normal) var(--ease-glass);
}

.progress-bar-indeterminate .progress-bar-fill {
  width: 30%;
  animation: progress-indeterminate 1.5s ease-in-out infinite;
}

@keyframes progress-indeterminate {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(400%); }
}

/* =============================================================================
   CONFIRMATION DIALOGS
   =============================================================================
   Dialogues de confirmation pour actions critiques
   ============================================================================= */

/* Confirmation dialog styling */
.confirm-dialog {
  text-align: center;
  padding: 24px;
  padding: var(--sp-6);
}

.confirm-dialog-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  margin: 0 auto var(--sp-4);
  border-radius: 50%;
}

.confirm-dialog-icon.warning {
  background: rgba(255, 179, 71, 0.15);
  background: var(--badge-warning-bg);
  color: #FFB347;
  color: var(--accent-warning);
}

.confirm-dialog-icon.danger {
  background: rgba(255, 77, 106, 0.15);
  background: var(--badge-critical-bg);
  color: #FF4D6A;
  color: var(--accent-danger);
}

.confirm-dialog-icon.info {
  background: rgba(0, 163, 255, 0.15);
  background: var(--badge-info-bg);
  color: #0C8298;
  color: var(--accent-primary);
}

.confirm-dialog-title {
  font-size: 17px;
  font-size: var(--text-lg);
  font-weight: 600;
  font-weight: var(--weight-semibold);
  color: #F5F7FF;
  color: var(--text-primary);
  margin-bottom: 8px;
  margin-bottom: var(--sp-2);
}

.confirm-dialog-message {
  font-size: 13px;
  font-size: var(--text-sm);
  color: #A9B3C9;
  color: var(--text-secondary);
  margin-bottom: 24px;
  margin-bottom: var(--sp-6);
}

.confirm-dialog-actions {
  display: flex;
  gap: 12px;
  gap: var(--sp-3);
  justify-content: center;
}

/* =============================================================================
   EMPTY STATES
   =============================================================================
   États vides pour listes et tableaux
   ============================================================================= */

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  padding: var(--sp-12) var(--sp-6);
  text-align: center;
}

.empty-state-icon {
  width: 64px;
  height: 64px;
  margin-bottom: 16px;
  margin-bottom: var(--sp-4);
  color: #6E7890;
  color: var(--text-muted);
  opacity: 0.5;
}

.empty-state-title {
  font-size: 17px;
  font-size: var(--text-lg);
  font-weight: 500;
  font-weight: var(--weight-medium);
  color: #F5F7FF;
  color: var(--text-primary);
  margin-bottom: 8px;
  margin-bottom: var(--sp-2);
}

.empty-state-message {
  font-size: 13px;
  font-size: var(--text-sm);
  color: #6E7890;
  color: var(--text-muted);
  max-width: 320px;
  margin-bottom: 24px;
  margin-bottom: var(--sp-6);
}

/* =============================================================================
   TOOLTIPS
   =============================================================================
   Info-bulles pour aide contextuelle
   ============================================================================= */

[data-tooltip] {
  position: relative;
}

[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  padding: 8px 12px;
  padding: var(--sp-2) var(--sp-3);
  font-size: 11px;
  font-size: var(--text-xs);
  font-weight: 400;
  font-weight: var(--weight-normal);
  color: #F5F7FF;
  color: var(--text-primary);
  background: rgba(15, 25, 45, 0.85);
  background: var(--surface-elevated);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 6px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 120ms cubic-bezier(0.22, 0.61, 0.36, 1),
              visibility 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity var(--duration-fast) var(--ease-glass),
              visibility var(--duration-fast) var(--ease-glass);
  z-index: 1070;
  z-index: var(--z-tooltip);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  box-shadow: var(--shadow-dropdown);
}

[data-tooltip]:hover::after {
  opacity: 1;
  visibility: visible;
}

/* Tooltip positions */
[data-tooltip-position="bottom"]::after {
  bottom: auto;
  top: calc(100% + 8px);
}

[data-tooltip-position="left"]::after {
  bottom: auto;
  top: 50%;
  left: auto;
  right: calc(100% + 8px);
  transform: translateY(-50%);
}

[data-tooltip-position="right"]::after {
  bottom: auto;
  top: 50%;
  left: calc(100% + 8px);
  transform: translateY(-50%);
}

/* =============================================================================
   ALERTS / NOTIFICATIONS
   =============================================================================
   Messages d'alerte et notifications inline
   ============================================================================= */

.alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  gap: var(--sp-3);
  padding: 16px;
  padding: var(--sp-4);
  border-radius: 14px;
  border-radius: var(--radius-lg);
  font-size: 13px;
  font-size: var(--text-sm);
}

.alert-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.alert-content {
  flex: 1 1;
  min-width: 0;
}

.alert-title {
  font-weight: 600;
  font-weight: var(--weight-semibold);
  margin-bottom: 4px;
  margin-bottom: var(--sp-1);
}

.alert-message {
  color: inherit;
  opacity: 0.9;
}

.alert-info {
  background: rgba(0, 163, 255, 0.15);
  background: var(--badge-info-bg);
  color: #0C8298;
  color: var(--badge-info-text);
  border: 1px solid color-mix(in srgb, #0C8298 20%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent-primary) 20%, transparent);
}

.alert-success {
  background: rgba(60, 203, 140, 0.15);
  background: var(--badge-success-bg);
  color: #3CCB8C;
  color: var(--badge-success-text);
  border: 1px solid color-mix(in srgb, #3CCB8C 20%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent-success) 20%, transparent);
}

.alert-warning {
  background: rgba(255, 179, 71, 0.15);
  background: var(--badge-warning-bg);
  color: #FFB347;
  color: var(--badge-warning-text);
  border: 1px solid color-mix(in srgb, #FFB347 20%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent-warning) 20%, transparent);
}

.alert-danger,
.alert-error {
  background: rgba(255, 77, 106, 0.15);
  background: var(--badge-critical-bg);
  color: #FF4D6A;
  color: var(--badge-critical-text);
  border: 1px solid color-mix(in srgb, #FF4D6A 20%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent-danger) 20%, transparent);
}

/* Alert dismissible */
.alert-dismissible {
  padding-right: 40px;
  padding-right: var(--sp-10);
  position: relative;
}

.alert-close {
  position: absolute;
  top: 12px;
  top: var(--sp-3);
  right: 12px;
  right: var(--sp-3);
  padding: 4px;
  padding: var(--sp-1);
  background: transparent;
  border: none;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 120ms;
  transition: opacity var(--duration-fast);
}

.alert-close:hover {
  opacity: 1;
}

/* =============================================================================
   HIERARCHIE VISUELLE - SECTIONS & HEADERS
   =============================================================================
   Structure claire pour pages complexes
   ============================================================================= */

/* Section de page */
.section {
  margin-bottom: 32px;
  margin-bottom: var(--sp-8);
}

.section:last-child {
  margin-bottom: 0;
}

/* Header de section */
.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  gap: var(--sp-4);
  margin-bottom: 16px;
  margin-bottom: var(--sp-4);
  padding-bottom: 12px;
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
}

.section-header h2,
.section-header h3 {
  font-size: 17px;
  font-size: var(--text-lg);
  font-weight: 600;
  font-weight: var(--weight-semibold);
  color: #F5F7FF;
  color: var(--text-primary);
}

/* Sous-section */
.subsection {
  margin-bottom: 24px;
  margin-bottom: var(--sp-6);
}

.subsection-title {
  font-size: 15px;
  font-size: var(--text-base);
  font-weight: 500;
  font-weight: var(--weight-medium);
  color: #A9B3C9;
  color: var(--text-secondary);
  margin-bottom: 12px;
  margin-bottom: var(--sp-3);
}

/* Divider */
.divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.06);
  background: var(--divider);
  margin: 24px 0;
  margin: var(--sp-6) 0;
}

.divider-vertical {
  width: 1px;
  height: 100%;
  background: rgba(255, 255, 255, 0.06);
  background: var(--divider);
  margin: 0 16px;
  margin: 0 var(--sp-4);
}

/* =============================================================================
   PROGRESSIVE DISCLOSURE
   =============================================================================
   Affichage progressif d'informations
   ============================================================================= */

/* Collapsible section */
.collapsible {
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 14px;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.collapsible-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  padding: var(--sp-4);
  cursor: pointer;
  background: rgba(255, 255, 255, 0.02);
  transition: background 120ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: background var(--duration-fast) var(--ease-glass);
}

.collapsible-header:hover {
  background: rgba(255, 255, 255, 0.06);
  background: var(--surface-hover);
}

.collapsible-title {
  font-weight: 500;
  font-weight: var(--weight-medium);
  color: #F5F7FF;
  color: var(--text-primary);
}

.collapsible-icon {
  transition: transform 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform var(--duration-normal) var(--ease-glass);
}

.collapsible.open .collapsible-icon {
  transform: rotate(180deg);
}

.collapsible-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 280ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: max-height var(--duration-slow) var(--ease-glass);
}

.collapsible.open .collapsible-content {
  max-height: 2000px;
}

.collapsible-body {
  padding: 16px;
  padding: var(--sp-4);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-top: 1px solid var(--divider);
}

/* Details/Summary (native HTML) */
details {
  border: 1px solid rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-panel-border);
  border-radius: 14px;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

details summary {
  padding: 16px;
  padding: var(--sp-4);
  cursor: pointer;
  font-weight: 500;
  font-weight: var(--weight-medium);
  background: rgba(255, 255, 255, 0.02);
  list-style: none;
}

details summary::-webkit-details-marker {
  display: none;
}

details summary::after {
  content: '+';
  float: right;
  font-size: 17px;
  font-size: var(--text-lg);
  color: #6E7890;
  color: var(--text-muted);
  transition: transform 120ms;
  transition: transform var(--duration-fast);
}

details[open] summary::after {
  content: '−';
}

details > *:not(summary) {
  padding: 16px;
  padding: var(--sp-4);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-top: 1px solid var(--divider);
}

/* =============================================================================
   PRINT STYLES
   =============================================================================
   Optimisations pour impression (bulletins de paie, rapports)
   ============================================================================= */

@media print {
  * {
    background: white !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  body {
    font-size: 12pt;
    line-height: 1.4;
  }

  .no-print,
  .sidebar,
  .topbar,
  .modal-overlay,
  button:not(.print-btn),
  .btn:not(.print-btn) {
    display: none !important;
  }

  .page-break-before {
    page-break-before: always;
  }

  .page-break-after {
    page-break-after: always;
  }

  .avoid-break {
    page-break-inside: avoid;
  }

  a {
    text-decoration: underline;
  }

  table {
    border-collapse: collapse;
  }

  table th,
  table td {
    border: 1px solid #ccc;
    padding: 8px;
  }

  .glass-table {
    min-width: 0;
  }
}

/* =============================================================================
   EFFETS "WOW" - ANIMATIONS AVANCÉES & PARALLAXE
   =============================================================================
   Effets visuels premium pour une expérience utilisateur exceptionnelle
   ============================================================================= */

/* -----------------------------------------------------------------------------
   SCROLL REVEAL ANIMATIONS
   ----------------------------------------------------------------------------- */

/* Base pour éléments à révéler au scroll */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), 
              transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.8s var(--ease-glass), 
              transform 0.8s var(--ease-glass);
}

.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Variantes de révélation */
.reveal-left {
  opacity: 0;
  transform: translateX(-50px);
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), 
              transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.8s var(--ease-glass), 
              transform 0.8s var(--ease-glass);
}

.reveal-left.revealed {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(50px);
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), 
              transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.8s var(--ease-glass), 
              transform 0.8s var(--ease-glass);
}

.reveal-right.revealed {
  opacity: 1;
  transform: translateX(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.6s cubic-bezier(0.22, 0.61, 0.36, 1), 
              transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.6s var(--ease-glass), 
              transform 0.6s var(--ease-glass);
}

.reveal-scale.revealed {
  opacity: 1;
  transform: scale(1);
}

/* Délais pour effet cascade */
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* -----------------------------------------------------------------------------
   PARALLAX EFFECTS
   ----------------------------------------------------------------------------- */

/* Container parallax */
.parallax-container {
  position: relative;
  overflow: hidden;
  perspective: 1000px;
}

/* Élément parallax (utiliser avec JS pour transformer) */
.parallax-element {
  will-change: transform;
  transition: transform 0.1s linear;
}

/* Parallax léger (mouvement subtil au scroll) */
.parallax-subtle {
  will-change: transform;
}

/* Background parallax fixe */
.parallax-bg {
  position: absolute;
  top: -20%;
  left: -10%;
  width: 120%;
  height: 140%;
  background-attachment: fixed;
  background-position: center;
  background-size: cover;
  pointer-events: none;
}

/* Floating elements (animation autonome) */
.float {
  animation: floating 6s ease-in-out infinite;
}

.float-slow {
  animation: floating 8s ease-in-out infinite;
}

.float-fast {
  animation: floating 4s ease-in-out infinite;
}

@keyframes floating {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
}

/* Rotation lente (pour éléments décoratifs) */
.rotate-slow {
  animation: rotateSlow 20s linear infinite;
}

@keyframes rotateSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* -----------------------------------------------------------------------------
   PAGE TRANSITIONS
   ----------------------------------------------------------------------------- */

/* Transition de page avec fade */
.page-enter {
  opacity: 0;
  transform: translateY(20px);
}

.page-enter-active {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.4s cubic-bezier(0.22, 0.61, 0.36, 1), 
              transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.4s var(--ease-glass), 
              transform 0.4s var(--ease-glass);
}

.page-exit {
  opacity: 1;
  transform: translateY(0);
}

.page-exit-active {
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), 
              transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.3s var(--ease-glass), 
              transform 0.3s var(--ease-glass);
}

/* Slide transition */
.slide-enter {
  transform: translateX(100%);
}

.slide-enter-active {
  transform: translateX(0);
  transition: transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 0.4s var(--ease-glass);
}

.slide-exit {
  transform: translateX(0);
}

.slide-exit-active {
  transform: translateX(-100%);
  transition: transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 0.4s var(--ease-glass);
}

/* -----------------------------------------------------------------------------
   STAGGER ANIMATIONS (cascade)
   ----------------------------------------------------------------------------- */

/* Animation en cascade pour listes/grids */
.stagger-children > * {
  opacity: 0;
  transform: translateY(20px);
  animation: staggerIn 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation: staggerIn 0.5s var(--ease-glass) forwards;
}

.stagger-children > *:nth-child(1) { animation-delay: 0.05s; }
.stagger-children > *:nth-child(2) { animation-delay: 0.1s; }
.stagger-children > *:nth-child(3) { animation-delay: 0.15s; }
.stagger-children > *:nth-child(4) { animation-delay: 0.2s; }
.stagger-children > *:nth-child(5) { animation-delay: 0.25s; }
.stagger-children > *:nth-child(6) { animation-delay: 0.3s; }
.stagger-children > *:nth-child(7) { animation-delay: 0.35s; }
.stagger-children > *:nth-child(8) { animation-delay: 0.4s; }
.stagger-children > *:nth-child(9) { animation-delay: 0.45s; }
.stagger-children > *:nth-child(10) { animation-delay: 0.5s; }
.stagger-children > *:nth-child(11) { animation-delay: 0.55s; }
.stagger-children > *:nth-child(12) { animation-delay: 0.6s; }

@keyframes staggerIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* -----------------------------------------------------------------------------
   GLASSMORPHIC EFFECTS AVANCÉS
   ----------------------------------------------------------------------------- */

/* Glow pulsant (pour éléments importants) */
.glow-pulse {
  animation: glowPulse 2s ease-in-out infinite;
}

@keyframes glowPulse {
  0%, 100% {
    box-shadow: 0 0 20px rgba(var(--section-rgb), 0.3),
                0 0 40px rgba(var(--section-rgb), 0.1);
  }
  50% {
    box-shadow: 0 0 30px rgba(var(--section-rgb), 0.5),
                0 0 60px rgba(var(--section-rgb), 0.2);
  }
}

/* Border gradient animé */
.border-gradient {
  position: relative;
  background: rgba(15, 25, 45, 0.72);
  background: var(--glass-panel-bg);
  border-radius: 16px;
  border-radius: var(--panel-radius);
}

.border-gradient::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: calc(16px + 2px);
  border-radius: calc(var(--panel-radius) + 2px);
  background: linear-gradient(
    45deg,
    #0C8298,
    #0C8298,
    #0C8298
  );
  background: linear-gradient(
    45deg,
    var(--accent-primary),
    var(--section-color, var(--accent-primary)),
    var(--accent-primary)
  );
  background-size: 200% 200%;
  animation: borderGradient 4s ease infinite;
  z-index: -1;
}

@keyframes borderGradient {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* Effet verre avec reflet */
.glass-reflection {
  position: relative;
  overflow: hidden;
}

.glass-reflection::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    45deg,
    transparent 40%,
    rgba(255, 255, 255, 0.05) 45%,
    rgba(255, 255, 255, 0.1) 50%,
    rgba(255, 255, 255, 0.05) 55%,
    transparent 60%
  );
  transform: rotate(45deg) translateY(-100%);
  transition: transform 0.8s;
  pointer-events: none;
}

.glass-reflection:hover::after {
  transform: rotate(45deg) translateY(100%);
}

/* Morphing background */
.morph-bg {
  position: relative;
  overflow: hidden;
}

.morph-bg::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 150%;
  height: 150%;
  background: radial-gradient(
    circle at center,
    rgba(var(--section-rgb), 0.15) 0%,
    transparent 70%
  );
  transform: translate(-50%, -50%);
  animation: morphBg 15s ease-in-out infinite;
}

@keyframes morphBg {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
  }
  25% {
    transform: translate(-45%, -55%) scale(1.1) rotate(90deg);
  }
  50% {
    transform: translate(-55%, -45%) scale(0.9) rotate(180deg);
  }
  75% {
    transform: translate(-50%, -50%) scale(1.05) rotate(270deg);
  }
}

/* -----------------------------------------------------------------------------
   HOVER EFFECTS PREMIUM
   ----------------------------------------------------------------------------- */

/* Tilt 3D au hover */
.hover-tilt {
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 0.3s var(--ease-glass);
  transform-style: preserve-3d;
}

.hover-tilt:hover {
  transform: perspective(1000px) rotateX(5deg) rotateY(5deg);
}

/* Shine sweep au hover */
.hover-shine {
  position: relative;
  overflow: hidden;
}

.hover-shine::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.1),
    transparent
  );
  transition: left 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: left 0.5s var(--ease-glass);
  pointer-events: none;
}

.hover-shine:hover::before {
  left: 100%;
}

/* Magnetic effect (nécessite JS pour le tracking souris) */
.magnetic {
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 0.3s var(--ease-glass);
}

/* Scale with shadow */
.hover-scale-shadow {
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 0.3s var(--ease-glass),
              box-shadow 0.3s var(--ease-glass);
}

.hover-scale-shadow:hover {
  transform: scale(1.05);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  box-shadow: var(--shadow-dropdown);
}

/* Pop effect */
.hover-pop {
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.hover-pop:hover {
  transform: scale(1.08);
}

.hover-pop:active {
  transform: scale(0.95);
}

/* -----------------------------------------------------------------------------
   CURSOR EFFECTS
   ----------------------------------------------------------------------------- */

/* Custom cursor area */
.cursor-glow {
  cursor: none;
}

/* Cursor follower (à implémenter avec JS) */
.cursor-follower {
  position: fixed;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #0C8298;
  background: var(--accent-primary);
  opacity: 0.5;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: transform 0.15s cubic-bezier(0.22, 0.61, 0.36, 1),
              width 0.2s cubic-bezier(0.22, 0.61, 0.36, 1),
              height 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 0.15s var(--ease-glass),
              width 0.2s var(--ease-glass),
              height 0.2s var(--ease-glass);
  z-index: 1070;
  z-index: var(--z-tooltip, 1070);
  mix-blend-mode: screen;
}

.cursor-follower.active {
  width: 40px;
  height: 40px;
  opacity: 0.3;
}

/* -----------------------------------------------------------------------------
   TEXT EFFECTS
   ----------------------------------------------------------------------------- */

/* Gradient text */
.text-gradient {
  background: linear-gradient(
    135deg,
    #0C8298,
    #0C8298
  );
  background: linear-gradient(
    135deg,
    var(--accent-primary),
    var(--section-color, var(--accent-secondary))
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Text shimmer */
.text-shimmer {
  background: linear-gradient(
    90deg,
    #F5F7FF 0%,
    #0C8298 50%,
    #F5F7FF 100%
  );
  background: linear-gradient(
    90deg,
    var(--text-primary) 0%,
    var(--accent-primary) 50%,
    var(--text-primary) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: textShimmer 3s linear infinite;
}

@keyframes textShimmer {
  0% { background-position: 200% center; }
  100% { background-position: -200% center; }
}

/* Typing effect (nécessite JS pour révéler lettre par lettre) */
.typewriter {
  overflow: hidden;
  border-right: 2px solid #0C8298;
  border-right: 2px solid var(--accent-primary);
  white-space: nowrap;
  animation: typing 3.5s steps(40, end),
             blinkCursor 0.75s step-end infinite;
}

@keyframes typing {
  from { width: 0; }
  to { width: 100%; }
}

@keyframes blinkCursor {
  from, to { border-color: transparent; }
  50% { border-color: #0C8298; border-color: var(--accent-primary); }
}

/* -----------------------------------------------------------------------------
   NUMBER COUNTER ANIMATION
   ----------------------------------------------------------------------------- */

/* Pour utiliser avec un compteur JS */
.counter {
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  transition: color 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: color 0.3s var(--ease-glass);
}

.counter-animate {
  animation: counterPop 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  animation: counterPop 0.3s var(--ease-glass);
}

@keyframes counterPop {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}

/* -----------------------------------------------------------------------------
   LOADING EFFECTS PREMIUM
   ----------------------------------------------------------------------------- */

/* Dot loading */
.loading-dots {
  display: inline-flex;
  gap: 4px;
}

.loading-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #0C8298;
  background: var(--accent-primary);
  animation: dotBounce 1.4s ease-in-out infinite both;
}

.loading-dots span:nth-child(1) { animation-delay: -0.32s; }
.loading-dots span:nth-child(2) { animation-delay: -0.16s; }
.loading-dots span:nth-child(3) { animation-delay: 0s; }

@keyframes dotBounce {
  0%, 80%, 100% { transform: scale(0); }
  40% { transform: scale(1); }
}

/* Skeleton wave */
.skeleton-wave {
  position: relative;
  overflow: hidden;
}

.skeleton-wave::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.08),
    transparent
  );
  animation: skeletonWave 1.6s linear infinite;
}

@keyframes skeletonWave {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* -----------------------------------------------------------------------------
   RESPONSIVE MOTION PREFERENCES
   ----------------------------------------------------------------------------- */

/* Respect préférences utilisateur pour mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale {
    opacity: 1;
    transform: none;
  }
  
  .float,
  .float-slow,
  .float-fast,
  .rotate-slow {
    animation: none;
  }
  
  .parallax-element,
  .parallax-subtle {
    transform: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   GLASS DESIGN COHESION — Stat Card Override
   ═══════════════════════════════════════════════════════════
   Converts solid-color <div> stat cards to glassmorphic style.
   Targets only <div> elements (not <button>/<a> action elements).
   Applies across all 39+ pages automatically — no JSX changes needed.
   ═══════════════════════════════════════════════════════════ */

/* PRIMARY / BLUE */
div.bg-gradient-to-br.from-\[var\(--color-action-primary\)\].to-\[var\(--color-action-primary\)\],
div.bg-gradient-to-br.from-\[var\(--color-accent\)\].to-\[var\(--color-accent\)\],
div.bg-gradient-to-br.from-\[var\(--color-feedback-info\)\].to-\[var\(--color-feedback-info\)\] {
  background: rgba(0, 163, 255, 0.08) !important;
  border: 1px solid rgba(0, 163, 255, 0.2) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 24px rgba(0, 163, 255, 0.08), inset 0 1px 0 rgba(255,255,255,0.04) !important;
}

/* SUCCESS / GREEN */
div.bg-gradient-to-br.from-\[var\(--color-feedback-success\)\].to-\[var\(--color-feedback-success\)\] {
  background: rgba(60, 203, 140, 0.08) !important;
  border: 1px solid rgba(60, 203, 140, 0.2) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 24px rgba(60, 203, 140, 0.08), inset 0 1px 0 rgba(255,255,255,0.04) !important;
}

/* WARNING / ORANGE */
div.bg-gradient-to-br.from-\[var\(--color-feedback-warning\)\].to-\[var\(--color-feedback-warning\)\] {
  background: rgba(255, 179, 71, 0.08) !important;
  border: 1px solid rgba(255, 179, 71, 0.2) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 24px rgba(255, 179, 71, 0.08), inset 0 1px 0 rgba(255,255,255,0.04) !important;
}

/* DANGER / RED */
div.bg-gradient-to-br.from-\[var\(--color-feedback-danger\)\].to-\[var\(--color-feedback-danger\)\] {
  background: rgba(255, 77, 106, 0.08) !important;
  border: 1px solid rgba(255, 77, 106, 0.2) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 24px rgba(255, 77, 106, 0.08), inset 0 1px 0 rgba(255,255,255,0.04) !important;
}

/* MUTED / GREY */
div.bg-gradient-to-br.from-\[var\(--color-text-muted\)\].to-\[var\(--color-bg-inverse\)\],
div.bg-gradient-to-br.from-\[var\(--color-text-muted\)\].to-\[var\(--color-text-muted\)\] {
  background: rgba(110, 120, 144, 0.08) !important;
  border: 1px solid rgba(110, 120, 144, 0.18) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
}

/* LIGHT THEME ADJUSTMENTS */
[data-theme="light"] div.bg-gradient-to-br.from-\[var\(--color-action-primary\)\].to-\[var\(--color-action-primary\)\],
[data-theme="light"] div.bg-gradient-to-br.from-\[var\(--color-accent\)\].to-\[var\(--color-accent\)\] {
  background: rgba(0, 163, 255, 0.06) !important;
  border-color: rgba(0, 163, 255, 0.2) !important;
}
[data-theme="light"] div.bg-gradient-to-br.from-\[var\(--color-feedback-success\)\].to-\[var\(--color-feedback-success\)\] {
  background: rgba(60, 203, 140, 0.06) !important;
}
[data-theme="light"] div.bg-gradient-to-br.from-\[var\(--color-feedback-warning\)\].to-\[var\(--color-feedback-warning\)\] {
  background: rgba(255, 179, 71, 0.06) !important;
}
[data-theme="light"] div.bg-gradient-to-br.from-\[var\(--color-feedback-danger\)\].to-\[var\(--color-feedback-danger\)\] {
  background: rgba(255, 77, 106, 0.06) !important;
}

/* ─── Also handle bg-gradient-to-r same-color variants ─── */
div.bg-gradient-to-r.from-\[var\(--color-action-primary\)\].to-\[var\(--color-action-primary\)\],
div.bg-gradient-to-r.from-\[var\(--color-accent\)\].to-\[var\(--color-accent\)\] {
  background: rgba(0, 163, 255, 0.08) !important;
  border: 1px solid rgba(0, 163, 255, 0.2) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
}
div.bg-gradient-to-r.from-\[var\(--color-feedback-success\)\].to-\[var\(--color-feedback-success\)\] {
  background: rgba(60, 203, 140, 0.08) !important;
  border: 1px solid rgba(60, 203, 140, 0.2) !important;
  -webkit-backdrop-filter: blur(16px) !important;
          backdrop-filter: blur(16px) !important;
}
div.bg-gradient-to-r.from-\[var\(--color-feedback-warning\)\].to-\[var\(--color-feedback-warning\)\] {
  background: rgba(255, 179, 71, 0.08) !important;
  border: 1px solid rgba(255, 179, 71, 0.2) !important;
  -webkit-backdrop-filter: blur(16px) !important;
          backdrop-filter: blur(16px) !important;
}
div.bg-gradient-to-r.from-\[var\(--color-feedback-danger\)\].to-\[var\(--color-feedback-danger\)\] {
  background: rgba(255, 77, 106, 0.08) !important;
  border: 1px solid rgba(255, 77, 106, 0.2) !important;
  -webkit-backdrop-filter: blur(16px) !important;
          backdrop-filter: blur(16px) !important;
}

/* ============================================================
   AUDIT 322 — CANONICAL TOKENS (Sprint 1)
   Tokens additifs alignés sur les propositions Round 1 + Round 2.
   Coexistent avec les anciens tokens (`--shadow-card`, `--text-xs`, etc.)
   pour rétro-compatibilité. À utiliser dans tout nouveau composant.
   ============================================================ */
:root {
  /* ---- Élévation 6 paliers (#147, #148, #310) ----
     Light source top-center : ombres décalées en bas, highlights en haut.
     Chaque palier empile 3 couches : contact + ambient + brand bleed. */
  --elev-0: none;
  --elev-1:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 1px 1px rgba(15, 23, 42, 0.06);
  --elev-2:
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 4px 8px -2px rgba(15, 23, 42, 0.06),
    0 12px 24px -8px rgba(12, 130, 152, 0.10);
  --elev-3:
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 8px 16px -4px rgba(15, 23, 42, 0.08),
    0 24px 48px -12px rgba(12, 130, 152, 0.12);
  --elev-4:
    0 2px 4px rgba(15, 23, 42, 0.08),
    0 16px 32px -8px rgba(15, 23, 42, 0.10),
    0 32px 64px -16px rgba(12, 130, 152, 0.14);
  --elev-5:
    0 2px 4px rgba(15, 23, 42, 0.08),
    0 16px 32px -8px rgba(12, 130, 152, 0.14),
    0 32px 64px -16px rgba(15, 23, 42, 0.18);

  /* ---- Hiérarchie typographique 7 niveaux figée (#178) ----
     Format: --fz-* (size) / --lh-* (line-height multiple de 4 pour baseline 4px) */
  --fz-display: 48px;  --lh-display: 56px;  --fw-display: 700;
  --fz-h1:      36px;  --lh-h1:      44px;  --fw-h1:      700;
  --fz-h2:      28px;  --lh-h2:      36px;  --fw-h2:      650;
  --fz-h3:      22px;  --lh-h3:      30px;  --fw-h3:      600;
  --fz-h4:      18px;  --lh-h4:      26px;  --fw-h4:      600;
  --fz-body-lg: 16px;  --lh-body-lg: 26px;  --fw-body-lg: 450;
  --fz-body:    14px;  --lh-body:    22px;  --fw-body:    450;
  --fz-caption: 12px;  --lh-caption: 18px;  --fw-caption: 500;

  /* ---- Texte WCAG AAA (#177) ----
     Cible body 16:1 sur fond pâle. Bannir tout gris < #475569 sur fond clair. */
  --text-aaa:        #0F172A; /* body, ratio 16.8:1 sur #F0F4FF */
  --text-aaa-2:      #1E293B; /* sub-body */
  --text-aaa-mute:   #475569; /* secondary minimum AAA */
  --text-aaa-soft:   #64748B; /* tertiary, à éviter pour body */

  /* ---- Glass tiers premium (#162-176) ---- */
  --glass-1-bg:    rgba(255, 255, 255, 0.65);
  --glass-1-blur:  blur(20px) saturate(140%);
  --glass-1-bd:    1px solid rgba(255, 255, 255, 0.55);

  --glass-2-bg:    rgba(255, 255, 255, 0.75);
  --glass-2-blur:  blur(24px) saturate(150%);
  --glass-2-bd:    1px solid rgba(255, 255, 255, 0.6);

  --glass-3-bg:    rgba(255, 255, 255, 0.82);
  --glass-3-blur:  blur(32px) saturate(160%);
  --glass-3-bd:    1px solid rgba(255, 255, 255, 0.65);

  /* Tier 4 — Acrylic épais (modals premium, command palette, dropdowns) */
  --glass-4-bg:    rgba(255, 255, 255, 0.55);
  --glass-4-blur:  blur(48px) saturate(180%) brightness(108%);
  --glass-4-bd:    1px solid rgba(255, 255, 255, 0.5);

  /* Mica surface (sidebar, header — wallpaper-tinted opaque) #308 */
  --mica-bg:       color-mix(in srgb, #F0F4FF 88%, white 12%);
  --mica-blur:     blur(60px) saturate(140%);

  /* Glass opacity réactive (#175) */
  --glass-opacity: 0.65;

  /* ---- Motion system (#101, #102) ----
     4 durations + 3 easing curves canoniques. */
  --motion-xs: 120ms;
  --motion-sm: 200ms;
  --motion-md: 320ms;
  --motion-lg: 480ms;
  --ease-out:   cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in:    cubic-bezier(0.55, 0, 1, 0.45);
  --ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ---- Brand color — Alpine Teal (hue ~192°) ----
     Custom Brand.ai palette — Swiss lake blue-green. */
  --brand-50:  #EEFBFC;
  --brand-100: #D5F3F6;
  --brand-200: #B0E7EE;
  --brand-300: #79D5E2;
  --brand-400: #3BBDCF;
  --brand-500: #1A9FB5;
  --brand-600: #0C8298;
  --brand-700: #0F697D;
  --brand-800: #125466;
  --brand-900: #134554;
  --brand-soft: rgba(12, 130, 152, 0.08);
  --brand-glow: rgba(12, 130, 152, 0.30);

  /* Surfaces sémantiques (success/warning/danger/info) WCAG AAA */
  --success-500: #059669;
  --success-soft: rgba(5, 150, 105, 0.10);
  --warning-500: #D97706;
  --warning-soft: rgba(217, 119, 6, 0.10);
  --danger-500:  #DC2626;
  --danger-soft: rgba(220, 38, 38, 0.10);
  --info-500:    #0284C7;
  --info-soft:   rgba(2, 132, 199, 0.10);
}

/* ---- Reset typo + body via baseline 4px (#177-189) ---- */
body {
  color: #0F172A;
  color: var(--text-aaa);
  font-size: 14px;
  font-size: var(--fz-body);
  line-height: 22px;
  line-height: var(--lh-body);
  font-weight: 450;
  font-weight: var(--fw-body);
  font-feature-settings: "kern", "liga", "calt", "ss01", "tnum" 0;
  font-optical-sizing: auto;
}

/* Hiérarchie h1-h4 sur la nouvelle échelle (additif, peut être surchargé localement) */
.fz-display { font-size: 48px; font-size: var(--fz-display); line-height: 56px; line-height: var(--lh-display); font-weight: 700; font-weight: var(--fw-display); letter-spacing: -0.022em; }
h1, .fz-h1   { font-size: 36px; font-size: var(--fz-h1);     line-height: 44px;     line-height: var(--lh-h1);     font-weight: 700;     font-weight: var(--fw-h1);     letter-spacing: -0.022em; }
h2, .fz-h2   { font-size: 28px; font-size: var(--fz-h2);     line-height: 36px;     line-height: var(--lh-h2);     font-weight: 650;     font-weight: var(--fw-h2);     letter-spacing: -0.018em; }
h3, .fz-h3   { font-size: 22px; font-size: var(--fz-h3);     line-height: 30px;     line-height: var(--lh-h3);     font-weight: 600;     font-weight: var(--fw-h3); }
h4, .fz-h4   { font-size: 18px; font-size: var(--fz-h4);     line-height: 26px;     line-height: var(--lh-h4);     font-weight: 600;     font-weight: var(--fw-h4); }
.fz-body-lg  { font-size: 16px; font-size: var(--fz-body-lg);line-height: 26px;line-height: var(--lh-body-lg);font-weight: 450;font-weight: var(--fw-body-lg); }
.fz-body     { font-size: 14px; font-size: var(--fz-body);   line-height: 22px;   line-height: var(--lh-body);   font-weight: 450;   font-weight: var(--fw-body); }
.fz-caption  { font-size: 12px; font-size: var(--fz-caption);line-height: 18px;line-height: var(--lh-caption);font-weight: 500;font-weight: var(--fw-caption); letter-spacing: 0.01em; }

/* Numéros KPI tabulaires (#182, #187) */
.tabular, .tabular-nums, [data-tabular] {
  font-variant-numeric: tabular-nums slashed-zero;
  font-feature-settings: "tnum", "lnum", "ss02", tabular-nums slashed-zero;
}

/* ---- Focus ring premium 3 couches (#111, #190) ---- */
:where(button, a, input, textarea, select, [role="button"], [tabindex]):focus-visible {
  outline: none;
  box-shadow:
    0 0 0 2px #FFFFFF,
    0 0 0 4px #1A9FB5,
    0 0 0 5px rgba(12, 130, 152, 0.30);
  box-shadow:
    0 0 0 2px #FFFFFF,
    0 0 0 4px var(--brand-500),
    0 0 0 5px var(--brand-glow);
  border-radius: inherit;
}

/* ---- Sélection texte brandée (#189) ---- */
::selection {
  background: rgba(12, 130, 152, 0.22);
  color: #0F172A;
  color: var(--text-aaa);
  text-shadow: none;
}

/* ---- prefers-reduced-motion guard global (#113) ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---- Skip-to-content link (#122) ---- */
.skip-to-content {
  position: fixed;
  top: -100%;
  left: 16px;
  z-index: 9100;
  z-index: var(--z-a11y-skip-link, 9100);
  padding: 12px 24px;
  background: #0C8298;
  background: var(--brand-600);
  color: #FFFFFF;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  transition: top 200ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: top var(--motion-sm) var(--ease-out);
}
.skip-to-content:focus {
  top: 16px;
}

/* ---- Hit target minimum 44×44 (#201) ----
   Audit utility class, opt-in pour boutons icon-only ou dots */
.hit-target {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ============================================================
   AUDIT 322 — UTILITAIRES PREMIUM (Sprint 2)
   Classes prêtes à l'emploi pour 3D + Glass + Hovers Fluent.
   ============================================================ */

/* ---- Élévation utility classes (#147) ---- */
.elev-0 { box-shadow: none; box-shadow: var(--elev-0); }
.elev-1 { box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04),
    0 1px 1px rgba(15, 23, 42, 0.06); box-shadow: var(--elev-1); }
.elev-2 { box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06),
    0 4px 8px -2px rgba(15, 23, 42, 0.06),
    0 12px 24px -8px rgba(12, 130, 152, 0.10); box-shadow: var(--elev-2); }
.elev-3 { box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06),
    0 8px 16px -4px rgba(15, 23, 42, 0.08),
    0 24px 48px -12px rgba(12, 130, 152, 0.12); box-shadow: var(--elev-3); }
.elev-4 { box-shadow: 0 2px 4px rgba(15, 23, 42, 0.08),
    0 16px 32px -8px rgba(15, 23, 42, 0.10),
    0 32px 64px -16px rgba(12, 130, 152, 0.14); box-shadow: var(--elev-4); }
.elev-5 { box-shadow: 0 2px 4px rgba(15, 23, 42, 0.08),
    0 16px 32px -8px rgba(12, 130, 152, 0.14),
    0 32px 64px -16px rgba(15, 23, 42, 0.18); box-shadow: var(--elev-5); }

/* ---- Glass tier utility classes (#162-176) ---- */
.glass-1 {
  background: rgba(255, 255, 255, 0.65);
  background: var(--glass-1-bg);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: var(--glass-1-blur);
  backdrop-filter: blur(20px) saturate(140%);
  backdrop-filter: var(--glass-1-blur);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border: var(--glass-1-bd);
  border-top: 1px solid rgba(255, 255, 255, 0.85); /* edge-lighting #152 */
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}
.glass-2 {
  background: rgba(255, 255, 255, 0.75);
  background: var(--glass-2-bg);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: var(--glass-2-blur);
  backdrop-filter: blur(24px) saturate(150%);
  backdrop-filter: var(--glass-2-blur);
  border: 1px solid rgba(255, 255, 255, 0.6);
  border: var(--glass-2-bd);
  border-top: 1px solid rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}
.glass-3 {
  background: rgba(255, 255, 255, 0.82);
  background: var(--glass-3-bg);
  -webkit-backdrop-filter: blur(32px) saturate(160%);
  -webkit-backdrop-filter: var(--glass-3-blur);
  backdrop-filter: blur(32px) saturate(160%);
  backdrop-filter: var(--glass-3-blur);
  border: 1px solid rgba(255, 255, 255, 0.65);
  border: var(--glass-3-bd);
  border-top: 1px solid rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}
.glass-4 {
  background: rgba(255, 255, 255, 0.55);
  background: var(--glass-4-bg);
  -webkit-backdrop-filter: blur(48px) saturate(180%) brightness(108%);
  -webkit-backdrop-filter: var(--glass-4-blur);
  backdrop-filter: blur(48px) saturate(180%) brightness(108%);
  backdrop-filter: var(--glass-4-blur);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border: var(--glass-4-bd);
  border-top: 1px solid rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}
.mica {
  background: color-mix(in srgb, #F0F4FF 88%, white 12%);
  background: var(--mica-bg);
  -webkit-backdrop-filter: blur(60px) saturate(140%);
  -webkit-backdrop-filter: var(--mica-blur);
  backdrop-filter: blur(60px) saturate(140%);
  backdrop-filter: var(--mica-blur);
  border: 1px solid rgba(255, 255, 255, 0.6);
}

/* ---- Hover qui élève (#216) ---- */
.hover-lift {
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform var(--motion-md) var(--ease-out),
              box-shadow var(--motion-md) var(--ease-out);
  will-change: transform;
}
.hover-lift:hover {
  transform: translateY(-2px) translateZ(0);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06),
    0 8px 16px -4px rgba(15, 23, 42, 0.08),
    0 24px 48px -12px rgba(12, 130, 152, 0.12);
  box-shadow: var(--elev-3);
}
.hover-lift:active {
  transform: translateY(-1px) scale(0.998);
  transition-duration: 120ms;
  transition-duration: var(--motion-xs);
}

/* ---- Hover qui glow brand (#192, #217) ---- */
.hover-glow {
  transition: box-shadow 200ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 200ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: box-shadow var(--motion-sm) var(--ease-out),
              transform var(--motion-sm) var(--ease-out);
}
.hover-glow:hover {
  box-shadow:
    0 0 0 6px rgba(12, 130, 152, 0.12),
    0 12px 32px -8px rgba(12, 130, 152, 0.50),
    0 2px 4px rgba(12, 130, 152, 0.25);
}

/* ---- Tilt 3D (#151, #219) — désactivé sous reduced-motion via media query au-dessus ---- */
.tilt-3d {
  transform-style: preserve-3d;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform var(--motion-md) var(--ease-out);
  will-change: transform;
}
.tilt-3d:hover {
  transform: perspective(2400px) rotateX(2deg) rotateY(-3deg) translateZ(12px);
}

/* ---- Reveal highlight Fluent (#226, #309) ----
   Card border qui s'illumine selon distance curseur via --mx/--my CSS vars JS-driven. */
.reveal-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.reveal-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: radial-gradient(
    240px circle at 50% 50%,
    rgba(12, 130, 152, 0.6),
    transparent 60%
  );
  background: radial-gradient(
    240px circle at var(--mx, 50%) var(--my, 50%),
    rgba(12, 130, 152, 0.6),
    transparent 60%
  );
  -webkit-mask:
    linear-gradient(#000, #000) content-box,
    linear-gradient(#000, #000);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
  opacity: 0;
  transition: opacity 200ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity var(--motion-sm) var(--ease-out);
  z-index: 1;
}
.reveal-card:hover::before { opacity: 1; }

/* ---- Cursor-following spotlight (#311) — opt-in via .spotlight ---- */
.spotlight {
  position: relative;
  isolation: isolate;
}
.spotlight::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    600px circle at 50% 50%,
    rgba(12, 130, 152, 0.10),
    transparent 50%
  );
  background: radial-gradient(
    600px circle at var(--mx, 50%) var(--my, 50%),
    rgba(12, 130, 152, 0.10),
    transparent 50%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity var(--motion-md) var(--ease-out);
  z-index: 0;
}
.spotlight:hover::after { opacity: 1; }

/* ---- KPI count-up base (#320) — JS-driven, classe pour styling ---- */
.kpi-number {
  font-variant-numeric: tabular-nums slashed-zero;
  font-feature-settings: "tnum", "lnum", "ss02", tabular-nums slashed-zero;
  font-weight: 650;
  letter-spacing: -0.03em;
  font-size: 36px;
  font-size: var(--fz-h1);
  line-height: 44px;
  line-height: var(--lh-h1);
  color: #0F172A;
  color: var(--text-aaa);
}

/* ---- Status chip avec dot animé (#198) ---- */
.chip-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-size: var(--fz-caption);
  font-weight: 500;
  background: rgba(12, 130, 152, 0.08);
  background: var(--brand-soft);
  color: #0F697D;
  color: var(--brand-700);
}
.chip-status::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}
.chip-status.is-progress { background: rgba(217, 119, 6, 0.10); background: var(--warning-soft); color: #D97706; color: var(--warning-500); }
.chip-status.is-progress::before { animation: chip-pulse 2s ease-in-out infinite; }
.chip-status.is-success  { background: rgba(5, 150, 105, 0.10); background: var(--success-soft); color: #059669; color: var(--success-500); }
.chip-status.is-error    { background: rgba(220, 38, 38, 0.10); background: var(--danger-soft); color: #DC2626; color: var(--danger-500); }
.chip-status.is-error::before { animation: chip-blink 1s steps(2) infinite; }

@keyframes chip-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.5; transform: scale(0.85); }
}
@keyframes chip-blink {
  50% { opacity: 0; }
}

/* ---- Light source emulation top-center (#310) ----
   Subtil overlay sur main pour ombres cohérentes. */
:root {
  --light-source-overlay: radial-gradient(
    ellipse 80% 40% at 50% 0%,
    rgba(255, 255, 255, 0.5) 0%,
    transparent 70%
  );
}

/* ---- Animated gradient background subtle (#313) ---- */
@keyframes bg-rotate {
  0%   { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}
.bg-animated {
  background: linear-gradient(135deg, #F0F4FF 0%, #E6F0FF 50%, #F7F8FF 100%);
  background-size: 200% 200%;
  animation: bg-rotate 30s linear infinite;
}

/* ---- Toggle switch spring (#200) ---- */
.toggle-spring {
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: #C7D0E2;
  position: relative;
  cursor: pointer;
  transition: background 200ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: background var(--motion-sm) var(--ease-out);
}
.toggle-spring::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.2);
  transition: transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition: transform var(--motion-md) var(--ease-spring);
}
.toggle-spring[aria-checked="true"],
.toggle-spring.is-on {
  background: #1A9FB5;
  background: var(--brand-500);
  box-shadow: 0 0 0 4px rgba(12, 130, 152, 0.30);
  box-shadow: 0 0 0 4px var(--brand-glow);
}
.toggle-spring[aria-checked="true"]::after,
.toggle-spring.is-on::after {
  transform: translateX(16px);
}

/* ============================================================
   AUDIT 322 — POLISH GLOBAL WAOUH (Sprint 5)
   Tous les effets appliqués globalement pour effet premium immédiat.
   ============================================================ */

/* #313 — Animated gradient background subtle sur le <body> entier
   Gradient Alpine Indigo qui rotate imperceptiblement 30s linear infinite. */
html, body {
  background:
    radial-gradient(ellipse 80% 40% at 50% 0%, rgba(255, 255, 255, 0.55) 0%, transparent 70%),
    linear-gradient(135deg, #F0F4FF 0%, #E6F0FF 35%, #F7F8FF 70%, #EEF2FF 100%);
  background-size: 100% 100%, 200% 200%;
  background-attachment: fixed;
  animation: bg-shift 45s ease-in-out infinite alternate;
}
@keyframes bg-shift {
  0%   { background-position: 0% 0%, 0% 0%; }
  100% { background-position: 0% 0%, 100% 100%; }
}

/* #174 — Noise grain 2.5% overlay fixed qui tue le banding du gradient */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0.025;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode: overlay;
}

/* S'assurer que le main contenu reste au-dessus du grain */
#main-content, [data-app-main] {
  position: relative;
  z-index: 2;
}

/* #208, #316 — Transitions inter-routes via .page-enter keyed
   (SPA React Router — la vraie View Transitions API est MPA-only). */

/* #149, #321 — Parallax subtil sur éléments opt-in via classe .parallax-slow / -mid / -fast
   Utilise CSS scroll-driven animations (Chrome 115+) avec fallback no-op. */
@supports (animation-timeline: scroll()) {
  .parallax-slow, .parallax-mid, .parallax-fast {
    animation-name: parallax-lift;
    animation-timeline: scroll();
    animation-range: entry 0% cover 100%;
    will-change: transform;
  }
  .parallax-slow { animation-duration: 1ms; animation-fill-mode: both; --parallax-amount: -12px; }
  .parallax-mid  { --parallax-amount: -24px; }
  .parallax-fast { --parallax-amount: -48px; }
  @keyframes parallax-lift {
    to { transform: translateY(var(--parallax-amount)); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .parallax-slow, .parallax-mid, .parallax-fast { animation: none !important; transform: none !important; }
}

/* #208 — Page content entrance (fade-up 280ms) sur [data-section] change via key */
.page-enter {
  animation: page-fade-up 280ms cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes page-fade-up {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---- Sonner theming : classes injectées par <ToastProvider> (Sprint 16) ---- */
[data-sonner-toaster] [data-sonner-toast].brand-toast {
  padding: 14px 18px !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, 0.55) !important;
  -webkit-backdrop-filter: blur(48px) saturate(180%) brightness(108%) !important;
          backdrop-filter: blur(48px) saturate(180%) brightness(108%) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.9) !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important;
  box-shadow:
    0 2px 4px rgba(15, 23, 42, 0.08),
    0 16px 32px -8px rgba(15, 23, 42, 0.12),
    0 32px 64px -16px rgba(12, 130, 152, 0.14) !important;
  color: #0F172A !important;
  color: var(--text-aaa, #0F172A) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 450 !important;
}
[data-sonner-toaster] .brand-toast-title {
  color: #0F172A;
  color: var(--text-aaa, #0F172A);
  font-weight: 600;
  font-size: 14px;
}
[data-sonner-toaster] .brand-toast-description {
  color: #475569;
  color: var(--text-aaa-mute, #475569);
  font-size: 13px;
}
[data-sonner-toaster] .brand-toast.brand-toast-success { border-left: 3px solid #059669 !important; border-left: 3px solid var(--success-500, #059669) !important; }
[data-sonner-toaster] .brand-toast.brand-toast-error   { border-left: 3px solid #DC2626 !important; border-left: 3px solid var(--danger-500, #DC2626) !important; }
[data-sonner-toaster] .brand-toast.brand-toast-warning { border-left: 3px solid #D97706 !important; border-left: 3px solid var(--warning-500, #D97706) !important; }
[data-sonner-toaster] .brand-toast.brand-toast-info    { border-left: 3px solid #1A9FB5 !important; border-left: 3px solid var(--brand-500, #1A9FB5) !important; }

/* #322 — Toast premium via .toast-success / .toast-error / .toast-warn / .toast-info
   Glass tier 4 + icône animée + dual-shadow. */
.toast-premium {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 14px;
  min-width: 280px;
  max-width: 420px;
  background: rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(48px) saturate(180%) brightness(108%);
          backdrop-filter: blur(48px) saturate(180%) brightness(108%);
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-top: 1px solid rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow:
    0 2px 4px rgba(15, 23, 42, 0.08),
    0 16px 32px -8px rgba(15, 23, 42, 0.12),
    0 32px 64px -16px rgba(12, 130, 152, 0.14);
  color: #0F172A;
  color: var(--text-aaa, #0F172A);
  font-size: 14px;
  line-height: 22px;
  animation: toast-in 320ms cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes toast-in {
  from { opacity: 0; transform: translateY(-16px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* #321 — Dashboard hero parallax : 3 layers vitesses différentes
   Opt-in via .hero-parallax wrapper + .hero-layer-{0,1,2} children. */
.hero-parallax {
  position: relative;
  overflow: visible;
  transform-style: preserve-3d;
}
.hero-layer-0 { --parallax-amount: -4px; }
.hero-layer-1 { --parallax-amount: -12px; }
.hero-layer-2 { --parallax-amount: -24px; }

/* #226, #309 — Reveal highlight sur toutes les .card, .kpi-card, [data-reveal]
   Effet Fluent automatique. Override par .no-reveal si pas voulu. */
.card:not(.no-reveal),
.kpi-card:not(.no-reveal),
[data-reveal]:not(.no-reveal) {
  position: relative;
  isolation: isolate;
}
.card:not(.no-reveal)::after,
.kpi-card:not(.no-reveal)::after,
[data-reveal]:not(.no-reveal)::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(
    300px circle at 50% 50%,
    rgba(12, 130, 152, 0.10),
    transparent 60%
  );
  background: radial-gradient(
    300px circle at var(--mx, 50%) var(--my, 50%),
    rgba(12, 130, 152, 0.10),
    transparent 60%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 200ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity var(--motion-sm, 200ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1));
  z-index: 0;
}
.card:not(.no-reveal):hover::after,
.kpi-card:not(.no-reveal):hover::after,
[data-reveal]:not(.no-reveal):hover::after {
  opacity: 1;
}

/* #147, #148 — Shadow dépôt premium sur toutes les .card par défaut */
.card:not(.no-elev) {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06),
    0 4px 8px -2px rgba(15, 23, 42, 0.06),
    0 12px 24px -8px rgba(12, 130, 152, 0.10);
  box-shadow: var(--elev-2, 0 4px 8px -2px rgba(15, 23, 42, 0.06));
  transition:
    box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
  transition:
    box-shadow var(--motion-md, 320ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1)),
    transform var(--motion-md, 320ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}
.card:not(.no-elev):hover {
  box-shadow: 0 2px 4px rgba(15, 23, 42, 0.08),
    0 16px 32px -8px rgba(15, 23, 42, 0.10),
    0 32px 64px -16px rgba(12, 130, 152, 0.14);
  box-shadow: var(--elev-4, 0 16px 32px -8px rgba(12, 130, 152, 0.20));
  transform: translateY(-2px);
}

/* #319 — Entrance staggered chart bars */
@keyframes bar-rise {
  from { transform: scaleY(0); transform-origin: bottom; }
  to   { transform: scaleY(1); transform-origin: bottom; }
}
.chart-bar {
  animation: bar-rise 600ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

/* #252 — Panel docking hint zones (opt-in via .dock-zone) */
.dock-zone {
  transition: background 200ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: background var(--motion-sm, 200ms) var(--ease-out);
}
.dock-zone.is-dragover {
  background: rgba(12, 130, 152, 0.12);
  outline: 2px dashed #1A9FB5;
  outline: 2px dashed var(--brand-500, #1A9FB5);
  outline-offset: -8px;
}

/* #196 — Liens premium avec underline animé */
.link-premium, a.link-premium {
  color: #1A9FB5;
  color: var(--brand-500, #1A9FB5);
  text-decoration: underline;
  text-decoration-color: rgba(12, 130, 152, 0.3);
  text-underline-offset: 3px;
  text-decoration-thickness: 1.5px;
  transition: all 120ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: all var(--motion-xs, 120ms) var(--ease-out);
}
.link-premium:hover {
  text-decoration-color: #1A9FB5;
  text-decoration-color: var(--brand-500, #1A9FB5);
  text-decoration-thickness: 2px;
}

/* #195 — Input premium (focus ring brand premium + label flotte) */
.input-premium {
  width: 100%;
  height: 48px;
  padding: 0 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(15, 23, 42, 0.10);
  color: #0F172A;
  color: var(--text-aaa, #0F172A);
  font-size: 15px;
  font-family: inherit;
  outline: none;
  transition:
    border-color 120ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 120ms cubic-bezier(0.22, 1, 0.36, 1),
    background 120ms cubic-bezier(0.22, 1, 0.36, 1);
  transition:
    border-color var(--motion-xs, 120ms) var(--ease-out),
    box-shadow var(--motion-xs, 120ms) var(--ease-out),
    background var(--motion-xs, 120ms) var(--ease-out);
}
.input-premium:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(15, 23, 42, 0.16);
}
.input-premium:focus {
  border-color: #1A9FB5;
  border-color: var(--brand-500, #1A9FB5);
  box-shadow: 0 0 0 4px rgba(12, 130, 152, 0.12), 0 1px 2px rgba(12, 130, 152, 0.2);
  background: #FFFFFF;
}
.input-premium::placeholder {
  color: #64748B;
  color: var(--text-aaa-soft, #64748B);
}

/* #250 — Scrollbar custom 8px premium light */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(15, 23, 42, 0.18) transparent;
}
*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
*::-webkit-scrollbar-track {
  background: transparent;
}
*::-webkit-scrollbar-thumb {
  background: rgba(15, 23, 42, 0.18);
  border-radius: 4px;
  -webkit-transition: background 200ms ease;
  transition: background 200ms ease;
}
*::-webkit-scrollbar-thumb:hover {
  background: rgba(12, 130, 152, 0.5);
}

/* #320 — .count-up utility class baseline */
.count-up {
  font-variant-numeric: tabular-nums slashed-zero;
  font-feature-settings: "tnum", "lnum", "ss02", tabular-nums slashed-zero;
}

/* #115 — Disabled state standardisé */
:where(button, [role="button"], input, textarea, select)[disabled],
:where(button, [role="button"], input, textarea, select):disabled {
  cursor: not-allowed;
  opacity: 0.5;
  filter: saturate(0.7);
}



/**
 * Così Premium Animations
 * ==========================
 * Micro-interactions et animations pour une expérience "bijou d'orfèvre"
 * Swiss Private Banking Aesthetic
 */

/* ===========================================
   1. PREMIUM CARD ANIMATIONS
   =========================================== */

/* Card hover lift effect */
.premium-card {
  transition: 
    transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 300ms ease,
    border-color 200ms ease;
}

.premium-card:hover {
  transform: translateY(-2px) scale(1.005);
  box-shadow: 
    0 12px 24px -8px rgba(0, 0, 0, 0.12),
    0 8px 16px -8px rgba(0, 0, 0, 0.08);
}

.premium-card:active {
  transform: translateY(0) scale(0.995);
  transition-duration: 100ms;
}

/* Card with glow border on hover */
.premium-card-glow {
  position: relative;
  transition: opacity 300ms ease, transform 300ms ease;
}

.premium-card-glow::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    transparent 0%,
    var(--color-accent-gold) 50%,
    transparent 100%
  );
  opacity: 0;
  transition: opacity 400ms ease;
  -webkit-mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.premium-card-glow:hover::before {
  opacity: 1;
}

/* ===========================================
   2. BUTTON MICRO-ANIMATIONS
   =========================================== */

/* Premium button with shine effect */
.btn-premium {
  position: relative;
  overflow: hidden;
  transition: 
    transform 200ms ease,
    box-shadow 200ms ease,
    background-color 200ms ease;
}

.btn-premium::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -100%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.2),
    transparent
  );
  transform: skewX(-25deg);
  transition: left 500ms ease;
  pointer-events: none;
}

.btn-premium:hover::after {
  left: 100%;
}

.btn-premium:hover {
  transform: translateY(-1px);
  box-shadow: 
    0 4px 12px -2px var(--color-accent-gold-soft),
    0 0 0 1px var(--color-accent-gold);
}

.btn-premium:active {
  transform: translateY(0) scale(0.98);
}

/* Icon button pulse */
.btn-icon-pulse {
  transition: opacity 200ms ease, transform 200ms ease;
}

.btn-icon-pulse:hover {
  transform: scale(1.1);
}

.btn-icon-pulse:active {
  transform: scale(0.95);
}

/* ===========================================
   3. KPI CARD ANIMATIONS
   =========================================== */

/* Animated number counter */
@keyframes countUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.kpi-value-animate {
  animation: countUp 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* KPI icon pulse on hover */
.kpi-icon-container {
  transition: opacity 300ms cubic-bezier(0.34, 1.56, 0.64, 1), transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.kpi-card:hover .kpi-icon-container {
  transform: scale(1.15) rotate(5deg);
}

/* Trend indicator animation */
@keyframes trendBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

.kpi-trend {
  animation: trendBounce 2s ease-in-out infinite;
}

/* ===========================================
   4. LIST ITEM ANIMATIONS
   =========================================== */

/* Staggered fade in */
@keyframes fadeInStagger {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.list-item-animate {
  animation: fadeInStagger 400ms ease forwards;
  opacity: 0;
}

.list-item-animate:nth-child(1) { animation-delay: 0ms; }
.list-item-animate:nth-child(2) { animation-delay: 50ms; }
.list-item-animate:nth-child(3) { animation-delay: 100ms; }
.list-item-animate:nth-child(4) { animation-delay: 150ms; }
.list-item-animate:nth-child(5) { animation-delay: 200ms; }

/* List item hover */
.list-item-premium {
  transition: 
    background-color 200ms ease,
    transform 200ms ease,
    box-shadow 200ms ease;
  cursor: pointer;
}

.list-item-premium:hover {
  background-color: var(--color-bg-subtle);
  transform: translateX(4px);
  box-shadow: -4px 0 0 var(--color-accent-gold);
}

/* ===========================================
   5. PROGRESS ANIMATIONS
   =========================================== */

/* Circular progress animation */
@keyframes progressRing {
  from {
    stroke-dashoffset: 276.46; /* 2 * PI * 44 */
  }
}

.progress-ring-animate {
  animation: progressRing 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Pulse glow for progress */
@keyframes progressGlow {
  0%, 100% {
    filter: drop-shadow(0 0 2px var(--color-action-primary));
  }
  50% {
    filter: drop-shadow(0 0 8px var(--color-action-primary));
  }
}

.progress-glow {
  animation: progressGlow 2s ease-in-out infinite;
}

/* ===========================================
   6. CHART ANIMATIONS
   =========================================== */

/* Bar chart grow animation */
@keyframes barGrow {
  from {
    transform: scaleY(0);
    opacity: 0;
  }
  to {
    transform: scaleY(1);
    opacity: 1;
  }
}

.bar-animate {
  transform-origin: bottom;
  animation: barGrow 600ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.bar-animate:nth-child(1) { animation-delay: 0ms; }
.bar-animate:nth-child(2) { animation-delay: 100ms; }
.bar-animate:nth-child(3) { animation-delay: 200ms; }
.bar-animate:nth-child(4) { animation-delay: 300ms; }
.bar-animate:nth-child(5) { animation-delay: 400ms; }
.bar-animate:nth-child(6) { animation-delay: 500ms; }

/* Bar hover effect */
.bar-premium {
  transition: 
    transform 200ms ease,
    filter 200ms ease;
}

.bar-premium:hover {
  transform: scaleY(1.05);
  filter: brightness(1.1);
}

/* ===========================================
   7. TABLE ANIMATIONS
   =========================================== */

/* Row hover slide */
.table-row-premium {
  transition: 
    background-color 200ms ease,
    transform 200ms ease;
}

.table-row-premium:hover {
  background-color: var(--color-table-row-hover);
  transform: scale(1.002);
}

/* Selected row glow */
.table-row-selected {
  background-color: var(--color-table-row-selected);
  box-shadow: inset 3px 0 0 var(--color-action-primary);
}

/* ===========================================
   8. BADGE ANIMATIONS
   =========================================== */

/* Badge pulse for notifications */
@keyframes badgePulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}

.badge-pulse {
  animation: badgePulse 2s ease-in-out infinite;
}

/* Badge count animation */
@keyframes badgeCount {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.badge-count-animate {
  animation: badgeCount 400ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* ===========================================
   9. SIDEBAR ANIMATIONS
   =========================================== */

/* Nav item hover */
.nav-item-premium {
  position: relative;
  transition: 
    background-color 200ms ease,
    color 200ms ease,
    transform 200ms ease;
}

.nav-item-premium::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) scaleY(0);
  width: 3px;
  height: 60%;
  background: var(--color-accent-gold);
  border-radius: 0 4px 4px 0;
  transition: transform 200ms ease;
}

.nav-item-premium:hover::before,
.nav-item-premium.active::before {
  transform: translateY(-50%) scaleY(1);
}

.nav-item-premium:hover {
  background-color: var(--color-nav-item-hover);
  transform: translateX(2px);
}

/* ===========================================
   10. MODAL ANIMATIONS
   =========================================== */

/* Modal backdrop blur */
@keyframes backdropIn {
  from {
    -webkit-backdrop-filter: blur(0);
            backdrop-filter: blur(0);
    opacity: 0;
  }
  to {
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
    opacity: 1;
  }
}

.modal-backdrop-animate {
  animation: backdropIn 300ms ease forwards;
}

/* Modal content slide up */
@keyframes modalSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.modal-content-animate {
  animation: modalSlideUp 400ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* ===========================================
   11. SKELETON LOADING
   =========================================== */

@keyframes skeletonShimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.skeleton-premium {
  background: linear-gradient(
    90deg,
    var(--color-bg-subtle) 0%,
    var(--color-bg-muted) 50%,
    var(--color-bg-subtle) 100%
  );
  background-size: 200% 100%;
  animation: skeletonShimmer 1.5s ease-in-out infinite;
  border-radius: var(--radius-card);
}

/* ===========================================
   12. TOOLTIP ANIMATIONS
   =========================================== */

@keyframes tooltipIn {
  from {
    opacity: 0;
    transform: translateY(4px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.tooltip-animate {
  animation: tooltipIn 200ms ease forwards;
}

/* ===========================================
   13. INPUT FOCUS ANIMATIONS
   =========================================== */

.input-premium {
  transition: 
    border-color 200ms ease,
    box-shadow 200ms ease,
    transform 200ms ease;
}

.input-premium:focus {
  transform: scale(1.01);
  box-shadow: 
    0 0 0 3px rgba(59, 130, 246, 0.2),
    0 4px 12px -4px rgba(0, 0, 0, 0.1);
  box-shadow: 
    0 0 0 3px var(--color-border-focus-soft, rgba(59, 130, 246, 0.2)),
    0 4px 12px -4px rgba(0, 0, 0, 0.1);
}

/* ===========================================
   14. NOTIFICATION DOT
   =========================================== */

@keyframes notificationPing {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

.notification-dot {
  position: relative;
}

.notification-dot::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: inherit;
  animation: notificationPing 1.5s ease-out infinite;
}

/* ===========================================
   15. PAGE TRANSITIONS
   =========================================== */

@keyframes pageIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.page-animate-in {
  animation: pageIn 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Staggered children */
.stagger-children > * {
  opacity: 0;
  animation: pageIn 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.stagger-children > *:nth-child(1) { animation-delay: 0ms; }
.stagger-children > *:nth-child(2) { animation-delay: 50ms; }
.stagger-children > *:nth-child(3) { animation-delay: 100ms; }
.stagger-children > *:nth-child(4) { animation-delay: 150ms; }
.stagger-children > *:nth-child(5) { animation-delay: 200ms; }
.stagger-children > *:nth-child(6) { animation-delay: 250ms; }
.stagger-children > *:nth-child(7) { animation-delay: 300ms; }
.stagger-children > *:nth-child(8) { animation-delay: 350ms; }

/* ===========================================
   16. HOVER REVEALS
   =========================================== */

.hover-reveal {
  opacity: 0;
  transform: translateY(4px);
  transition: 
    opacity 200ms ease,
    transform 200ms ease;
}

.hover-trigger:hover .hover-reveal {
  opacity: 1;
  transform: translateY(0);
}

/* ===========================================
   17. GOLD ACCENT UTILITIES
   =========================================== */

.gold-accent {
  color: var(--color-accent-gold);
}

.gold-gradient-text {
  background: linear-gradient(135deg, var(--color-accent-gold), #F4CF5C);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.gold-border {
  border-color: var(--color-accent-gold);
}

.gold-glow {
  box-shadow: 0 0 20px -5px var(--color-accent-gold-soft);
}


/* ===========================================
   19. COMMAND PALETTE ANIMATIONS
   =========================================== */

/* Fade in backdrop */
.animate-fade-in {
  animation: fadeIn 200ms ease-out forwards;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Scale in modal */
.animate-scale-in {
  animation: scaleIn 250ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: translate(-50%, -10px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0) scale(1);
  }
}

/* ===========================================
   20. FORM MICRO-INTERACTIONS (Rolls Royce)
   =========================================== */

/* Input focus glow */
.input-premium:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-light), 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: opacity 200ms ease, transform 200ms ease;
}

/* Validation check animation */
.validation-check {
  animation: validationPop 400ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes validationPop {
  0% { transform: scale(0) rotate(-45deg); opacity: 0; }
  50% { transform: scale(1.2) rotate(0deg); }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

/* Button ready pulse */
.btn-ready-pulse {
  animation: readyPulse 2s ease-in-out infinite;
}

@keyframes readyPulse {
  0%, 100% { box-shadow: 0 0 0 0 var(--accent-glow); }
  50% { box-shadow: 0 0 0 8px transparent; }
}

/* ===========================================
   21. SIDEBAR COLLAPSE ANIMATION
   =========================================== */

.sidebar-collapse-transition {
  transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1),
              padding 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

.sidebar-item-collapse {
  transition: opacity 250ms ease, transform 250ms ease;
  overflow: hidden;
}

.sidebar-item-collapse.collapsed {
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}

/* Tooltip for collapsed sidebar */
.sidebar-tooltip {
  position: absolute;
  left: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  padding: 6px 12px;
  background: #1F2937;
  background: var(--bg-tooltip, #1F2937);
  color: white;
  font-size: 13px;
  font-weight: 500;
  border-radius: 8px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms ease, transform 200ms ease;
  z-index: 100;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.sidebar-tooltip::before {
  content: '';
  position: absolute;
  right: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-right-color: #1F2937;
  border-right-color: var(--bg-tooltip, #1F2937);
}

.sidebar-item:hover .sidebar-tooltip {
  opacity: 1;
  visibility: visible;
}

/* ===========================================
   22. TYPOGRAPHY ENHANCEMENTS (Rolls Royce)
   =========================================== */

/* Chiffres tabulaires pour alignement parfait */
.tabular-nums {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "tnum";
}

/* Letter spacing raffiné sur titres */
.tracking-tight-premium {
  letter-spacing: -0.025em;
}

/* Labels uppercase style horlogerie suisse */
.label-swiss {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 11px;
  font-weight: 600;
}

/* Ligatures typographiques activées */
.ligatures-on {
  font-feature-settings: "liga" 1, "calt" 1;
}

/* ===========================================
   23. NOTIFICATION BADGE (Gold)
   =========================================== */

.notification-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
  color: white;
  font-size: 10px;
  font-weight: 700;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px var(--accent-glow);
  animation: badgePop 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes badgePop {
  from { transform: scale(0); }
  to { transform: scale(1); }
}

/* Alert badge (pulsing) */
.notification-badge-alert {
  animation: badgePop 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
             alertPulse 2s ease-in-out infinite 300ms;
}

@keyframes alertPulse {
  0%, 100% { box-shadow: 0 2px 8px var(--accent-glow); }
  50% { box-shadow: 0 2px 16px var(--accent-glow), 0 0 0 4px var(--accent-light); }
}


/* ===========================================
   18. RESPONSIVE MOTION
   =========================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/**
 * Così - Premium Hover & Entrance Effects
 * ===========================================
 * Effets de hover spectaculaires et fluides
 * + Animations d'entrée en cascade
 * 
 * Classes disponibles:
 * HOVER:
 * - .hover-lift : Soulève avec ombre
 * - .hover-glow : Lueur autour de l'élément
 * - .hover-shine : Effet de brillance qui traverse
 * - .hover-scale : Zoom subtil
 * - .hover-border-glow : Bordure qui s'illumine
 * - .hover-gradient-shift : Le gradient se déplace
 * 
 * ENTRANCE:
 * - .animate-cascade : Animation en cascade (utiliser avec --cascade-index)
 * - .animate-fade-up : Fade in depuis le bas
 * - .animate-fade-scale : Fade in avec scale
 * - .animate-slide-right : Slide depuis la gauche
 * - .animate-pop : Pop in effect
 */

/* ========================================
   ENTRANCE ANIMATIONS - Cascade Effect
   ======================================== */

/* Cascade animation - staggered entrance */
@keyframes cascade-in {
  0% {
    opacity: 0;
    transform: translateY(30px) scale(0.95);
    filter: blur(4px);
  }
  60% {
    opacity: 1;
    filter: blur(0px);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0px);
  }
}

.animate-cascade {
  opacity: 0;
  animation: cascade-in 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  animation-delay: calc(0 * 80ms);
  animation-delay: calc(var(--cascade-index, 0) * 80ms);
}

/* Fade up animation */
@keyframes fade-up {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-up {
  opacity: 0;
  animation: fade-up 0.5s ease-out forwards;
  animation-delay: calc(0 * 60ms);
  animation-delay: calc(var(--cascade-index, 0) * 60ms);
}

/* Fade scale animation */
@keyframes fade-scale {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.animate-fade-scale {
  opacity: 0;
  animation: fade-scale 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  animation-delay: calc(0 * 100ms);
  animation-delay: calc(var(--cascade-index, 0) * 100ms);
}

/* Slide from left animation */
@keyframes slide-right {
  0% {
    opacity: 0;
    transform: translateX(-30px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-slide-right {
  opacity: 0;
  animation: slide-right 0.5s ease-out forwards;
  animation-delay: calc(0 * 50ms);
  animation-delay: calc(var(--cascade-index, 0) * 50ms);
}

/* Pop in animation */
@keyframes pop-in {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  70% {
    transform: scale(1.05);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.animate-pop {
  opacity: 0;
  animation: pop-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  animation-delay: calc(0 * 70ms);
  animation-delay: calc(var(--cascade-index, 0) * 70ms);
}

/* Stat card specific entrance */
@keyframes stat-entrance {
  0% {
    opacity: 0;
    transform: translateY(-20px) scale(0.9);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.animate-stat-entrance {
  opacity: 0;
  animation: stat-entrance 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  animation-delay: calc(0 * 100ms + 200ms);
  animation-delay: calc(var(--cascade-index, 0) * 100ms + 200ms);
}

/* Nav item entrance */
@keyframes nav-entrance {
  0% {
    opacity: 0;
    transform: translateX(-15px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-nav-entrance {
  opacity: 0;
  animation: nav-entrance 0.4s ease-out forwards;
  animation-delay: calc(0 * 40ms + 300ms);
  animation-delay: calc(var(--cascade-index, 0) * 40ms + 300ms);
}

/* ========================================
   SHIMMER EFFECT - Skeleton Loading
   ======================================== */
@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

.animate-shimmer {
  position: relative;
  overflow: hidden;
}

.animate-shimmer::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.15),
    transparent
  );
  animation: shimmer 2s infinite;
}

:root:not(.dark) .animate-shimmer::before {
  background: linear-gradient(
    90deg,
    transparent,
    rgba(139, 92, 246, 0.1),
    transparent
  );
}

/* Pulse animation for skeleton */
@keyframes skeleton-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.skeleton-pulse {
  animation: skeleton-pulse 2s ease-in-out infinite;
}

/* ========================================
   BASE TRANSITIONS
   ======================================== */
.hover-base {
  transition: opacity 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ========================================
   LIFT EFFECT - Soulève avec ombre
   ======================================== */
.hover-lift {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 0.3s ease-out;
}

.hover-lift:hover {
  transform: translateY(-8px) scale(1.02);
}

/* Light mode shadows */
:root:not(.dark) .hover-lift:hover {
  box-shadow: 
    0 20px 40px -15px rgba(139, 92, 246, 0.3),
    0 10px 20px -10px rgba(139, 92, 246, 0.2),
    0 0 0 1px rgba(139, 92, 246, 0.1);
}

/* Dark mode shadows */
:root.dark .hover-lift:hover {
  box-shadow: 
    0 20px 40px -15px rgba(139, 92, 246, 0.4),
    0 10px 20px -10px rgba(139, 92, 246, 0.3),
    0 0 30px 0 rgba(139, 92, 246, 0.15);
}

/* ========================================
   GLOW EFFECT - Lueur autour
   ======================================== */
.hover-glow {
  position: relative;
  transition: opacity 0.4s ease, transform 0.4s ease, background-color 0.4s ease;
}

.hover-glow::before {
  content: '';
  position: absolute;
  inset: -2px;
  background: linear-gradient(135deg, 
    rgba(139, 92, 246, 0.5), 
    rgba(236, 72, 153, 0.5), 
    rgba(139, 92, 246, 0.5));
  background-size: 200% 200%;
  border-radius: inherit;
  opacity: 0;
  z-index: -1;
  transition: opacity 0.4s ease;
  filter: blur(12px);
}

.hover-glow:hover::before {
  opacity: 1;
  animation: glow-pulse 2s ease-in-out infinite;
}

@keyframes glow-pulse {
  0%, 100% { 
    background-position: 0% 50%;
    filter: blur(12px);
  }
  50% { 
    background-position: 100% 50%;
    filter: blur(16px);
  }
}

/* ========================================
   SHINE EFFECT - Brillance traversante
   ======================================== */
.hover-shine {
  position: relative;
  overflow: hidden;
}

.hover-shine::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.4),
    transparent
  );
  transform: skewX(-25deg);
  transition: left 0.6s ease;
}

:root.dark .hover-shine::after {
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.15),
    transparent
  );
}

.hover-shine:hover::after {
  left: 150%;
}

/* ========================================
   SCALE EFFECT - Zoom subtil
   ======================================== */
.hover-scale {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.hover-scale:hover {
  transform: scale(1.05);
}

/* ========================================
   BORDER GLOW - Bordure illuminée
   ======================================== */
.hover-border-glow {
  position: relative;
  transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}

.hover-border-glow::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: linear-gradient(135deg, 
    rgba(139, 92, 246, 0) 0%,
    rgba(139, 92, 246, 0) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s ease, transform 0.4s ease, background-color 0.4s ease;
}

.hover-border-glow:hover::before {
  opacity: 1;
  background: linear-gradient(135deg, 
    rgba(139, 92, 246, 1) 0%,
    rgba(236, 72, 153, 1) 50%,
    rgba(139, 92, 246, 1) 100%);
  animation: border-rotate 3s linear infinite;
}

@keyframes border-rotate {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ========================================
   GRADIENT SHIFT - Gradient animé
   ======================================== */
.hover-gradient-shift {
  background-size: 200% 200%;
  transition: opacity 0.4s ease, transform 0.4s ease, background-color 0.4s ease;
}

.hover-gradient-shift:hover {
  background-position: 100% 100%;
}

/* ========================================
   CARD PREMIUM HOVER - Combinaison
   ======================================== */
.card-hover-premium {
  position: relative;
  transition: opacity 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: hidden;
}

.card-hover-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(139, 92, 246, 0.1) 0%,
    rgba(236, 72, 153, 0.1) 50%,
    rgba(6, 182, 212, 0.1) 100%
  );
  opacity: 0;
  transition: opacity 0.4s ease;
}

.card-hover-premium:hover {
  transform: translateY(-6px) scale(1.01);
}

.card-hover-premium:hover::before {
  opacity: 1;
}

/* Light mode specific */
:root:not(.dark) .card-hover-premium:hover {
  box-shadow: 
    0 25px 50px -12px rgba(139, 92, 246, 0.25),
    0 0 0 1px rgba(139, 92, 246, 0.1);
  border-color: rgba(139, 92, 246, 0.3);
}

/* Dark mode specific */
:root.dark .card-hover-premium:hover {
  box-shadow: 
    0 25px 50px -12px rgba(139, 92, 246, 0.4),
    0 0 40px 0 rgba(139, 92, 246, 0.1);
  border-color: rgba(139, 92, 246, 0.4);
}

/* ========================================
   NAV ITEM HOVER - Navigation sidebar
   ======================================== */
.nav-item-hover {
  position: relative;
  transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: hidden;
}

.nav-item-hover::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 0;
  background: linear-gradient(180deg, 
    rgba(139, 92, 246, 1) 0%,
    rgba(236, 72, 153, 1) 100%);
  border-radius: 0 4px 4px 0;
  transition: height 0.3s ease;
}

.nav-item-hover::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(139, 92, 246, 0.15) 0%,
    transparent 100%
  );
  opacity: 0;
  transition: opacity 0.3s ease;
}

.nav-item-hover:hover {
  transform: translateX(4px);
}

.nav-item-hover:hover::before {
  height: 60%;
}

.nav-item-hover:hover::after {
  opacity: 1;
}

/* Active state */
.nav-item-hover.active::before {
  height: 80%;
  background: linear-gradient(180deg, 
    rgba(139, 92, 246, 1) 0%,
    rgba(236, 72, 153, 1) 100%);
}

.nav-item-hover.active::after {
  opacity: 1;
  background: linear-gradient(
    90deg,
    rgba(139, 92, 246, 0.2) 0%,
    transparent 100%
  );
}

/* ========================================
   BUTTON HOVER - Boutons premium
   ======================================== */
.btn-hover-premium {
  position: relative;
  overflow: hidden;
  transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.btn-hover-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2) 0%,
    transparent 50%,
    rgba(255, 255, 255, 0.1) 100%
  );
  opacity: 0;
  transition: opacity 0.3s ease;
}

.btn-hover-premium:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 10px 30px -10px currentColor;
}

.btn-hover-premium:hover::before {
  opacity: 1;
}

.btn-hover-premium:active {
  transform: translateY(0) scale(0.98);
}

/* ========================================
   STAT CARD HOVER - Cartes statistiques
   ======================================== */
.stat-card-hover {
  position: relative;
  transition: opacity 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.stat-card-hover::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #8B5CF6, #EC4899);
  background: var(--stat-gradient, linear-gradient(90deg, #8B5CF6, #EC4899));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  border-radius: 4px 4px 0 0;
}

.stat-card-hover:hover {
  transform: translateY(-8px);
}

:root:not(.dark) .stat-card-hover:hover {
  box-shadow: 
    0 20px 40px -15px rgba(139, 92, 246, 0.3),
    0 0 0 1px rgba(139, 92, 246, 0.1);
}

:root.dark .stat-card-hover:hover {
  box-shadow: 
    0 20px 40px -15px rgba(139, 92, 246, 0.4),
    0 0 30px 0 rgba(139, 92, 246, 0.15);
}

.stat-card-hover:hover::before {
  transform: scaleX(1);
}

/* ========================================
   EMPLOYEE CARD HOVER - Fiches employés
   ======================================== */
.employee-card-hover {
  position: relative;
  transition: opacity 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: hidden;
}

.employee-card-hover::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #8B5CF6 0%, #EC4899 100%);
  transform: scaleY(0.5);
  transform-origin: center;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.employee-card-hover::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(139, 92, 246, 0.05) 0%,
    rgba(236, 72, 153, 0.05) 100%
  );
  opacity: 0;
  transition: opacity 0.4s ease;
}

.employee-card-hover:hover {
  transform: translateY(-6px) translateX(4px);
}

.employee-card-hover:hover::before {
  transform: scaleY(1);
}

.employee-card-hover:hover::after {
  opacity: 1;
}

:root:not(.dark) .employee-card-hover:hover {
  box-shadow: 
    0 20px 40px -12px rgba(139, 92, 246, 0.25),
    -4px 0 20px -8px rgba(139, 92, 246, 0.15);
}

:root.dark .employee-card-hover:hover {
  box-shadow: 
    0 20px 40px -12px rgba(139, 92, 246, 0.35),
    -4px 0 30px -8px rgba(139, 92, 246, 0.2),
    0 0 30px 0 rgba(139, 92, 246, 0.1);
}

/* ========================================
   ICON HOVER - Icônes interactives
   ======================================== */
.icon-hover-bounce {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.icon-hover-bounce:hover {
  transform: scale(1.2) rotate(5deg);
}

.icon-hover-spin:hover {
  animation: icon-spin 0.6s ease;
}

@keyframes icon-spin {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg) scale(1.1); }
  100% { transform: rotate(360deg); }
}

/* ========================================
   RIPPLE EFFECT - Effet d'ondulation
   ======================================== */
.hover-ripple {
  position: relative;
  overflow: hidden;
}

.hover-ripple::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: radial-gradient(circle, rgba(139, 92, 246, 0.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
}

.hover-ripple:hover::after {
  width: 300%;
  height: 300%;
}


/* Accessibility: Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/**
 * Così Design System - ULTRA PREMIUM 2026
 * ============================================
 * 
 * Direction artistique : Ultra Banque Privée Suisse + Ultra Moderne + Ultra Innovant
 * 
 * PRINCIPE FONDAMENTAL :
 * - AUCUNE valeur de couleur hardcodée dans les composants
 * - TOUTES les couleurs passent par ces variables
 * - Le thème (light/dark/custom) change uniquement ces variables
 * - Les composants utilisent UNIQUEMENT var(--xxx)
 * 
 * Identité visuelle :
 * - Or (var(--color-premium-gold, #D4AF37)) : Accent signature, luxe, confiance
 * - Deep Navy : Profondeur, sophistication
 * - Glassmorphism : Modernité, innovation
 * - Typographie mixte : Playfair (élégance) + Jakarta (clarté) + JetBrains (données)
 */

/* ===========================================
   RESET - Supprime les styles par défaut
   =========================================== */
*, *::before, *::after {
  box-sizing: border-box;
}

/* ===========================================
   VARIABLES SÉMANTIQUES - MODE CLAIR (DÉFAUT)
   =========================================== */
:root {
  /* ----- BACKGROUNDS ----- */
  --color-bg-primary: #F8FAFC;
  --color-bg-secondary: #FFFFFF;
  --color-bg-tertiary: #F1F5F9;
  --color-bg-elevated: #FFFFFF;
  --color-bg-hover: #F8FAFC;
  --color-bg-active: #F1F5F9;
  --color-bg-overlay: rgba(15, 23, 42, 0.6);
  --color-bg-glass: rgba(255, 255, 255, 0.7);
  
  /* ----- SURFACES (Cards, Panels) ----- */
  --color-surface: #FFFFFF;
  --color-surface-hover: #FAFAFA;
  --color-surface-active: #F5F5F5;
  --color-surface-elevated: #FFFFFF;
  --color-surface-glass: rgba(255, 255, 255, 0.8);
  
  /* ----- TEXT ----- */
  --color-text-primary: #0F172A;
  --color-text-secondary: #475569;
  --color-text-tertiary: #64748B;
  --color-text-muted: #94A3B8;
  --color-text-inverted: #FFFFFF;
  
  /* ----- BORDERS ----- */
  --color-border-light: #E2E8F0;
  --color-border-default: #CBD5E1;
  --color-border-strong: #94A3B8;
  --color-border-focus: var(--color-premium-gold, #D4AF37);
  --color-border-glass: rgba(255, 255, 255, 0.2);
  
  /* ----- ACCENT PRIMAIRE (Swiss Gold - Signature) ----- */
  --color-accent-primary: var(--color-premium-gold, #D4AF37);
  --color-accent-primary-hover: #C9A227;
  --color-accent-primary-light: #FEF3C7;
  --color-accent-primary-dark: #92400E;
  --color-accent-primary-glow: rgba(212, 175, 55, 0.15);
  
  /* ----- ACCENT SECONDAIRE (Deep Navy) ----- */
  --color-accent-secondary: #0F172A;
  --color-accent-secondary-hover: #1E293B;
  --color-accent-secondary-light: #E2E8F0;
  
  /* ----- STATUTS ----- */
  --color-success: #059669;
  --color-success-light: #D1FAE5;
  --color-success-dark: #047857;
  
  --color-warning: #D97706;
  --color-warning-light: #FEF3C7;
  --color-warning-dark: #B45309;
  
  --color-error: #DC2626;
  --color-error-light: #FEE2E2;
  --color-error-dark: #B91C1C;
  
  --color-info: #0284C7;
  --color-info-light: #E0F2FE;
  --color-info-dark: #0369A1;
  
  /* ----- PREMIUM GRADIENTS ----- */
  --gradient-gold: linear-gradient(135deg, var(--color-premium-gold, #D4AF37) 0%, #F5D76E 50%, var(--color-premium-gold, #D4AF37) 100%);
  --gradient-gold-subtle: linear-gradient(135deg, rgba(212, 175, 55, 0.1) 0%, rgba(212, 175, 55, 0.05) 100%);
  --gradient-dark: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
  --gradient-surface: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 100%);
  --gradient-mesh: radial-gradient(at 40% 20%, rgba(212, 175, 55, 0.08) 0px, transparent 50%),
                   radial-gradient(at 80% 0%, rgba(15, 23, 42, 0.05) 0px, transparent 50%),
                   radial-gradient(at 0% 50%, rgba(212, 175, 55, 0.05) 0px, transparent 50%);
  
  /* ----- SHADOWS ----- */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.08), 0 10px 10px -5px rgba(0, 0, 0, 0.02);
  --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
  --shadow-gold: 0 4px 20px -3px rgba(212, 175, 55, 0.25);
  --shadow-gold-lg: 0 10px 40px -10px rgba(212, 175, 55, 0.35);
  --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.04);
  --shadow-glow: 0 0 40px rgba(212, 175, 55, 0.15);
  
  /* ----- TYPOGRAPHY ----- */
  --font-family-heading: 'Inter', Georgia, serif;
  --font-family-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-family-mono: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
  
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;
  --font-size-4xl: 2.25rem;
  --font-size-5xl: 3rem;
  --font-size-6xl: 3.75rem;
  --font-size-7xl: 4.5rem;
  
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  
  --line-height-tight: 1.1;
  --line-height-snug: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;
  
  --letter-spacing-tighter: -0.05em;
  --letter-spacing-tight: -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.025em;
  --letter-spacing-wider: 0.05em;
  --letter-spacing-widest: 0.15em;
  
  /* ----- SPACING ----- */
  --spacing-0: 0;
  --spacing-1: 0.25rem;
  --spacing-2: 0.5rem;
  --spacing-3: 0.75rem;
  --spacing-4: 1rem;
  --spacing-5: 1.25rem;
  --spacing-6: 1.5rem;
  --spacing-8: 2rem;
  --spacing-10: 2.5rem;
  --spacing-12: 3rem;
  --spacing-16: 4rem;
  --spacing-20: 5rem;
  --spacing-24: 6rem;
  --spacing-32: 8rem;
  
  /* ----- BORDER RADIUS ----- */
  --radius-none: 0;
  --radius-sm: 0.125rem;
  --radius-default: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;
  --radius-2xl: 1rem;
  --radius-3xl: 1.5rem;
  --radius-4xl: 2rem;
  --radius-full: 9999px;
  
  /* ----- TRANSITIONS ----- */
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slower: 500ms cubic-bezier(0.16, 1, 0.3, 1);
  --transition-cinematic: 700ms cubic-bezier(0.16, 1, 0.3, 1);
  
  /* ----- BLUR / GLASS ----- */
  --blur-sm: 4px;
  --blur-md: 8px;
  --blur-lg: 16px;
  --blur-xl: 24px;
  --blur-2xl: 40px;
  
  /* ----- Z-INDEX ----- */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
  --z-notification: 1080;
  
  /* ----- COMPONENT SPECIFIC ----- */
  --sidebar-width: 17rem;
  --sidebar-width-collapsed: 4.5rem;
  --header-height: 4.5rem;
  --input-height: 3rem;
  --button-height: 2.75rem;
}

/* ===========================================
   MODE SOMBRE - ULTRA PREMIUM DARK
   Style "Swiss Private Vault" 
   =========================================== */
.dark {
  /* ----- BACKGROUNDS ----- */
  --color-bg-primary: #030712;
  --color-bg-secondary: #0F172A;
  --color-bg-tertiary: #1E293B;
  --color-bg-elevated: #1E293B;
  --color-bg-hover: #1E293B;
  --color-bg-active: #334155;
  --color-bg-overlay: rgba(0, 0, 0, 0.8);
  --color-bg-glass: rgba(15, 23, 42, 0.8);
  
  /* ----- SURFACES ----- */
  --color-surface: #0F172A;
  --color-surface-hover: #1E293B;
  --color-surface-active: #334155;
  --color-surface-elevated: #1E293B;
  --color-surface-glass: rgba(30, 41, 59, 0.7);
  
  /* ----- TEXT ----- */
  --color-text-primary: #F8FAFC;
  --color-text-secondary: #E2E8F0;
  --color-text-tertiary: #CBD5E1;
  --color-text-muted: #94A3B8;
  --color-text-inverted: #0F172A;
  
  /* ----- BORDERS ----- */
  --color-border-light: #1E293B;
  --color-border-default: #334155;
  --color-border-strong: #475569;
  --color-border-focus: var(--color-premium-gold, #D4AF37);
  --color-border-glass: rgba(255, 255, 255, 0.1);
  
  /* ----- ACCENT PRIMAIRE (Gold) ----- */
  --color-accent-primary: var(--color-premium-gold, #D4AF37);
  --color-accent-primary-hover: #E5C158;
  --color-accent-primary-light: rgba(212, 175, 55, 0.15);
  --color-accent-primary-dark: #FCD34D;
  --color-accent-primary-glow: rgba(212, 175, 55, 0.25);
  
  /* ----- ACCENT SECONDAIRE ----- */
  --color-accent-secondary: #F8FAFC;
  --color-accent-secondary-hover: #E2E8F0;
  --color-accent-secondary-light: #1E293B;
  
  /* ----- STATUTS (ajustés pour dark) ----- */
  --color-success: #10B981;
  --color-success-light: rgba(16, 185, 129, 0.15);
  --color-success-dark: #34D399;
  
  --color-warning: #F59E0B;
  --color-warning-light: rgba(245, 158, 11, 0.15);
  --color-warning-dark: #FBBF24;
  
  --color-error: #EF4444;
  --color-error-light: rgba(239, 68, 68, 0.15);
  --color-error-dark: #F87171;
  
  --color-info: #0EA5E9;
  --color-info-light: rgba(14, 165, 233, 0.15);
  --color-info-dark: #38BDF8;
  
  /* ----- PREMIUM GRADIENTS (Dark) ----- */
  --gradient-gold: linear-gradient(135deg, var(--color-premium-gold, #D4AF37) 0%, #F5D76E 50%, var(--color-premium-gold, #D4AF37) 100%);
  --gradient-gold-subtle: linear-gradient(135deg, rgba(212, 175, 55, 0.15) 0%, rgba(212, 175, 55, 0.05) 100%);
  --gradient-dark: linear-gradient(135deg, #0F172A 0%, #020617 100%);
  --gradient-surface: linear-gradient(180deg, rgba(15,23,42,0) 0%, rgba(15,23,42,0.9) 100%);
  --gradient-mesh: radial-gradient(at 40% 20%, rgba(212, 175, 55, 0.12) 0px, transparent 50%),
                   radial-gradient(at 80% 0%, rgba(59, 130, 246, 0.08) 0px, transparent 50%),
                   radial-gradient(at 0% 50%, rgba(212, 175, 55, 0.08) 0px, transparent 50%);
  
  /* ----- SHADOWS (plus prononcées en dark) ----- */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.5);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5);
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.5);
  --shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.6);
  --shadow-gold: 0 4px 25px rgba(212, 175, 55, 0.3);
  --shadow-gold-lg: 0 10px 50px rgba(212, 175, 55, 0.4);
  --shadow-glow: 0 0 60px rgba(212, 175, 55, 0.2);
}

/* ===========================================
   STYLES DE BASE - ULTRA PREMIUM
   =========================================== */
html {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-family: var(--font-family-body);
  font-size: 16px;
  line-height: 1.5;
  line-height: var(--line-height-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  background-color: #F8FAFC;
  background-color: var(--color-bg-primary);
  color: #0F172A;
  color: var(--color-text-primary);
  transition: background-color 300ms cubic-bezier(0.4, 0, 0.2, 1), color 300ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: background-color var(--transition-slow), color var(--transition-slow);
  background-image: radial-gradient(at 40% 20%, rgba(212, 175, 55, 0.08) 0px, transparent 50%),
                   radial-gradient(at 80% 0%, rgba(15, 23, 42, 0.05) 0px, transparent 50%),
                   radial-gradient(at 0% 50%, rgba(212, 175, 55, 0.05) 0px, transparent 50%);
  background-image: var(--gradient-mesh);
  background-attachment: fixed;
}

/* ===========================================
   TYPOGRAPHY PREMIUM
   =========================================== */
   
/* Headings avec Playfair Display */
.heading-display {
  font-family: 'Inter', Georgia, serif;
  font-family: var(--font-family-heading);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  line-height: 1.1;
  line-height: var(--line-height-tight);
  letter-spacing: -0.025em;
  letter-spacing: var(--letter-spacing-tight);
  color: #0F172A;
  color: var(--color-text-primary);
}

.heading-display-italic {
  font-family: 'Inter', Georgia, serif;
  font-family: var(--font-family-heading);
  font-style: italic;
  font-weight: 600;
  font-weight: var(--font-weight-semibold);
}

/* Section labels - Premium style */
.section-label {
  font-size: 0.75rem;
  font-size: var(--font-size-xs);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  letter-spacing: var(--letter-spacing-widest);
  color: #94A3B8;
  color: var(--color-text-muted);
}

/* Données financières en mono */
.data-value {
  font-family: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
  font-family: var(--font-family-mono);
  font-weight: 600;
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.025em;
  letter-spacing: var(--letter-spacing-tight);
  font-feature-settings: "tnum" 1;
}

/* ===========================================
   GLASSMORPHISM COMPONENTS
   =========================================== */

.glass {
  background: rgba(255, 255, 255, 0.8);
  background: var(--color-surface-glass);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--blur-xl));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--blur-xl));
  border: 1px solid rgba(255, 255, 255, 0.2);
  border: 1px solid var(--color-border-glass);
}

.glass-subtle {
  background: rgba(255, 255, 255, 0.7);
  background: var(--color-bg-glass);
  backdrop-filter: blur(8px);
  backdrop-filter: blur(var(--blur-md));
  -webkit-backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(var(--blur-md));
  border: 1px solid rgba(255, 255, 255, 0.2);
  border: 1px solid var(--color-border-glass);
}

.glass-card {
  background: rgba(255, 255, 255, 0.8);
  background: var(--color-surface-glass);
  backdrop-filter: blur(40px);
  backdrop-filter: blur(var(--blur-2xl));
  -webkit-backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(var(--blur-2xl));
  border: 1px solid rgba(255, 255, 255, 0.2);
  border: 1px solid var(--color-border-glass);
  border-radius: 1rem;
  border-radius: var(--radius-2xl);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  box-shadow: var(--shadow-lg);
}

/* ===========================================
   COMPOSANTS DE BASE - PREMIUM
   =========================================== */

/* ----- Cards ----- */
.card {
  background-color: #FFFFFF;
  background-color: var(--color-surface);
  border: 1px solid #E2E8F0;
  border: 1px solid var(--color-border-light);
  border-radius: 1rem;
  border-radius: var(--radius-2xl);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
  box-shadow: var(--shadow-sm);
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1), transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity var(--transition-slower), transform var(--transition-slower);
}

.card:hover {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  box-shadow: var(--shadow-lg);
  border-color: #CBD5E1;
  border-color: var(--color-border-default);
  transform: translateY(-2px);
}

.card-elevated {
  background-color: #FFFFFF;
  background-color: var(--color-surface-elevated);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.08), 0 10px 10px -5px rgba(0, 0, 0, 0.02);
  box-shadow: var(--shadow-xl);
}

.card-premium {
  background-color: #FFFFFF;
  background-color: var(--color-surface);
  border: 1px solid #E2E8F0;
  border: 1px solid var(--color-border-light);
  border-radius: 1rem;
  border-radius: var(--radius-2xl);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
}

.card-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(135deg, #D4AF37 0%, #F5D76E 50%, #D4AF37 100%);
  background: var(--gradient-gold);
}

.card-premium:hover {
  box-shadow: 0 4px 20px -3px rgba(212, 175, 55, 0.25);
  box-shadow: var(--shadow-gold);
  border-color: #D4AF37;
  border-color: var(--color-accent-primary);
}

/* ----- Buttons ----- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  gap: var(--spacing-2);
  height: 2.75rem;
  height: var(--button-height);
  padding: 0 1.5rem;
  padding: 0 var(--spacing-6);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-family: var(--font-family-body);
  font-size: 0.875rem;
  font-size: var(--font-size-sm);
  font-weight: 600;
  font-weight: var(--font-weight-semibold);
  border-radius: 0.75rem;
  border-radius: var(--radius-xl);
  border: none;
  cursor: pointer;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--transition-base), transform var(--transition-base);
  position: relative;
  overflow: hidden;
}

.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, transparent, rgba(255,255,255,0.1), transparent);
  transform: translateX(-100%);
  transition: transform 0.5s;
}

.btn:hover::after {
  transform: translateX(100%);
}

.btn-primary {
  background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
  background: var(--gradient-dark);
  color: #FFFFFF;
  color: var(--color-text-inverted);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
  box-shadow: var(--shadow-md);
}

.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  box-shadow: var(--shadow-lg);
}

.btn-gold {
  background: linear-gradient(135deg, #D4AF37 0%, #F5D76E 50%, #D4AF37 100%);
  background: var(--gradient-gold);
  color: #FFFFFF;
  color: var(--color-text-inverted);
  box-shadow: 0 4px 20px -3px rgba(212, 175, 55, 0.25);
  box-shadow: var(--shadow-gold);
  text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

.btn-gold:hover {
  box-shadow: 0 10px 40px -10px rgba(212, 175, 55, 0.35);
  box-shadow: var(--shadow-gold-lg);
  transform: translateY(-2px);
}

.btn-outline {
  background-color: transparent;
  border: 1.5px solid #CBD5E1;
  border: 1.5px solid var(--color-border-default);
  color: #0F172A;
  color: var(--color-text-primary);
}

.btn-outline:hover {
  background-color: #F8FAFC;
  background-color: var(--color-bg-hover);
  border-color: #D4AF37;
  border-color: var(--color-accent-primary);
  color: #D4AF37;
  color: var(--color-accent-primary);
}

.btn-ghost {
  background: transparent;
  color: #475569;
  color: var(--color-text-secondary);
}

.btn-ghost:hover {
  background: #F8FAFC;
  background: var(--color-bg-hover);
  color: #0F172A;
  color: var(--color-text-primary);
}

/* ----- Inputs Premium ----- */
.input {
  width: 100%;
  height: 3rem;
  height: var(--input-height);
  padding: 0 1rem;
  padding: 0 var(--spacing-4);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-family: var(--font-family-body);
  font-size: 1rem;
  font-size: var(--font-size-base);
  background-color: #FFFFFF;
  background-color: var(--color-bg-secondary);
  border: 1.5px solid #E2E8F0;
  border: 1.5px solid var(--color-border-light);
  border-radius: 0.75rem;
  border-radius: var(--radius-xl);
  color: #0F172A;
  color: var(--color-text-primary);
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.input::placeholder {
  color: #94A3B8;
  color: var(--color-text-muted);
}

.input:focus {
  outline: none;
  border-color: #D4AF37;
  border-color: var(--color-accent-primary);
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
  box-shadow: 0 0 0 3px var(--color-accent-primary-glow);
}

/* Input style "underline" - Minimal style */
.input-underline {
  width: 100%;
  padding: 0.75rem 0;
  padding: var(--spacing-3) 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-family: var(--font-family-body);
  font-size: 1.125rem;
  font-size: var(--font-size-lg);
  background: transparent;
  border: none;
  border-bottom: 2px solid #E2E8F0;
  border-bottom: 2px solid var(--color-border-light);
  border-radius: 0;
  color: #0F172A;
  color: var(--color-text-primary);
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.input-underline:focus {
  outline: none;
  border-bottom-color: #D4AF37;
  border-bottom-color: var(--color-accent-primary);
}

.input-underline::placeholder {
  color: #94A3B8;
  color: var(--color-text-muted);
}

/* ----- Sidebar Premium ----- */
.sidebar {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 17rem;
  width: var(--sidebar-width);
  background: rgba(255, 255, 255, 0.8);
  background: var(--color-surface-glass);
  backdrop-filter: blur(40px);
  backdrop-filter: blur(var(--blur-2xl));
  -webkit-backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(var(--blur-2xl));
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  border-right: 1px solid var(--color-border-glass);
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1), transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity var(--transition-slower), transform var(--transition-slower);
  z-index: 1030;
  z-index: var(--z-fixed);
}

.sidebar-dark {
  background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
  background: var(--gradient-dark);
  border-right: 1px solid #E2E8F0;
  border-right: 1px solid var(--color-border-light);
}

/* ----- Header Premium ----- */
.header {
  position: fixed;
  top: 0;
  left: 17rem;
  left: var(--sidebar-width);
  right: 0;
  height: 4.5rem;
  height: var(--header-height);
  background: rgba(255, 255, 255, 0.8);
  background: var(--color-surface-glass);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--blur-xl));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--blur-xl));
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid var(--color-border-glass);
  z-index: 1020;
  z-index: var(--z-sticky);
  transition: left 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: left var(--transition-slower);
}

/* ----- Main Content ----- */
.main-content {
  margin-left: 17rem;
  margin-left: var(--sidebar-width);
  padding-top: 4.5rem;
  padding-top: var(--header-height);
  min-height: 100vh;
  background-color: #F8FAFC;
  background-color: var(--color-bg-primary);
  transition: margin-left 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: margin-left var(--transition-slower);
}

/* ----- Tables Premium ----- */
.table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.table th {
  padding: 1rem 1.25rem;
  padding: var(--spacing-4) var(--spacing-5);
  text-align: left;
  font-size: 0.75rem;
  font-size: var(--font-size-xs);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  letter-spacing: var(--letter-spacing-wider);
  color: #94A3B8;
  color: var(--color-text-muted);
  background-color: #F1F5F9;
  background-color: var(--color-bg-tertiary);
  border-bottom: 2px solid #D4AF37;
  border-bottom: 2px solid var(--color-accent-primary);
}

.table th:first-child {
  border-top-left-radius: 0.5rem;
  border-top-left-radius: var(--radius-lg);
}

.table th:last-child {
  border-top-right-radius: 0.5rem;
  border-top-right-radius: var(--radius-lg);
}

.table td {
  padding: 1rem 1.25rem;
  padding: var(--spacing-4) var(--spacing-5);
  font-size: 0.875rem;
  font-size: var(--font-size-sm);
  color: #475569;
  color: var(--color-text-secondary);
  border-bottom: 1px solid #E2E8F0;
  border-bottom: 1px solid var(--color-border-light);
  transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: background-color var(--transition-fast);
}

.table tr:hover td {
  background-color: #F8FAFC;
  background-color: var(--color-bg-hover);
}

.table tr:last-child td:first-child {
  border-bottom-left-radius: 0.5rem;
  border-bottom-left-radius: var(--radius-lg);
}

.table tr:last-child td:last-child {
  border-bottom-right-radius: 0.5rem;
  border-bottom-right-radius: var(--radius-lg);
}

/* ----- Badges Premium ----- */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  padding: var(--spacing-1) var(--spacing-3);
  font-size: 0.75rem;
  font-size: var(--font-size-xs);
  font-weight: 600;
  font-weight: var(--font-weight-semibold);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  letter-spacing: 0.025em;
  letter-spacing: var(--letter-spacing-wide);
}

.badge-success {
  background-color: #D1FAE5;
  background-color: var(--color-success-light);
  color: #059669;
  color: var(--color-success);
}

.badge-warning {
  background-color: #FEF3C7;
  background-color: var(--color-warning-light);
  color: #D97706;
  color: var(--color-warning);
}

.badge-error {
  background-color: #FEE2E2;
  background-color: var(--color-error-light);
  color: #DC2626;
  color: var(--color-error);
}

.badge-info {
  background-color: #E0F2FE;
  background-color: var(--color-info-light);
  color: #0284C7;
  color: var(--color-info);
}

.badge-gold {
  background: linear-gradient(135deg, #D4AF37 0%, #F5D76E 50%, #D4AF37 100%);
  background: var(--gradient-gold);
  color: #FFFFFF;
  color: var(--color-text-inverted);
  text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

/* ----- KPI Cards Premium ----- */
.kpi-card {
  background-color: #FFFFFF;
  background-color: var(--color-surface);
  border: 1px solid #E2E8F0;
  border: 1px solid var(--color-border-light);
  border-radius: 1rem;
  border-radius: var(--radius-2xl);
  padding: 2rem;
  padding: var(--spacing-8);
  position: relative;
  overflow: hidden;
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1), transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity var(--transition-slower), transform var(--transition-slower);
}

.kpi-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(135deg, #D4AF37 0%, #F5D76E 50%, #D4AF37 100%);
  background: var(--gradient-gold);
}

.kpi-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 20px -3px rgba(212, 175, 55, 0.25);
  box-shadow: var(--shadow-gold);
}

.kpi-value {
  font-family: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
  font-family: var(--font-family-mono);
  font-size: 2.25rem;
  font-size: var(--font-size-4xl);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  color: #0F172A;
  color: var(--color-text-primary);
  line-height: 1.1;
  line-height: var(--line-height-tight);
  letter-spacing: -0.025em;
  letter-spacing: var(--letter-spacing-tight);
}

.kpi-label {
  font-size: 0.75rem;
  font-size: var(--font-size-xs);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  letter-spacing: var(--letter-spacing-widest);
  color: #94A3B8;
  color: var(--color-text-muted);
  margin-top: 0.75rem;
  margin-top: var(--spacing-3);
}

/* ----- Typography Classes ----- */
.text-heading {
  font-family: 'Inter', Georgia, serif;
  font-family: var(--font-family-heading);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  color: #0F172A;
  color: var(--color-text-primary);
}

.text-body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-family: var(--font-family-body);
  color: #475569;
  color: var(--color-text-secondary);
}

.text-muted {
  color: #94A3B8;
  color: var(--color-text-muted);
}

.text-accent {
  color: #D4AF37;
  color: var(--color-accent-primary);
}

/* ----- Scrollbar ----- */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #F1F5F9;
  background: var(--color-bg-tertiary);
}

::-webkit-scrollbar-thumb {
  background: #CBD5E1;
  background: var(--color-border-default);
  border-radius: 9999px;
  border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb:hover {
  background: #94A3B8;
  background: var(--color-border-strong);
}

/* ----- Focus States ----- */
:focus-visible {
  outline: 2px solid #D4AF37;
  outline: 2px solid var(--color-accent-primary);
  outline-offset: 2px;
}

/* ----- Selection ----- */
::selection {
  background-color: #D4AF37;
  background-color: var(--color-accent-primary);
  color: #FFFFFF;
  color: var(--color-text-inverted);
}

/* ===========================================
   UTILITY CLASSES
   =========================================== */
.bg-primary { background-color: #F8FAFC; background-color: var(--color-bg-primary); }
.bg-secondary { background-color: #FFFFFF; background-color: var(--color-bg-secondary); }
.bg-surface { background-color: #FFFFFF; background-color: var(--color-surface); }

.text-primary { color: #0F172A; color: var(--color-text-primary); }
.text-secondary { color: #475569; color: var(--color-text-secondary); }
.text-tertiary { color: #64748B; color: var(--color-text-tertiary); }

.border-light { border-color: #E2E8F0; border-color: var(--color-border-light); }
.border-default { border-color: #CBD5E1; border-color: var(--color-border-default); }

/* ===========================================
   ANIMATIONS
   =========================================== */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideUp {
  from { 
    opacity: 0;
    transform: translateY(10px);
  }
  to { 
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-fadeIn { animation: fadeIn 200ms cubic-bezier(0.4, 0, 0.2, 1) ease-out; animation: fadeIn var(--transition-base) ease-out; }
.animate-slideUp { animation: slideUp 300ms cubic-bezier(0.4, 0, 0.2, 1) ease-out; animation: slideUp var(--transition-slow) ease-out; }
.animate-slideInRight { animation: slideInRight 300ms cubic-bezier(0.4, 0, 0.2, 1) ease-out; animation: slideInRight var(--transition-slow) ease-out; }


/* ===========================================
   SIDEBAR PREMIUM - Ultra Banking Style
   =========================================== */
.sidebar-premium {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 17rem;
  width: var(--sidebar-width);
  background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
  background: var(--gradient-dark);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  z-index: 1030;
  z-index: var(--z-fixed);
  display: flex;
  flex-direction: column;
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1), transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity var(--transition-slower), transform var(--transition-slower);
}

.sidebar-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top left, rgba(212, 175, 55, 0.08) 0%, transparent 50%);
  pointer-events: none;
}

.sidebar-premium.collapsed {
  width: 4.5rem;
  width: var(--sidebar-width-collapsed);
}

/* Sidebar Navigation Items */
.sidebar-nav-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  gap: var(--spacing-3);
  padding: 0.75rem 1rem;
  padding: var(--spacing-3) var(--spacing-4);
  margin: 0.25rem 0.5rem;
  margin: var(--spacing-1) var(--spacing-2);
  border-radius: 0.75rem;
  border-radius: var(--radius-xl);
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  font-size: 0.875rem;
  font-size: var(--font-size-sm);
  font-weight: 500;
  font-weight: var(--font-weight-medium);
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--transition-base), transform var(--transition-base);
  position: relative;
  overflow: hidden;
}

.sidebar-nav-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.9);
}

.sidebar-nav-item.active {
  background: rgba(212, 175, 55, 0.15);
  color: #D4AF37;
  color: var(--color-premium-gold, #D4AF37);
  font-weight: 600;
  font-weight: var(--font-weight-semibold);
}

.sidebar-nav-item.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 60%;
  background: linear-gradient(135deg, #D4AF37 0%, #F5D76E 50%, #D4AF37 100%);
  background: var(--gradient-gold);
  border-radius: 0 2px 2px 0;
}

.sidebar-nav-icon {
  width: 2.25rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.05);
  flex-shrink: 0;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.sidebar-nav-item:hover .sidebar-nav-icon {
  background: rgba(255, 255, 255, 0.1);
}

.sidebar-nav-item.active .sidebar-nav-icon {
  background: rgba(212, 175, 55, 0.2);
}

/* Sidebar Section Header */
.sidebar-section-header {
  padding: 0.5rem 1rem;
  padding: var(--spacing-2) var(--spacing-4);
  font-size: 0.75rem;
  font-size: var(--font-size-xs);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  letter-spacing: var(--letter-spacing-widest);
  color: rgba(255, 255, 255, 0.35);
  margin-top: 1rem;
  margin-top: var(--spacing-4);
}

/* Sidebar Logo */
.sidebar-logo {
  padding: 1.25rem 1rem;
  padding: var(--spacing-5) var(--spacing-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  gap: var(--spacing-3);
}

.sidebar-logo-icon {
  width: 2.75rem;
  height: 2.75rem;
  background: linear-gradient(135deg, #D4AF37 0%, #F5D76E 50%, #D4AF37 100%);
  background: var(--gradient-gold);
  border-radius: 0.75rem;
  border-radius: var(--radius-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px -3px rgba(212, 175, 55, 0.25);
  box-shadow: var(--shadow-gold);
}

.sidebar-logo-text {
  font-family: 'Inter', Georgia, serif;
  font-family: var(--font-family-heading);
  font-size: 1.25rem;
  font-size: var(--font-size-xl);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  color: white;
  letter-spacing: -0.025em;
  letter-spacing: var(--letter-spacing-tight);
}

.sidebar-logo-badge {
  font-size: 0.75rem;
  font-size: var(--font-size-xs);
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  letter-spacing: var(--letter-spacing-widest);
}

/* ===========================================
   HEADER PREMIUM
   =========================================== */
.header-premium {
  position: sticky;
  top: 0;
  background: rgba(255, 255, 255, 0.8);
  background: var(--color-surface-glass);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--blur-xl));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--blur-xl));
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid var(--color-border-glass);
  padding: 1rem 1.5rem;
  padding: var(--spacing-4) var(--spacing-6);
  z-index: 1020;
  z-index: var(--z-sticky);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dark .header-premium {
  background: rgba(15, 23, 42, 0.8);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Page Title Premium */
.page-title-premium {
  font-family: 'Inter', Georgia, serif;
  font-family: var(--font-family-heading);
  font-size: 1.5rem;
  font-size: var(--font-size-2xl);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  color: #0F172A;
  color: var(--color-text-primary);
  line-height: 1.1;
  line-height: var(--line-height-tight);
}

.dark .page-title-premium {
  color: white;
}

/* ===========================================
   MAIN CONTENT PREMIUM
   =========================================== */
.main-content-premium {
  margin-left: 17rem;
  margin-left: var(--sidebar-width);
  min-height: 100vh;
  background: #F8FAFC;
  background: var(--color-bg-primary);
  background-image: radial-gradient(at 40% 20%, rgba(212, 175, 55, 0.08) 0px, transparent 50%),
                   radial-gradient(at 80% 0%, rgba(15, 23, 42, 0.05) 0px, transparent 50%),
                   radial-gradient(at 0% 50%, rgba(212, 175, 55, 0.05) 0px, transparent 50%);
  background-image: var(--gradient-mesh);
  transition: margin-left 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: margin-left var(--transition-slower);
}

.main-content-premium.sidebar-collapsed {
  margin-left: 4.5rem;
  margin-left: var(--sidebar-width-collapsed);
}

.dark .main-content-premium {
  background: #F8FAFC;
  background: var(--color-bg-primary);
  background-image: radial-gradient(at 40% 20%, rgba(212, 175, 55, 0.08) 0px, transparent 50%),
                   radial-gradient(at 80% 0%, rgba(15, 23, 42, 0.05) 0px, transparent 50%),
                   radial-gradient(at 0% 50%, rgba(212, 175, 55, 0.05) 0px, transparent 50%);
  background-image: var(--gradient-mesh);
}

/* Content Container */
.content-container {
  padding: 2rem;
  padding: var(--spacing-8);
  /* Full width - no max-width constraint */
}

/* ===========================================
   DASHBOARD GRID - Bento Style
   =========================================== */
.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1.5rem;
  grid-gap: 1.5rem;
  grid-gap: var(--spacing-6);
  gap: var(--spacing-6);
}

.dashboard-card {
  background: #FFFFFF;
  background: var(--color-surface);
  border: 1px solid #E2E8F0;
  border: 1px solid var(--color-border-light);
  border-radius: 1rem;
  border-radius: var(--radius-2xl);
  overflow: hidden;
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1), transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity var(--transition-slower), transform var(--transition-slower);
}

.dashboard-card:hover {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}

.dark .dashboard-card {
  background: rgba(255, 255, 255, 0.8);
  background: var(--color-surface-glass);
  -webkit-backdrop-filter: blur(16px);
          backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(var(--blur-lg));
          backdrop-filter: blur(var(--blur-lg));
  border: 1px solid rgba(255, 255, 255, 0.2);
  border: 1px solid var(--color-border-glass);
}

/* Card sizes for Bento grid */
.card-sm { grid-column: span 3; }
.card-md { grid-column: span 4; }
.card-lg { grid-column: span 6; }
.card-xl { grid-column: span 8; }
.card-full { grid-column: span 12; }

/* Card Header */
.dashboard-card-header {
  padding: 1.25rem 1.5rem;
  padding: var(--spacing-5) var(--spacing-6);
  border-bottom: 1px solid #E2E8F0;
  border-bottom: 1px solid var(--color-border-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dark .dashboard-card-header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid var(--color-border-glass);
}

.dashboard-card-title {
  font-size: 0.875rem;
  font-size: var(--font-size-sm);
  font-weight: 700;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  letter-spacing: var(--letter-spacing-wider);
  color: #94A3B8;
  color: var(--color-text-muted);
}

/* Card Content */
.dashboard-card-content {
  padding: 1.5rem;
  padding: var(--spacing-6);
}


/* ===========================================
   RESPONSIVE
   =========================================== */
@media (max-width: 1024px) {
  .sidebar {
    transform: translateX(-100%);
  }
  
  .sidebar.open {
    transform: translateX(0);
  }
  
  .main-content {
    margin-left: 0;
  }
}

/* ===========================================
   PRINT
   =========================================== */
@media print {
  .sidebar,
  .header,
  .no-print {
    display: none;
  }
  
  .main-content {
    margin: 0;
    padding: 0;
  }
  
  body {
    background: white;
    color: black;
  }
}


/* ===========================================
   QUANTUM LAYOUT STYLES (MotherLayout)
   =========================================== */

/* Header sticky avec glassmorphism */
.quantum-header {
  background: rgba(9, 12, 20, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(212, 175, 55, 0.1);
  position: sticky;
  top: 0;
  z-index: 40;
}

.dark .quantum-header {
  background: rgba(9, 12, 20, 0.9);
}

/* Main content scrollbar */
.quantum-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(212, 175, 55, 0.3) transparent;
}

.quantum-scroll::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.quantum-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.quantum-scroll::-webkit-scrollbar-thumb {
  background: rgba(212, 175, 55, 0.3);
  border-radius: 3px;
}

.quantum-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(212, 175, 55, 0.5);
}

/* Sidebar Ultra Premium variables */
:root {
  --ultra-sidebar-bg: linear-gradient(180deg, #0a0f1a 0%, #0d1627 50%, #0a0f1a 100%);
}

.dark {
  --ultra-sidebar-bg: linear-gradient(180deg, #050810 0%, #0a0f1a 50%, #050810 100%);
}

/* Main content margin transitions */
.quantum-main {
  transition: margin-left 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.quantum-main.sidebar-collapsed {
  margin-left: 80px;
}



/* Accessibility: Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/**
 * Così - Système de Thème COMPLET
 * ===================================
 * 
 * Ce fichier contrôle TOUS les aspects visuels de l'application:
 * - Couleurs de fond (app, surfaces, cards, modals)
 * - Textes (primaire, secondaire, muted, accent)
 * - Bordures (light, default, strong)
 * - Composants (buttons, inputs, badges)
 * - Layout (sidebar, header, footer)
 * - Effets (shadows, blur, glow)
 * - Animations
 * 
 * RÈGLE: AUCUNE couleur hardcodée ailleurs. Tout passe par var(--xxx)
 */

/* ===========================================
   1. TOKENS DE BASE - Palette brute
   =========================================== */
:root {
  /* Échelle de gris neutres */
  --gray-50: #F9FAFB;
  --gray-100: #F3F4F6;
  --gray-200: #E5E7EB;
  --gray-300: #D1D5DB;
  --gray-400: #9CA3AF;
  --gray-500: #6B7280;
  --gray-600: #4B5563;
  --gray-700: #374151;
  --gray-800: #1F2937;
  --gray-900: #111827;
  --gray-950: #030712;

  /* Bleu marine (base dark mode) */
  --navy-50: #F8FAFC;
  --navy-100: #F1F5F9;
  --navy-200: #E2E8F0;
  --navy-300: #CBD5E1;
  --navy-400: #94A3B8;
  --navy-500: #64748B;
  --navy-600: #475569;
  --navy-700: #334155;
  --navy-800: #1E293B;
  --navy-900: #0F172A;
  --navy-950: #0A0F1A;

  /* Couleurs de statut */
  --green-400: #4ADE80;
  --green-500: #22C55E;
  --green-600: #16A34A;
  --red-400: #F87171;
  --red-500: #EF4444;
  --red-600: #DC2626;
  --amber-400: #FBBF24;
  --amber-500: #F59E0B;
  --amber-600: #D97706;
  --blue-400: #60A5FA;
  --blue-500: #3B82F6;
  --blue-600: #0C8298;
  --violet-400: #A78BFA;
  --violet-500: #8B5CF6;
  --violet-600: #7C3AED;
  --cyan-400: #22D3EE;
  --cyan-500: #06B6D4;

  /* Typographie */
  --font-display: 'Inter', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

  /* Tailles */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;

  /* Espacements */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  /* Border radius */
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-2xl: 1.5rem;
  --radius-full: 9999px;

  /* Transitions */
  --transition-fast: 150ms ease;
  --transition-base: 200ms ease;
  --transition-slow: 300ms ease;
  --transition-smooth: 500ms cubic-bezier(0.4, 0, 0.2, 1);

  /* Dimensions fixes */
  --sidebar-width: 280px;
  --sidebar-width-collapsed: 80px;
  --header-height: 64px;
}

/* ===========================================
   2. THÈME CLAIR (Light Mode) - Rolls Royce Aesthetic
   =========================================== */
:root, [data-theme="light"] {
  /* Theme-* compatibility vars for components that expect them */
  --theme-primary: var(--p-indigo-500, #1A9FB5); --theme-secondary: var(--p-indigo-600, #0C8298); --theme-accent: var(--p-indigo-400, #818CF8);
  --theme-gradient-start: var(--p-indigo-500); --theme-gradient-mid: var(--p-indigo-400); --theme-gradient-end: var(--p-indigo-600);
  --theme-glow: rgba(12, 130, 152,0.30);
  --nebula-color-1: rgba(12, 130, 152,0.10); --nebula-color-2: rgba(61,90,254,0.08); --nebula-color-3: rgba(129,140,248,0.06);
  --accent-primary: var(--p-indigo-500); --accent-primary-hover: var(--p-indigo-600); --accent-secondary: var(--p-indigo-300);
  --theme-light-bg: #FDFCFF; --theme-light-surface: #FFFFFF; --theme-light-text: #0F172A;
  --theme-dark-bg: #020617; --theme-dark-surface: #0F172A; --theme-dark-text: #F8FAFC;
  /* === FONDS - Blanc lumineux avec touche violette === */
  --bg-app: #FDFCFF;
  --bg-page: #FFFFFF;
  --bg-surface: #FFFFFF;
  --bg-surface-hover: #F5F3FF;
  --bg-surface-active: #EDE9FE;
  --bg-elevated: #FFFFFF;
  --bg-sunken: #FAF5FF;
  --bg-overlay: rgba(0, 0, 0, 0.5);
  --bg-tooltip: var(--gray-900);

  /* === TEXTES === */
  --text-primary: var(--gray-900);
  --text-secondary: var(--gray-600);
  --text-tertiary: var(--gray-500);
  --text-muted: var(--gray-400);
  --text-disabled: var(--gray-300);
  --text-inverted: #FFFFFF;
  --text-on-accent: var(--gray-900);

  /* === BORDURES === */
  --border-light: var(--gray-200);
  --border-default: var(--gray-300);
  --border-strong: var(--gray-400);
  --border-focus: var(--accent);

  /* === ACCENT "Or Mat Rolls Royce" (personnalisable) === */
  --accent: #C9A962;
  --accent-hover: #B89952;
  --accent-light: rgba(201, 169, 98, 0.12);
  --accent-glow: rgba(201, 169, 98, 0.20);
  --accent-muted: rgba(201, 169, 98, 0.45);
  --accent-gold-shine: linear-gradient(135deg, #D4B96A 0%, #C9A962 50%, #B89952 100%);

  /* === SIDEBAR "Bleu Nuit Profond" === */
  --sidebar-bg: linear-gradient(180deg, #0F172A 0%, #0A1628 50%, #050B14 100%);
  --sidebar-text: rgba(255, 255, 255, 0.65);
  --sidebar-text-active: #FFFFFF;
  --sidebar-item-bg: transparent;
  --sidebar-item-hover: rgba(255, 255, 255, 0.06);
  --sidebar-item-active: rgba(201, 169, 98, 0.15);
  --sidebar-border: rgba(255, 255, 255, 0.08);
  --sidebar-accent: var(--accent);
  --sidebar-glow: 0 0 40px rgba(201, 169, 98, 0.08);

  /* === HEADER === */
  --header-bg: rgba(255, 255, 255, 0.95);
  --header-text: var(--text-primary);
  --header-border: var(--border-light);

  /* === FOOTER === */
  --footer-bg: var(--bg-surface);
  --footer-text: var(--text-secondary);
  --footer-border: var(--border-light);

  /* === CARDS - Blanc pur avec ombres violettes === */
  --card-bg: #FFFFFF;
  --card-bg-hover: #FEFCFF;
  --card-border: #E9E4F5;
  --card-shadow: 0 2px 8px rgba(139, 92, 246, 0.08);
  --card-shadow-hover: 0 8px 24px rgba(139, 92, 246, 0.15);

  /* === MODALS === */
  --modal-bg: var(--bg-surface);
  --modal-border: var(--border-light);
  --modal-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --modal-header-bg: var(--bg-surface);
  --modal-footer-bg: var(--bg-sunken);

  /* === BOUTONS === */
  --btn-primary-bg: var(--accent);
  --btn-primary-text: var(--text-on-accent);
  --btn-primary-hover: var(--accent-hover);
  --btn-primary-shadow: 0 4px 14px var(--accent-glow);
  
  --btn-secondary-bg: var(--bg-surface);
  --btn-secondary-text: var(--text-primary);
  --btn-secondary-border: var(--border-default);
  --btn-secondary-hover: var(--bg-surface-hover);
  
  --btn-ghost-bg: transparent;
  --btn-ghost-text: var(--text-secondary);
  --btn-ghost-hover: var(--bg-surface-hover);
  
  --btn-danger-bg: var(--red-500);
  --btn-danger-text: #FFFFFF;
  --btn-danger-hover: var(--red-600);

  /* === INPUTS === */
  --input-bg: var(--bg-surface);
  --input-text: var(--text-primary);
  --input-placeholder: var(--text-muted);
  --input-border: var(--border-default);
  --input-border-hover: var(--border-strong);
  --input-border-focus: var(--accent);
  --input-shadow-focus: 0 0 0 3px var(--accent-light);

  /* === SELECT / DROPDOWN === */
  --select-bg: var(--bg-surface);
  --select-border: var(--border-default);
  --select-option-hover: var(--bg-surface-hover);
  --select-option-selected: var(--accent-light);

  /* === TABLES === */
  --table-bg: var(--bg-surface);
  --table-header-bg: var(--bg-sunken);
  --table-row-hover: var(--bg-surface-hover);
  --table-border: var(--border-light);
  --table-stripe: var(--bg-sunken);

  /* === BADGES === */
  --badge-default-bg: var(--bg-surface-hover);
  --badge-default-text: var(--text-secondary);
  --badge-accent-bg: var(--accent-light);
  --badge-accent-text: var(--accent);
  --badge-success-bg: rgba(34, 197, 94, 0.15);
  --badge-success-text: var(--green-600);
  --badge-error-bg: rgba(239, 68, 68, 0.15);
  --badge-error-text: var(--red-600);
  --badge-warning-bg: rgba(245, 158, 11, 0.15);
  --badge-warning-text: var(--amber-600);
  --badge-info-bg: rgba(59, 130, 246, 0.15);
  --badge-info-text: var(--blue-600);

  /* === ALERTS / TOASTS === */
  --alert-success-bg: rgba(34, 197, 94, 0.1);
  --alert-success-border: var(--green-500);
  --alert-success-text: var(--green-600);
  --alert-error-bg: rgba(239, 68, 68, 0.1);
  --alert-error-border: var(--red-500);
  --alert-error-text: var(--red-600);
  --alert-warning-bg: rgba(245, 158, 11, 0.1);
  --alert-warning-border: var(--amber-500);
  --alert-warning-text: var(--amber-600);
  --alert-info-bg: rgba(59, 130, 246, 0.1);
  --alert-info-border: var(--blue-500);
  --alert-info-text: var(--blue-600);

  /* === PROGRESS / LOADERS === */
  --progress-bg: var(--bg-surface-hover);
  --progress-fill: var(--accent);
  --loader-color: var(--accent);

  /* === TABS === */
  --tab-bg: transparent;
  --tab-active-bg: var(--bg-surface);
  --tab-active-border: var(--accent);
  --tab-text: var(--text-secondary);
  --tab-active-text: var(--accent);

  /* === TOOLTIPS === */
  --tooltip-bg: var(--gray-900);
  --tooltip-text: #FFFFFF;

  /* === SCROLLBAR === */
  --scrollbar-track: transparent;
  --scrollbar-thumb: var(--gray-300);
  --scrollbar-thumb-hover: var(--gray-400);

  /* === OMBRES === */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15);
  --shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.25);
  --shadow-glow: 0 0 20px var(--accent-glow);

  /* === GLASSMORPHISM === */
  --glass-bg: rgba(255, 255, 255, 0.8);
  --glass-border: rgba(255, 255, 255, 0.3);
  --glass-blur: 12px;

  /* === STATUTS === */
  --status-online: var(--green-500);
  --status-offline: var(--gray-400);
  --status-busy: var(--red-500);
  --status-away: var(--amber-500);
}

/* ===========================================
   3. THÈME SOMBRE (Dark Mode)
   =========================================== */
[data-theme="dark"], .dark {
  /* Theme-* compatibility vars */
  --theme-primary: var(--p-indigo-400, #818CF8); --theme-secondary: var(--p-indigo-500, #1A9FB5); --theme-accent: var(--p-indigo-300, #A5B4FC);
  --theme-gradient-start: var(--p-indigo-500); --theme-gradient-mid: var(--p-indigo-400); --theme-gradient-end: var(--p-indigo-600);
  --theme-glow: rgba(129,140,248,0.30);
  --nebula-color-1: rgba(129,140,248,0.12); --nebula-color-2: rgba(12, 130, 152,0.10); --nebula-color-3: rgba(165,180,252,0.08);
  --accent-primary: var(--p-indigo-400); --accent-primary-hover: var(--p-indigo-300); --accent-secondary: var(--p-indigo-600);
  --theme-light-bg: #F8FAFC; --theme-light-surface: #FFFFFF; --theme-light-text: #0F172A;
  --theme-dark-bg: #020617; --theme-dark-surface: #0F172A; --theme-dark-text: #F8FAFC;
  /* === FONDS === */
  --bg-app: var(--navy-950);
  --bg-page: var(--navy-900);
  --bg-surface: var(--navy-900);
  --bg-surface-hover: var(--navy-800);
  --bg-surface-active: var(--navy-700);
  --bg-elevated: var(--navy-800);
  --bg-sunken: rgba(0, 0, 0, 0.2);
  --bg-overlay: rgba(0, 0, 0, 0.7);
  --bg-tooltip: var(--navy-700);

  /* === TEXTES === */
  --text-primary: #FFFFFF;
  --text-secondary: var(--navy-300);
  --text-tertiary: var(--navy-400);
  --text-muted: var(--navy-500);
  --text-disabled: var(--navy-600);
  --text-inverted: var(--navy-900);
  --text-on-accent: var(--navy-900);

  /* === BORDURES === */
  --border-light: rgba(255, 255, 255, 0.08);
  --border-default: rgba(255, 255, 255, 0.12);
  --border-strong: rgba(255, 255, 255, 0.2);

  /* === SIDEBAR (plus profond en dark) === */
  --sidebar-bg: linear-gradient(180deg, #050810 0%, #0A0F1A 50%, #050810 100%);
  --sidebar-item-hover: rgba(255, 255, 255, 0.08);

  /* === HEADER === */
  --header-bg: rgba(10, 15, 26, 0.95);

  /* === FOOTER === */
  --footer-bg: var(--navy-900);

  /* === CARDS === */
  --card-bg: var(--navy-900);
  --card-bg-hover: var(--navy-800);
  --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  --card-shadow-hover: 0 8px 24px rgba(0, 0, 0, 0.4);

  /* === MODALS === */
  --modal-bg: var(--navy-900);
  --modal-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  --modal-header-bg: var(--navy-800);
  --modal-footer-bg: rgba(0, 0, 0, 0.2);

  /* === BOUTONS === */
  --btn-secondary-bg: var(--navy-800);
  --btn-ghost-hover: rgba(255, 255, 255, 0.1);

  /* === INPUTS === */
  --input-bg: var(--navy-800);
  --input-border: rgba(255, 255, 255, 0.1);
  --input-border-hover: rgba(255, 255, 255, 0.2);

  /* === SELECT / DROPDOWN === */
  --select-bg: var(--navy-800);
  --select-option-hover: var(--navy-700);

  /* === TABLES === */
  --table-bg: var(--navy-900);
  --table-header-bg: var(--navy-800);
  --table-row-hover: var(--navy-800);
  --table-stripe: rgba(0, 0, 0, 0.2);

  /* === BADGES (ajustés pour dark) === */
  --badge-default-bg: rgba(255, 255, 255, 0.1);
  --badge-default-text: var(--text-secondary);
  --badge-success-text: var(--green-400);
  --badge-error-text: var(--red-400);
  --badge-warning-text: var(--amber-400);
  --badge-info-text: var(--blue-400);

  /* === ALERTS (ajustés pour dark) === */
  --alert-success-text: var(--green-400);
  --alert-error-text: var(--red-400);
  --alert-warning-text: var(--amber-400);
  --alert-info-text: var(--blue-400);

  /* === SCROLLBAR === */
  --scrollbar-thumb: var(--navy-600);
  --scrollbar-thumb-hover: var(--navy-500);

  /* === OMBRES === */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4);
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.5);
  --shadow-glow: 0 0 30px var(--accent-glow);

  /* === GLASSMORPHISM === */
  --glass-bg: rgba(15, 23, 42, 0.85);
  --glass-border: rgba(255, 255, 255, 0.1);
  --glass-blur: 16px;

  /* === TOOLTIPS === */
  --tooltip-bg: var(--navy-700);
}

/* ===========================================
   4. COMPOSANTS DE BASE
   =========================================== */

/* Body */
body {
  background: #FDFCFF;
  background: var(--bg-app);
  color: #111827;
  color: var(--text-primary);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-family: var(--font-body);
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Sidebar */
.sidebar {
  width: 280px;
  width: var(--sidebar-width);
  background: linear-gradient(180deg, #0F172A 0%, #0A1628 50%, #050B14 100%);
  background: var(--sidebar-bg);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  border-right: 1px solid var(--sidebar-border);
  color: rgba(255, 255, 255, 0.65);
  color: var(--sidebar-text);
  transition: width 500ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: width var(--transition-smooth);
}

.sidebar.collapsed {
  width: 80px;
  width: var(--sidebar-width-collapsed);
}

.sidebar-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  gap: var(--space-3);
  padding: 0.75rem 1rem;
  padding: var(--space-3) var(--space-4);
  border-radius: 1rem;
  border-radius: var(--radius-xl);
  background: transparent;
  background: var(--sidebar-item-bg);
  color: rgba(255, 255, 255, 0.65);
  color: var(--sidebar-text);
  transition: opacity 200ms ease, transform 200ms ease;
  transition: opacity var(--transition-base), transform var(--transition-base);
  cursor: pointer;
}

.sidebar-item:hover {
  background: rgba(255, 255, 255, 0.06);
  background: var(--sidebar-item-hover);
  color: #FFFFFF;
  color: var(--sidebar-text-active);
}

.sidebar-item.active {
  background: rgba(201, 169, 98, 0.15);
  background: var(--sidebar-item-active);
  color: #C9A962;
  color: var(--sidebar-accent);
}

/* Header */
.app-header {
  background: rgba(255, 255, 255, 0.95);
  background: var(--header-bg);
  color: #111827;
  color: var(--header-text);
  border-bottom: 1px solid #E5E7EB;
  border-bottom: 1px solid var(--header-border);
  backdrop-filter: blur(12px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

/* Footer */
.app-footer {
  background: #FFFFFF;
  background: var(--footer-bg);
  color: #4B5563;
  color: var(--footer-text);
  border-top: 1px solid #E5E7EB;
  border-top: 1px solid var(--footer-border);
}

/* Cards */
.card {
  background: #FFFFFF;
  background: var(--card-bg);
  border: 1px solid #E9E4F5;
  border: 1px solid var(--card-border);
  border-radius: 1rem;
  border-radius: var(--radius-xl);
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.08);
  box-shadow: var(--card-shadow);
  transition: opacity 200ms ease, transform 200ms ease;
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.card:hover {
  background: #FEFCFF;
  background: var(--card-bg-hover);
  box-shadow: 0 8px 24px rgba(139, 92, 246, 0.15);
  box-shadow: var(--card-shadow-hover);
}

/* Modals */
.modal {
  background: #FFFFFF;
  background: var(--modal-bg);
  border: 1px solid #E5E7EB;
  border: 1px solid var(--modal-border);
  border-radius: 1.5rem;
  border-radius: var(--radius-2xl);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  box-shadow: var(--modal-shadow);
}

.modal-header {
  background: #FFFFFF;
  background: var(--modal-header-bg);
  border-bottom: 1px solid #E5E7EB;
  border-bottom: 1px solid var(--border-light);
}

.modal-footer {
  background: #FAF5FF;
  background: var(--modal-footer-bg);
  border-top: 1px solid #E5E7EB;
  border-top: 1px solid var(--border-light);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  gap: var(--space-2);
  padding: 0.75rem 1.25rem;
  padding: var(--space-3) var(--space-5);
  border-radius: 0.75rem;
  border-radius: var(--radius-lg);
  font-weight: 500;
  font-size: 0.875rem;
  font-size: var(--text-sm);
  transition: opacity 200ms ease, transform 200ms ease;
  transition: opacity var(--transition-base), transform var(--transition-base);
  cursor: pointer;
  border: none;
}

.btn-primary {
  background: #C9A962;
  background: var(--btn-primary-bg);
  color: #111827;
  color: var(--btn-primary-text);
}

.btn-primary:hover {
  background: #B89952;
  background: var(--btn-primary-hover);
  box-shadow: 0 4px 14px rgba(201, 169, 98, 0.20);
  box-shadow: var(--btn-primary-shadow);
}

.btn-secondary {
  background: #FFFFFF;
  background: var(--btn-secondary-bg);
  color: #111827;
  color: var(--btn-secondary-text);
  border: 1px solid #D1D5DB;
  border: 1px solid var(--btn-secondary-border);
}

.btn-secondary:hover {
  background: #F5F3FF;
  background: var(--btn-secondary-hover);
}

.btn-ghost {
  background: transparent;
  background: var(--btn-ghost-bg);
  color: #4B5563;
  color: var(--btn-ghost-text);
}

.btn-ghost:hover {
  background: #F5F3FF;
  background: var(--btn-ghost-hover);
}

.btn-danger {
  background: #EF4444;
  background: var(--btn-danger-bg);
  color: #FFFFFF;
  color: var(--btn-danger-text);
}

.btn-danger:hover {
  background: #DC2626;
  background: var(--btn-danger-hover);
}

/* Inputs */
.input {
  width: 100%;
  padding: 0.75rem 1rem;
  padding: var(--space-3) var(--space-4);
  background: #FFFFFF;
  background: var(--input-bg);
  border: 1px solid #D1D5DB;
  border: 1px solid var(--input-border);
  border-radius: 0.75rem;
  border-radius: var(--radius-lg);
  color: #111827;
  color: var(--input-text);
  font-size: 0.875rem;
  font-size: var(--text-sm);
  transition: opacity 200ms ease, transform 200ms ease;
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.input::placeholder {
  color: #9CA3AF;
  color: var(--input-placeholder);
}

.input:hover {
  border-color: #9CA3AF;
  border-color: var(--input-border-hover);
}

.input:focus {
  outline: none;
  border-color: #C9A962;
  border-color: var(--input-border-focus);
  box-shadow: 0 0 0 3px rgba(201, 169, 98, 0.12);
  box-shadow: var(--input-shadow-focus);
}

/* Tables */
.table {
  background: #FFFFFF;
  background: var(--table-bg);
  border: 1px solid #E5E7EB;
  border: 1px solid var(--table-border);
}

.table th {
  background: #FAF5FF;
  background: var(--table-header-bg);
  color: #4B5563;
  color: var(--text-secondary);
}

.table tr:hover {
  background: #F5F3FF;
  background: var(--table-row-hover);
}

.table tr:nth-child(even) {
  background: #FAF5FF;
  background: var(--table-stripe);
}

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  padding: var(--space-1) var(--space-3);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-size: var(--text-xs);
  font-weight: 600;
}

.badge-default {
  background: #F5F3FF;
  background: var(--badge-default-bg);
  color: #4B5563;
  color: var(--badge-default-text);
}

.badge-accent {
  background: rgba(201, 169, 98, 0.12);
  background: var(--badge-accent-bg);
  color: #C9A962;
  color: var(--badge-accent-text);
}

.badge-success {
  background: rgba(34, 197, 94, 0.15);
  background: var(--badge-success-bg);
  color: #16A34A;
  color: var(--badge-success-text);
}

.badge-error {
  background: rgba(239, 68, 68, 0.15);
  background: var(--badge-error-bg);
  color: #DC2626;
  color: var(--badge-error-text);
}

.badge-warning {
  background: rgba(245, 158, 11, 0.15);
  background: var(--badge-warning-bg);
  color: #D97706;
  color: var(--badge-warning-text);
}

.badge-info {
  background: rgba(59, 130, 246, 0.15);
  background: var(--badge-info-bg);
  color: #0C8298;
  color: var(--badge-info-text);
}

/* Alerts */
.alert {
  padding: 1rem;
  padding: var(--space-4);
  border-radius: 0.75rem;
  border-radius: var(--radius-lg);
  border-left: 4px solid;
}

.alert-success {
  background: rgba(34, 197, 94, 0.1);
  background: var(--alert-success-bg);
  border-color: #22C55E;
  border-color: var(--alert-success-border);
  color: #16A34A;
  color: var(--alert-success-text);
}

.alert-error {
  background: rgba(239, 68, 68, 0.1);
  background: var(--alert-error-bg);
  border-color: #EF4444;
  border-color: var(--alert-error-border);
  color: #DC2626;
  color: var(--alert-error-text);
}

.alert-warning {
  background: rgba(245, 158, 11, 0.1);
  background: var(--alert-warning-bg);
  border-color: #F59E0B;
  border-color: var(--alert-warning-border);
  color: #D97706;
  color: var(--alert-warning-text);
}

.alert-info {
  background: rgba(59, 130, 246, 0.1);
  background: var(--alert-info-bg);
  border-color: #3B82F6;
  border-color: var(--alert-info-border);
  color: #0C8298;
  color: var(--alert-info-text);
}

/* Progress */
.progress {
  background: #F5F3FF;
  background: var(--progress-bg);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  overflow: hidden;
}

.progress-bar {
  background: #C9A962;
  background: var(--progress-fill);
  transition: width 300ms ease;
  transition: width var(--transition-slow);
}

/* Tabs */
.tabs {
  border-bottom: 1px solid #E5E7EB;
  border-bottom: 1px solid var(--border-light);
}

.tab {
  background: transparent;
  background: var(--tab-bg);
  color: #4B5563;
  color: var(--tab-text);
  padding: 0.75rem 1rem;
  padding: var(--space-3) var(--space-4);
  border-bottom: 2px solid transparent;
}

.tab.active {
  background: #FFFFFF;
  background: var(--tab-active-bg);
  color: #C9A962;
  color: var(--tab-active-text);
  border-bottom-color: #C9A962;
  border-bottom-color: var(--tab-active-border);
}

/* Tooltip */
.tooltip {
  background: #111827;
  background: var(--tooltip-bg);
  color: #FFFFFF;
  color: var(--tooltip-text);
  padding: 0.5rem 0.75rem;
  padding: var(--space-2) var(--space-3);
  border-radius: 0.5rem;
  border-radius: var(--radius-md);
  font-size: 0.75rem;
  font-size: var(--text-xs);
}

/* Scrollbar */
.custom-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: #D1D5DB transparent;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

.custom-scrollbar::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: transparent;
  background: var(--scrollbar-track);
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: #D1D5DB;
  background: var(--scrollbar-thumb);
  border-radius: 3px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: #9CA3AF;
  background: var(--scrollbar-thumb-hover);
}

/* Glass effect */
.glass {
  background: rgba(255, 255, 255, 0.8);
  background: var(--glass-bg);
  backdrop-filter: blur(12px);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.3);
  border: 1px solid var(--glass-border);
}

/* Glow effect */
.glow {
  box-shadow: 0 0 20px rgba(201, 169, 98, 0.20);
  box-shadow: var(--shadow-glow);
}

/* ===========================================
   5. UTILITAIRES DE COULEUR
   =========================================== */

.text-primary { color: #111827; color: var(--text-primary); }
.text-secondary { color: #4B5563; color: var(--text-secondary); }
.text-muted { color: #9CA3AF; color: var(--text-muted); }
.text-accent { color: #C9A962; color: var(--accent); }
.text-success { color: #22C55E; color: var(--status-online); }
.text-error { color: #EF4444; color: var(--red-500); }
.text-warning { color: #F59E0B; color: var(--amber-500); }

.bg-surface { background: #FFFFFF; background: var(--bg-surface); }
.bg-elevated { background: #FFFFFF; background: var(--bg-elevated); }
.bg-accent { background: #C9A962; background: var(--accent); }

.border-light { border-color: #E5E7EB; border-color: var(--border-light); }
.border-default { border-color: #D1D5DB; border-color: var(--border-default); }
.border-accent { border-color: #C9A962; border-color: var(--accent); }

/* ===========================================
   6. ANIMATIONS
   =========================================== */

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201, 169, 98, 0.20); box-shadow: 0 0 0 0 var(--accent-glow); }
  50% { box-shadow: 0 0 20px 5px rgba(201, 169, 98, 0.20); box-shadow: 0 0 20px 5px var(--accent-glow); }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.animate-fade-in { animation: fadeIn 200ms ease ease-out; animation: fadeIn var(--transition-base) ease-out; }
.animate-slide-up { animation: slideUp 300ms ease ease-out; animation: slideUp var(--transition-slow) ease-out; }
.animate-slide-down { animation: slideDown 300ms ease ease-out; animation: slideDown var(--transition-slow) ease-out; }
.animate-scale-in { animation: scaleIn 300ms ease ease-out; animation: scaleIn var(--transition-slow) ease-out; }
.animate-pulse-glow { animation: pulse-glow 2s ease-in-out infinite; }
.animate-spin { animation: spin 1s linear infinite; }

/* ===========================================
   7. LAYOUT HELPERS
   =========================================== */

.main-content {
  margin-left: 280px;
  margin-left: var(--sidebar-width);
  min-height: 100vh;
  transition: margin-left 500ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: margin-left var(--transition-smooth);
}

.main-content.sidebar-collapsed {
  margin-left: 80px;
  margin-left: var(--sidebar-width-collapsed);
}

.page-content {
  padding: 1.5rem;
  padding: var(--space-6);
}

@media (max-width: 1024px) {
  .main-content {
    margin-left: 0;
  }
}

/* Accessibility: Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/**
 * Così - BIOMIMETIC FLOW Design System
 * ========================================
 * "L'argent est liquide. L'interface aussi."
 * 
 * Système de design organique avec :
 * - Gradients morphants adaptatifs
 * - Formes arrondies fluides
 * - Animations liquides
 * - Mode clair/sombre cohérent
 */

/* ============================================
   BIOMIMETIC COLOR TOKENS
   ============================================ */
:root {
  /* Base Gradients - Light Mode */
  --bio-gradient-primary: linear-gradient(135deg, #f0e6fa 0%, #e0f4f4 50%, #fce7f3 100%);
  --bio-gradient-surface: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.4) 100%);
  --bio-gradient-accent: linear-gradient(135deg, #8b5cf6 0%, #a855f7 50%, #ec4899 100%);
  --bio-gradient-success: linear-gradient(135deg, var(--color-feedback-success, #10b981) 0%, #14b8a6 100%);
  --bio-gradient-warning: linear-gradient(135deg, var(--color-feedback-warning, #f59e0b) 0%, #f97316 100%);
  --bio-gradient-error: linear-gradient(135deg, var(--color-feedback-danger, #ef4444) 0%, #f43f5e 100%);
  
  /* Blob Colors */
  --bio-blob-1: rgba(139, 92, 246, 0.3);
  --bio-blob-2: rgba(236, 72, 153, 0.25);
  --bio-blob-3: rgba(20, 184, 166, 0.25);
  --bio-blob-4: rgba(251, 191, 36, 0.2);
  
  /* Surface Colors - Light */
  --bio-bg: #faf5ff;
  --bio-surface: rgba(255, 255, 255, 0.6);
  --bio-surface-solid: #ffffff;
  --bio-surface-elevated: rgba(255, 255, 255, 0.9);
  
  /* Text Colors - Light */
  --bio-text-primary: #1e1b4b;
  --bio-text-secondary: #4c1d95;
  --bio-text-muted: #7c3aed;
  --bio-text-inverted: #ffffff;
  
  /* Border & Shadow - Light */
  --bio-border: rgba(139, 92, 246, 0.15);
  --bio-shadow-soft: 0 20px 60px -15px rgba(139, 92, 246, 0.2);
  --bio-shadow-glow: 0 0 40px rgba(139, 92, 246, 0.15);
  --bio-shadow-card: 0 10px 40px -10px rgba(0, 0, 0, 0.1);
  
  /* Blur */
  --bio-blur-surface: 20px;
  --bio-blur-heavy: 40px;
  
  /* Radius - Organic */
  --bio-radius-sm: 1rem;
  --bio-radius-md: 1.5rem;
  --bio-radius-lg: 2rem;
  --bio-radius-xl: 2.5rem;
  --bio-radius-full: 9999px;
  
  /* Transitions - Liquid */
  --bio-transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --bio-transition-normal: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  --bio-transition-slow: 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  --bio-transition-morph: 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Dark Mode */
html.dark, .dark {
  --bio-gradient-primary: linear-gradient(135deg, #1e1b4b 0%, #0f172a 50%, #1e1b4b 100%);
  --bio-gradient-surface: linear-gradient(180deg, rgba(30,27,75,0.8) 0%, rgba(15,23,42,0.6) 100%);
  --bio-gradient-accent: linear-gradient(135deg, #a78bfa 0%, #c084fc 50%, #f472b6 100%);
  
  /* Blob Colors - Dark */
  --bio-blob-1: rgba(167, 139, 250, 0.2);
  --bio-blob-2: rgba(244, 114, 182, 0.15);
  --bio-blob-3: rgba(45, 212, 191, 0.15);
  --bio-blob-4: rgba(251, 191, 36, 0.1);
  
  /* Surface Colors - Dark */
  --bio-bg: #0c0a1d;
  --bio-surface: rgba(30, 27, 75, 0.5);
  --bio-surface-solid: #1e1b4b;
  --bio-surface-elevated: rgba(49, 46, 129, 0.6);
  
  /* Text Colors - Dark */
  --bio-text-primary: #f5f3ff;
  --bio-text-secondary: #c4b5fd;
  --bio-text-muted: #a78bfa;
  --bio-text-inverted: #1e1b4b;
  
  /* Border & Shadow - Dark */
  --bio-border: rgba(167, 139, 250, 0.2);
  --bio-shadow-soft: 0 20px 60px -15px rgba(139, 92, 246, 0.3);
  --bio-shadow-glow: 0 0 60px rgba(167, 139, 250, 0.2);
  --bio-shadow-card: 0 10px 40px -10px rgba(0, 0, 0, 0.5);
}

/* ============================================
   BIOMIMETIC ANIMATIONS
   ============================================ */
@keyframes bio-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-10px) rotate(1deg); }
  50% { transform: translateY(-5px) rotate(-1deg); }
  75% { transform: translateY(-15px) rotate(0.5deg); }
}

@keyframes bio-pulse-soft {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
}

@keyframes bio-gradient-shift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes bio-blob-morph {
  0%, 100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
  25% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; }
  50% { border-radius: 50% 60% 30% 60% / 30% 60% 70% 40%; }
  75% { border-radius: 60% 40% 60% 30% / 70% 30% 50% 60%; }
}

@keyframes bio-ripple {
  0% { transform: scale(0.8); opacity: 1; }
  100% { transform: scale(2.5); opacity: 0; }
}

@keyframes bio-wave {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* ============================================
   BIOMIMETIC UTILITY CLASSES
   ============================================ */
.bio-bg {
  background: #faf5ff;
  background: var(--bio-bg);
}

.bio-surface {
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
  backdrop-filter: blur(20px);
  backdrop-filter: blur(var(--bio-blur-surface));
  -webkit-backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--bio-blur-surface));
}

.bio-surface-solid {
  background: #ffffff;
  background: var(--bio-surface-solid);
}

.bio-gradient-bg {
  background: linear-gradient(135deg, #f0e6fa 0%, #e0f4f4 50%, #fce7f3 100%);
  background: var(--bio-gradient-primary);
  background-size: 200% 200%;
  animation: bio-gradient-shift 15s ease infinite;
}

.bio-text-primary {
  color: #1e1b4b;
  color: var(--bio-text-primary);
}

.bio-text-secondary {
  color: #4c1d95;
  color: var(--bio-text-secondary);
}

.bio-text-muted {
  color: #7c3aed;
  color: var(--bio-text-muted);
}

.bio-border {
  border: 1px solid rgba(139, 92, 246, 0.15);
  border: 1px solid var(--bio-border);
}

.bio-shadow {
  box-shadow: 0 20px 60px -15px rgba(139, 92, 246, 0.2);
  box-shadow: var(--bio-shadow-soft);
}

.bio-shadow-glow {
  box-shadow: 0 0 40px rgba(139, 92, 246, 0.15);
  box-shadow: var(--bio-shadow-glow);
}

.bio-card {
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
  backdrop-filter: blur(20px);
  backdrop-filter: blur(var(--bio-blur-surface));
  -webkit-backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--bio-blur-surface));
  border-radius: 2rem;
  border-radius: var(--bio-radius-lg);
  border: 1px solid rgba(139, 92, 246, 0.15);
  border: 1px solid var(--bio-border);
  box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.1);
  box-shadow: var(--bio-shadow-card);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--bio-transition-normal), transform var(--bio-transition-normal);
}

.bio-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 60px -15px rgba(139, 92, 246, 0.2);
  box-shadow: var(--bio-shadow-soft);
}

/* ============================================
   BIOMIMETIC BUTTON STYLES
   ============================================ */
.bio-btn {
  position: relative;
  padding: 0.875rem 1.75rem;
  border-radius: 9999px;
  border-radius: var(--bio-radius-full);
  font-weight: 600;
  overflow: hidden;
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--bio-transition-normal), transform var(--bio-transition-normal);
  cursor: pointer;
  border: none;
}

.bio-btn-primary {
  background: linear-gradient(135deg, #8b5cf6 0%, #a855f7 50%, #ec4899 100%);
  background: var(--bio-gradient-accent);
  color: #ffffff;
  color: var(--bio-text-inverted);
  box-shadow: 0 10px 30px -10px rgba(139, 92, 246, 0.5);
}

.bio-btn-primary:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 15px 40px -10px rgba(139, 92, 246, 0.6);
}

.bio-btn-primary:active {
  transform: translateY(0) scale(0.98);
}

.bio-btn-secondary {
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--bio-blur-surface));
          backdrop-filter: blur(var(--bio-blur-surface));
  color: #1e1b4b;
  color: var(--bio-text-primary);
  border: 1px solid rgba(139, 92, 246, 0.15);
  border: 1px solid var(--bio-border);
}

.bio-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.9);
  background: var(--bio-surface-elevated);
  border-color: #7c3aed;
  border-color: var(--bio-text-muted);
}

.bio-btn-ghost {
  background: transparent;
  color: #4c1d95;
  color: var(--bio-text-secondary);
}

.bio-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
}

/* Ripple effect */
.bio-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
  transform: scale(0);
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s ease, background-color 0.5s ease;
}

.bio-btn:active::after {
  transform: scale(2);
  opacity: 1;
  transition: 0s;
}

/* ============================================
   BIOMIMETIC INPUT STYLES
   ============================================ */
.bio-input {
  width: 100%;
  padding: 1rem 1.25rem;
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--bio-blur-surface));
          backdrop-filter: blur(var(--bio-blur-surface));
  border: 2px solid rgba(139, 92, 246, 0.15);
  border: 2px solid var(--bio-border);
  border-radius: 1.5rem;
  border-radius: var(--bio-radius-md);
  color: #1e1b4b;
  color: var(--bio-text-primary);
  font-size: 1rem;
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--bio-transition-normal), transform var(--bio-transition-normal);
}

.bio-input::placeholder {
  color: #7c3aed;
  color: var(--bio-text-muted);
  opacity: 0.6;
}

.bio-input:focus {
  outline: none;
  border-color: #7c3aed;
  border-color: var(--bio-text-muted);
  box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.15);
}

.bio-input:hover:not(:focus) {
  border-color: rgba(139, 92, 246, 0.3);
}

/* ============================================
   BIOMIMETIC FLOATING BLOB BACKGROUNDS
   ============================================ */
.bio-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.6;
  animation: bio-float 20s ease-in-out infinite;
  pointer-events: none;
}

.bio-blob-1 {
  background: rgba(139, 92, 246, 0.3);
  background: var(--bio-blob-1);
  width: 400px;
  height: 400px;
  animation-delay: 0s;
}

.bio-blob-2 {
  background: rgba(236, 72, 153, 0.25);
  background: var(--bio-blob-2);
  width: 350px;
  height: 350px;
  animation-delay: -5s;
}

.bio-blob-3 {
  background: rgba(20, 184, 166, 0.25);
  background: var(--bio-blob-3);
  width: 300px;
  height: 300px;
  animation-delay: -10s;
}

.bio-blob-4 {
  background: rgba(251, 191, 36, 0.2);
  background: var(--bio-blob-4);
  width: 250px;
  height: 250px;
  animation-delay: -15s;
}

/* ============================================
   BIOMIMETIC MODAL STYLES
   ============================================ */
.bio-modal-overlay {
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.bio-modal {
  background: rgba(255, 255, 255, 0.9);
  background: var(--bio-surface-elevated);
  backdrop-filter: blur(40px);
  backdrop-filter: blur(var(--bio-blur-heavy));
  -webkit-backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(var(--bio-blur-heavy));
  border-radius: 2.5rem;
  border-radius: var(--bio-radius-xl);
  border: 1px solid rgba(139, 92, 246, 0.15);
  border: 1px solid var(--bio-border);
  box-shadow: 0 20px 60px -15px rgba(139, 92, 246, 0.2);
  box-shadow: var(--bio-shadow-soft);
}

/* ============================================
   BIOMIMETIC NAVIGATION
   ============================================ */
.bio-nav-item {
  position: relative;
  padding: 0.75rem 1rem;
  border-radius: 1.5rem;
  border-radius: var(--bio-radius-md);
  color: #7c3aed;
  color: var(--bio-text-muted);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--bio-transition-normal), transform var(--bio-transition-normal);
  overflow: hidden;
}

.bio-nav-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #8b5cf6 0%, #a855f7 50%, #ec4899 100%);
  background: var(--bio-gradient-accent);
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity var(--bio-transition-normal);
  border-radius: inherit;
}

.bio-nav-item:hover {
  color: #1e1b4b;
  color: var(--bio-text-primary);
}

.bio-nav-item:hover::before {
  opacity: 0.1;
}

.bio-nav-item.active {
  color: #1e1b4b;
  color: var(--bio-text-primary);
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
}

.bio-nav-item.active::before {
  opacity: 0.15;
}

/* ============================================
   BIOMIMETIC PROGRESS / LOADING
   ============================================ */
.bio-progress {
  height: 8px;
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
  border-radius: 9999px;
  border-radius: var(--bio-radius-full);
  overflow: hidden;
}

.bio-progress-bar {
  height: 100%;
  background: linear-gradient(135deg, #8b5cf6 0%, #a855f7 50%, #ec4899 100%);
  background: var(--bio-gradient-accent);
  border-radius: 9999px;
  border-radius: var(--bio-radius-full);
  transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: width var(--bio-transition-slow);
}

.bio-spinner {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #8b5cf6 0%, #a855f7 50%, #ec4899 100%);
  background: var(--bio-gradient-accent);
  animation: bio-blob-morph 2s ease-in-out infinite, spin 1s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ============================================
   BIOMIMETIC BADGE / TAG
   ============================================ */
.bio-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.875rem;
  border-radius: 9999px;
  border-radius: var(--bio-radius-full);
  font-size: 0.75rem;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.6);
  background: var(--bio-surface);
  color: #4c1d95;
  color: var(--bio-text-secondary);
  border: 1px solid rgba(139, 92, 246, 0.15);
  border: 1px solid var(--bio-border);
}

.bio-badge-success {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(20, 184, 166, 0.15));
  color: #10b981;
  color: var(--color-feedback-success, #10b981);
  border-color: rgba(16, 185, 129, 0.3);
}

.bio-badge-warning {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(249, 115, 22, 0.15));
  color: #f59e0b;
  color: var(--color-feedback-warning, #f59e0b);
  border-color: rgba(245, 158, 11, 0.3);
}

.bio-badge-error {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.15), rgba(244, 63, 94, 0.15));
  color: #ef4444;
  color: var(--color-feedback-danger, #ef4444);
  border-color: rgba(239, 68, 68, 0.3);
}

/* ============================================
   BIOMIMETIC SCROLLBAR
   ============================================ */
.bio-scrollbar::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.bio-scrollbar::-webkit-scrollbar-track {
  background: transparent;
}

.bio-scrollbar::-webkit-scrollbar-thumb {
  background: rgba(139, 92, 246, 0.15);
  background: var(--bio-border);
  border-radius: 9999px;
  border-radius: var(--bio-radius-full);
}

.bio-scrollbar::-webkit-scrollbar-thumb:hover {
  background: #7c3aed;
  background: var(--bio-text-muted);
}

/* ============================================
   SAFE AREAS (Mobile)
   ============================================ */
.bio-safe-top {
  padding-top: env(safe-area-inset-top, 0px);
}

.bio-safe-bottom {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

/* Accessibility: Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   BRANDAI DESIGN SYSTEM — Carbon Fiber Premium
   ═══════════════════════════════════════════════════════════ */

/* ── FONTS ── */
/* Fonts purged Sprint 11 — Inter chargée globalement via index.css */

/* ── CARBON FIBER BACKGROUND ── */
.carbon-bg {
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.012) 0px, rgba(255,255,255,0.012) 1px, transparent 1px, transparent 3px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.012) 0px, rgba(255,255,255,0.012) 1px, transparent 1px, transparent 3px),
    linear-gradient(135deg, #080B14 0%, #0B0F19 35%, #111827 100%);
  min-height: 100vh;
}

/* Light mode carbon bg */
[data-mode="light"] .carbon-bg {
  background: #F8FAFC;
}

/* ── TYPOGRAPHY ── */
h1, h2, h3, .heading { font-family: 'Inter', sans-serif; }
body, p, span, div, input, button, select, textarea, td, th, label, li { font-family: 'Inter', sans-serif; }

/* Dark mode text */
[data-mode="dark"] body, [data-mode="dark"] { color: #C0C0C0; }
[data-mode="dark"] h1, [data-mode="dark"] h2, [data-mode="dark"] h3, [data-mode="dark"] .heading { color: #D4D4D8; }

/* Audit #136, #186, #297 — second carbon-fiber sur h1/h2/h3 désactivé.
   Cette duplication avait survécu au cleanup de theme-variables.css. */
[data-mode="light"] body { color: #0F172A; color: var(--text-aaa, #0F172A); }
[data-mode="light"] h1,
[data-mode="light"] h2,
[data-mode="light"] h3 { color: #0F172A; color: var(--text-aaa, #0F172A); }

/* ── UTILITY CLASSES ── */
.text-metal { color: #C0C0C0; }
.text-metal-light { color: #D4D4D8; }
.text-metal-dark { color: #71717A; }
.text-electric { color: #1A9FB5; }
.text-carbon { color: #1a1a2e; }
.bg-carbon-dark { background: #0B0F19; }

/* ── BUTTONS ── */
/* Primary */
.btn-primary {
  background: linear-gradient(135deg, #0C8298, #1A9FB5);
  color: white; border: none; border-radius: 12px;
  padding: 10px 24px; font-weight: 600; font-size: 14px;
  cursor: pointer; transition: all 0.3s ease;
  box-shadow: 0 4px 14px rgba(12, 130, 152,0.3);
}
.btn-primary:hover {
  box-shadow: 0 6px 24px rgba(0,163,255,0.45);
  filter: brightness(1.1);
}
/* Secondary - brushed metal */
.btn-secondary {
  background: linear-gradient(180deg, #3f3f46, #27272a);
  color: #D4D4D8; border: 1px solid rgba(192,192,192,0.2);
  border-radius: 12px; padding: 10px 24px; font-weight: 500;
  cursor: pointer; transition: all 0.3s ease;
}
.btn-secondary:hover { border-color: rgba(192,192,192,0.4); filter: brightness(1.1); }
/* Danger - dark red carbon */
.btn-danger {
  background: linear-gradient(135deg, #7F1D1D, #991B1B);
  color: #FCA5A5; border: 1px solid rgba(239,68,68,0.2);
  border-radius: 12px; padding: 10px 24px; font-weight: 600;
  cursor: pointer; transition: all 0.3s ease;
}
.btn-danger:hover { box-shadow: 0 4px 14px rgba(239,68,68,0.3); }

/* ── INPUTS ── */
.input-carbon {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px; padding: 10px 14px;
  color: #D4D4D8; font-size: 14px;
  transition: all 0.3s ease;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}
.input-carbon::placeholder { color: #52525B; }
.input-carbon:focus {
  outline: none; border-color: #0C8298;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3), 0 0 0 3px rgba(12, 130, 152,0.2), 0 0 12px rgba(0,163,255,0.1);
}
[data-mode="light"] .input-carbon {
  background: #F1F5F9; border-color: #E2E8F0; color: #1a1a2e;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.05);
}
[data-mode="light"] .input-carbon:focus {
  border-color: #0C8298;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.05), 0 0 0 3px rgba(12, 130, 152,0.15);
}

/* ── CARDS ── */
.card-carbon {
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.008) 0px, transparent 1px, transparent 3px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.008) 0px, transparent 1px, transparent 3px),
    rgba(15,25,45,0.6);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.06); border-radius: 16px;
  transition: all 0.3s ease;
}
.card-carbon:hover {
  border-color: rgba(0,163,255,0.2);
  box-shadow: 0 8px 32px rgba(0,0,0,0.3), 0 0 20px rgba(0,163,255,0.1);
}
[data-mode="light"] .card-carbon {
  background: white; border-color: #E2E8F0;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
}

/* ── GLASS PANEL ── */
.glass-panel {
  background: rgba(11,15,25,0.85);
  backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,0.06);
}

/* ── TABLES ── */
.table-carbon th {
  background: linear-gradient(180deg, #27272a, #1f1f23);
  color: #1A9FB5; font-weight: 600; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.05em;
  padding: 12px 16px; border-bottom: 1px solid rgba(0,163,255,0.2);
}
.table-carbon tr:nth-child(odd) td { background: rgba(0,163,255,0.04); color: #D4D4D8; }
.table-carbon tr:nth-child(even) td { background: rgba(15,25,45,0.4); color: #1A9FB5; }
.table-carbon tr:hover td { background: rgba(0,163,255,0.12) !important; }
.table-carbon td { padding: 10px 16px; font-size: 14px; border-bottom: 1px solid rgba(255,255,255,0.04); }

/* ── DROPDOWNS ── */
.dropdown-carbon {
  background: rgba(11,15,25,0.95);
  backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,0.08); border-radius: 12px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.5);
  animation: dropdownSlide 0.2s ease;
}
.dropdown-carbon .option:hover { background: rgba(0,163,255,0.12); color: #1A9FB5; }
@keyframes dropdownSlide { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

/* ── TOASTS ── */
.toast-carbon {
  background: rgba(15,25,45,0.9);
  -webkit-backdrop-filter: blur(16px);
          backdrop-filter: blur(16px);
  border-radius: 12px; padding: 14px 20px;
  border-left: 3px solid; color: #D4D4D8;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.toast-success { border-left-color: #10B981; }
.toast-error { border-left-color: #EF4444; }
.toast-info { border-left-color: #1A9FB5; }
.toast-warning { border-left-color: #F59E0B; }

/* ── SCROLLBARS ── */
* { scrollbar-width: thin; scrollbar-color: #52525B transparent; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #71717A, #52525B);
  border-radius: 99px;
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #A1A1AA, #71717A); }

/* ── DIVIDERS ── */
.divider-chrome {
  height: 1px; border: none;
  background: linear-gradient(90deg, transparent 0%, rgba(192,192,192,0.4) 20%, rgba(192,192,192,0.6) 50%, rgba(192,192,192,0.4) 80%, transparent 100%);
}

/* ── GLOW EFFECTS ── */
.glow-blue { box-shadow: 0 0 20px rgba(0,163,255,0.15); }
.glow-blue-hover:hover { box-shadow: 0 0 30px rgba(0,163,255,0.3); }

/* ── KPI COLORS ── */
.kpi-up { color: #10B981; }
.kpi-down { color: #EF4444; }
.kpi-neutral { color: #F59E0B; }

/* ═══════════════════════════════════════════════════
   BRANDAI Mega Themes — Design 2031 Edition
   100 themes with HSL harmony, glassmorphism nebulas,
   WCAG AA contrast, gradient mid-stops.
   Generated by scripts/regenerate-themes-2031.py
   ═══════════════════════════════════════════════════ */

/* 1. Barbie Princess */
[data-theme="barbie-princess"] {
  --theme-primary: #E91E8C; --theme-secondary: #FF6FB5; --theme-accent: #FFD1E8;
  --theme-gradient-start: #E91E8C; --theme-gradient-mid: #D8157E; --theme-gradient-end: #FF6FB5;
  --theme-glow: rgba(233,30,140,0.3);
  --nebula-color-1: rgba(233,30,140,0.1); --nebula-color-2: rgba(255,111,181,0.08); --nebula-color-3: rgba(255,209,232,0.06);
  --accent-primary: #E91E8C; --accent-primary-hover: #EC439E; --accent-secondary: #FF6FB5;
  --theme-light-bg: #F5E7EE; --theme-light-surface: #FAF6F8; --theme-light-text: #32202A;
  --theme-dark-bg: #20191D; --theme-dark-surface: #32202A; --theme-dark-text: #E7D1DD;
}

/* 2. Batman Dark Knight */
[data-theme="batman-dark-knight"] {
  --theme-primary: #F5C518; --theme-secondary: #1A1A2E; --theme-accent: #3A3A4E;
  --theme-gradient-start: #F5C518; --theme-gradient-mid: #F6CB30; --theme-gradient-end: #1A1A2E;
  --theme-glow: rgba(245,197,24,0.3);
  --nebula-color-1: rgba(245,197,24,0.1); --nebula-color-2: rgba(26,26,46,0.08); --nebula-color-3: rgba(58,58,78,0.06);
  --accent-primary: #F5C518; --accent-primary-hover: #DAAD09; --accent-secondary: #1A1A2E;
  --theme-light-bg: #F8F5E9; --theme-light-surface: #FCFCF9; --theme-light-text: #3A341E;
  --theme-dark-bg: #262319; --theme-dark-surface: #3A341E; --theme-dark-text: #ECE6D2;
}

/* 3. Superman */
[data-theme="superman"] {
  --theme-primary: #1445B7; --theme-secondary: #DC143C; --theme-accent: #F5D442;
  --theme-gradient-start: #1445B7; --theme-gradient-mid: #113CA0; --theme-gradient-end: #DC143C;
  --theme-glow: rgba(20,69,183,0.3);
  --nebula-color-1: rgba(20,69,183,0.1); --nebula-color-2: rgba(220,20,60,0.08); --nebula-color-3: rgba(245,212,66,0.06);
  --accent-primary: #1445B7; --accent-primary-hover: #1852DB; --accent-secondary: #DC143C;
  --theme-light-bg: #BDC8E3; --theme-light-surface: #CFD5E5; --theme-light-text: #090A0E;
  --theme-dark-bg: #000000; --theme-dark-surface: #090A0E; --theme-dark-text: #AAB6D2;
}

/* 4. Iron Man */
[data-theme="iron-man"] {
  --theme-primary: #C62828; --theme-secondary: #FFB300; --theme-accent: #B0BEC5;
  --theme-gradient-start: #C62828; --theme-gradient-mid: #B02323; --theme-gradient-end: #FFB300;
  --theme-glow: rgba(198,40,40,0.3);
  --nebula-color-1: rgba(198,40,40,0.1); --nebula-color-2: rgba(255,179,0,0.08); --nebula-color-3: rgba(176,190,197,0.06);
  --accent-primary: #C62828; --accent-primary-hover: #D83E3E; --accent-secondary: #FFB300;
  --theme-light-bg: #E9D9D9; --theme-light-surface: #EEE8E8; --theme-light-text: #1F1B1B;
  --theme-dark-bg: #101010; --theme-dark-surface: #1F1B1B; --theme-dark-text: #D7C7C7;
}

/* 5. Frozen Elsa */
[data-theme="frozen-elsa"] {
  --theme-primary: #5BB3E0; --theme-secondary: #9C6BDE; --theme-accent: #C8F0FA;
  --theme-gradient-start: #5BB3E0; --theme-gradient-mid: #70BCE4; --theme-gradient-end: #9C6BDE;
  --theme-glow: rgba(91,179,224,0.3);
  --nebula-color-1: rgba(91,179,224,0.1); --nebula-color-2: rgba(156,107,222,0.08); --nebula-color-3: rgba(200,240,250,0.06);
  --accent-primary: #5BB3E0; --accent-primary-hover: #38A3D9; --accent-secondary: #9C6BDE;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFEFE; --theme-light-text: #3E4549;
  --theme-dark-bg: #373737; --theme-dark-surface: #3E4549; --theme-dark-text: #F4F6F7;
}

/* 6. Star Wars Empire */
[data-theme="star-wars-empire"] {
  --theme-primary: #E53935; --theme-secondary: #212121; --theme-accent: #757575;
  --theme-gradient-start: #E53935; --theme-gradient-mid: #E2221E; --theme-gradient-end: #212121;
  --theme-glow: rgba(229,57,53,0.3);
  --nebula-color-1: rgba(229,57,53,0.1); --nebula-color-2: rgba(33,33,33,0.08); --nebula-color-3: rgba(117,117,117,0.06);
  --accent-primary: #E53935; --accent-primary-hover: #E95C59; --accent-secondary: #212121;
  --theme-light-bg: #FAF4F4; --theme-light-surface: #FFFFFF; --theme-light-text: #3B2A2A;
  --theme-dark-bg: #292323; --theme-dark-surface: #3B2A2A; --theme-dark-text: #ECDFDF;
}

/* 7. Mario Bros */
[data-theme="mario-bros"] {
  --theme-primary: #E53935; --theme-secondary: #1E88E5; --theme-accent: #FFD54F;
  --theme-gradient-start: #E53935; --theme-gradient-mid: #E2221E; --theme-gradient-end: #1E88E5;
  --theme-glow: rgba(229,57,53,0.3);
  --nebula-color-1: rgba(229,57,53,0.1); --nebula-color-2: rgba(30,136,229,0.08); --nebula-color-3: rgba(255,213,79,0.06);
  --accent-primary: #E53935; --accent-primary-hover: #E95C59; --accent-secondary: #1E88E5;
  --theme-light-bg: #FAF4F4; --theme-light-surface: #FFFFFF; --theme-light-text: #3B2A2A;
  --theme-dark-bg: #292323; --theme-dark-surface: #3B2A2A; --theme-dark-text: #ECDFDF;
}

/* 8. Harry Potter */
[data-theme="harry-potter"] {
  --theme-primary: #7B1FA2; --theme-secondary: #FFD54F; --theme-accent: #1A237E;
  --theme-gradient-start: #7B1FA2; --theme-gradient-mid: #6A1A8C; --theme-gradient-end: #FFD54F;
  --theme-glow: rgba(123,31,162,0.3);
  --nebula-color-1: rgba(123,31,162,0.1); --nebula-color-2: rgba(255,213,79,0.08); --nebula-color-3: rgba(26,35,126,0.06);
  --accent-primary: #7B1FA2; --accent-primary-hover: #9525C4; --accent-secondary: #FFD54F;
  --theme-light-bg: #D1BCD9; --theme-light-surface: #D8CDDC; --theme-light-text: #060607;
  --theme-dark-bg: #000000; --theme-dark-surface: #060607; --theme-dark-text: #BEACC5;
}

/* 9. Swiss Bank */
[data-theme="swiss-bank"] {
  --theme-primary: #1B3A5C; --theme-secondary: #C9A962; --theme-accent: #E8E0D0;
  --theme-gradient-start: #1B3A5C; --theme-gradient-mid: #152D48; --theme-gradient-end: #C9A962;
  --theme-glow: rgba(27,58,92,0.3);
  --nebula-color-1: rgba(27,58,92,0.1); --nebula-color-2: rgba(201,169,98,0.08); --nebula-color-3: rgba(232,224,208,0.06);
  --accent-primary: #1B3A5C; --accent-primary-hover: #244D7B; --accent-secondary: #C9A962;
  --theme-light-bg: #98A6B3; --theme-light-surface: #ACB0B4; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #8E9499;
}

/* 10. Swiss Pharma */
[data-theme="swiss-pharma"] {
  --theme-primary: #00897B; --theme-secondary: #26A69A; --theme-accent: #E0F2F1;
  --theme-gradient-start: #00897B; --theme-gradient-mid: #006F64; --theme-gradient-end: #26A69A;
  --theme-glow: rgba(0,137,123,0.3);
  --nebula-color-1: rgba(0,137,123,0.1); --nebula-color-2: rgba(38,166,154,0.08); --nebula-color-3: rgba(224,242,241,0.06);
  --accent-primary: #00897B; --accent-primary-hover: #00B19F; --accent-secondary: #26A69A;
  --theme-light-bg: #7EDFD5; --theme-light-surface: #96DCD4; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #6CCEC4;
}

/* 11. Swiss Watchmaker */
[data-theme="swiss-watchmaker"] {
  --theme-primary: #37474F; --theme-secondary: #C9A962; --theme-accent: #ECEFF1;
  --theme-gradient-start: #37474F; --theme-gradient-mid: #2C393F; --theme-gradient-end: #C9A962;
  --theme-glow: rgba(55,71,79,0.3);
  --nebula-color-1: rgba(55,71,79,0.1); --nebula-color-2: rgba(201,169,98,0.08); --nebula-color-3: rgba(236,239,241,0.06);
  --accent-primary: #37474F; --accent-primary-hover: #475C67; --accent-secondary: #C9A962;
  --theme-light-bg: #AEAEAE; --theme-light-surface: #B8B8B8; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #9C9C9C;
}

/* 12. Swiss Chocolate */
[data-theme="swiss-chocolate"] {
  --theme-primary: #5D4037; --theme-secondary: #D4A373; --theme-accent: #EFEBE9;
  --theme-gradient-start: #5D4037; --theme-gradient-mid: #4C342D; --theme-gradient-end: #D4A373;
  --theme-glow: rgba(93,64,55,0.3);
  --nebula-color-1: rgba(93,64,55,0.1); --nebula-color-2: rgba(212,163,115,0.08); --nebula-color-3: rgba(239,235,233,0.06);
  --accent-primary: #5D4037; --accent-primary-hover: #765146; --accent-secondary: #D4A373;
  --theme-light-bg: #B4B4B4; --theme-light-surface: #BEBEBE; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #A2A2A2;
}

/* 13. Swiss Alpine */
[data-theme="swiss-alpine"] {
  --theme-primary: #1565C0; --theme-secondary: #43A047; --theme-accent: #E3F2FD;
  --theme-gradient-start: #1565C0; --theme-gradient-mid: #1258A9; --theme-gradient-end: #43A047;
  --theme-glow: rgba(21,101,192,0.3);
  --nebula-color-1: rgba(21,101,192,0.1); --nebula-color-2: rgba(67,160,71,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #1565C0; --accent-primary-hover: #1978E4; --accent-secondary: #43A047;
  --theme-light-bg: #C4D3E6; --theme-light-surface: #D5DEE8; --theme-light-text: #0D1014;
  --theme-dark-bg: #030304; --theme-dark-surface: #0D1014; --theme-dark-text: #B1C2D5;
}

/* 14. Swiss Precision */
[data-theme="swiss-precision"] {
  --theme-primary: #37474F; --theme-secondary: #FF5722; --theme-accent: #ECEFF1;
  --theme-gradient-start: #37474F; --theme-gradient-mid: #2C393F; --theme-gradient-end: #FF5722;
  --theme-glow: rgba(55,71,79,0.3);
  --nebula-color-1: rgba(55,71,79,0.1); --nebula-color-2: rgba(255,87,34,0.08); --nebula-color-3: rgba(236,239,241,0.06);
  --accent-primary: #37474F; --accent-primary-hover: #475C67; --accent-secondary: #FF5722;
  --theme-light-bg: #AEAEAE; --theme-light-surface: #B8B8B8; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #9C9C9C;
}

/* 15. Construction */
[data-theme="construction"] {
  --theme-primary: #E65100; --theme-secondary: #FFB74D; --theme-accent: #FFF3E0;
  --theme-gradient-start: #E65100; --theme-gradient-mid: #CC4800; --theme-gradient-end: #FFB74D;
  --theme-glow: rgba(230,81,0,0.3);
  --nebula-color-1: rgba(230,81,0,0.1); --nebula-color-2: rgba(255,183,77,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #E65100; --accent-primary-hover: #FF640F; --accent-secondary: #FFB74D;
  --theme-light-bg: #F1D7C9; --theme-light-surface: #F3E4DC; --theme-light-text: #24160F;
  --theme-dark-bg: #100B08; --theme-dark-surface: #24160F; --theme-dark-text: #E5C3B2;
}

/* 16. Agriculture */
[data-theme="agriculture"] {
  --theme-primary: #2E7D32; --theme-secondary: #8BC34A; --theme-accent: #E8F5E9;
  --theme-gradient-start: #2E7D32; --theme-gradient-mid: #276A2A; --theme-gradient-end: #8BC34A;
  --theme-glow: rgba(46,125,50,0.3);
  --nebula-color-1: rgba(46,125,50,0.1); --nebula-color-2: rgba(139,195,74,0.08); --nebula-color-3: rgba(232,245,233,0.06);
  --accent-primary: #2E7D32; --accent-primary-hover: #389A3D; --accent-secondary: #8BC34A;
  --theme-light-bg: #BCC3BC; --theme-light-surface: #CACACA; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #AEAEAE;
}

/* 17. Hospital */
[data-theme="hospital"] {
  --theme-primary: #0288D1; --theme-secondary: #4FC3F7; --theme-accent: #E1F5FE;
  --theme-gradient-start: #0288D1; --theme-gradient-mid: #0177B7; --theme-gradient-end: #4FC3F7;
  --theme-glow: rgba(2,136,209,0.3);
  --nebula-color-1: rgba(2,136,209,0.1); --nebula-color-2: rgba(79,195,247,0.08); --nebula-color-3: rgba(225,245,254,0.06);
  --accent-primary: #0288D1; --accent-primary-hover: #02A2F9; --accent-secondary: #4FC3F7;
  --theme-light-bg: #BBDBED; --theme-light-surface: #CEE2EE; --theme-light-text: #091115;
  --theme-dark-bg: #020303; --theme-dark-surface: #091115; --theme-dark-text: #A4CADF;
}

/* 18. Public Service */
[data-theme="public-service"] {
  --theme-primary: #1565C0; --theme-secondary: #42A5F5; --theme-accent: #E3F2FD;
  --theme-gradient-start: #1565C0; --theme-gradient-mid: #1258A9; --theme-gradient-end: #42A5F5;
  --theme-glow: rgba(21,101,192,0.3);
  --nebula-color-1: rgba(21,101,192,0.1); --nebula-color-2: rgba(66,165,245,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #1565C0; --accent-primary-hover: #1978E4; --accent-secondary: #42A5F5;
  --theme-light-bg: #C4D3E6; --theme-light-surface: #D5DEE8; --theme-light-text: #0D1014;
  --theme-dark-bg: #030304; --theme-dark-surface: #0D1014; --theme-dark-text: #B1C2D5;
}

/* 19. Hedge Fund */
[data-theme="hedge-fund"] {
  --theme-primary: #1A237E; --theme-secondary: #C9A962; --theme-accent: #E8EAF6;
  --theme-gradient-start: #1A237E; --theme-gradient-mid: #151D68; --theme-gradient-end: #C9A962;
  --theme-glow: rgba(26,35,126,0.3);
  --nebula-color-1: rgba(26,35,126,0.1); --nebula-color-2: rgba(201,169,98,0.08); --nebula-color-3: rgba(232,234,246,0.06);
  --accent-primary: #1A237E; --accent-primary-hover: #202C9F; --accent-secondary: #C9A962;
  --theme-light-bg: #A3A6C9; --theme-light-surface: #B7B9CB; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #9799B3;
}

/* 20. Fintech */
[data-theme="fintech"] {
  --theme-primary: #6200EA; --theme-secondary: #00E5FF; --theme-accent: #EDE7F6;
  --theme-gradient-start: #6200EA; --theme-gradient-mid: #5700D0; --theme-gradient-end: #00E5FF;
  --theme-glow: rgba(98,0,234,0.3);
  --nebula-color-1: rgba(98,0,234,0.1); --nebula-color-2: rgba(0,229,255,0.08); --nebula-color-3: rgba(237,231,246,0.06);
  --accent-primary: #6200EA; --accent-primary-hover: #7613FF; --accent-secondary: #00E5FF;
  --theme-light-bg: #DCCCF2; --theme-light-surface: #E8DFF4; --theme-light-text: #191026;
  --theme-dark-bg: #0D0A12; --theme-dark-surface: #191026; --theme-dark-text: #C9B5E6;
}

/* 21. Consulting */
[data-theme="consulting"] {
  --theme-primary: #1565C0; --theme-secondary: #90A4AE; --theme-accent: #E3F2FD;
  --theme-gradient-start: #1565C0; --theme-gradient-mid: #1258A9; --theme-gradient-end: #90A4AE;
  --theme-glow: rgba(21,101,192,0.3);
  --nebula-color-1: rgba(21,101,192,0.1); --nebula-color-2: rgba(144,164,174,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #1565C0; --accent-primary-hover: #1978E4; --accent-secondary: #90A4AE;
  --theme-light-bg: #C4D3E6; --theme-light-surface: #D5DEE8; --theme-light-text: #0D1014;
  --theme-dark-bg: #030304; --theme-dark-surface: #0D1014; --theme-dark-text: #B1C2D5;
}

/* 22. Law Firm */
[data-theme="law-firm"] {
  --theme-primary: #263238; --theme-secondary: #8D6E63; --theme-accent: #ECEFF1;
  --theme-gradient-start: #263238; --theme-gradient-mid: #1B2428; --theme-gradient-end: #8D6E63;
  --theme-glow: rgba(38,50,56,0.3);
  --nebula-color-1: rgba(38,50,56,0.1); --nebula-color-2: rgba(141,110,99,0.08); --nebula-color-3: rgba(236,239,241,0.06);
  --accent-primary: #263238; --accent-primary-hover: #364750; --accent-secondary: #8D6E63;
  --theme-light-bg: #9A9A9A; --theme-light-surface: #A4A4A4; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #888888;
}

/* 23. Real Estate */
[data-theme="real-estate"] {
  --theme-primary: #00695C; --theme-secondary: #A5D6A7; --theme-accent: #E0F2F1;
  --theme-gradient-start: #00695C; --theme-gradient-mid: #004F45; --theme-gradient-end: #A5D6A7;
  --theme-glow: rgba(0,105,92,0.3);
  --nebula-color-1: rgba(0,105,92,0.1); --nebula-color-2: rgba(165,214,167,0.08); --nebula-color-3: rgba(224,242,241,0.06);
  --accent-primary: #00695C; --accent-primary-hover: #00917F; --accent-secondary: #A5D6A7;
  --theme-light-bg: #64DACB; --theme-light-surface: #7ED4CA; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #54C6B9;
}

/* 24. Insurance */
[data-theme="insurance"] {
  --theme-primary: #0D47A1; --theme-secondary: #42A5F5; --theme-accent: #E3F2FD;
  --theme-gradient-start: #0D47A1; --theme-gradient-mid: #0B3C89; --theme-gradient-end: #42A5F5;
  --theme-glow: rgba(13,71,161,0.3);
  --nebula-color-1: rgba(13,71,161,0.1); --nebula-color-2: rgba(66,165,245,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #0D47A1; --accent-primary-hover: #1057C6; --accent-secondary: #42A5F5;
  --theme-light-bg: #A5BBDD; --theme-light-surface: #B9C7DD; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #93A9CB;
}

/* 25. Crypto */
[data-theme="crypto"] {
  --theme-primary: #F57C00; --theme-secondary: #7C4DFF; --theme-accent: #FFF3E0;
  --theme-gradient-start: #F57C00; --theme-gradient-mid: #FE880F; --theme-gradient-end: #7C4DFF;
  --theme-glow: rgba(245,124,0,0.3);
  --nebula-color-1: rgba(245,124,0,0.1); --nebula-color-2: rgba(124,77,255,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #F57C00; --accent-primary-hover: #CC6700; --accent-secondary: #7C4DFF;
  --theme-light-bg: #F4E5D5; --theme-light-surface: #F7EFE7; --theme-light-text: #2D2113;
  --theme-dark-bg: #1A130D; --theme-dark-surface: #2D2113; --theme-dark-text: #E9D3BD;
}

/* 26. Startup */
[data-theme="startup"] {
  --theme-primary: #6C63FF; --theme-secondary: #00BFA5; --theme-accent: #EDE7F6;
  --theme-gradient-start: #6C63FF; --theme-gradient-mid: #5349FF; --theme-gradient-end: #00BFA5;
  --theme-glow: rgba(108,99,255,0.3);
  --nebula-color-1: rgba(108,99,255,0.1); --nebula-color-2: rgba(0,191,165,0.08); --nebula-color-3: rgba(237,231,246,0.06);
  --accent-primary: #6C63FF; --accent-primary-hover: #928BFE; --accent-secondary: #00BFA5;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFE; --theme-light-text: #38347A;
  --theme-dark-bg: #373460; --theme-dark-surface: #38347A; --theme-dark-text: #FFFFFE;
}

/* 27. Tropical */
[data-theme="tropical"] {
  --theme-primary: #00BFA5; --theme-secondary: #FF6D00; --theme-accent: #E0F7FA;
  --theme-gradient-start: #00BFA5; --theme-gradient-mid: #00D8BB; --theme-gradient-end: #FF6D00;
  --theme-glow: rgba(0,191,165,0.3);
  --nebula-color-1: rgba(0,191,165,0.1); --nebula-color-2: rgba(255,109,0,0.08); --nebula-color-3: rgba(224,247,250,0.06);
  --accent-primary: #00BFA5; --accent-primary-hover: #009681; --accent-secondary: #FF6D00;
  --theme-light-bg: #AAE9E1; --theme-light-surface: #BEE9E4; --theme-light-text: #030807;
  --theme-dark-bg: #000000; --theme-dark-surface: #030807; --theme-dark-text: #94DBD2;
}

/* 28. Sakura */
[data-theme="sakura"] {
  --theme-primary: #F48FB1; --theme-secondary: #CE93D8; --theme-accent: #FCE4EC;
  --theme-gradient-start: #F48FB1; --theme-gradient-mid: #F6A6C1; --theme-gradient-end: #CE93D8;
  --theme-glow: rgba(244,143,177,0.3);
  --nebula-color-1: rgba(244,143,177,0.1); --nebula-color-2: rgba(206,147,216,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #F48FB1; --accent-primary-hover: #F06997; --accent-secondary: #CE93D8;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #7F5061;
  --theme-dark-bg: #655058; --theme-dark-surface: #7F5061; --theme-dark-text: #FFFFFF;
}

/* 29. Desert */
[data-theme="desert"] {
  --theme-primary: #E65100; --theme-secondary: #FFAB40; --theme-accent: #FFF8E1;
  --theme-gradient-start: #E65100; --theme-gradient-mid: #CC4800; --theme-gradient-end: #FFAB40;
  --theme-glow: rgba(230,81,0,0.3);
  --nebula-color-1: rgba(230,81,0,0.1); --nebula-color-2: rgba(255,171,64,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #E65100; --accent-primary-hover: #FF640F; --accent-secondary: #FFAB40;
  --theme-light-bg: #F1D7C9; --theme-light-surface: #F3E4DC; --theme-light-text: #24160F;
  --theme-dark-bg: #100B08; --theme-dark-surface: #24160F; --theme-dark-text: #E5C3B2;
}

/* 30. Ocean Deep */
[data-theme="ocean-deep"] {
  --theme-primary: #01579B; --theme-secondary: #0097A7; --theme-accent: #E0F7FA;
  --theme-gradient-start: #01579B; --theme-gradient-mid: #004881; --theme-gradient-end: #0097A7;
  --theme-glow: rgba(1,87,155,0.3);
  --nebula-color-1: rgba(1,87,155,0.1); --nebula-color-2: rgba(0,151,167,0.08); --nebula-color-3: rgba(224,247,250,0.06);
  --accent-primary: #01579B; --accent-primary-hover: #016DC3; --accent-secondary: #0097A7;
  --theme-light-bg: #8FBDE1; --theme-light-surface: #A4C6E0; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #7AABD2;
}

/* 31. Northern Lights */
[data-theme="northern-lights"] {
  --theme-primary: #4DB6AC; --theme-secondary: #7E57C2; --theme-accent: #E0F2F1;
  --theme-gradient-start: #4DB6AC; --theme-gradient-mid: #5FBDB4; --theme-gradient-end: #7E57C2;
  --theme-glow: rgba(77,182,172,0.3);
  --nebula-color-1: rgba(77,182,172,0.1); --nebula-color-2: rgba(126,87,194,0.08); --nebula-color-3: rgba(224,242,241,0.06);
  --accent-primary: #4DB6AC; --accent-primary-hover: #3F9A92; --accent-secondary: #7E57C2;
  --theme-light-bg: #EBECEC; --theme-light-surface: #F6F6F6; --theme-light-text: #272727;
  --theme-dark-bg: #1A1A1A; --theme-dark-surface: #272727; --theme-dark-text: #DADADA;
}

/* 32. Lavender Fields */
[data-theme="lavender-fields"] {
  --theme-primary: #9575CD; --theme-secondary: #CE93D8; --theme-accent: #F3E5F5;
  --theme-gradient-start: #9575CD; --theme-gradient-mid: #A387D3; --theme-gradient-end: #CE93D8;
  --theme-glow: rgba(149,117,205,0.3);
  --nebula-color-1: rgba(149,117,205,0.1); --nebula-color-2: rgba(206,147,216,0.08); --nebula-color-3: rgba(243,229,245,0.06);
  --accent-primary: #9575CD; --accent-primary-hover: #7D57C2; --accent-secondary: #CE93D8;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #474747;
  --theme-dark-bg: #3A3A3A; --theme-dark-surface: #474747; --theme-dark-text: #FAFAFA;
}

/* 33. Autumn */
[data-theme="autumn"] {
  --theme-primary: #BF360C; --theme-secondary: #FF8F00; --theme-accent: #FBE9E7;
  --theme-gradient-start: #BF360C; --theme-gradient-mid: #A72F0A; --theme-gradient-end: #FF8F00;
  --theme-glow: rgba(191,54,12,0.3);
  --nebula-color-1: rgba(191,54,12,0.1); --nebula-color-2: rgba(255,143,0,0.08); --nebula-color-3: rgba(251,233,231,0.06);
  --accent-primary: #BF360C; --accent-primary-hover: #E5400E; --accent-secondary: #FF8F00;
  --theme-light-bg: #E6C4B9; --theme-light-surface: #E8D2CC; --theme-light-text: #0F0A08;
  --theme-dark-bg: #000000; --theme-dark-surface: #0F0A08; --theme-dark-text: #D7B0A5;
}

/* 34. Zen Garden */
[data-theme="zen-garden"] {
  --theme-primary: #558B2F; --theme-secondary: #A5D6A7; --theme-accent: #F1F8E9;
  --theme-gradient-start: #558B2F; --theme-gradient-mid: #497728; --theme-gradient-end: #A5D6A7;
  --theme-glow: rgba(85,139,47,0.3);
  --nebula-color-1: rgba(85,139,47,0.1); --nebula-color-2: rgba(165,214,167,0.08); --nebula-color-3: rgba(241,248,233,0.06);
  --accent-primary: #558B2F; --accent-primary-hover: #67A939; --accent-secondary: #A5D6A7;
  --theme-light-bg: #C6CCC2; --theme-light-surface: #D2D2D2; --theme-light-text: #030303;
  --theme-dark-bg: #000000; --theme-dark-surface: #030303; --theme-dark-text: #B6B6B6;
}

/* 35. Cyberpunk */
[data-theme="cyberpunk"] {
  --theme-primary: #E91EFF; --theme-secondary: #00F0FF; --theme-accent: #1A0025;
  --theme-gradient-start: #E91EFF; --theme-gradient-mid: #E604FF; --theme-gradient-end: #00F0FF;
  --theme-glow: rgba(233,30,255,0.3);
  --nebula-color-1: rgba(233,30,255,0.1); --nebula-color-2: rgba(0,240,255,0.08); --nebula-color-3: rgba(26,0,37,0.06);
  --accent-primary: #E91EFF; --accent-primary-hover: #EC46FE; --accent-secondary: #00F0FF;
  --theme-light-bg: #FCF6FC; --theme-light-surface: #FFFFFF; --theme-light-text: #451F49;
  --theme-dark-bg: #311B34; --theme-dark-surface: #451F49; --theme-dark-text: #F0DBF3;
}

/* 36. Matrix */
[data-theme="matrix"] {
  --theme-primary: #00E676; --theme-secondary: #1B5E20; --theme-accent: #0A1F0A;
  --theme-gradient-start: #00E676; --theme-gradient-mid: #00FF83; --theme-gradient-end: #1B5E20;
  --theme-glow: rgba(0,230,118,0.3);
  --nebula-color-1: rgba(0,230,118,0.1); --nebula-color-2: rgba(27,94,32,0.08); --nebula-color-3: rgba(10,31,10,0.06);
  --accent-primary: #00E676; --accent-primary-hover: #00BD61; --accent-secondary: #1B5E20;
  --theme-light-bg: #C9F1DE; --theme-light-surface: #DCF3E8; --theme-light-text: #0F2419;
  --theme-dark-bg: #08100C; --theme-dark-surface: #0F2419; --theme-dark-text: #B2E5CC;
}

/* 37. Synthwave */
[data-theme="synthwave"] {
  --theme-primary: #FF006E; --theme-secondary: #8338EC; --theme-accent: #1A002E;
  --theme-gradient-start: #FF006E; --theme-gradient-mid: #E50062; --theme-gradient-end: #8338EC;
  --theme-glow: rgba(255,0,110,0.3);
  --nebula-color-1: rgba(255,0,110,0.1); --nebula-color-2: rgba(131,56,236,0.08); --nebula-color-3: rgba(26,0,46,0.06);
  --accent-primary: #FF006E; --accent-primary-hover: #FF2885; --accent-secondary: #8338EC;
  --theme-light-bg: #F6DDE8; --theme-light-surface: #F9EEF3; --theme-light-text: #341623;
  --theme-dark-bg: #201118; --theme-dark-surface: #341623; --theme-dark-text: #EBC4D5;
}

/* 38. AI Neural */
[data-theme="ai-neural"] {
  --theme-primary: #536DFE; --theme-secondary: #00E5FF; --theme-accent: #E8EAF6;
  --theme-gradient-start: #536DFE; --theme-gradient-mid: #3957FD; --theme-gradient-end: #00E5FF;
  --theme-glow: rgba(83,109,254,0.3);
  --nebula-color-1: rgba(83,109,254,0.1); --nebula-color-2: rgba(0,229,255,0.08); --nebula-color-3: rgba(232,234,246,0.06);
  --accent-primary: #536DFE; --accent-primary-hover: #7B8FFE; --accent-secondary: #00E5FF;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #2F396D;
  --theme-dark-bg: #2F3554; --theme-dark-surface: #2F396D; --theme-dark-text: #FFFFFF;
}

/* 39. Blockchain */
[data-theme="blockchain"] {
  --theme-primary: #F9A825; --theme-secondary: #6D4C41; --theme-accent: #FFF8E1;
  --theme-gradient-start: #F9A825; --theme-gradient-mid: #F9B13D; --theme-gradient-end: #6D4C41;
  --theme-glow: rgba(249,168,37,0.3);
  --nebula-color-1: rgba(249,168,37,0.1); --nebula-color-2: rgba(109,76,65,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #F9A825; --accent-primary-hover: #EE9506; --accent-secondary: #6D4C41;
  --theme-light-bg: #FCFAF6; --theme-light-surface: #FFFFFF; --theme-light-text: #473923;
  --theme-dark-bg: #322A1E; --theme-dark-surface: #473923; --theme-dark-text: #F2EADE;
}

/* 40. Gaming */
[data-theme="gaming"] {
  --theme-primary: #76FF03; --theme-secondary: #D500F9; --theme-accent: #1A1A2E;
  --theme-gradient-start: #76FF03; --theme-gradient-mid: #83FF1C; --theme-gradient-end: #D500F9;
  --theme-glow: rgba(118,255,3,0.3);
  --nebula-color-1: rgba(118,255,3,0.1); --nebula-color-2: rgba(213,0,249,0.08); --nebula-color-3: rgba(26,26,46,0.06);
  --accent-primary: #76FF03; --accent-primary-hover: #63D900; --accent-secondary: #D500F9;
  --theme-light-bg: #EAF7E0; --theme-light-surface: #F5FAF1; --theme-light-text: #253617;
  --theme-dark-bg: #192212; --theme-dark-surface: #253617; --theme-dark-text: #D8ECC7;
}

/* 41. Terminal */
[data-theme="terminal"] {
  --theme-primary: #00E676; --theme-secondary: #263238; --theme-accent: #0A0F0A;
  --theme-gradient-start: #00E676; --theme-gradient-mid: #00FF83; --theme-gradient-end: #263238;
  --theme-glow: rgba(0,230,118,0.3);
  --nebula-color-1: rgba(0,230,118,0.1); --nebula-color-2: rgba(38,50,56,0.08); --nebula-color-3: rgba(10,15,10,0.06);
  --accent-primary: #00E676; --accent-primary-hover: #00BD61; --accent-secondary: #263238;
  --theme-light-bg: #C9F1DE; --theme-light-surface: #DCF3E8; --theme-light-text: #0F2419;
  --theme-dark-bg: #08100C; --theme-dark-surface: #0F2419; --theme-dark-text: #B2E5CC;
}

/* 42. Retro Arcade */
[data-theme="retro-arcade"] {
  --theme-primary: #FF1744; --theme-secondary: #FFEA00; --theme-accent: #1A1A2E;
  --theme-gradient-start: #FF1744; --theme-gradient-mid: #FC0030; --theme-gradient-end: #FFEA00;
  --theme-glow: rgba(255,23,68,0.3);
  --nebula-color-1: rgba(255,23,68,0.1); --nebula-color-2: rgba(255,234,0,0.08); --nebula-color-3: rgba(26,26,46,0.06);
  --accent-primary: #FF1744; --accent-primary-hover: #FF3F64; --accent-secondary: #FFEA00;
  --theme-light-bg: #FBEFF2; --theme-light-surface: #FFFFFF; --theme-light-text: #441D25;
  --theme-dark-bg: #2F191D; --theme-dark-surface: #441D25; --theme-dark-text: #F1D6DB;
}

/* 43. Coffee Shop */
[data-theme="coffee-shop"] {
  --theme-primary: #6D4C41; --theme-secondary: #D7CCC8; --theme-accent: #EFEBE9;
  --theme-gradient-start: #6D4C41; --theme-gradient-mid: #5D4037; --theme-gradient-end: #D7CCC8;
  --theme-glow: rgba(109,76,65,0.3);
  --nebula-color-1: rgba(109,76,65,0.1); --nebula-color-2: rgba(215,204,200,0.08); --nebula-color-3: rgba(239,235,233,0.06);
  --accent-primary: #6D4C41; --accent-primary-hover: #865D50; --accent-secondary: #D7CCC8;
  --theme-light-bg: #C2C2C2; --theme-light-surface: #CCCCCC; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #B0B0B0;
}

/* 44. Wine Cellar */
[data-theme="wine-cellar"] {
  --theme-primary: #880E4F; --theme-secondary: #D4A373; --theme-accent: #FCE4EC;
  --theme-gradient-start: #880E4F; --theme-gradient-mid: #700B41; --theme-gradient-end: #D4A373;
  --theme-glow: rgba(136,14,79,0.3);
  --nebula-color-1: rgba(136,14,79,0.1); --nebula-color-2: rgba(212,163,115,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #880E4F; --accent-primary-hover: #AC1164; --accent-secondary: #D4A373;
  --theme-light-bg: #D397B8; --theme-light-surface: #D3ABC1; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #C086A5;
}

/* 45. Sushi */
[data-theme="sushi"] {
  --theme-primary: #D32F2F; --theme-secondary: #FFA726; --theme-accent: #FFF8E1;
  --theme-gradient-start: #D32F2F; --theme-gradient-mid: #BF2828; --theme-gradient-end: #FFA726;
  --theme-glow: rgba(211,47,47,0.3);
  --nebula-color-1: rgba(211,47,47,0.1); --nebula-color-2: rgba(255,167,38,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #D32F2F; --accent-primary-hover: #DA5050; --accent-secondary: #FFA726;
  --theme-light-bg: #F0E6E6; --theme-light-surface: #F7F4F4; --theme-light-text: #292525;
  --theme-dark-bg: #1A1A1A; --theme-dark-surface: #292525; --theme-dark-text: #DFD4D4;
}

/* 46. Bakery */
[data-theme="bakery"] {
  --theme-primary: #F9A825; --theme-secondary: #D7CCC8; --theme-accent: #FFF8E1;
  --theme-gradient-start: #F9A825; --theme-gradient-mid: #F9B13D; --theme-gradient-end: #D7CCC8;
  --theme-glow: rgba(249,168,37,0.3);
  --nebula-color-1: rgba(249,168,37,0.1); --nebula-color-2: rgba(215,204,200,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #F9A825; --accent-primary-hover: #EE9506; --accent-secondary: #D7CCC8;
  --theme-light-bg: #FCFAF6; --theme-light-surface: #FFFFFF; --theme-light-text: #473923;
  --theme-dark-bg: #322A1E; --theme-dark-surface: #473923; --theme-dark-text: #F2EADE;
}

/* 47. Cocktail Bar */
[data-theme="cocktail-bar"] {
  --theme-primary: #E91E63; --theme-secondary: #00BCD4; --theme-accent: #FCE4EC;
  --theme-gradient-start: #E91E63; --theme-gradient-mid: #D81557; --theme-gradient-end: #00BCD4;
  --theme-glow: rgba(233,30,99,0.3);
  --nebula-color-1: rgba(233,30,99,0.1); --nebula-color-2: rgba(0,188,212,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #E91E63; --accent-primary-hover: #EC437C; --accent-secondary: #00BCD4;
  --theme-light-bg: #F5E7EB; --theme-light-surface: #FAF6F7; --theme-light-text: #322026;
  --theme-dark-bg: #20191B; --theme-dark-surface: #322026; --theme-dark-text: #E7D1D8;
}

/* 48. Ice Cream */
[data-theme="ice-cream"] {
  --theme-primary: #F48FB1; --theme-secondary: #81D4FA; --theme-accent: #FCE4EC;
  --theme-gradient-start: #F48FB1; --theme-gradient-mid: #F6A6C1; --theme-gradient-end: #81D4FA;
  --theme-glow: rgba(244,143,177,0.3);
  --nebula-color-1: rgba(244,143,177,0.1); --nebula-color-2: rgba(129,212,250,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #F48FB1; --accent-primary-hover: #F06997; --accent-secondary: #81D4FA;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #7F5061;
  --theme-dark-bg: #655058; --theme-dark-surface: #7F5061; --theme-dark-text: #FFFFFF;
}

/* 49. Fast Food */
[data-theme="fast-food"] {
  --theme-primary: #F44336; --theme-secondary: #FFD54F; --theme-accent: #FFF3E0;
  --theme-gradient-start: #F44336; --theme-gradient-mid: #F22C1D; --theme-gradient-end: #FFD54F;
  --theme-glow: rgba(244,67,54,0.3);
  --nebula-color-1: rgba(244,67,54,0.1); --nebula-color-2: rgba(255,213,79,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #F44336; --accent-primary-hover: #F6675C; --accent-secondary: #FFD54F;
  --theme-light-bg: #FEFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #4C2B29;
  --theme-dark-bg: #372625; --theme-dark-surface: #4C2B29; --theme-dark-text: #F4E7E6;
}

/* 50. Vegan */
[data-theme="vegan"] {
  --theme-primary: #43A047; --theme-secondary: #AED581; --theme-accent: #E8F5E9;
  --theme-gradient-start: #43A047; --theme-gradient-mid: #3B8E3F; --theme-gradient-end: #AED581;
  --theme-glow: rgba(67,160,71,0.3);
  --nebula-color-1: rgba(67,160,71,0.1); --nebula-color-2: rgba(174,213,129,0.08); --nebula-color-3: rgba(232,245,233,0.06);
  --accent-primary: #43A047; --accent-primary-hover: #54B758; --accent-secondary: #AED581;
  --theme-light-bg: #DBDCDB; --theme-light-surface: #E6E6E6; --theme-light-text: #171717;
  --theme-dark-bg: #0A0A0A; --theme-dark-surface: #171717; --theme-dark-text: #CACACA;
}

/* 51. Formula One */
[data-theme="formula-one"] {
  --theme-primary: #D32F2F; --theme-secondary: #212121; --theme-accent: #FFF3E0;
  --theme-gradient-start: #D32F2F; --theme-gradient-mid: #BF2828; --theme-gradient-end: #212121;
  --theme-glow: rgba(211,47,47,0.3);
  --nebula-color-1: rgba(211,47,47,0.1); --nebula-color-2: rgba(33,33,33,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #D32F2F; --accent-primary-hover: #DA5050; --accent-secondary: #212121;
  --theme-light-bg: #F0E6E6; --theme-light-surface: #F7F4F4; --theme-light-text: #292525;
  --theme-dark-bg: #1A1A1A; --theme-dark-surface: #292525; --theme-dark-text: #DFD4D4;
}

/* 52. Tennis */
[data-theme="tennis"] {
  --theme-primary: #4CAF50; --theme-secondary: #FFC107; --theme-accent: #F1F8E9;
  --theme-gradient-start: #4CAF50; --theme-gradient-mid: #5CB85F; --theme-gradient-end: #FFC107;
  --theme-glow: rgba(76,175,80,0.3);
  --nebula-color-1: rgba(76,175,80,0.1); --nebula-color-2: rgba(255,193,7,0.08); --nebula-color-3: rgba(241,248,233,0.06);
  --accent-primary: #4CAF50; --accent-primary-hover: #3F9242; --accent-secondary: #FFC107;
  --theme-light-bg: #E8E8E8; --theme-light-surface: #F2F2F2; --theme-light-text: #232323;
  --theme-dark-bg: #161616; --theme-dark-surface: #232323; --theme-dark-text: #D6D6D6;
}

/* 53. Swimming */
[data-theme="swimming"] {
  --theme-primary: #0288D1; --theme-secondary: #4DD0E1; --theme-accent: #E0F7FA;
  --theme-gradient-start: #0288D1; --theme-gradient-mid: #0177B7; --theme-gradient-end: #4DD0E1;
  --theme-glow: rgba(2,136,209,0.3);
  --nebula-color-1: rgba(2,136,209,0.1); --nebula-color-2: rgba(77,208,225,0.08); --nebula-color-3: rgba(224,247,250,0.06);
  --accent-primary: #0288D1; --accent-primary-hover: #02A2F9; --accent-secondary: #4DD0E1;
  --theme-light-bg: #BBDBED; --theme-light-surface: #CEE2EE; --theme-light-text: #091115;
  --theme-dark-bg: #020303; --theme-dark-surface: #091115; --theme-dark-text: #A4CADF;
}

/* 54. Basketball */
[data-theme="basketball"] {
  --theme-primary: #E65100; --theme-secondary: #FF8F00; --theme-accent: #FFF3E0;
  --theme-gradient-start: #E65100; --theme-gradient-mid: #CC4800; --theme-gradient-end: #FF8F00;
  --theme-glow: rgba(230,81,0,0.3);
  --nebula-color-1: rgba(230,81,0,0.1); --nebula-color-2: rgba(255,143,0,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #E65100; --accent-primary-hover: #FF640F; --accent-secondary: #FF8F00;
  --theme-light-bg: #F1D7C9; --theme-light-surface: #F3E4DC; --theme-light-text: #24160F;
  --theme-dark-bg: #100B08; --theme-dark-surface: #24160F; --theme-dark-text: #E5C3B2;
}

/* 55. Football */
[data-theme="football"] {
  --theme-primary: #2E7D32; --theme-secondary: #FFFFFF; --theme-accent: #E8F5E9;
  --theme-gradient-start: #2E7D32; --theme-gradient-mid: #276A2A; --theme-gradient-end: #FFFFFF;
  --theme-glow: rgba(46,125,50,0.3);
  --nebula-color-1: rgba(46,125,50,0.1); --nebula-color-2: rgba(255,255,255,0.08); --nebula-color-3: rgba(232,245,233,0.06);
  --accent-primary: #2E7D32; --accent-primary-hover: #389A3D; --accent-secondary: #FFFFFF;
  --theme-light-bg: #BCC3BC; --theme-light-surface: #CACACA; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #AEAEAE;
}

/* 56. Skiing */
[data-theme="skiing"] {
  --theme-primary: #1E88E5; --theme-secondary: #E0E0E0; --theme-accent: #E3F2FD;
  --theme-gradient-start: #1E88E5; --theme-gradient-mid: #187AD1; --theme-gradient-end: #E0E0E0;
  --theme-glow: rgba(30,136,229,0.3);
  --nebula-color-1: rgba(30,136,229,0.1); --nebula-color-2: rgba(224,224,224,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #1E88E5; --accent-primary-hover: #429BE9; --accent-secondary: #E0E0E0;
  --theme-light-bg: #E4ECF3; --theme-light-surface: #F3F6F8; --theme-light-text: #20282F;
  --theme-dark-bg: #181B1D; --theme-dark-surface: #20282F; --theme-dark-text: #CFDAE5;
}

/* 57. Boxing */
[data-theme="boxing"] {
  --theme-primary: #C62828; --theme-secondary: #FFD54F; --theme-accent: #FFEBEE;
  --theme-gradient-start: #C62828; --theme-gradient-mid: #B02323; --theme-gradient-end: #FFD54F;
  --theme-glow: rgba(198,40,40,0.3);
  --nebula-color-1: rgba(198,40,40,0.1); --nebula-color-2: rgba(255,213,79,0.08); --nebula-color-3: rgba(255,235,238,0.06);
  --accent-primary: #C62828; --accent-primary-hover: #D83E3E; --accent-secondary: #FFD54F;
  --theme-light-bg: #E9D9D9; --theme-light-surface: #EEE8E8; --theme-light-text: #1F1B1B;
  --theme-dark-bg: #101010; --theme-dark-surface: #1F1B1B; --theme-dark-text: #D7C7C7;
}

/* 58. Yoga */
[data-theme="yoga"] {
  --theme-primary: #7E57C2; --theme-secondary: #AED581; --theme-accent: #F3E5F5;
  --theme-gradient-start: #7E57C2; --theme-gradient-mid: #6F44BB; --theme-gradient-end: #AED581;
  --theme-glow: rgba(126,87,194,0.3);
  --nebula-color-1: rgba(126,87,194,0.1); --nebula-color-2: rgba(174,213,129,0.08); --nebula-color-3: rgba(243,229,245,0.06);
  --accent-primary: #7E57C2; --accent-primary-hover: #9474CC; --accent-secondary: #AED581;
  --theme-light-bg: #F6F6F7; --theme-light-surface: #FFFFFF; --theme-light-text: #323232;
  --theme-dark-bg: #262626; --theme-dark-surface: #323232; --theme-dark-text: #E5E5E5;
}

/* 59. Spring */
[data-theme="spring"] {
  --theme-primary: #66BB6A; --theme-secondary: #F48FB1; --theme-accent: #E8F5E9;
  --theme-gradient-start: #66BB6A; --theme-gradient-mid: #77C27B; --theme-gradient-end: #F48FB1;
  --theme-glow: rgba(102,187,106,0.3);
  --nebula-color-1: rgba(102,187,106,0.1); --nebula-color-2: rgba(244,143,177,0.08); --nebula-color-3: rgba(232,245,233,0.06);
  --accent-primary: #66BB6A; --accent-primary-hover: #4CAB50; --accent-secondary: #F48FB1;
  --theme-light-bg: #FBFBFB; --theme-light-surface: #FFFFFF; --theme-light-text: #363636;
  --theme-dark-bg: #292929; --theme-dark-surface: #363636; --theme-dark-text: #E9E9E9;
}

/* 60. Summer */
[data-theme="summer"] {
  --theme-primary: #FF7043; --theme-secondary: #FFCA28; --theme-accent: #FFF3E0;
  --theme-gradient-start: #FF7043; --theme-gradient-mid: #FF835C; --theme-gradient-end: #FFCA28;
  --theme-glow: rgba(255,112,67,0.3);
  --nebula-color-1: rgba(255,112,67,0.1); --nebula-color-2: rgba(255,202,40,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #FF7043; --accent-primary-hover: #FE501A; --accent-secondary: #FFCA28;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #63382A;
  --theme-dark-bg: #4C3128; --theme-dark-surface: #63382A; --theme-dark-text: #FCF8F7;
}

/* 61. Winter */
[data-theme="winter"] {
  --theme-primary: #42A5F5; --theme-secondary: #B0BEC5; --theme-accent: #E3F2FD;
  --theme-gradient-start: #42A5F5; --theme-gradient-mid: #5AB0F6; --theme-gradient-end: #B0BEC5;
  --theme-glow: rgba(66,165,245,0.3);
  --nebula-color-1: rgba(66,165,245,0.1); --nebula-color-2: rgba(176,190,197,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #42A5F5; --accent-primary-hover: #1B92F2; --accent-secondary: #B0BEC5;
  --theme-light-bg: #FFFEFE; --theme-light-surface: #FFFFFF; --theme-light-text: #2E4355;
  --theme-dark-bg: #2A363F; --theme-dark-surface: #2E4355; --theme-dark-text: #EFF4F8;
}

/* 62. Monsoon */
[data-theme="monsoon"] {
  --theme-primary: #455A64; --theme-secondary: #78909C; --theme-accent: #ECEFF1;
  --theme-gradient-start: #455A64; --theme-gradient-mid: #3A4C54; --theme-gradient-end: #78909C;
  --theme-glow: rgba(69,90,100,0.3);
  --nebula-color-1: rgba(69,90,100,0.1); --nebula-color-2: rgba(120,144,156,0.08); --nebula-color-3: rgba(236,239,241,0.06);
  --accent-primary: #455A64; --accent-primary-hover: #556F7C; --accent-secondary: #78909C;
  --theme-light-bg: #BFBFBF; --theme-light-surface: #C9C9C9; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #ADADAD;
}

/* 63. Rainbow */
[data-theme="rainbow"] {
  --theme-primary: #E91E63; --theme-secondary: #2196F3; --theme-accent: #FFF8E1;
  --theme-gradient-start: #E91E63; --theme-gradient-mid: #D81557; --theme-gradient-end: #2196F3;
  --theme-glow: rgba(233,30,99,0.3);
  --nebula-color-1: rgba(233,30,99,0.1); --nebula-color-2: rgba(33,150,243,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #E91E63; --accent-primary-hover: #EC437C; --accent-secondary: #2196F3;
  --theme-light-bg: #F5E7EB; --theme-light-surface: #FAF6F7; --theme-light-text: #322026;
  --theme-dark-bg: #20191B; --theme-dark-surface: #322026; --theme-dark-text: #E7D1D8;
}

/* 64. Thunderstorm */
[data-theme="thunderstorm"] {
  --theme-primary: #37474F; --theme-secondary: #FFC107; --theme-accent: #263238;
  --theme-gradient-start: #37474F; --theme-gradient-mid: #2C393F; --theme-gradient-end: #FFC107;
  --theme-glow: rgba(55,71,79,0.3);
  --nebula-color-1: rgba(55,71,79,0.1); --nebula-color-2: rgba(255,193,7,0.08); --nebula-color-3: rgba(38,50,56,0.06);
  --accent-primary: #37474F; --accent-primary-hover: #475C67; --accent-secondary: #FFC107;
  --theme-light-bg: #AEAEAE; --theme-light-surface: #B8B8B8; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #9C9C9C;
}

/* 65. Foggy Morning */
[data-theme="foggy-morning"] {
  --theme-primary: #90A4AE; --theme-secondary: #CFD8DC; --theme-accent: #ECEFF1;
  --theme-gradient-start: #90A4AE; --theme-gradient-mid: #9EB0B8; --theme-gradient-end: #CFD8DC;
  --theme-glow: rgba(144,164,174,0.3);
  --nebula-color-1: rgba(144,164,174,0.1); --nebula-color-2: rgba(207,216,220,0.08); --nebula-color-3: rgba(236,239,241,0.06);
  --accent-primary: #90A4AE; --accent-primary-hover: #78909C; --accent-secondary: #CFD8DC;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #454545;
  --theme-dark-bg: #383838; --theme-dark-surface: #454545; --theme-dark-text: #F8F8F8;
}

/* 66. Golden Hour */
[data-theme="golden-hour"] {
  --theme-primary: #FF8F00; --theme-secondary: #FFD54F; --theme-accent: #FFF8E1;
  --theme-gradient-start: #FF8F00; --theme-gradient-mid: #FF9A19; --theme-gradient-end: #FFD54F;
  --theme-glow: rgba(255,143,0,0.3);
  --nebula-color-1: rgba(255,143,0,0.1); --nebula-color-2: rgba(255,213,79,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #FF8F00; --accent-primary-hover: #D67800; --accent-secondary: #FFD54F;
  --theme-light-bg: #F6EBDD; --theme-light-surface: #F9F4EE; --theme-light-text: #342716;
  --theme-dark-bg: #201911; --theme-dark-surface: #342716; --theme-dark-text: #EBDAC4;
}

/* 67. Moonlight */
[data-theme="moonlight"] {
  --theme-primary: #283593; --theme-secondary: #C5CAE9; --theme-accent: #E8EAF6;
  --theme-gradient-start: #283593; --theme-gradient-mid: #222D7E; --theme-gradient-end: #C5CAE9;
  --theme-glow: rgba(40,53,147,0.3);
  --nebula-color-1: rgba(40,53,147,0.1); --nebula-color-2: rgba(197,202,233,0.08); --nebula-color-3: rgba(232,234,246,0.06);
  --accent-primary: #283593; --accent-primary-hover: #3040B3; --accent-secondary: #C5CAE9;
  --theme-light-bg: #BEC1D1; --theme-light-surface: #CECFD5; --theme-light-text: #030303;
  --theme-dark-bg: #000000; --theme-dark-surface: #030303; --theme-dark-text: #B0B2BB;
}

/* 68. Japan */
[data-theme="japan"] {
  --theme-primary: #D32F2F; --theme-secondary: #FFFFFF; --theme-accent: #FCE4EC;
  --theme-gradient-start: #D32F2F; --theme-gradient-mid: #BF2828; --theme-gradient-end: #FFFFFF;
  --theme-glow: rgba(211,47,47,0.3);
  --nebula-color-1: rgba(211,47,47,0.1); --nebula-color-2: rgba(255,255,255,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #D32F2F; --accent-primary-hover: #DA5050; --accent-secondary: #FFFFFF;
  --theme-light-bg: #F0E6E6; --theme-light-surface: #F7F4F4; --theme-light-text: #292525;
  --theme-dark-bg: #1A1A1A; --theme-dark-surface: #292525; --theme-dark-text: #DFD4D4;
}

/* 69. Brazil */
[data-theme="brazil"] {
  --theme-primary: #2E7D32; --theme-secondary: #F9A825; --theme-accent: #E8F5E9;
  --theme-gradient-start: #2E7D32; --theme-gradient-mid: #276A2A; --theme-gradient-end: #F9A825;
  --theme-glow: rgba(46,125,50,0.3);
  --nebula-color-1: rgba(46,125,50,0.1); --nebula-color-2: rgba(249,168,37,0.08); --nebula-color-3: rgba(232,245,233,0.06);
  --accent-primary: #2E7D32; --accent-primary-hover: #389A3D; --accent-secondary: #F9A825;
  --theme-light-bg: #BCC3BC; --theme-light-surface: #CACACA; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #AEAEAE;
}

/* 70. India */
[data-theme="india"] {
  --theme-primary: #FF6F00; --theme-secondary: #1565C0; --theme-accent: #FFF3E0;
  --theme-gradient-start: #FF6F00; --theme-gradient-mid: #FF7D19; --theme-gradient-end: #1565C0;
  --theme-glow: rgba(255,111,0,0.3);
  --nebula-color-1: rgba(255,111,0,0.1); --nebula-color-2: rgba(21,101,192,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #FF6F00; --accent-primary-hover: #D65D00; --accent-secondary: #1565C0;
  --theme-light-bg: #F6E8DD; --theme-light-surface: #F9F3EE; --theme-light-text: #342316;
  --theme-dark-bg: #201811; --theme-dark-surface: #342316; --theme-dark-text: #EBD5C4;
}

/* 71. Morocco */
[data-theme="morocco"] {
  --theme-primary: #BF360C; --theme-secondary: #00838F; --theme-accent: #FBE9E7;
  --theme-gradient-start: #BF360C; --theme-gradient-mid: #A72F0A; --theme-gradient-end: #00838F;
  --theme-glow: rgba(191,54,12,0.3);
  --nebula-color-1: rgba(191,54,12,0.1); --nebula-color-2: rgba(0,131,143,0.08); --nebula-color-3: rgba(251,233,231,0.06);
  --accent-primary: #BF360C; --accent-primary-hover: #E5400E; --accent-secondary: #00838F;
  --theme-light-bg: #E6C4B9; --theme-light-surface: #E8D2CC; --theme-light-text: #0F0A08;
  --theme-dark-bg: #000000; --theme-dark-surface: #0F0A08; --theme-dark-text: #D7B0A5;
}

/* 72. Scandinavia */
[data-theme="scandinavia"] {
  --theme-primary: #1E88E5; --theme-secondary: #ECEFF1; --theme-accent: #E3F2FD;
  --theme-gradient-start: #1E88E5; --theme-gradient-mid: #187AD1; --theme-gradient-end: #ECEFF1;
  --theme-glow: rgba(30,136,229,0.3);
  --nebula-color-1: rgba(30,136,229,0.1); --nebula-color-2: rgba(236,239,241,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #1E88E5; --accent-primary-hover: #429BE9; --accent-secondary: #ECEFF1;
  --theme-light-bg: #E4ECF3; --theme-light-surface: #F3F6F8; --theme-light-text: #20282F;
  --theme-dark-bg: #181B1D; --theme-dark-surface: #20282F; --theme-dark-text: #CFDAE5;
}

/* 73. Egypt */
[data-theme="egypt"] {
  --theme-primary: #F9A825; --theme-secondary: #1A237E; --theme-accent: #FFF8E1;
  --theme-gradient-start: #F9A825; --theme-gradient-mid: #F9B13D; --theme-gradient-end: #1A237E;
  --theme-glow: rgba(249,168,37,0.3);
  --nebula-color-1: rgba(249,168,37,0.1); --nebula-color-2: rgba(26,35,126,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #F9A825; --accent-primary-hover: #EE9506; --accent-secondary: #1A237E;
  --theme-light-bg: #FCFAF6; --theme-light-surface: #FFFFFF; --theme-light-text: #473923;
  --theme-dark-bg: #322A1E; --theme-dark-surface: #473923; --theme-dark-text: #F2EADE;
}

/* 74. Mexico */
[data-theme="mexico"] {
  --theme-primary: #E91E63; --theme-secondary: #4CAF50; --theme-accent: #FCE4EC;
  --theme-gradient-start: #E91E63; --theme-gradient-mid: #D81557; --theme-gradient-end: #4CAF50;
  --theme-glow: rgba(233,30,99,0.3);
  --nebula-color-1: rgba(233,30,99,0.1); --nebula-color-2: rgba(76,175,80,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #E91E63; --accent-primary-hover: #EC437C; --accent-secondary: #4CAF50;
  --theme-light-bg: #F5E7EB; --theme-light-surface: #FAF6F7; --theme-light-text: #322026;
  --theme-dark-bg: #20191B; --theme-dark-surface: #322026; --theme-dark-text: #E7D1D8;
}

/* 75. Greece */
[data-theme="greece"] {
  --theme-primary: #1565C0; --theme-secondary: #FFFFFF; --theme-accent: #E3F2FD;
  --theme-gradient-start: #1565C0; --theme-gradient-mid: #1258A9; --theme-gradient-end: #FFFFFF;
  --theme-glow: rgba(21,101,192,0.3);
  --nebula-color-1: rgba(21,101,192,0.1); --nebula-color-2: rgba(255,255,255,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #1565C0; --accent-primary-hover: #1978E4; --accent-secondary: #FFFFFF;
  --theme-light-bg: #C4D3E6; --theme-light-surface: #D5DEE8; --theme-light-text: #0D1014;
  --theme-dark-bg: #030304; --theme-dark-surface: #0D1014; --theme-dark-text: #B1C2D5;
}

/* 76. Russia */
[data-theme="russia"] {
  --theme-primary: #C62828; --theme-secondary: #1565C0; --theme-accent: #FFEBEE;
  --theme-gradient-start: #C62828; --theme-gradient-mid: #B02323; --theme-gradient-end: #1565C0;
  --theme-glow: rgba(198,40,40,0.3);
  --nebula-color-1: rgba(198,40,40,0.1); --nebula-color-2: rgba(21,101,192,0.08); --nebula-color-3: rgba(255,235,238,0.06);
  --accent-primary: #C62828; --accent-primary-hover: #D83E3E; --accent-secondary: #1565C0;
  --theme-light-bg: #E9D9D9; --theme-light-surface: #EEE8E8; --theme-light-text: #1F1B1B;
  --theme-dark-bg: #101010; --theme-dark-surface: #1F1B1B; --theme-dark-text: #D7C7C7;
}

/* 77. Switzerland */
[data-theme="switzerland"] {
  --theme-primary: #D32F2F; --theme-secondary: #FFFFFF; --theme-accent: #FFEBEE;
  --theme-gradient-start: #D32F2F; --theme-gradient-mid: #BF2828; --theme-gradient-end: #FFFFFF;
  --theme-glow: rgba(211,47,47,0.3);
  --nebula-color-1: rgba(211,47,47,0.1); --nebula-color-2: rgba(255,255,255,0.08); --nebula-color-3: rgba(255,235,238,0.06);
  --accent-primary: #D32F2F; --accent-primary-hover: #DA5050; --accent-secondary: #FFFFFF;
  --theme-light-bg: #F0E6E6; --theme-light-surface: #F7F4F4; --theme-light-text: #292525;
  --theme-dark-bg: #1A1A1A; --theme-dark-surface: #292525; --theme-dark-text: #DFD4D4;
}

/* 78. Art Deco */
[data-theme="art-deco"] {
  --theme-primary: #C9A962; --theme-secondary: #212121; --theme-accent: #FFF8E1;
  --theme-gradient-start: #C9A962; --theme-gradient-mid: #CFB374; --theme-gradient-end: #212121;
  --theme-glow: rgba(201,169,98,0.3);
  --nebula-color-1: rgba(201,169,98,0.1); --nebula-color-2: rgba(33,33,33,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #C9A962; --accent-primary-hover: #BE9843; --accent-secondary: #212121;
  --theme-light-bg: #FEFEFF; --theme-light-surface: #FFFFFF; --theme-light-text: #3B3B3B;
  --theme-dark-bg: #2F2F2F; --theme-dark-surface: #3B3B3B; --theme-dark-text: #EEEEEE;
}

/* 79. Pop Art */
[data-theme="pop-art"] {
  --theme-primary: #FFD600; --theme-secondary: #E91E63; --theme-accent: #FFF8E1;
  --theme-gradient-start: #FFD600; --theme-gradient-mid: #FFDA19; --theme-gradient-end: #E91E63;
  --theme-glow: rgba(255,214,0,0.3);
  --nebula-color-1: rgba(255,214,0,0.1); --nebula-color-2: rgba(233,30,99,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #FFD600; --accent-primary-hover: #D6B300; --accent-secondary: #E91E63;
  --theme-light-bg: #F6F2DD; --theme-light-surface: #F9F7EE; --theme-light-text: #343016;
  --theme-dark-bg: #201E11; --theme-dark-surface: #343016; --theme-dark-text: #EBE5C4;
}

/* 80. Minimalist */
[data-theme="minimalist"] {
  --theme-primary: #212121; --theme-secondary: #FAFAFA; --theme-accent: #F5F5F5;
  --theme-gradient-start: #212121; --theme-gradient-mid: #141414; --theme-gradient-end: #FAFAFA;
  --theme-glow: rgba(33,33,33,0.3);
  --nebula-color-1: rgba(33,33,33,0.1); --nebula-color-2: rgba(250,250,250,0.08); --nebula-color-3: rgba(245,245,245,0.06);
  --accent-primary: #212121; --accent-primary-hover: #353535; --accent-secondary: #FAFAFA;
  --theme-light-bg: #8C8C8C; --theme-light-surface: #969696; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #7A7A7A;
}

/* 81. Brutalist */
[data-theme="brutalist"] {
  --theme-primary: #9E9E9E; --theme-secondary: #212121; --theme-accent: #F5F5F5;
  --theme-gradient-start: #9E9E9E; --theme-gradient-mid: #AAAAAA; --theme-gradient-end: #212121;
  --theme-glow: rgba(158,158,158,0.3);
  --nebula-color-1: rgba(158,158,158,0.1); --nebula-color-2: rgba(33,33,33,0.08); --nebula-color-3: rgba(245,245,245,0.06);
  --accent-primary: #9E9E9E; --accent-primary-hover: #898989; --accent-secondary: #212121;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #444444;
  --theme-dark-bg: #383838; --theme-dark-surface: #444444; --theme-dark-text: #F7F7F7;
}

/* 82. Pastel Dream */
[data-theme="pastel-dream"] {
  --theme-primary: #90CAF9; --theme-secondary: #F48FB1; --theme-accent: #E8F5E9;
  --theme-gradient-start: #90CAF9; --theme-gradient-mid: #A8D5FA; --theme-gradient-end: #F48FB1;
  --theme-glow: rgba(144,202,249,0.3);
  --nebula-color-1: rgba(144,202,249,0.1); --nebula-color-2: rgba(244,143,177,0.08); --nebula-color-3: rgba(232,245,233,0.06);
  --accent-primary: #90CAF9; --accent-primary-hover: #69B7F6; --accent-secondary: #F48FB1;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #4B6E89;
  --theme-dark-bg: #4A5F71; --theme-dark-surface: #4B6E89; --theme-dark-text: #FFFFFF;
}

/* 83. Neon Noir */
[data-theme="neon-noir"] {
  --theme-primary: #FF006E; --theme-secondary: #0C8298; --theme-accent: #0A0A14;
  --theme-gradient-start: #FF006E; --theme-gradient-mid: #E50062; --theme-gradient-end: #0C8298;
  --theme-glow: rgba(255,0,110,0.3);
  --nebula-color-1: rgba(255,0,110,0.1); --nebula-color-2: rgba(61,90,254,0.08); --nebula-color-3: rgba(10,10,20,0.06);
  --accent-primary: #FF006E; --accent-primary-hover: #FF2885; --accent-secondary: #0C8298;
  --theme-light-bg: #F6DDE8; --theme-light-surface: #F9EEF3; --theme-light-text: #341623;
  --theme-dark-bg: #201118; --theme-dark-surface: #341623; --theme-dark-text: #EBC4D5;
}

/* 84. Watercolor */
[data-theme="watercolor"] {
  --theme-primary: #FFAB91; --theme-secondary: #A5D6A7; --theme-accent: #FFF3E0;
  --theme-gradient-start: #FFAB91; --theme-gradient-mid: #FFBEAA; --theme-gradient-end: #A5D6A7;
  --theme-glow: rgba(255,171,145,0.3);
  --nebula-color-1: rgba(255,171,145,0.1); --nebula-color-2: rgba(165,214,167,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #FFAB91; --accent-primary-hover: #FF8B68; --accent-secondary: #A5D6A7;
  --theme-light-bg: #FEFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #9B5642;
  --theme-dark-bg: #7E5244; --theme-dark-surface: #9B5642; --theme-dark-text: #FFFFFF;
}

/* 85. Steampunk */
[data-theme="steampunk"] {
  --theme-primary: #8D6E63; --theme-secondary: #FF8F00; --theme-accent: #EFEBE9;
  --theme-gradient-start: #8D6E63; --theme-gradient-mid: #7E6258; --theme-gradient-end: #FF8F00;
  --theme-glow: rgba(141,110,99,0.3);
  --nebula-color-1: rgba(141,110,99,0.1); --nebula-color-2: rgba(255,143,0,0.08); --nebula-color-3: rgba(239,235,233,0.06);
  --accent-primary: #8D6E63; --accent-primary-hover: #A08278; --accent-secondary: #FF8F00;
  --theme-light-bg: #E3E3E3; --theme-light-surface: #EDEDED; --theme-light-text: #1E1E1E;
  --theme-dark-bg: #111111; --theme-dark-surface: #1E1E1E; --theme-dark-text: #D1D1D1;
}

/* 86. Luxury */
[data-theme="luxury"] {
  --theme-primary: #212121; --theme-secondary: #C9A962; --theme-accent: #1A1A1A;
  --theme-gradient-start: #212121; --theme-gradient-mid: #141414; --theme-gradient-end: #C9A962;
  --theme-glow: rgba(33,33,33,0.3);
  --nebula-color-1: rgba(33,33,33,0.1); --nebula-color-2: rgba(201,169,98,0.08); --nebula-color-3: rgba(26,26,26,0.06);
  --accent-primary: #212121; --accent-primary-hover: #353535; --accent-secondary: #C9A962;
  --theme-light-bg: #8C8C8C; --theme-light-surface: #969696; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #7A7A7A;
}

/* 87. Playful */
[data-theme="playful"] {
  --theme-primary: #E91E63; --theme-secondary: #42A5F5; --theme-accent: #FCE4EC;
  --theme-gradient-start: #E91E63; --theme-gradient-mid: #D81557; --theme-gradient-end: #42A5F5;
  --theme-glow: rgba(233,30,99,0.3);
  --nebula-color-1: rgba(233,30,99,0.1); --nebula-color-2: rgba(66,165,245,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #E91E63; --accent-primary-hover: #EC437C; --accent-secondary: #42A5F5;
  --theme-light-bg: #F5E7EB; --theme-light-surface: #FAF6F7; --theme-light-text: #322026;
  --theme-dark-bg: #20191B; --theme-dark-surface: #322026; --theme-dark-text: #E7D1D8;
}

/* 88. Serious */
[data-theme="serious"] {
  --theme-primary: #37474F; --theme-secondary: #78909C; --theme-accent: #ECEFF1;
  --theme-gradient-start: #37474F; --theme-gradient-mid: #2C393F; --theme-gradient-end: #78909C;
  --theme-glow: rgba(55,71,79,0.3);
  --nebula-color-1: rgba(55,71,79,0.1); --nebula-color-2: rgba(120,144,156,0.08); --nebula-color-3: rgba(236,239,241,0.06);
  --accent-primary: #37474F; --accent-primary-hover: #475C67; --accent-secondary: #78909C;
  --theme-light-bg: #AEAEAE; --theme-light-surface: #B8B8B8; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #9C9C9C;
}

/* 89. Romantic */
[data-theme="romantic"] {
  --theme-primary: #EC407A; --theme-secondary: #E8A0BF; --theme-accent: #FCE4EC;
  --theme-gradient-start: #EC407A; --theme-gradient-mid: #E92869; --theme-gradient-end: #E8A0BF;
  --theme-glow: rgba(236,64,122,0.3);
  --nebula-color-1: rgba(236,64,122,0.1); --nebula-color-2: rgba(232,160,191,0.08); --nebula-color-3: rgba(252,228,236,0.06);
  --accent-primary: #EC407A; --accent-primary-hover: #EF6593; --accent-secondary: #E8A0BF;
  --theme-light-bg: #FEFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #4A2F38;
  --theme-dark-bg: #35292D; --theme-dark-surface: #4A2F38; --theme-dark-text: #F3E9ED;
}

/* 90. Vintage */
[data-theme="vintage"] {
  --theme-primary: #8D6E63; --theme-secondary: #A5D6A7; --theme-accent: #EFEBE9;
  --theme-gradient-start: #8D6E63; --theme-gradient-mid: #7E6258; --theme-gradient-end: #A5D6A7;
  --theme-glow: rgba(141,110,99,0.3);
  --nebula-color-1: rgba(141,110,99,0.1); --nebula-color-2: rgba(165,214,167,0.08); --nebula-color-3: rgba(239,235,233,0.06);
  --accent-primary: #8D6E63; --accent-primary-hover: #A08278; --accent-secondary: #A5D6A7;
  --theme-light-bg: #E3E3E3; --theme-light-surface: #EDEDED; --theme-light-text: #1E1E1E;
  --theme-dark-bg: #111111; --theme-dark-surface: #1E1E1E; --theme-dark-text: #D1D1D1;
}

/* 91. Futuristic */
[data-theme="futuristic"] {
  --theme-primary: #B0BEC5; --theme-secondary: #536DFE; --theme-accent: #ECEFF1;
  --theme-gradient-start: #B0BEC5; --theme-gradient-mid: #BECACF; --theme-gradient-end: #536DFE;
  --theme-glow: rgba(176,190,197,0.3);
  --nebula-color-1: rgba(176,190,197,0.1); --nebula-color-2: rgba(83,109,254,0.08); --nebula-color-3: rgba(236,239,241,0.06);
  --accent-primary: #B0BEC5; --accent-primary-hover: #98AAB3; --accent-secondary: #536DFE;
  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF; --theme-light-text: #606060;
  --theme-dark-bg: #535353; --theme-dark-surface: #606060; --theme-dark-text: #FFFFFF;
}

/* 92. Cozy */
[data-theme="cozy"] {
  --theme-primary: #FF8F00; --theme-secondary: #D7CCC8; --theme-accent: #FFF3E0;
  --theme-gradient-start: #FF8F00; --theme-gradient-mid: #FF9A19; --theme-gradient-end: #D7CCC8;
  --theme-glow: rgba(255,143,0,0.3);
  --nebula-color-1: rgba(255,143,0,0.1); --nebula-color-2: rgba(215,204,200,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #FF8F00; --accent-primary-hover: #D67800; --accent-secondary: #D7CCC8;
  --theme-light-bg: #F6EBDD; --theme-light-surface: #F9F4EE; --theme-light-text: #342716;
  --theme-dark-bg: #201911; --theme-dark-surface: #342716; --theme-dark-text: #EBDAC4;
}

/* 93. Electric */
[data-theme="electric"] {
  --theme-primary: #FFEA00; --theme-secondary: #2979FF; --theme-accent: #FFF8E1;
  --theme-gradient-start: #FFEA00; --theme-gradient-mid: #FFEC19; --theme-gradient-end: #2979FF;
  --theme-glow: rgba(255,234,0,0.3);
  --nebula-color-1: rgba(255,234,0,0.1); --nebula-color-2: rgba(41,121,255,0.08); --nebula-color-3: rgba(255,248,225,0.06);
  --accent-primary: #FFEA00; --accent-primary-hover: #D6C400; --accent-secondary: #2979FF;
  --theme-light-bg: #F6F4DD; --theme-light-surface: #F9F8EE; --theme-light-text: #343216;
  --theme-dark-bg: #201F11; --theme-dark-surface: #343216; --theme-dark-text: #EBE8C4;
}

/* 94. Aviation */
[data-theme="aviation"] {
  --theme-primary: #42A5F5; --theme-secondary: #ECEFF1; --theme-accent: #E3F2FD;
  --theme-gradient-start: #42A5F5; --theme-gradient-mid: #5AB0F6; --theme-gradient-end: #ECEFF1;
  --theme-glow: rgba(66,165,245,0.3);
  --nebula-color-1: rgba(66,165,245,0.1); --nebula-color-2: rgba(236,239,241,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #42A5F5; --accent-primary-hover: #1B92F2; --accent-secondary: #ECEFF1;
  --theme-light-bg: #FFFEFE; --theme-light-surface: #FFFFFF; --theme-light-text: #2E4355;
  --theme-dark-bg: #2A363F; --theme-dark-surface: #2E4355; --theme-dark-text: #EFF4F8;
}

/* 95. Maritime */
[data-theme="maritime"] {
  --theme-primary: #0D47A1; --theme-secondary: #00897B; --theme-accent: #E3F2FD;
  --theme-gradient-start: #0D47A1; --theme-gradient-mid: #0B3C89; --theme-gradient-end: #00897B;
  --theme-glow: rgba(13,71,161,0.3);
  --nebula-color-1: rgba(13,71,161,0.1); --nebula-color-2: rgba(0,137,123,0.08); --nebula-color-3: rgba(227,242,253,0.06);
  --accent-primary: #0D47A1; --accent-primary-hover: #1057C6; --accent-secondary: #00897B;
  --theme-light-bg: #A5BBDD; --theme-light-surface: #B9C7DD; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #93A9CB;
}

/* 96. Education */
[data-theme="education"] {
  --theme-primary: #43A047; --theme-secondary: #FFD54F; --theme-accent: #E8F5E9;
  --theme-gradient-start: #43A047; --theme-gradient-mid: #3B8E3F; --theme-gradient-end: #FFD54F;
  --theme-glow: rgba(67,160,71,0.3);
  --nebula-color-1: rgba(67,160,71,0.1); --nebula-color-2: rgba(255,213,79,0.08); --nebula-color-3: rgba(232,245,233,0.06);
  --accent-primary: #43A047; --accent-primary-hover: #54B758; --accent-secondary: #FFD54F;
  --theme-light-bg: #DBDCDB; --theme-light-surface: #E6E6E6; --theme-light-text: #171717;
  --theme-dark-bg: #0A0A0A; --theme-dark-surface: #171717; --theme-dark-text: #CACACA;
}

/* 97. Music */
[data-theme="music"] {
  --theme-primary: #6A1B9A; --theme-secondary: #7C4DFF; --theme-accent: #F3E5F5;
  --theme-gradient-start: #6A1B9A; --theme-gradient-mid: #5B1784; --theme-gradient-end: #7C4DFF;
  --theme-glow: rgba(106,27,154,0.3);
  --nebula-color-1: rgba(106,27,154,0.1); --nebula-color-2: rgba(124,77,255,0.08); --nebula-color-3: rgba(243,229,245,0.06);
  --accent-primary: #6A1B9A; --accent-primary-hover: #8121BC; --accent-secondary: #7C4DFF;
  --theme-light-bg: #C9B3D6; --theme-light-surface: #D1C5D8; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #B6A4C2;
}

/* 98. Photography */
[data-theme="photography"] {
  --theme-primary: #616161; --theme-secondary: #FF8F00; --theme-accent: #F5F5F5;
  --theme-gradient-start: #616161; --theme-gradient-mid: #545454; --theme-gradient-end: #FF8F00;
  --theme-glow: rgba(97,97,97,0.3);
  --nebula-color-1: rgba(97,97,97,0.1); --nebula-color-2: rgba(255,143,0,0.08); --nebula-color-3: rgba(245,245,245,0.06);
  --accent-primary: #616161; --accent-primary-hover: #757575; --accent-secondary: #FF8F00;
  --theme-light-bg: #CCCCCC; --theme-light-surface: #D6D6D6; --theme-light-text: #070707;
  --theme-dark-bg: #000000; --theme-dark-surface: #070707; --theme-dark-text: #BABABA;
}

/* 99. Space */
[data-theme="space"] {
  --theme-primary: #1A237E; --theme-secondary: #7C4DFF; --theme-accent: #0A0A1E;
  --theme-gradient-start: #1A237E; --theme-gradient-mid: #151D68; --theme-gradient-end: #7C4DFF;
  --theme-glow: rgba(26,35,126,0.3);
  --nebula-color-1: rgba(26,35,126,0.1); --nebula-color-2: rgba(124,77,255,0.08); --nebula-color-3: rgba(10,10,30,0.06);
  --accent-primary: #1A237E; --accent-primary-hover: #202C9F; --accent-secondary: #7C4DFF;
  --theme-light-bg: #A3A6C9; --theme-light-surface: #B7B9CB; --theme-light-text: #000000;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000; --theme-dark-text: #9799B3;
}

/* 100. Circus */
[data-theme="circus"] {
  --theme-primary: #D32F2F; --theme-secondary: #FFD54F; --theme-accent: #FFF3E0;
  --theme-gradient-start: #D32F2F; --theme-gradient-mid: #BF2828; --theme-gradient-end: #FFD54F;
  --theme-glow: rgba(211,47,47,0.3);
  --nebula-color-1: rgba(211,47,47,0.1); --nebula-color-2: rgba(255,213,79,0.08); --nebula-color-3: rgba(255,243,224,0.06);
  --accent-primary: #D32F2F; --accent-primary-hover: #DA5050; --accent-secondary: #FFD54F;
  --theme-light-bg: #F0E6E6; --theme-light-surface: #F7F4F4; --theme-light-text: #292525;
  --theme-dark-bg: #1A1A1A; --theme-dark-surface: #292525; --theme-dark-text: #DFD4D4;
}

/* Universal text visibility fallback */
[data-theme] {
  --color-text-primary: var(--theme-light-text);
  --color-bg-app: var(--theme-light-bg);
  --color-bg-surface: var(--theme-light-surface);
  --color-action-primary: var(--theme-primary);
  --color-action-primary-hover: var(--accent-primary-hover);
}
[data-theme="dark"][data-theme],
[data-theme][data-mode="dark"] {
  --color-text-primary: var(--theme-dark-text);
  --color-bg-app: var(--theme-dark-bg);
  --color-bg-surface: var(--theme-dark-surface);
}


/* ═══════════════════════════════════════════════════
   Così — Accessibility Themes (8 colorblind-safe)
   ═══════════════════════════════════════════════════

   These are NOT CSS filters — they are carefully designed
   color palettes that are naturally distinguishable by
   people with each type of color vision deficiency.

   Design principles:
   - Protanopia/Deuteranopia: Avoid red-green distinctions.
     Use blue-yellow/orange contrast instead.
   - Tritanopia: Avoid blue-yellow distinctions.
     Use red-green/cyan contrast instead.
   - Achromatopsia: Pure luminance-based design
     (no hue information, only light/dark values).
   ═══════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────
   1. Protanopia Safe — Blue + Yellow palette
   No red-green; relies on blue vs yellow contrast
   ─────────────────────────────────────────────────── */
[data-theme="a11y-protanopia"] {
  --theme-primary: #0066CC;
  --theme-secondary: #003D7A;
  --theme-accent: #FFB800;
  --theme-gradient-start: #0066CC;
  --theme-gradient-mid: #0066CC;
--theme-gradient-end: #003D7A;
  --theme-glow: rgba(0,102,204,0.30);
  --nebula-color-1: rgba(0,102,204,0.10);
  --nebula-color-2: rgba(255,184,0,0.08);
  --nebula-color-3: rgba(0,61,122,0.1);
  --accent-primary: #FFB800;
  --accent-primary-hover: #E6A600;
  --accent-secondary: #0066CC;
  --theme-light-bg: #F5F8FC;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #1A2A3A;
  --theme-dark-bg: #0A1628;
  --theme-dark-surface: rgba(10,22,40,0.8);
  --theme-dark-text: #E0E8F0;
  /* Success: blue, Error: orange, Warning: yellow */
  --feedback-success: #0066CC;
  --feedback-error: #FF8C00;
  --feedback-warning: #FFD700;
}

/* ───────────────────────────────────────────────────
   2. Deuteranopia Safe — Blue + Orange palette
   No red-green; relies on blue vs orange contrast
   ─────────────────────────────────────────────────── */
[data-theme="a11y-deuteranopia"] {
  --theme-primary: #0055AA;
  --theme-secondary: #003366;
  --theme-accent: #FF8800;
  --theme-gradient-start: #0055AA;
  --theme-gradient-mid: #0055AA;
--theme-gradient-end: #003366;
  --theme-glow: rgba(0,85,170,0.30);
  --nebula-color-1: rgba(0,85,170,0.10);
  --nebula-color-2: rgba(255,136,0,0.08);
  --nebula-color-3: rgba(0,51,102,0.1);
  --accent-primary: #FF8800;
  --accent-primary-hover: #E67A00;
  --accent-secondary: #0055AA;
  --theme-light-bg: #F0F5FA;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #1A2840;
  --theme-dark-bg: #081422;
  --theme-dark-surface: rgba(8,20,34,0.8);
  --theme-dark-text: #D8E4F0;
  --feedback-success: #0055AA;
  --feedback-error: #FF6600;
  --feedback-warning: #FFCC00;
}

/* ───────────────────────────────────────────────────
   3. Tritanopia Safe — Red + Cyan palette
   No blue-yellow; relies on red vs cyan contrast
   ─────────────────────────────────────────────────── */
[data-theme="a11y-tritanopia"] {
  --theme-primary: #CC0033;
  --theme-secondary: #8B0022;
  --theme-accent: #00CCAA;
  --theme-gradient-start: #CC0033;
  --theme-gradient-mid: #CC0033;
--theme-gradient-end: #8B0022;
  --theme-glow: rgba(204,0,51,0.30);
  --nebula-color-1: rgba(204,0,51,0.10);
  --nebula-color-2: rgba(0,204,170,0.08);
  --nebula-color-3: rgba(139,0,34,0.1);
  --accent-primary: #00CCAA;
  --accent-primary-hover: #00B898;
  --accent-secondary: #CC0033;
  --theme-light-bg: #FFF5F7;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #2A1A20;
  --theme-dark-bg: #1A0A10;
  --theme-dark-surface: rgba(26,10,16,0.8);
  --theme-dark-text: #F0D8E0;
  --feedback-success: #00CCAA;
  --feedback-error: #CC0033;
  --feedback-warning: #FF6688;
}

/* ───────────────────────────────────────────────────
   4. Protanomaly Safe — Blue + Warm Yellow palette
   Reduced red sensitivity; softened blue-yellow contrast
   ─────────────────────────────────────────────────── */
[data-theme="a11y-protanomaly"] {
  --theme-primary: #2277CC;
  --theme-secondary: #1A5599;
  --theme-accent: #FFAA33;
  --theme-gradient-start: #2277CC;
  --theme-gradient-mid: #2277CC;
--theme-gradient-end: #1A5599;
  --theme-glow: rgba(34,119,204,0.30);
  --nebula-color-1: rgba(34,119,204,0.10);
  --nebula-color-2: rgba(255,170,51,0.08);
  --nebula-color-3: rgba(26,85,153,0.1);
  --accent-primary: #FFAA33;
  --accent-primary-hover: #E69922;
  --accent-secondary: #2277CC;
  --theme-light-bg: #F5F8FC;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #1A2A3A;
  --theme-dark-bg: #0A1628;
  --theme-dark-surface: rgba(10,22,40,0.8);
  --theme-dark-text: #D8E4F0;
}

/* ───────────────────────────────────────────────────
   5. Deuteranomaly Safe — Blue + Amber palette
   Reduced green sensitivity; softened blue-orange contrast
   ─────────────────────────────────────────────────── */
[data-theme="a11y-deuteranomaly"] {
  --theme-primary: #3366BB;
  --theme-secondary: #224488;
  --theme-accent: #FF9944;
  --theme-gradient-start: #3366BB;
  --theme-gradient-mid: #3366BB;
--theme-gradient-end: #224488;
  --theme-glow: rgba(51,102,187,0.30);
  --nebula-color-1: rgba(51,102,187,0.10);
  --nebula-color-2: rgba(255,153,68,0.08);
  --nebula-color-3: rgba(34,68,136,0.1);
  --accent-primary: #FF9944;
  --accent-primary-hover: #E68833;
  --accent-secondary: #3366BB;
  --theme-light-bg: #F0F5FA;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #1A2840;
  --theme-dark-bg: #0A1422;
  --theme-dark-surface: rgba(10,20,34,0.8);
  --theme-dark-text: #D8E4F0;
}

/* ───────────────────────────────────────────────────
   6. Tritanomaly Safe — Rose + Teal palette
   Reduced blue sensitivity; softened red-cyan contrast
   ─────────────────────────────────────────────────── */
[data-theme="a11y-tritanomaly"] {
  --theme-primary: #BB2244;
  --theme-secondary: #881A33;
  --theme-accent: #22BBAA;
  --theme-gradient-start: #BB2244;
  --theme-gradient-mid: #BB2244;
--theme-gradient-end: #881A33;
  --theme-glow: rgba(187,34,68,0.30);
  --nebula-color-1: rgba(187,34,68,0.10);
  --nebula-color-2: rgba(34,187,170,0.08);
  --nebula-color-3: rgba(136,26,51,0.1);
  --accent-primary: #22BBAA;
  --accent-primary-hover: #1AA899;
  --accent-secondary: #BB2244;
  --theme-light-bg: #FFF5F7;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #2A1A20;
  --theme-dark-bg: #1A0A10;
  --theme-dark-surface: rgba(26,10,16,0.8);
  --theme-dark-text: #F0D8E0;
}

/* ───────────────────────────────────────────────────
   7. Achromatopsia — Pure luminance design
   Complete color blindness; no hue information,
   relies entirely on light/dark value contrast
   ─────────────────────────────────────────────────── */
[data-theme="a11y-achromatopsia"] {
  --theme-primary: #AAAAAA;
  --theme-secondary: #777777;
  --theme-accent: #FFFFFF;
  --theme-gradient-start: #999999;
  --theme-gradient-mid: #999999;
--theme-gradient-end: #666666;
  --theme-glow: rgba(170,170,170,0.30);
  --nebula-color-1: rgba(170,170,170,0.1);
  --nebula-color-2: rgba(120,120,120,0.08);
  --nebula-color-3: rgba(80,80,80,0.06);
  --accent-primary: #FFFFFF;
  --accent-primary-hover: #E0E0E0;
  --accent-secondary: #AAAAAA;
  --theme-light-bg: #F5F5F5;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #1A1A1A;
  --theme-dark-bg: #0A0A0A;
  --theme-dark-surface: rgba(20,20,20,0.8);
  --theme-dark-text: #E0E0E0;
  --feedback-success: #FFFFFF;
  --feedback-error: #555555;
  --feedback-warning: #AAAAAA;
}

/* ───────────────────────────────────────────────────
   8. Achromatomaly — Very muted color
   Partial color blindness; minimal hue with
   emphasis on luminance differentiation
   ─────────────────────────────────────────────────── */
[data-theme="a11y-achromatomaly"] {
  --theme-primary: #8899AA;
  --theme-secondary: #667788;
  --theme-accent: #BBCCDD;
  --theme-gradient-start: #8899AA;
  --theme-gradient-mid: #8899AA;
--theme-gradient-end: #556677;
  --theme-glow: rgba(136,153,170,0.30);
  --nebula-color-1: rgba(136,153,170,0.08);
  --nebula-color-2: rgba(100,120,140,0.1);
  --nebula-color-3: rgba(80,100,120,0.08);
  --accent-primary: #BBCCDD;
  --accent-primary-hover: #AABBCC;
  --accent-secondary: #8899AA;
  --theme-light-bg: #F0F2F5;
  --theme-light-surface: #FFFFFF;
  --theme-light-text: #2A2A2A;
  --theme-dark-bg: #0D1018;
  --theme-dark-surface: rgba(13,16,24,0.8);
  --theme-dark-text: #D0D8E0;
}

/* ==========================================================================
   Brand.ai Accessibility Stylesheet
   Comprehensive a11y support: color blindness, low vision, epilepsy,
   dyslexia, ADHD, deaf/HoH, cognitive accessibility.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Dyslexia Font Import
   -------------------------------------------------------------------------- */

/* ==========================================================================
   1. COLOR BLINDNESS FILTERS (apply to ANY theme via CSS filter on root)
   ==========================================================================

   Usage: set data-a11y attribute on <html> or <body>
   e.g. <html data-a11y="protanopia">
   ========================================================================== */

/* --- Full deficiency types --- */

/* Protanopia (no red cones) */
[data-a11y="protanopia"] {
  filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeColorMatrix type='matrix' values='0.567 0.433 0 0 0 0.558 0.442 0 0 0 0 0.242 0.758 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/svg%3E#f");
}

/* Deuteranopia (no green cones) */
[data-a11y="deuteranopia"] {
  filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeColorMatrix type='matrix' values='0.625 0.375 0 0 0 0.7 0.3 0 0 0 0 0.3 0.7 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/svg%3E#f");
}

/* Tritanopia (no blue cones) */
[data-a11y="tritanopia"] {
  filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeColorMatrix type='matrix' values='0.95 0.05 0 0 0 0 0.433 0.567 0 0 0 0.475 0.525 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/svg%3E#f");
}

/* --- Anomaly types (50% blend between identity matrix and full deficiency) --- */

/* Protanomaly (weak red) — blend of identity and protanopia */
[data-a11y="protanomaly"] {
  filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeColorMatrix type='matrix' values='0.7835 0.2165 0 0 0 0.279 0.721 0 0 0 0 0.121 0.879 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/svg%3E#f");
}

/* Deuteranomaly (weak green) — blend of identity and deuteranopia */
[data-a11y="deuteranomaly"] {
  filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeColorMatrix type='matrix' values='0.8125 0.1875 0 0 0 0.35 0.65 0 0 0 0 0.15 0.85 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/svg%3E#f");
}

/* Tritanomaly (weak blue) — blend of identity and tritanopia */
[data-a11y="tritanomaly"] {
  filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeColorMatrix type='matrix' values='0.975 0.025 0 0 0 0 0.7165 0.2835 0 0 0 0.2375 0.7625 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/svg%3E#f");
}

/* Achromatopsia (no color perception — full grayscale) */
[data-a11y="achromatopsia"] {
  filter: grayscale(100%) contrast(1.2);
}

/* Achromatomaly (very weak color perception) */
[data-a11y="achromatomaly"] {
  filter: grayscale(70%) contrast(1.1);
}

/* ==========================================================================
   2. PREFERS-REDUCED-MOTION (system-level)
   Respect OS-level motion preferences automatically.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   3. PREFERS-CONTRAST (system-level)
   Respect OS-level contrast preferences automatically.
   ========================================================================== */

@media (prefers-contrast: more) {
  :root {
    --text-contrast: #FFFFFF;
    --bg-contrast: #000000;
    --border-contrast: #FFFFFF;
    --link-contrast: #FFFF00;
    --focus-contrast: #FF0000;
  }
}

/* ==========================================================================
   4. HIGH CONTRAST MODE (WCAG AAA - 7:1 minimum)
   ========================================================================== */

[data-a11y-contrast="high"] {
  --text-contrast: #FFFFFF;
  --bg-contrast: #000000;
  --border-contrast: #FFFFFF;
  --link-contrast: #FFFF00;
  --focus-contrast: #FF0000;
}

[data-a11y-contrast="high"] * {
  border-color: #FFFFFF !important;
  outline-color: #FF0000 !important;
}

[data-a11y-contrast="high"] button,
[data-a11y-contrast="high"] a {
  text-decoration: underline !important;
  border: 2px solid #FFFFFF !important;
}

[data-a11y-contrast="high"] a:visited {
  color: #EE82EE !important;
}

[data-a11y-contrast="high"] a:hover,
[data-a11y-contrast="high"] a:focus {
  color: #FFFF00 !important;
  outline: 3px solid #FF0000 !important;
  outline-offset: 2px !important;
}

[data-a11y-contrast="high"] img {
  border: 2px solid #FFFFFF !important;
}

[data-a11y-contrast="high"] input,
[data-a11y-contrast="high"] select,
[data-a11y-contrast="high"] textarea {
  background: #000000 !important;
  color: #FFFFFF !important;
  border: 2px solid #FFFFFF !important;
}

[data-a11y-contrast="high"] input::placeholder,
[data-a11y-contrast="high"] textarea::placeholder {
  color: #AAAAAA !important;
  opacity: 1 !important;
}

[data-a11y-contrast="high"] input:focus,
[data-a11y-contrast="high"] select:focus,
[data-a11y-contrast="high"] textarea:focus {
  outline: 3px solid #FF0000 !important;
  outline-offset: 2px !important;
}

[data-a11y-contrast="high"] :disabled,
[data-a11y-contrast="high"] [aria-disabled="true"] {
  opacity: 0.6 !important;
  border-style: dashed !important;
}

/* ==========================================================================
   5. LARGE TEXT MODE
   ========================================================================== */

[data-a11y-text="large"] {
  font-size: 150% !important;
}

[data-a11y-text="xlarge"] {
  font-size: 200% !important;
}

/* Ensure line height scales appropriately with large text */
[data-a11y-text="large"] p,
[data-a11y-text="large"] li,
[data-a11y-text="large"] td,
[data-a11y-text="large"] span,
[data-a11y-text="large"] div {
  line-height: 1.6 !important;
}

[data-a11y-text="xlarge"] p,
[data-a11y-text="xlarge"] li,
[data-a11y-text="xlarge"] td,
[data-a11y-text="xlarge"] span,
[data-a11y-text="xlarge"] div {
  line-height: 1.8 !important;
}

/* ==========================================================================
   6. EXTRA LARGE TOUCH TARGETS
   WCAG 2.5.5 Target Size (Enhanced) — 44x44 CSS px minimum;
   we go to 56px for better usability.
   ========================================================================== */

[data-a11y-touch="large"] button,
[data-a11y-touch="large"] a,
[data-a11y-touch="large"] input,
[data-a11y-touch="large"] select {
  min-height: 56px !important;
  min-width: 56px !important;
  padding: 12px 20px !important;
  font-size: 18px !important;
}

[data-a11y-touch="large"] textarea {
  min-height: 80px !important;
  padding: 12px 16px !important;
  font-size: 18px !important;
}

[data-a11y-touch="large"] label {
  padding: 8px 4px !important;
  font-size: 18px !important;
  cursor: pointer !important;
}

/* Increase spacing between interactive elements to prevent accidental taps */
[data-a11y-touch="large"] button + button,
[data-a11y-touch="large"] a + a {
  margin-left: 12px !important;
}

/* ==========================================================================
   7. THICK BORDERS (low vision)
   ========================================================================== */

[data-a11y-borders="thick"] * {
  border-width: 3px !important;
}

[data-a11y-borders="thick"] input,
[data-a11y-borders="thick"] select,
[data-a11y-borders="thick"] textarea {
  border-width: 3px !important;
  outline-width: 3px !important;
}

[data-a11y-borders="thick"] button {
  border-width: 3px !important;
}

[data-a11y-borders="thick"] *:focus {
  outline-width: 4px !important;
  outline-offset: 2px !important;
}

/* ==========================================================================
   8. EPILEPSY / PHOTOSENSITIVE MODE (no motion)
   Disables all animations, transitions, and decorative motion.
   ========================================================================== */

[data-a11y-motion="none"] *,
[data-a11y-motion="none"] *::before,
[data-a11y-motion="none"] *::after {
  animation: none !important;
  transition: none !important;
}

/* Hide decorative animated layers */
[data-a11y-motion="none"] .particles-layer,
[data-a11y-motion="none"] .grid-overlay,
[data-a11y-motion="none"] .desktop-bg::before,
[data-a11y-motion="none"] .desktop-bg::after {
  display: none !important;
}

/* Disable auto-playing media */
[data-a11y-motion="none"] video[autoplay] {
  display: none !important;
}

/* Prevent flashing / strobing content */
[data-a11y-motion="none"] .flash,
[data-a11y-motion="none"] .blink,
[data-a11y-motion="none"] .strobe,
[data-a11y-motion="none"] [class*="pulse"],
[data-a11y-motion="none"] [class*="flicker"] {
  animation: none !important;
  opacity: 1 !important;
}

/* Reduced motion variant: slow transitions allowed, no animation loops */
[data-a11y-motion="reduced"] *,
[data-a11y-motion="reduced"] *::before,
[data-a11y-motion="reduced"] *::after {
  animation-iteration-count: 1 !important;
  animation-duration: 0.3s !important;
  transition-duration: 0.3s !important;
}

/* ==========================================================================
   9. DYSLEXIA MODE
   Uses OpenDyslexic font with optimized spacing and line length.
   ========================================================================== */

[data-a11y-dyslexia="on"] * {
  font-family: 'OpenDyslexic', sans-serif !important;
  letter-spacing: 0.12em !important;
  word-spacing: 0.16em !important;
  line-height: 1.8 !important;
}

[data-a11y-dyslexia="on"] p,
[data-a11y-dyslexia="on"] span,
[data-a11y-dyslexia="on"] div {
  max-width: 70ch !important;
}

/* Avoid justified text which creates uneven spacing */
[data-a11y-dyslexia="on"] p,
[data-a11y-dyslexia="on"] li,
[data-a11y-dyslexia="on"] td {
  text-align: left !important;
}

/* Avoid italics which are harder to read with dyslexia */
[data-a11y-dyslexia="on"] em,
[data-a11y-dyslexia="on"] i {
  font-style: normal !important;
  font-weight: bold !important;
  text-decoration: underline !important;
}

/* Increase paragraph spacing */
[data-a11y-dyslexia="on"] p + p {
  margin-top: 1.5em !important;
}

/* ==========================================================================
   10. ADHD FOCUS MODE
   Removes visual distractions, simplifies the background.
   ========================================================================== */

[data-a11y-focus="on"] .desktop-bg::before,
[data-a11y-focus="on"] .desktop-bg::after,
[data-a11y-focus="on"] .particles-layer,
[data-a11y-focus="on"] .grid-overlay {
  display: none !important;
}

[data-a11y-focus="on"] {
  background: #0B0F19 !important;
}

/* Reduce visual noise from shadows and gradients */
[data-a11y-focus="on"] * {
  text-shadow: none !important;
}

/* Mute decorative badges and non-essential indicators */
[data-a11y-focus="on"] .badge:not([aria-live]),
[data-a11y-focus="on"] .decorative,
[data-a11y-focus="on"] [aria-hidden="true"]:not(svg) {
  opacity: 0.3 !important;
}

/* Highlight the currently focused element strongly */
[data-a11y-focus="on"] :focus {
  outline: 3px solid #4FC3F7 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 6px rgba(79, 195, 247, 0.25) !important;
}

/* ==========================================================================
   11. DEAF / HARD OF HEARING
   Visual alternatives for audio notifications.
   ========================================================================== */

@keyframes a11y-flash {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; background: #FFD700; }
}

[data-a11y-deaf="on"] .notification-flash {
  animation: a11y-flash 0.5s ease 3;
  position: fixed;
  inset: 0;
  z-index: 9000;
  z-index: var(--z-a11y-overlay, 9000);
  pointer-events: none;
  background: rgba(255, 215, 0, 0.15);
}

/* Ensure captions and transcripts are visible */
[data-a11y-deaf="on"] .captions,
[data-a11y-deaf="on"] .transcript,
[data-a11y-deaf="on"] [role="log"] {
  display: block !important;
  visibility: visible !important;
}

/* Visual indicator for audio-only content */
[data-a11y-deaf="on"] audio::before {
  content: '\1F50A Audio content — transcript available below';
  display: block;
  padding: 8px 12px;
  background: #1A1A2E;
  color: #FFD700;
  border: 2px solid #FFD700;
  border-radius: 4px;
  font-size: 14px;
  margin-bottom: 8px;
}

/* ==========================================================================
   12. COGNITIVE ACCESSIBILITY MODE
   Simplified UI with larger text and clearer interactive cues.
   ========================================================================== */

[data-a11y-cognitive="on"] {
  font-size: 120% !important;
}

[data-a11y-cognitive="on"] button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* Simplify navigation */
[data-a11y-cognitive="on"] nav a,
[data-a11y-cognitive="on"] nav button {
  padding: 12px 16px !important;
  white-space: nowrap !important;
}

/* Clearer form labels */
[data-a11y-cognitive="on"] label {
  font-weight: bold !important;
  display: block !important;
  margin-bottom: 6px !important;
}

/* Required field indicators */
[data-a11y-cognitive="on"] [required]::after,
[data-a11y-cognitive="on"] [aria-required="true"]::after {
  content: ' (required)';
  color: #FF6B6B;
  font-weight: normal;
  font-size: 0.85em;
}

/* ==========================================================================
   13. KEYBOARD NAVIGATION ENHANCEMENTS
   Visible focus indicators for keyboard users.
   ========================================================================== */

/* Only show focus outlines for keyboard navigation (not mouse clicks) */
:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: 3px solid #4FC3F7 !important;
  outline-offset: 2px !important;
}

/* Skip-to-content link (screen reader & keyboard accessible) */
.a11y-skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  z-index: 9100;
  z-index: var(--z-a11y-skip-link, 9100);
  padding: 12px 24px;
  background: #000000;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  border: 3px solid #FFFFFF;
  border-radius: 4px;
  white-space: nowrap;
}

.a11y-skip-link:focus {
  top: 16px;
}

/* ==========================================================================
   14. SCREEN READER UTILITIES
   ========================================================================== */

/* Visually hidden but accessible to screen readers */
.sr-only,
.visually-hidden {
  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;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Allow the element to be focusable when navigated to via tab */
.sr-only-focusable:focus,
.sr-only-focusable:active {
  position: static !important;
  width: auto !important;
  height: auto !important;
  padding: inherit !important;
  margin: inherit !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
}

/* ==========================================================================
   15. ARIA LIVE REGION STYLES
   Visual presentation for dynamically updated content.
   ========================================================================== */

[aria-live="assertive"] {
  border-left: 4px solid #FF5252;
  padding-left: 12px;
}

[aria-live="polite"] {
  border-left: 4px solid #4FC3F7;
  padding-left: 12px;
}

/* ==========================================================================
   16. FORCED COLORS / WINDOWS HIGH CONTRAST MODE
   Ensure the UI degrades gracefully under Windows High Contrast.
   ========================================================================== */

@media (forced-colors: active) {
  *:focus {
    outline: 3px solid Highlight !important;
  }

  a {
    color: LinkText !important;
  }

  button,
  input,
  select,
  textarea {
    border: 2px solid ButtonText !important;
  }

  :disabled {
    color: GrayText !important;
    border-color: GrayText !important;
  }

  /* Ensure SVG icons remain visible */
  svg {
    forced-color-adjust: auto;
  }
}

/* ==========================================================================
   17. PRINT ACCESSIBILITY
   Ensure printed pages remain readable and accessible.
   ========================================================================== */

@media print {
  /* Remove background effects */
  .desktop-bg::before,
  .desktop-bg::after,
  .particles-layer,
  .grid-overlay {
    display: none !important;
  }

  /* Ensure text is black on white */
  body {
    background: #FFFFFF !important;
    color: #000000 !important;
  }

  /* Show link URLs */
  a[href]::after {
    content: ' (' attr(href) ')';
    font-size: 0.85em;
    color: #333333;
  }

  /* Don't show URLs for anchors or javascript links */
  a[href^="#"]::after,
  a[href^="javascript:"]::after {
    content: '';
  }
}

/**
 * Luna - Fichier CSS Principal
 * ================================
 * 
 * Architecture :
 * 1. Google Fonts
 * 2. Tailwind CSS
 * 3. Design Variables CENTRALISÉES (MODIFIER ICI POUR CHANGER TOUT)
 * 4. Design System Tokens
 * 5. Theme System
 * 
 * 🎯 Pour changer le design global : modifier ./styles/design-variables.css
 */

/* Google Fonts — Audit B6 (2026-04-14).
   Inter + JetBrains Mono are preconnected and loaded once by
   public/index.html:27-31. This `@import` fallback used to cover
   stand-alone CSS builds but in the current CRA build it just forces
   a duplicate network round-trip on every page load. Dropping it
   saves ~40 KB of redundant CSS + one extra request.
   Stand-alone previews now load their own <link> tag, see public/preview-*.html. */

/* Police globale forcée — override toute déclaration `font-family: "Plus Jakarta Sans"`,
   `Playfair Display`, `Rajdhani`, etc. encore présente dans 45 fichiers (Sprint 1
   nettoiera ces références une à une). En attendant, le fallback bloc ci-dessous
   garantit que tout texte sans famille explicite atterrit sur Inter. */
:root {
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI Variable", system-ui, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", "Menlo", "Consolas", monospace;
  --font-display: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

html, body, #root {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI Variable", system-ui, "Helvetica Neue", Arial, sans-serif;
  font-family: var(--font-sans);
  font-feature-settings: "kern", "liga", "calt", "ss01";
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

code, pre, kbd, samp, .tabular {
  font-family: "JetBrains Mono", "SF Mono", "Menlo", "Consolas", monospace;
  font-family: var(--font-mono);
}

/* Tailwind CSS */
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
 */
/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/
*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}
::before,
::after {
  --tw-content: '';
}
/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/
html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */
  tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}
/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/
body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}
/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/
hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}
/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
/*
Remove the default font size and weight for headings.
*/
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
/*
Reset links to optimize for opt-in styling instead of opt-out.
*/
a {
  color: inherit;
  text-decoration: inherit;
}
/*
Add the correct font weight in Edge and Safari.
*/
b,
strong {
  font-weight: bolder;
}
/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}
/*
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}
/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/
table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}
/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}
/*
Remove the inheritance of text transform in Edge and Firefox.
*/
button,
select {
  text-transform: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/
button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}
/*
Use the modern Firefox focus style for all focusable elements.
*/
:-moz-focusring {
  outline: auto;
}
/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/
:-moz-ui-invalid {
  box-shadow: none;
}
/*
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}
/*
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/*
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}
/*
Removes the default spacing and border for appropriate elements.
*/
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}
fieldset {
  margin: 0;
  padding: 0;
}
legend {
  padding: 0;
}
ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}
/*
Prevent resizing textareas horizontally by default.
*/
textarea {
  resize: vertical;
}
/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/
input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}
/*
Set the default cursor for buttons.
*/
button,
[role="button"] {
  cursor: pointer;
}
/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}
/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}
/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/
img,
video {
  max-width: 100%;
  height: auto;
}
/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
* {
    border-color: var(--color-border-light);
    border-color: var(--border-light, var(--color-border-light));
  }
body {
    font-family: var(--font-family-body);
    font-family: var(--font-body, var(--font-family-body));
    background-color: var(--color-bg-primary);
    background-color: var(--bg-app, var(--color-bg-primary));
    color: var(--color-text-primary);
    color: var(--text-primary, var(--color-text-primary));
    transition: background-color var(--transition-slow), color var(--transition-slow);
    /* Ligatures typographiques activées */
    font-feature-settings: "liga" 1, "calt" 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
h1, h2, h3, h4, h5, h6 {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    font-family: var(--font-display, var(--font-family-heading));
    color: var(--color-text-primary);
    color: var(--text-primary, var(--color-text-primary));
    /* Letter-spacing raffiné style Rolls Royce */
    letter-spacing: -0.025em;
  }
/* Chiffres tabulaires pour tous les nombres - alignement parfait */
.amount, .currency, .number, [data-numeric], 
  td:has(.amount), td:has(.currency), 
  .tabular-nums {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1, "tnum";
  }
.\!amount, 
  td:has(.\!amount) {
    font-variant-numeric: tabular-nums !important;
    font-feature-settings: "tnum" 1, "tnum" !important;
  }
a {
    color: var(--color-accent-primary);
    color: var(--accent, var(--color-accent-primary));
  }
a:hover {
    color: var(--color-accent-primary-hover);
    color: var(--accent-hover, var(--color-accent-primary-hover));
  }
:root {
    --background: var(--color-bg-primary);
    --foreground: var(--color-text-primary);
    --card: var(--color-surface);
    --card-foreground: var(--color-text-primary);
    --popover: var(--color-surface);
    --popover-foreground: var(--color-text-primary);
    --primary: var(--color-accent-secondary);
    --primary-foreground: var(--color-text-inverted);
    --secondary: var(--color-bg-tertiary);
    --secondary-foreground: var(--color-text-primary);
    --muted: var(--color-bg-tertiary);
    --muted-foreground: var(--color-text-muted);
    --accent: var(--color-accent-primary);
    --accent-foreground: var(--color-text-inverted);
    --destructive: var(--color-error);
    --destructive-foreground: var(--color-text-inverted);
    --border: var(--color-border-light);
    --input: var(--color-border-light);
    --ring: var(--color-accent-primary);
    --radius: var(--radius-lg);
  }
.dark {
    --background: var(--color-bg-primary);
    --foreground: var(--color-text-primary);
    --card: var(--color-surface);
    --card-foreground: var(--color-text-primary);
    --popover: var(--color-surface);
    --popover-foreground: var(--color-text-primary);
    --primary: var(--color-accent-secondary);
    --primary-foreground: var(--color-text-inverted);
    --secondary: var(--color-bg-tertiary);
    --secondary-foreground: var(--color-text-primary);
    --muted: var(--color-bg-tertiary);
    --muted-foreground: var(--color-text-muted);
    --accent: var(--color-accent-primary);
    --accent-foreground: var(--color-text-inverted);
    --destructive: var(--color-error);
    --destructive-foreground: var(--color-text-inverted);
    --border: var(--color-border-light);
    --input: var(--color-border-light);
    --ring: var(--color-accent-primary);
  }
.\!container {
  width: 100% !important;
}
.container {
  width: 100%;
}
@media (min-width: 420px) {
  .\!container {
    max-width: 420px !important;
  }
  .container {
    max-width: 420px;
  }
}
@media (min-width: 640px) {
  .\!container {
    max-width: 640px !important;
  }
  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {
  .\!container {
    max-width: 768px !important;
  }
  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {
  .\!container {
    max-width: 1024px !important;
  }
  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {
  .\!container {
    max-width: 1280px !important;
  }
  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .\!container {
    max-width: 1536px !important;
  }
  .container {
    max-width: 1536px;
  }
}
/* Card component override pour Shadcn */
/* Button base pour Shadcn */
/* Input base pour Shadcn */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.pointer-events-auto {
  pointer-events: auto;
}
.\!visible {
  visibility: visible !important;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.-inset-2 {
  inset: -0.5rem;
}
.-inset-4 {
  inset: -1rem;
}
.inset-0 {
  inset: 0px;
}
.inset-2 {
  inset: 0.5rem;
}
.inset-4 {
  inset: 1rem;
}
.inset-\[1px\] {
  inset: 1px;
}
.inset-\[2px\] {
  inset: 2px;
}
.inset-px {
  inset: 1px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.inset-y-0 {
  top: 0px;
  bottom: 0px;
}
.-bottom-0\.5 {
  bottom: -0.125rem;
}
.-bottom-1 {
  bottom: -0.25rem;
}
.-bottom-10 {
  bottom: -2.5rem;
}
.-bottom-12 {
  bottom: -3rem;
}
.-bottom-2 {
  bottom: -0.5rem;
}
.-bottom-40 {
  bottom: -10rem;
}
.-bottom-6 {
  bottom: -1.5rem;
}
.-left-10 {
  left: -2.5rem;
}
.-left-12 {
  left: -3rem;
}
.-left-2 {
  left: -0.5rem;
}
.-left-3 {
  left: -0.75rem;
}
.-left-4 {
  left: -1rem;
}
.-left-40 {
  left: -10rem;
}
.-left-5 {
  left: -1.25rem;
}
.-left-6 {
  left: -1.5rem;
}
.-left-8 {
  left: -2rem;
}
.-left-\[21px\] {
  left: -21px;
}
.-left-\[5px\] {
  left: -5px;
}
.-right-0\.5 {
  right: -0.125rem;
}
.-right-1 {
  right: -0.25rem;
}
.-right-1\.5 {
  right: -0.375rem;
}
.-right-10 {
  right: -2.5rem;
}
.-right-12 {
  right: -3rem;
}
.-right-2 {
  right: -0.5rem;
}
.-right-20 {
  right: -5rem;
}
.-right-3 {
  right: -0.75rem;
}
.-right-40 {
  right: -10rem;
}
.-right-6 {
  right: -1.5rem;
}
.-top-0\.5 {
  top: -0.125rem;
}
.-top-1 {
  top: -0.25rem;
}
.-top-1\.5 {
  top: -0.375rem;
}
.-top-10 {
  top: -2.5rem;
}
.-top-12 {
  top: -3rem;
}
.-top-2 {
  top: -0.5rem;
}
.-top-20 {
  top: -5rem;
}
.-top-3 {
  top: -0.75rem;
}
.-top-40 {
  top: -10rem;
}
.-top-6 {
  top: -1.5rem;
}
.-top-8 {
  top: -2rem;
}
.bottom-0 {
  bottom: 0px;
}
.bottom-0\.5 {
  bottom: 0.125rem;
}
.bottom-1 {
  bottom: 0.25rem;
}
.bottom-16 {
  bottom: 4rem;
}
.bottom-2 {
  bottom: 0.5rem;
}
.bottom-20 {
  bottom: 5rem;
}
.bottom-24 {
  bottom: 6rem;
}
.bottom-3 {
  bottom: 0.75rem;
}
.bottom-4 {
  bottom: 1rem;
}
.bottom-5 {
  bottom: 1.25rem;
}
.bottom-6 {
  bottom: 1.5rem;
}
.bottom-8 {
  bottom: 2rem;
}
.bottom-full {
  bottom: 100%;
}
.left-0 {
  left: 0px;
}
.left-0\.5 {
  left: 0.125rem;
}
.left-1 {
  left: 0.25rem;
}
.left-1\/2 {
  left: 50%;
}
.left-2 {
  left: 0.5rem;
}
.left-2\.5 {
  left: 0.625rem;
}
.left-20 {
  left: 5rem;
}
.left-3 {
  left: 0.75rem;
}
.left-4 {
  left: 1rem;
}
.left-5 {
  left: 1.25rem;
}
.left-6 {
  left: 1.5rem;
}
.left-\[10px\] {
  left: 10px;
}
.left-\[18px\] {
  left: 18px;
}
.left-\[50\%\] {
  left: 50%;
}
.left-\[7px\] {
  left: 7px;
}
.left-full {
  left: 100%;
}
.right-0 {
  right: 0px;
}
.right-0\.5 {
  right: 0.125rem;
}
.right-1 {
  right: 0.25rem;
}
.right-1\.5 {
  right: 0.375rem;
}
.right-2 {
  right: 0.5rem;
}
.right-3 {
  right: 0.75rem;
}
.right-4 {
  right: 1rem;
}
.right-5 {
  right: 1.25rem;
}
.right-6 {
  right: 1.5rem;
}
.right-\[72px\] {
  right: 72px;
}
.right-full {
  right: 100%;
}
.top-0 {
  top: 0px;
}
.top-0\.5 {
  top: 0.125rem;
}
.top-1 {
  top: 0.25rem;
}
.top-1\.5 {
  top: 0.375rem;
}
.top-1\/2 {
  top: 50%;
}
.top-12 {
  top: 3rem;
}
.top-14 {
  top: 3.5rem;
}
.top-16 {
  top: 4rem;
}
.top-2 {
  top: 0.5rem;
}
.top-20 {
  top: 5rem;
}
.top-24 {
  top: 6rem;
}
.top-3 {
  top: 0.75rem;
}
.top-4 {
  top: 1rem;
}
.top-5 {
  top: 1.25rem;
}
.top-6 {
  top: 1.5rem;
}
.top-\[15\%\] {
  top: 15%;
}
.top-\[3px\] {
  top: 3px;
}
.top-\[50\%\] {
  top: 50%;
}
.top-\[60\%\] {
  top: 60%;
}
.top-\[73px\] {
  top: 73px;
}
.top-full {
  top: 100%;
}
.top-px {
  top: 1px;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.z-\[10000\] {
  z-index: 10000;
}
.z-\[10001\] {
  z-index: 10001;
}
.z-\[1000\] {
  z-index: 1000;
}
.z-\[100\] {
  z-index: 100;
}
.z-\[101\] {
  z-index: 101;
}
.z-\[150\] {
  z-index: 150;
}
.z-\[160\] {
  z-index: 160;
}
.z-\[1\] {
  z-index: 1;
}
.z-\[200\] {
  z-index: 200;
}
.z-\[250\] {
  z-index: 250;
}
.z-\[300\] {
  z-index: 300;
}
.z-\[60\] {
  z-index: 60;
}
.z-\[90\] {
  z-index: 90;
}
.z-\[997\] {
  z-index: 997;
}
.z-\[998\] {
  z-index: 998;
}
.z-\[9990\] {
  z-index: 9990;
}
.z-\[9994\] {
  z-index: 9994;
}
.z-\[9995\] {
  z-index: 9995;
}
.z-\[9996\] {
  z-index: 9996;
}
.z-\[9997\] {
  z-index: 9997;
}
.z-\[9998\] {
  z-index: 9998;
}
.z-\[9999\] {
  z-index: 9999;
}
.z-\[999\] {
  z-index: 999;
}
.z-\[var\(--z-tooltip\2c 600\)\] {
  z-index: 600;
  z-index: var(--z-tooltip,600);
}
.order-2 {
  order: 2;
}
.order-first {
  order: -9999;
}
.col-span-1 {
  grid-column: span 1 / span 1;
}
.col-span-2 {
  grid-column: span 2 / span 2;
}
.col-span-3 {
  grid-column: span 3 / span 3;
}
.col-span-9 {
  grid-column: span 9 / span 9;
}
.col-span-full {
  grid-column: 1 / -1;
}
.row-span-2 {
  grid-row: span 2 / span 2;
}
.-m-1 {
  margin: -0.25rem;
}
.-m-6 {
  margin: -1.5rem;
}
.m-0\.5 {
  margin: 0.125rem;
}
.m-1 {
  margin: 0.25rem;
}
.m-3 {
  margin: 0.75rem;
}
.m-4 {
  margin: 1rem;
}
.m-auto {
  margin: auto;
}
.-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.-mx-3 {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}
.-mx-4 {
  margin-left: -1rem;
  margin-right: -1rem;
}
.mx-0\.5 {
  margin-left: 0.125rem;
  margin-right: 0.125rem;
}
.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-1\.5 {
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}
.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-3 {
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}
.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}
.mx-5 {
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}
.mx-6 {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.my-3 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}
.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.-mb-px {
  margin-bottom: -1px;
}
.-ml-1 {
  margin-left: -0.25rem;
}
.-ml-2 {
  margin-left: -0.5rem;
}
.-ml-4 {
  margin-left: -1rem;
}
.-mr-2 {
  margin-right: -0.5rem;
}
.-mt-0\.5 {
  margin-top: -0.125rem;
}
.-mt-1 {
  margin-top: -0.25rem;
}
.-mt-12 {
  margin-top: -3rem;
}
.-mt-2 {
  margin-top: -0.5rem;
}
.-mt-3 {
  margin-top: -0.75rem;
}
.-mt-4 {
  margin-top: -1rem;
}
.mb-0 {
  margin-bottom: 0px;
}
.mb-0\.5 {
  margin-bottom: 0.125rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-2\.5 {
  margin-bottom: 0.625rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-7 {
  margin-bottom: 1.75rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.ml-0\.5 {
  margin-left: 0.125rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-1\.5 {
  margin-left: 0.375rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-3 {
  margin-left: 0.75rem;
}
.ml-4 {
  margin-left: 1rem;
}
.ml-5 {
  margin-left: 1.25rem;
}
.ml-6 {
  margin-left: 1.5rem;
}
.ml-7 {
  margin-left: 1.75rem;
}
.ml-8 {
  margin-left: 2rem;
}
.ml-9 {
  margin-left: 2.25rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-0\.5 {
  margin-right: 0.125rem;
}
.mr-1 {
  margin-right: 0.25rem;
}
.mr-1\.5 {
  margin-right: 0.375rem;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mr-3 {
  margin-right: 0.75rem;
}
.mr-4 {
  margin-right: 1rem;
}
.mt-0 {
  margin-top: 0px;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-12 {
  margin-top: 3rem;
}
.mt-16 {
  margin-top: 4rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-2\.5 {
  margin-top: 0.625rem;
}
.mt-24 {
  margin-top: 6rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-\[-16px\] {
  margin-top: -16px;
}
.mt-\[3px\] {
  margin-top: 3px;
}
.mt-auto {
  margin-top: auto;
}
.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.inline-grid {
  display: inline-grid;
}
.contents {
  display: contents;
}
.hidden {
  display: none;
}
.aspect-\[4\/3\] {
  aspect-ratio: 4/3;
}
.aspect-square {
  aspect-ratio: 1 / 1;
}
.aspect-video {
  aspect-ratio: 16 / 9;
}
.h-0 {
  height: 0px;
}
.h-0\.5 {
  height: 0.125rem;
}
.h-1 {
  height: 0.25rem;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-1\/2 {
  height: 50%;
}
.h-1\/3 {
  height: 33.333333%;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-14 {
  height: 3.5rem;
}
.h-16 {
  height: 4rem;
}
.h-2 {
  height: 0.5rem;
}
.h-2\.5 {
  height: 0.625rem;
}
.h-20 {
  height: 5rem;
}
.h-24 {
  height: 6rem;
}
.h-28 {
  height: 7rem;
}
.h-3 {
  height: 0.75rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-32 {
  height: 8rem;
}
.h-36 {
  height: 9rem;
}
.h-4 {
  height: 1rem;
}
.h-40 {
  height: 10rem;
}
.h-48 {
  height: 12rem;
}
.h-5 {
  height: 1.25rem;
}
.h-6 {
  height: 1.5rem;
}
.h-60 {
  height: 15rem;
}
.h-64 {
  height: 16rem;
}
.h-7 {
  height: 1.75rem;
}
.h-8 {
  height: 2rem;
}
.h-80 {
  height: 20rem;
}
.h-9 {
  height: 2.25rem;
}
.h-96 {
  height: 24rem;
}
.h-\[120px\] {
  height: 120px;
}
.h-\[150px\] {
  height: 150px;
}
.h-\[180px\] {
  height: 180px;
}
.h-\[18px\] {
  height: 18px;
}
.h-\[200px\] {
  height: 200px;
}
.h-\[250px\] {
  height: 250px;
}
.h-\[300px\] {
  height: 300px;
}
.h-\[350px\] {
  height: 350px;
}
.h-\[400px\] {
  height: 400px;
}
.h-\[450px\] {
  height: 450px;
}
.h-\[500px\] {
  height: 500px;
}
.h-\[55vh\] {
  height: 55vh;
}
.h-\[600px\] {
  height: 600px;
}
.h-\[60vh\] {
  height: 60vh;
}
.h-\[700px\] {
  height: 700px;
}
.h-\[70vh\] {
  height: 70vh;
}
.h-\[80vh\] {
  height: 80vh;
}
.h-\[90vh\] {
  height: 90vh;
}
.h-\[calc\(100vh-250px\)\] {
  height: calc(100vh - 250px);
}
.h-\[calc\(100vh-3\.5rem\)\] {
  height: calc(100vh - 3.5rem);
}
.h-\[calc\(100vh-340px\)\] {
  height: calc(100vh - 340px);
}
.h-\[calc\(100vh-64px\)\] {
  height: calc(100vh - 64px);
}
.h-\[calc\(100vh-80px\)\] {
  height: calc(100vh - 80px);
}
.h-\[calc\(90vh-140px\)\] {
  height: calc(90vh - 140px);
}
.h-\[calc\(90vh-160px\)\] {
  height: calc(90vh - 160px);
}
.h-\[var\(--radix-navigation-menu-viewport-height\)\] {
  height: var(--radix-navigation-menu-viewport-height);
}
.h-\[var\(--radix-select-trigger-height\)\] {
  height: var(--radix-select-trigger-height);
}
.h-\[var\(--size-button-lg\)\] {
  height: var(--size-button-lg);
}
.h-\[var\(--size-button-md\)\] {
  height: var(--size-button-md);
}
.h-\[var\(--size-button-sm\)\] {
  height: var(--size-button-sm);
}
.h-\[var\(--size-button-xl\)\] {
  height: var(--size-button-xl);
}
.h-\[var\(--size-checkbox\)\] {
  height: var(--size-checkbox);
}
.h-\[var\(--size-icon-button\)\] {
  height: var(--size-icon-button);
}
.h-\[var\(--size-icon-lg\)\] {
  height: var(--size-icon-lg);
}
.h-\[var\(--size-icon-md\)\] {
  height: var(--size-icon-md);
}
.h-\[var\(--size-icon-sm\)\] {
  height: var(--size-icon-sm);
}
.h-\[var\(--size-input-lg\)\] {
  height: var(--size-input-lg);
}
.h-\[var\(--size-input-md\)\] {
  height: var(--size-input-md);
}
.h-\[var\(--size-input-sm\)\] {
  height: var(--size-input-sm);
}
.h-\[var\(--size-switch-height\)\] {
  height: var(--size-switch-height);
}
.h-\[var\(--size-switch-thumb\)\] {
  height: var(--size-switch-thumb);
}
.h-\[var\(--size-table-header\)\] {
  height: var(--size-table-header);
}
.h-\[var\(--size-table-row\)\] {
  height: var(--size-table-row);
}
.h-\[var\(--size-table-row-dense\)\] {
  height: var(--size-table-row-dense);
}
.h-auto {
  height: auto;
}
.h-fit {
  height: fit-content;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.h-screen {
  height: 100vh;
}
.max-h-0 {
  max-height: 0px;
}
.max-h-24 {
  max-height: 6rem;
}
.max-h-28 {
  max-height: 7rem;
}
.max-h-32 {
  max-height: 8rem;
}
.max-h-40 {
  max-height: 10rem;
}
.max-h-48 {
  max-height: 12rem;
}
.max-h-52 {
  max-height: 13rem;
}
.max-h-60 {
  max-height: 15rem;
}
.max-h-64 {
  max-height: 16rem;
}
.max-h-80 {
  max-height: 20rem;
}
.max-h-96 {
  max-height: 24rem;
}
.max-h-\[--radix-context-menu-content-available-height\] {
  max-height: var(--radix-context-menu-content-available-height);
}
.max-h-\[--radix-select-content-available-height\] {
  max-height: var(--radix-select-content-available-height);
}
.max-h-\[1000px\] {
  max-height: 1000px;
}
.max-h-\[150px\] {
  max-height: 150px;
}
.max-h-\[200px\] {
  max-height: 200px;
}
.max-h-\[250px\] {
  max-height: 250px;
}
.max-h-\[280px\] {
  max-height: 280px;
}
.max-h-\[300px\] {
  max-height: 300px;
}
.max-h-\[350px\] {
  max-height: 350px;
}
.max-h-\[360px\] {
  max-height: 360px;
}
.max-h-\[400px\] {
  max-height: 400px;
}
.max-h-\[450px\] {
  max-height: 450px;
}
.max-h-\[500px\] {
  max-height: 500px;
}
.max-h-\[50vh\] {
  max-height: 50vh;
}
.max-h-\[520px\] {
  max-height: 520px;
}
.max-h-\[55vh\] {
  max-height: 55vh;
}
.max-h-\[600px\] {
  max-height: 600px;
}
.max-h-\[60vh\] {
  max-height: 60vh;
}
.max-h-\[70vh\] {
  max-height: 70vh;
}
.max-h-\[80vh\] {
  max-height: 80vh;
}
.max-h-\[85vh\] {
  max-height: 85vh;
}
.max-h-\[90\%\] {
  max-height: 90%;
}
.max-h-\[90vh\] {
  max-height: 90vh;
}
.max-h-\[calc\(100vh-100px\)\] {
  max-height: calc(100vh - 100px);
}
.max-h-\[calc\(100vh-80px\)\] {
  max-height: calc(100vh - 80px);
}
.max-h-\[calc\(90vh-200px\)\] {
  max-height: calc(90vh - 200px);
}
.max-h-\[calc\(90vh-80px\)\] {
  max-height: calc(90vh - 80px);
}
.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\] {
  max-height: var(--radix-dropdown-menu-content-available-height);
}
.max-h-screen {
  max-height: 100vh;
}
.min-h-0 {
  min-height: 0px;
}
.min-h-1 {
  min-height: 0.25rem;
}
.min-h-10 {
  min-height: 2.5rem;
}
.min-h-11 {
  min-height: 2.75rem;
}
.min-h-12 {
  min-height: 3rem;
}
.min-h-20 {
  min-height: 5rem;
}
.min-h-24 {
  min-height: 6rem;
}
.min-h-32 {
  min-height: 8rem;
}
.min-h-40 {
  min-height: 10rem;
}
.min-h-56 {
  min-height: 14rem;
}
.min-h-\[100px\] {
  min-height: 100px;
}
.min-h-\[11rem\] {
  min-height: 11rem;
}
.min-h-\[120px\] {
  min-height: 120px;
}
.min-h-\[200px\] {
  min-height: 200px;
}
.min-h-\[250px\] {
  min-height: 250px;
}
.min-h-\[280px\] {
  min-height: 280px;
}
.min-h-\[300px\] {
  min-height: 300px;
}
.min-h-\[400px\] {
  min-height: 400px;
}
.min-h-\[600px\] {
  min-height: 600px;
}
.min-h-\[60px\] {
  min-height: 60px;
}
.min-h-\[60vh\] {
  min-height: 60vh;
}
.min-h-\[70px\] {
  min-height: 70px;
}
.min-h-\[var\(--size-button-lg\)\] {
  min-height: var(--size-button-lg);
}
.min-h-\[var\(--size-button-md\)\] {
  min-height: var(--size-button-md);
}
.min-h-\[var\(--size-button-sm\)\] {
  min-height: var(--size-button-sm);
}
.min-h-\[var\(--size-button-xl\)\] {
  min-height: var(--size-button-xl);
}
.min-h-\[var\(--size-input-lg\)\] {
  min-height: var(--size-input-lg);
}
.min-h-\[var\(--size-input-md\)\] {
  min-height: var(--size-input-md);
}
.min-h-\[var\(--size-input-sm\)\] {
  min-height: var(--size-input-sm);
}
.min-h-\[var\(--size-touch-min\)\] {
  min-height: var(--size-touch-min);
}
.min-h-full {
  min-height: 100%;
}
.min-h-screen {
  min-height: 100vh;
}
.w-0 {
  width: 0px;
}
.w-0\.5 {
  width: 0.125rem;
}
.w-1 {
  width: 0.25rem;
}
.w-1\.5 {
  width: 0.375rem;
}
.w-1\/2 {
  width: 50%;
}
.w-1\/3 {
  width: 33.333333%;
}
.w-1\/4 {
  width: 25%;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-12 {
  width: 3rem;
}
.w-14 {
  width: 3.5rem;
}
.w-16 {
  width: 4rem;
}
.w-2 {
  width: 0.5rem;
}
.w-2\.5 {
  width: 0.625rem;
}
.w-2\/3 {
  width: 66.666667%;
}
.w-20 {
  width: 5rem;
}
.w-24 {
  width: 6rem;
}
.w-28 {
  width: 7rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-3\/4 {
  width: 75%;
}
.w-32 {
  width: 8rem;
}
.w-36 {
  width: 9rem;
}
.w-4 {
  width: 1rem;
}
.w-40 {
  width: 10rem;
}
.w-44 {
  width: 11rem;
}
.w-48 {
  width: 12rem;
}
.w-5 {
  width: 1.25rem;
}
.w-52 {
  width: 13rem;
}
.w-56 {
  width: 14rem;
}
.w-6 {
  width: 1.5rem;
}
.w-60 {
  width: 15rem;
}
.w-64 {
  width: 16rem;
}
.w-7 {
  width: 1.75rem;
}
.w-72 {
  width: 18rem;
}
.w-8 {
  width: 2rem;
}
.w-80 {
  width: 20rem;
}
.w-9 {
  width: 2.25rem;
}
.w-96 {
  width: 24rem;
}
.w-\[100px\] {
  width: 100px;
}
.w-\[120px\] {
  width: 120px;
}
.w-\[130px\] {
  width: 130px;
}
.w-\[140px\] {
  width: 140px;
}
.w-\[150px\] {
  width: 150px;
}
.w-\[180px\] {
  width: 180px;
}
.w-\[200px\] {
  width: 200px;
}
.w-\[220px\] {
  width: 220px;
}
.w-\[250px\] {
  width: 250px;
}
.w-\[280px\] {
  width: 280px;
}
.w-\[300px\] {
  width: 300px;
}
.w-\[360px\] {
  width: 360px;
}
.w-\[380px\] {
  width: 380px;
}
.w-\[3px\] {
  width: 3px;
}
.w-\[400px\] {
  width: 400px;
}
.w-\[40px\] {
  width: 40px;
}
.w-\[500px\] {
  width: 500px;
}
.w-\[50px\] {
  width: 50px;
}
.w-\[600px\] {
  width: 600px;
}
.w-\[60px\] {
  width: 60px;
}
.w-\[700px\] {
  width: 700px;
}
.w-\[90px\] {
  width: 90px;
}
.w-\[90vw\] {
  width: 90vw;
}
.w-\[95vw\] {
  width: 95vw;
}
.w-\[calc\(100\%-1rem\)\] {
  width: calc(100% - 1rem);
}
.w-\[var\(--nav-collapsed-width\)\] {
  width: var(--nav-collapsed-width);
}
.w-\[var\(--nav-expanded-width\)\] {
  width: var(--nav-expanded-width);
}
.w-\[var\(--size-button-lg\)\] {
  width: var(--size-button-lg);
}
.w-\[var\(--size-button-sm\)\] {
  width: var(--size-button-sm);
}
.w-\[var\(--size-checkbox\)\] {
  width: var(--size-checkbox);
}
.w-\[var\(--size-icon-button\)\] {
  width: var(--size-icon-button);
}
.w-\[var\(--size-icon-lg\)\] {
  width: var(--size-icon-lg);
}
.w-\[var\(--size-icon-md\)\] {
  width: var(--size-icon-md);
}
.w-\[var\(--size-icon-sm\)\] {
  width: var(--size-icon-sm);
}
.w-\[var\(--size-switch-thumb\)\] {
  width: var(--size-switch-thumb);
}
.w-\[var\(--size-switch-width\)\] {
  width: var(--size-switch-width);
}
.w-auto {
  width: auto;
}
.w-fit {
  width: fit-content;
}
.w-full {
  width: 100%;
}
.w-max {
  width: max-content;
}
.w-px {
  width: 1px;
}
.w-screen {
  width: 100vw;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-10 {
  min-width: 2.5rem;
}
.min-w-11 {
  min-width: 2.75rem;
}
.min-w-20 {
  min-width: 5rem;
}
.min-w-4 {
  min-width: 1rem;
}
.min-w-40 {
  min-width: 10rem;
}
.min-w-48 {
  min-width: 12rem;
}
.min-w-5 {
  min-width: 1.25rem;
}
.min-w-52 {
  min-width: 13rem;
}
.min-w-56 {
  min-width: 14rem;
}
.min-w-7 {
  min-width: 1.75rem;
}
.min-w-8 {
  min-width: 2rem;
}
.min-w-9 {
  min-width: 2.25rem;
}
.min-w-\[120px\] {
  min-width: 120px;
}
.min-w-\[12rem\] {
  min-width: 12rem;
}
.min-w-\[140px\] {
  min-width: 140px;
}
.min-w-\[150px\] {
  min-width: 150px;
}
.min-w-\[180px\] {
  min-width: 180px;
}
.min-w-\[18px\] {
  min-width: 18px;
}
.min-w-\[200px\] {
  min-width: 200px;
}
.min-w-\[280px\] {
  min-width: 280px;
}
.min-w-\[300px\] {
  min-width: 300px;
}
.min-w-\[4ch\] {
  min-width: 4ch;
}
.min-w-\[60px\] {
  min-width: 60px;
}
.min-w-\[800px\] {
  min-width: 800px;
}
.min-w-\[8rem\] {
  min-width: 8rem;
}
.min-w-\[var\(--radix-select-trigger-width\)\] {
  min-width: var(--radix-select-trigger-width);
}
.min-w-\[var\(--size-touch-min\)\] {
  min-width: var(--size-touch-min);
}
.min-w-full {
  min-width: 100%;
}
.min-w-max {
  min-width: max-content;
}
.\!max-w-sm {
  max-width: 24rem !important;
}
.max-w-20 {
  max-width: 5rem;
}
.max-w-2xl {
  max-width: 42rem;
}
.max-w-32 {
  max-width: 8rem;
}
.max-w-3xl {
  max-width: 48rem;
}
.max-w-40 {
  max-width: 10rem;
}
.max-w-4xl {
  max-width: 56rem;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-64 {
  max-width: 16rem;
}
.max-w-6xl {
  max-width: 72rem;
}
.max-w-7xl {
  max-width: 80rem;
}
.max-w-8 {
  max-width: 2rem;
}
.max-w-\[100px\] {
  max-width: 100px;
}
.max-w-\[1200px\] {
  max-width: 1200px;
}
.max-w-\[120px\] {
  max-width: 120px;
}
.max-w-\[140px\] {
  max-width: 140px;
}
.max-w-\[150px\] {
  max-width: 150px;
}
.max-w-\[180px\] {
  max-width: 180px;
}
.max-w-\[200px\] {
  max-width: 200px;
}
.max-w-\[220px\] {
  max-width: 220px;
}
.max-w-\[250px\] {
  max-width: 250px;
}
.max-w-\[300px\] {
  max-width: 300px;
}
.max-w-\[500px\] {
  max-width: 500px;
}
.max-w-\[70\%\] {
  max-width: 70%;
}
.max-w-\[70px\] {
  max-width: 70px;
}
.max-w-\[80\%\] {
  max-width: 80%;
}
.max-w-\[85\%\] {
  max-width: 85%;
}
.max-w-\[90\%\] {
  max-width: 90%;
}
.max-w-\[95vw\] {
  max-width: 95vw;
}
.max-w-\[calc\(100vw-2rem\)\] {
  max-width: calc(100vw - 2rem);
}
.max-w-\[calc\(100vw-32px\)\] {
  max-width: calc(100vw - 32px);
}
.max-w-\[var\(--page-max-width\2c 1440px\)\] {
  max-width: 1440px;
  max-width: var(--page-max-width,1440px);
}
.max-w-\[var\(--size-modal-lg\)\] {
  max-width: var(--size-modal-lg);
}
.max-w-\[var\(--size-modal-md\)\] {
  max-width: var(--size-modal-md);
}
.max-w-\[var\(--size-modal-sm\)\] {
  max-width: var(--size-modal-sm);
}
.max-w-\[var\(--size-modal-xl\)\] {
  max-width: var(--size-modal-xl);
}
.max-w-full {
  max-width: 100%;
}
.max-w-lg {
  max-width: 32rem;
}
.max-w-max {
  max-width: max-content;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-none {
  max-width: none;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xl {
  max-width: 36rem;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1;
}
.flex-none {
  flex: none;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.shrink {
  flex-shrink: 1;
}
.shrink-0 {
  flex-shrink: 0;
}
.grow {
  flex-grow: 1;
}
.grow-0 {
  flex-grow: 0;
}
.basis-full {
  flex-basis: 100%;
}
.caption-bottom {
  caption-side: bottom;
}
.border-collapse {
  border-collapse: collapse;
}
.origin-\[--radix-context-menu-content-transform-origin\] {
  transform-origin: var(--radix-context-menu-content-transform-origin);
}
.origin-\[--radix-hover-card-content-transform-origin\] {
  transform-origin: var(--radix-hover-card-content-transform-origin);
}
.origin-\[--radix-menubar-content-transform-origin\] {
  transform-origin: var(--radix-menubar-content-transform-origin);
}
.origin-\[--radix-popover-content-transform-origin\] {
  transform-origin: var(--radix-popover-content-transform-origin);
}
.origin-\[--radix-select-content-transform-origin\] {
  transform-origin: var(--radix-select-content-transform-origin);
}
.origin-\[--radix-tooltip-content-transform-origin\] {
  transform-origin: var(--radix-tooltip-content-transform-origin);
}
.origin-top {
  transform-origin: top;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-x-full {
  --tw-translate-x: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-6 {
  --tw-translate-y: -1.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-0 {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-4 {
  --tw-translate-x: 1rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-5 {
  --tw-translate-x: 1.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-6 {
  --tw-translate-x: 1.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-7 {
  --tw-translate-x: 1.75rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-8 {
  --tw-translate-x: 2rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-\[-50\%\] {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-full {
  --tw-translate-x: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-0 {
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-1 {
  --tw-translate-y: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-4 {
  --tw-translate-y: 1rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[-50\%\] {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-rotate-90 {
  --tw-rotate: -90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-0 {
  --tw-rotate: 0deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-45 {
  --tw-rotate: 45deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-0 {
  --tw-scale-x: 0;
  --tw-scale-y: 0;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-100 {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-125 {
  --tw-scale-x: 1.25;
  --tw-scale-y: 1.25;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-75 {
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-90 {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-95 {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-\[1\.02\] {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-\[1\.04\] {
  --tw-scale-x: 1.04;
  --tw-scale-y: 1.04;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.animate-\[fadeInDown_0\.2s_ease-out\] {
  animation: fadeInDown 0.2s ease-out;
}
.animate-\[fadeInUp_0\.3s_ease-out\] {
  animation: fadeInUp 0.3s ease-out;
}
.animate-\[rssManualRedactionIn_180ms_ease-out\] {
  animation: rssManualRedactionIn 180ms ease-out;
}
.animate-\[rssPanelIn_220ms_cubic-bezier\(0\.22\2c 0\.61\2c 0\.36\2c 1\)\] {
  animation: rssPanelIn 220ms cubic-bezier(0.22,0.61,0.36,1);
}
.animate-\[shimmer_2s_infinite\] {
  animation: shimmer 2s infinite;
}
@keyframes bounce {
  0%, 100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8,0,1,1);
  }
  50% {
    transform: none;
    animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}
.animate-bounce {
  animation: bounce 1s infinite;
}
.animate-fade-in {
  animation: fadeIn 0.3s ease-out both;
}
.animate-fade-in-up {
  animation: fadeInUp 0.4s ease-out both;
}
@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}
.animate-ping {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}
@keyframes pulse {
  50% {
    opacity: .5;
  }
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.cursor-col-resize {
  cursor: col-resize;
}
.cursor-context-menu {
  cursor: context-menu;
}
.cursor-crosshair {
  cursor: crosshair;
}
.cursor-default {
  cursor: default;
}
.cursor-e-resize {
  cursor: e-resize;
}
.cursor-grab {
  cursor: grab;
}
.cursor-grabbing {
  cursor: grabbing;
}
.cursor-help {
  cursor: help;
}
.cursor-move {
  cursor: move;
}
.cursor-n-resize {
  cursor: n-resize;
}
.cursor-ne-resize {
  cursor: ne-resize;
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-nw-resize {
  cursor: nw-resize;
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-s-resize {
  cursor: s-resize;
}
.cursor-se-resize {
  cursor: se-resize;
}
.cursor-sw-resize {
  cursor: sw-resize;
}
.cursor-w-resize {
  cursor: w-resize;
}
.cursor-wait {
  cursor: wait;
}
.touch-none {
  touch-action: none;
}
.touch-manipulation {
  touch-action: manipulation;
}
.select-none {
  -webkit-user-select: none;
          user-select: none;
}
.select-all {
  -webkit-user-select: all;
          user-select: all;
}
.resize-none {
  resize: none;
}
.resize-y {
  resize: vertical;
}
.resize {
  resize: both;
}
.list-inside {
  list-style-position: inside;
}
.list-decimal {
  list-style-type: decimal;
}
.list-disc {
  list-style-type: disc;
}
.list-none {
  list-style-type: none;
}
.appearance-none {
  appearance: none;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.grid-cols-\[25px_1fr\] {
  grid-template-columns: 25px 1fr;
}
.grid-rows-2 {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
.flex-row {
  flex-direction: row;
}
.flex-row-reverse {
  flex-direction: row-reverse;
}
.flex-col {
  flex-direction: column;
}
.flex-col-reverse {
  flex-direction: column-reverse;
}
.flex-wrap {
  flex-wrap: wrap;
}
.place-items-center {
  place-items: center;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-start {
  justify-content: flex-start;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.justify-around {
  justify-content: space-around;
}
.gap-0 {
  gap: 0px;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-\[2px\] {
  gap: 2px;
}
.gap-px {
  gap: 1px;
}
.gap-x-4 {
  column-gap: 1rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-1\.5 {
  row-gap: 0.375rem;
}
.-space-x-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(-0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(-0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.-space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(-0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(-0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.-space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(-0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(-0.25rem * var(--tw-space-y-reverse));
}
.space-x-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.75rem * var(--tw-space-x-reverse));
  margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-0 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0px * var(--tw-space-y-reverse));
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-\[var\(--color-border\)\] > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--color-border);
}
.divide-\[var\(--color-border-default\)\] > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--color-border-default);
}
.divide-\[var\(--color-border-subtle\)\] > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--color-border-subtle);
}
.divide-border > :not([hidden]) ~ :not([hidden]) {
  border-color: hsl(var(--color-border-light));
  border-color: hsl(var(--border));
}
.divide-gray-100 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(243 244 246 / 1);
  border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));
}
.divide-slate-100 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(241 245 249 / 1);
  border-color: rgb(241 245 249 / var(--tw-divide-opacity, 1));
}
.divide-slate-200 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(226 232 240 / 1);
  border-color: rgb(226 232 240 / var(--tw-divide-opacity, 1));
}
.divide-slate-50 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(248 250 252 / 1);
  border-color: rgb(248 250 252 / var(--tw-divide-opacity, 1));
}
.divide-white\/5 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(255 255 255 / 0.05);
}
.divide-zinc-100 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(244 244 245 / 1);
  border-color: rgb(244 244 245 / var(--tw-divide-opacity, 1));
}
.divide-zinc-700 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(63 63 70 / 1);
  border-color: rgb(63 63 70 / var(--tw-divide-opacity, 1));
}
.self-start {
  align-self: flex-start;
}
.self-end {
  align-self: flex-end;
}
.self-center {
  align-self: center;
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-visible {
  overflow: visible;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.overscroll-contain {
  overscroll-behavior: contain;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-normal {
  white-space: normal;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.whitespace-pre-wrap {
  white-space: pre-wrap;
}
.break-words {
  overflow-wrap: break-word;
}
.break-all {
  word-break: break-all;
}
.\!rounded-xl {
  border-radius: 0.75rem !important;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-3xl {
  border-radius: 1.5rem;
}
.rounded-\[1\.5rem\] {
  border-radius: 1.5rem;
}
.rounded-\[28px\] {
  border-radius: 28px;
}
.rounded-\[2rem\] {
  border-radius: 2rem;
}
.rounded-\[32px\] {
  border-radius: 32px;
}
.rounded-\[40\%_60\%_60\%_40\%\/60\%_40\%_60\%_40\%\] {
  border-radius: 40% 60% 60% 40%/60% 40% 60% 40%;
}
.rounded-\[4px\] {
  border-radius: 4px;
}
.rounded-\[inherit\] {
  border-radius: inherit;
}
.rounded-\[var\(--radius-card\)\] {
  border-radius: var(--radius-card);
}
.rounded-\[var\(--radius-control\)\] {
  border-radius: var(--radius-control);
}
.rounded-\[var\(--radius-control\2c 6px\)\] {
  border-radius: 6px;
  border-radius: var(--radius-control,6px);
}
.rounded-\[var\(--radius-control\2c 8px\)\] {
  border-radius: 8px;
  border-radius: var(--radius-control,8px);
}
.rounded-\[var\(--radius-lg\)\] {
  border-radius: var(--radius-lg);
}
.rounded-\[var\(--radius-lg\2c 8px\)\] {
  border-radius: 8px;
  border-radius: var(--radius-lg,8px);
}
.rounded-\[var\(--radius-md\)\] {
  border-radius: var(--radius-md);
}
.rounded-\[var\(--radius-md\2c 6px\)\] {
  border-radius: 6px;
  border-radius: var(--radius-md,6px);
}
.rounded-\[var\(--radius-modal\)\] {
  border-radius: var(--radius-modal);
}
.rounded-\[var\(--radius-pill\)\] {
  border-radius: var(--radius-pill);
}
.rounded-\[var\(--radius-sm\)\] {
  border-radius: var(--radius-sm);
}
.rounded-\[var\(--radius-sm\2c 4px\)\] {
  border-radius: 4px;
  border-radius: var(--radius-sm,4px);
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: var(--radius-lg);
  border-radius: var(--radius);
}
.rounded-md {
  border-radius: calc(var(--radius-lg) - 2px);
  border-radius: calc(var(--radius) - 2px);
}
.rounded-none {
  border-radius: 0px;
}
.rounded-sm {
  border-radius: calc(var(--radius-lg) - 4px);
  border-radius: calc(var(--radius) - 4px);
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-b-lg {
  border-bottom-right-radius: var(--radius-lg);
  border-bottom-right-radius: var(--radius);
  border-bottom-left-radius: var(--radius-lg);
  border-bottom-left-radius: var(--radius);
}
.rounded-b-xl {
  border-bottom-right-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
}
.rounded-l {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.rounded-l-md {
  border-top-left-radius: calc(var(--radius-lg) - 2px);
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius-lg) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.rounded-l-none {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
.rounded-r {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.rounded-r-full {
  border-top-right-radius: 9999px;
  border-bottom-right-radius: 9999px;
}
.rounded-r-md {
  border-top-right-radius: calc(var(--radius-lg) - 2px);
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius-lg) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.rounded-t {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}
.rounded-t-3xl {
  border-top-left-radius: 1.5rem;
  border-top-right-radius: 1.5rem;
}
.rounded-t-\[10px\] {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}
.rounded-t-lg {
  border-top-left-radius: var(--radius-lg);
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius-lg);
  border-top-right-radius: var(--radius);
}
.rounded-t-md {
  border-top-left-radius: calc(var(--radius-lg) - 2px);
  border-top-left-radius: calc(var(--radius) - 2px);
  border-top-right-radius: calc(var(--radius-lg) - 2px);
  border-top-right-radius: calc(var(--radius) - 2px);
}
.rounded-t-sm {
  border-top-left-radius: calc(var(--radius-lg) - 4px);
  border-top-left-radius: calc(var(--radius) - 4px);
  border-top-right-radius: calc(var(--radius-lg) - 4px);
  border-top-right-radius: calc(var(--radius) - 4px);
}
.rounded-t-xl {
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}
.rounded-bl {
  border-bottom-left-radius: 0.25rem;
}
.rounded-bl-lg {
  border-bottom-left-radius: var(--radius-lg);
  border-bottom-left-radius: var(--radius);
}
.rounded-bl-md {
  border-bottom-left-radius: calc(var(--radius-lg) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.rounded-bl-sm {
  border-bottom-left-radius: calc(var(--radius-lg) - 4px);
  border-bottom-left-radius: calc(var(--radius) - 4px);
}
.rounded-br {
  border-bottom-right-radius: 0.25rem;
}
.rounded-br-lg {
  border-bottom-right-radius: var(--radius-lg);
  border-bottom-right-radius: var(--radius);
}
.rounded-br-md {
  border-bottom-right-radius: calc(var(--radius-lg) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.rounded-br-sm {
  border-bottom-right-radius: calc(var(--radius-lg) - 4px);
  border-bottom-right-radius: calc(var(--radius) - 4px);
}
.rounded-tl {
  border-top-left-radius: 0.25rem;
}
.rounded-tl-lg {
  border-top-left-radius: var(--radius-lg);
  border-top-left-radius: var(--radius);
}
.rounded-tl-sm {
  border-top-left-radius: calc(var(--radius-lg) - 4px);
  border-top-left-radius: calc(var(--radius) - 4px);
}
.rounded-tr {
  border-top-right-radius: 0.25rem;
}
.rounded-tr-lg {
  border-top-right-radius: var(--radius-lg);
  border-top-right-radius: var(--radius);
}
.border {
  border-width: 1px;
}
.border-0 {
  border-width: 0px;
}
.border-2 {
  border-width: 2px;
}
.border-4 {
  border-width: 4px;
}
.border-8 {
  border-width: 8px;
}
.border-x-2 {
  border-left-width: 2px;
  border-right-width: 2px;
}
.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-b-0 {
  border-bottom-width: 0px;
}
.border-b-2 {
  border-bottom-width: 2px;
}
.border-l {
  border-left-width: 1px;
}
.border-l-2 {
  border-left-width: 2px;
}
.border-l-4 {
  border-left-width: 4px;
}
.border-l-\[3px\] {
  border-left-width: 3px;
}
.border-r {
  border-right-width: 1px;
}
.border-r-0 {
  border-right-width: 0px;
}
.border-r-2 {
  border-right-width: 2px;
}
.border-t {
  border-top-width: 1px;
}
.border-t-2 {
  border-top-width: 2px;
}
.border-t-4 {
  border-top-width: 4px;
}
.border-dashed {
  border-style: dashed;
}
.border-none {
  border-style: none;
}
.border-\[rgba\(255\2c 255\2c 255\2c 0\.08\)\] {
  border-color: rgba(255,255,255,0.08);
}
.border-\[var\(--accent\)\] {
  border-color: var(--color-accent-primary);
  border-color: var(--accent);
}
.border-\[var\(--accent-primary\)\] {
  border-color: #D6B16A;
  border-color: var(--accent-primary);
}
.border-\[var\(--border\)\] {
  border-color: var(--color-border-light);
  border-color: var(--border);
}
.border-\[var\(--border-default\)\] {
  border-color: var(--border-default);
}
.border-\[var\(--color-accent\)\] {
  border-color: var(--color-accent);
}
.border-\[var\(--color-accent-dark\)\] {
  border-color: var(--color-accent-dark);
}
.border-\[var\(--color-accent-light\)\] {
  border-color: var(--color-accent-light);
}
.border-\[var\(--color-accent-primary\)\] {
  border-color: var(--color-accent-primary);
}
.border-\[var\(--color-action-primary\)\] {
  border-color: #D6B16A;
  border-color: var(--color-action-primary);
}
.border-\[var\(--color-action-primary-hover\)\] {
  border-color: #C29E57;
  border-color: var(--color-action-primary-hover);
}
.border-\[var\(--color-border\)\] {
  border-color: var(--color-border);
}
.border-\[var\(--color-border\2c _\#e5e7eb\)\] {
  border-color: #e5e7eb;
  border-color: var(--color-border, #e5e7eb);
}
.border-\[var\(--color-border-default\)\] {
  border-color: var(--color-border-default);
}
.border-\[var\(--color-border-inverse\)\] {
  border-color: var(--color-border-inverse);
}
.border-\[var\(--color-border-muted\)\] {
  border-color: var(--color-border-muted);
}
.border-\[var\(--color-border-strong\)\] {
  border-color: var(--color-border-strong);
}
.border-\[var\(--color-border-subtle\)\] {
  border-color: var(--color-border-subtle);
}
.border-\[var\(--color-border-subtle\2c _\#e5e7eb\)\] {
  border-color: #e5e7eb;
  border-color: var(--color-border-subtle, #e5e7eb);
}
.border-\[var\(--color-border-subtle\2c _\#eee\)\] {
  border-color: #eee;
  border-color: var(--color-border-subtle, #eee);
}
.border-\[var\(--color-border-subtle\2c var\(--color-border\)\)\] {
  border-color: var(--color-border);
  border-color: var(--color-border-subtle,var(--color-border));
}
.border-\[var\(--color-border-subtle\2c var\(--color-border-default\)\)\] {
  border-color: var(--color-border-default);
  border-color: var(--color-border-subtle,var(--color-border-default));
}
.border-\[var\(--color-brand-gold\)\] {
  border-color: #FFD500;
  border-color: var(--color-brand-gold);
}
.border-\[var\(--color-brand-primary\)\] {
  border-color: var(--color-brand-primary);
}
.border-\[var\(--color-feedback-danger\)\] {
  border-color: var(--color-feedback-danger);
}
.border-\[var\(--color-feedback-danger-dark\)\] {
  border-color: var(--color-feedback-danger-dark);
}
.border-\[var\(--color-feedback-danger-light\)\] {
  border-color: var(--color-feedback-danger-light);
}
.border-\[var\(--color-feedback-info\)\] {
  border-color: var(--color-feedback-info);
}
.border-\[var\(--color-feedback-info\2c var\(--color-info\)\)\] {
  border-color: var(--color-info);
  border-color: var(--color-feedback-info,var(--color-info));
}
.border-\[var\(--color-feedback-info-light\)\] {
  border-color: var(--color-feedback-info-light);
}
.border-\[var\(--color-feedback-success\)\] {
  border-color: var(--color-feedback-success);
}
.border-\[var\(--color-feedback-success-dark\)\] {
  border-color: var(--color-feedback-success-dark);
}
.border-\[var\(--color-feedback-success-light\)\] {
  border-color: var(--color-feedback-success-light);
}
.border-\[var\(--color-feedback-warning\)\] {
  border-color: var(--color-feedback-warning);
}
.border-\[var\(--color-feedback-warning\2c var\(--color-warning\)\)\] {
  border-color: var(--color-warning);
  border-color: var(--color-feedback-warning,var(--color-warning));
}
.border-\[var\(--color-feedback-warning-dark\)\] {
  border-color: var(--color-feedback-warning-dark);
}
.border-\[var\(--color-feedback-warning-light\)\] {
  border-color: var(--color-feedback-warning-light);
}
.border-\[var\(--color-primary\)\] {
  border-color: var(--color-primary);
}
.border-\[var\(--divider\)\] {
  border-color: var(--divider);
}
.border-\[var\(--glass-panel-border\)\] {
  border-color: var(--glass-panel-border);
}
.border-\[var\(--input-border\)\] {
  border-color: var(--input-border);
}
.border-\[var\(--p-indigo-900\)\] {
  border-color: var(--p-indigo-900);
}
.border-\[var\(--status-success\)\] {
  border-color: var(--status-success);
}
.border-\[var\(--theme-primary\)\] {
  border-color: var(--theme-primary);
}
.border-amber-100 {
  --tw-border-opacity: 1;
  border-color: rgb(254 243 199 / 1);
  border-color: rgb(254 243 199 / var(--tw-border-opacity, 1));
}
.border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / 1);
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}
.border-amber-500 {
  --tw-border-opacity: 1;
  border-color: rgb(245 158 11 / 1);
  border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}
.border-amber-500\/20 {
  border-color: rgb(245 158 11 / 0.2);
}
.border-amber-500\/30 {
  border-color: rgb(245 158 11 / 0.3);
}
.border-amber-500\/40 {
  border-color: rgb(245 158 11 / 0.4);
}
.border-amber-500\/70 {
  border-color: rgb(245 158 11 / 0.7);
}
.border-black\/10 {
  border-color: rgb(0 0 0 / 0.1);
}
.border-black\/5 {
  border-color: rgb(0 0 0 / 0.05);
}
.border-blue-100 {
  --tw-border-opacity: 1;
  border-color: rgb(219 234 254 / 1);
  border-color: rgb(219 234 254 / var(--tw-border-opacity, 1));
}
.border-blue-200 {
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / 1);
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}
.border-blue-400 {
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / 1);
  border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
}
.border-blue-500 {
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / 1);
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-blue-500\/20 {
  border-color: rgb(59 130 246 / 0.2);
}
.border-blue-500\/30 {
  border-color: rgb(59 130 246 / 0.3);
}
.border-blue-500\/50 {
  border-color: rgb(59 130 246 / 0.5);
}
.border-border {
  border-color: hsl(var(--color-border-light));
  border-color: hsl(var(--border));
}
.border-border\/50 {
  border-color: hsl(var(--color-border-light) / 0.5);
  border-color: hsl(var(--border) / 0.5);
}
.border-current {
  border-color: currentColor;
}
.border-cyan-400 {
  --tw-border-opacity: 1;
  border-color: rgb(34 211 238 / 1);
  border-color: rgb(34 211 238 / var(--tw-border-opacity, 1));
}
.border-cyan-400\/40 {
  border-color: rgb(34 211 238 / 0.4);
}
.border-cyan-500 {
  --tw-border-opacity: 1;
  border-color: rgb(6 182 212 / 1);
  border-color: rgb(6 182 212 / var(--tw-border-opacity, 1));
}
.border-cyan-500\/30 {
  border-color: rgb(6 182 212 / 0.3);
}
.border-cyan-500\/40 {
  border-color: rgb(6 182 212 / 0.4);
}
.border-destructive {
  border-color: hsl(var(--color-error));
  border-color: hsl(var(--destructive));
}
.border-emerald-100 {
  --tw-border-opacity: 1;
  border-color: rgb(209 250 229 / 1);
  border-color: rgb(209 250 229 / var(--tw-border-opacity, 1));
}
.border-emerald-200 {
  --tw-border-opacity: 1;
  border-color: rgb(167 243 208 / 1);
  border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));
}
.border-emerald-500 {
  --tw-border-opacity: 1;
  border-color: rgb(16 185 129 / 1);
  border-color: rgb(16 185 129 / var(--tw-border-opacity, 1));
}
.border-emerald-500\/20 {
  border-color: rgb(16 185 129 / 0.2);
}
.border-emerald-500\/30 {
  border-color: rgb(16 185 129 / 0.3);
}
.border-emerald-500\/40 {
  border-color: rgb(16 185 129 / 0.4);
}
.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / 1);
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / 1);
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.border-gray-500\/20 {
  border-color: rgb(107 114 128 / 0.2);
}
.border-green-200 {
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / 1);
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}
.border-green-300 {
  --tw-border-opacity: 1;
  border-color: rgb(134 239 172 / 1);
  border-color: rgb(134 239 172 / var(--tw-border-opacity, 1));
}
.border-green-500 {
  --tw-border-opacity: 1;
  border-color: rgb(34 197 94 / 1);
  border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));
}
.border-green-500\/20 {
  border-color: rgb(34 197 94 / 0.2);
}
.border-green-500\/30 {
  border-color: rgb(34 197 94 / 0.3);
}
.border-green-500\/50 {
  border-color: rgb(34 197 94 / 0.5);
}
.border-indigo-500\/10 {
  border-color: rgb(99 102 241 / 0.1);
}
.border-indigo-500\/30 {
  border-color: rgb(99 102 241 / 0.3);
}
.border-input {
  border-color: hsl(var(--color-border-light));
  border-color: hsl(var(--input));
}
.border-lime-500\/30 {
  border-color: rgb(132 204 22 / 0.3);
}
.border-muted {
  border-color: hsl(var(--color-bg-tertiary));
  border-color: hsl(var(--muted));
}
.border-muted-foreground\/20 {
  border-color: hsl(var(--color-text-muted) / 0.2);
  border-color: hsl(var(--muted-foreground) / 0.2);
}
.border-muted-foreground\/30 {
  border-color: hsl(var(--color-text-muted) / 0.3);
  border-color: hsl(var(--muted-foreground) / 0.3);
}
.border-muted-foreground\/40 {
  border-color: hsl(var(--color-text-muted) / 0.4);
  border-color: hsl(var(--muted-foreground) / 0.4);
}
.border-orange-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 215 170 / 1);
  border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));
}
.border-orange-300 {
  --tw-border-opacity: 1;
  border-color: rgb(253 186 116 / 1);
  border-color: rgb(253 186 116 / var(--tw-border-opacity, 1));
}
.border-orange-400 {
  --tw-border-opacity: 1;
  border-color: rgb(251 146 60 / 1);
  border-color: rgb(251 146 60 / var(--tw-border-opacity, 1));
}
.border-orange-500 {
  --tw-border-opacity: 1;
  border-color: rgb(249 115 22 / 1);
  border-color: rgb(249 115 22 / var(--tw-border-opacity, 1));
}
.border-orange-500\/20 {
  border-color: rgb(249 115 22 / 0.2);
}
.border-orange-500\/30 {
  border-color: rgb(249 115 22 / 0.3);
}
.border-orange-500\/50 {
  border-color: rgb(249 115 22 / 0.5);
}
.border-pink-500 {
  --tw-border-opacity: 1;
  border-color: rgb(236 72 153 / 1);
  border-color: rgb(236 72 153 / var(--tw-border-opacity, 1));
}
.border-pink-500\/30 {
  border-color: rgb(236 72 153 / 0.3);
}
.border-primary {
  border-color: hsl(var(--color-accent-secondary));
  border-color: hsl(var(--primary));
}
.border-primary\/20 {
  border-color: hsl(var(--color-accent-secondary) / 0.2);
  border-color: hsl(var(--primary) / 0.2);
}
.border-primary\/30 {
  border-color: hsl(var(--color-accent-secondary) / 0.3);
  border-color: hsl(var(--primary) / 0.3);
}
.border-primary\/50 {
  border-color: hsl(var(--color-accent-secondary) / 0.5);
  border-color: hsl(var(--primary) / 0.5);
}
.border-purple-100 {
  --tw-border-opacity: 1;
  border-color: rgb(243 232 255 / 1);
  border-color: rgb(243 232 255 / var(--tw-border-opacity, 1));
}
.border-purple-200 {
  --tw-border-opacity: 1;
  border-color: rgb(233 213 255 / 1);
  border-color: rgb(233 213 255 / var(--tw-border-opacity, 1));
}
.border-purple-500 {
  --tw-border-opacity: 1;
  border-color: rgb(168 85 247 / 1);
  border-color: rgb(168 85 247 / var(--tw-border-opacity, 1));
}
.border-purple-500\/20 {
  border-color: rgb(168 85 247 / 0.2);
}
.border-purple-500\/30 {
  border-color: rgb(168 85 247 / 0.3);
}
.border-purple-500\/50 {
  border-color: rgb(168 85 247 / 0.5);
}
.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / 1);
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}
.border-red-400 {
  --tw-border-opacity: 1;
  border-color: rgb(248 113 113 / 1);
  border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}
.border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / 1);
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.border-red-500\/20 {
  border-color: rgb(239 68 68 / 0.2);
}
.border-red-500\/30 {
  border-color: rgb(239 68 68 / 0.3);
}
.border-red-500\/40 {
  border-color: rgb(239 68 68 / 0.4);
}
.border-red-500\/50 {
  border-color: rgb(239 68 68 / 0.5);
}
.border-red-500\/60 {
  border-color: rgb(239 68 68 / 0.6);
}
.border-rose-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 205 211 / 1);
  border-color: rgb(254 205 211 / var(--tw-border-opacity, 1));
}
.border-rose-300 {
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / 1);
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
}
.border-rose-500 {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / 1);
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
}
.border-rose-500\/20 {
  border-color: rgb(244 63 94 / 0.2);
}
.border-rose-500\/30 {
  border-color: rgb(244 63 94 / 0.3);
}
.border-sky-100 {
  --tw-border-opacity: 1;
  border-color: rgb(224 242 254 / 1);
  border-color: rgb(224 242 254 / var(--tw-border-opacity, 1));
}
.border-sky-200 {
  --tw-border-opacity: 1;
  border-color: rgb(186 230 253 / 1);
  border-color: rgb(186 230 253 / var(--tw-border-opacity, 1));
}
.border-sky-500\/20 {
  border-color: rgb(14 165 233 / 0.2);
}
.border-slate-100 {
  --tw-border-opacity: 1;
  border-color: rgb(241 245 249 / 1);
  border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
}
.border-slate-200 {
  --tw-border-opacity: 1;
  border-color: rgb(226 232 240 / 1);
  border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}
.border-slate-300 {
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / 1);
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
}
.border-teal-500 {
  --tw-border-opacity: 1;
  border-color: rgb(20 184 166 / 1);
  border-color: rgb(20 184 166 / var(--tw-border-opacity, 1));
}
.border-teal-500\/30 {
  border-color: rgb(20 184 166 / 0.3);
}
.border-transparent {
  border-color: transparent;
}
.border-violet-100 {
  --tw-border-opacity: 1;
  border-color: rgb(237 233 254 / 1);
  border-color: rgb(237 233 254 / var(--tw-border-opacity, 1));
}
.border-violet-200 {
  --tw-border-opacity: 1;
  border-color: rgb(221 214 254 / 1);
  border-color: rgb(221 214 254 / var(--tw-border-opacity, 1));
}
.border-violet-500\/20 {
  border-color: rgb(139 92 246 / 0.2);
}
.border-violet-500\/30 {
  border-color: rgb(139 92 246 / 0.3);
}
.border-violet-500\/40 {
  border-color: rgb(139 92 246 / 0.4);
}
.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / 1);
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}
.border-white\/15 {
  border-color: rgb(255 255 255 / 0.15);
}
.border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}
.border-white\/30 {
  border-color: rgb(255 255 255 / 0.3);
}
.border-white\/40 {
  border-color: rgb(255 255 255 / 0.4);
}
.border-white\/5 {
  border-color: rgb(255 255 255 / 0.05);
}
.border-white\/50 {
  border-color: rgb(255 255 255 / 0.5);
}
.border-white\/60 {
  border-color: rgb(255 255 255 / 0.6);
}
.border-white\/\[0\.02\] {
  border-color: rgb(255 255 255 / 0.02);
}
.border-white\/\[0\.06\] {
  border-color: rgb(255 255 255 / 0.06);
}
.border-yellow-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 240 138 / 1);
  border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));
}
.border-yellow-400 {
  --tw-border-opacity: 1;
  border-color: rgb(250 204 21 / 1);
  border-color: rgb(250 204 21 / var(--tw-border-opacity, 1));
}
.border-yellow-500 {
  --tw-border-opacity: 1;
  border-color: rgb(234 179 8 / 1);
  border-color: rgb(234 179 8 / var(--tw-border-opacity, 1));
}
.border-yellow-500\/20 {
  border-color: rgb(234 179 8 / 0.2);
}
.border-yellow-500\/30 {
  border-color: rgb(234 179 8 / 0.3);
}
.border-x-transparent {
  border-left-color: transparent;
  border-right-color: transparent;
}
.border-y-transparent {
  border-top-color: transparent;
  border-bottom-color: transparent;
}
.border-b-\[var\(--color-bg-inverse\)\] {
  border-bottom-color: var(--color-bg-inverse);
}
.border-b-transparent {
  border-bottom-color: transparent;
}
.border-l-\[var\(--color-bg-inverse\)\] {
  border-left-color: var(--color-bg-inverse);
}
.border-l-amber-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(245 158 11 / 1);
  border-left-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}
.border-l-blue-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(59 130 246 / 1);
  border-left-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-l-emerald-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(16 185 129 / 1);
  border-left-color: rgb(16 185 129 / var(--tw-border-opacity, 1));
}
.border-l-primary {
  border-left-color: hsl(var(--color-accent-secondary));
  border-left-color: hsl(var(--primary));
}
.border-l-transparent {
  border-left-color: transparent;
}
.border-l-violet-200 {
  --tw-border-opacity: 1;
  border-left-color: rgb(221 214 254 / 1);
  border-left-color: rgb(221 214 254 / var(--tw-border-opacity, 1));
}
.border-l-violet-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(139 92 246 / 1);
  border-left-color: rgb(139 92 246 / var(--tw-border-opacity, 1));
}
.border-r-\[var\(--color-bg-inverse\)\] {
  border-right-color: var(--color-bg-inverse);
}
.border-r-transparent {
  border-right-color: transparent;
}
.border-t-\[var\(--color-bg-inverse\)\] {
  border-top-color: var(--color-bg-inverse);
}
.border-t-amber-500 {
  --tw-border-opacity: 1;
  border-top-color: rgb(245 158 11 / 1);
  border-top-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}
.border-t-blue-500 {
  --tw-border-opacity: 1;
  border-top-color: rgb(59 130 246 / 1);
  border-top-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-t-emerald-500 {
  --tw-border-opacity: 1;
  border-top-color: rgb(16 185 129 / 1);
  border-top-color: rgb(16 185 129 / var(--tw-border-opacity, 1));
}
.border-t-gray-900 {
  --tw-border-opacity: 1;
  border-top-color: rgb(17 24 39 / 1);
  border-top-color: rgb(17 24 39 / var(--tw-border-opacity, 1));
}
.border-t-indigo-500 {
  --tw-border-opacity: 1;
  border-top-color: rgb(99 102 241 / 1);
  border-top-color: rgb(99 102 241 / var(--tw-border-opacity, 1));
}
.border-t-purple-500 {
  --tw-border-opacity: 1;
  border-top-color: rgb(168 85 247 / 1);
  border-top-color: rgb(168 85 247 / var(--tw-border-opacity, 1));
}
.border-t-red-500 {
  --tw-border-opacity: 1;
  border-top-color: rgb(239 68 68 / 1);
  border-top-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.border-t-slate-400 {
  --tw-border-opacity: 1;
  border-top-color: rgb(148 163 184 / 1);
  border-top-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
}
.border-t-transparent {
  border-top-color: transparent;
}
.border-t-white {
  --tw-border-opacity: 1;
  border-top-color: rgb(255 255 255 / 1);
  border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.border-opacity-20 {
  --tw-border-opacity: 0.2;
}
.border-opacity-30 {
  --tw-border-opacity: 0.3;
}
.bg-\[\#050814\]\/80 {
  background-color: rgb(5 8 20 / 0.8);
}
.bg-\[\#0a0e1a\] {
  --tw-bg-opacity: 1;
  background-color: rgb(10 14 26 / 1);
  background-color: rgb(10 14 26 / var(--tw-bg-opacity, 1));
}
.bg-\[\#0a0e1a\]\/90 {
  background-color: rgb(10 14 26 / 0.9);
}
.bg-\[\#0c0a1d\] {
  --tw-bg-opacity: 1;
  background-color: rgb(12 10 29 / 1);
  background-color: rgb(12 10 29 / var(--tw-bg-opacity, 1));
}
.bg-\[\#1a365d\] {
  --tw-bg-opacity: 1;
  background-color: rgb(26 54 93 / 1);
  background-color: rgb(26 54 93 / var(--tw-bg-opacity, 1));
}
.bg-\[rgba\(15\2c 25\2c 45\2c 0\.72\)\] {
  background-color: rgba(15,25,45,0.72);
}
.bg-\[var\(--accent\)\] {
  background-color: var(--color-accent-primary);
  background-color: var(--accent);
}
.bg-\[var\(--accent-danger\)\] {
  background-color: #B85C5C;
  background-color: var(--accent-danger);
}
.bg-\[var\(--accent-gradient\)\] {
  background-color: var(--accent-gradient);
}
.bg-\[var\(--accent-light\)\] {
  background-color: var(--accent-light);
}
.bg-\[var\(--accent-primary\)\] {
  background-color: #D6B16A;
  background-color: var(--accent-primary);
}
.bg-\[var\(--accent-primary-light\)\] {
  background-color: rgba(255, 213, 0, 0.18);
  background-color: var(--accent-primary-light);
}
.bg-\[var\(--accent-primary-lighter\)\] {
  background-color: rgba(255, 213, 0, 0.09);
  background-color: var(--accent-primary-lighter);
}
.bg-\[var\(--background\)\] {
  background-color: var(--color-bg-primary);
  background-color: var(--background);
}
.bg-\[var\(--badge-critical-bg\)\] {
  background-color: var(--badge-critical-bg);
}
.bg-\[var\(--badge-info-bg\)\] {
  background-color: var(--badge-info-bg);
}
.bg-\[var\(--bg-elevated\)\] {
  background-color: var(--bg-elevated);
}
.bg-\[var\(--bg-muted\)\] {
  background-color: var(--bg-muted);
}
.bg-\[var\(--bg-surface\)\] {
  background-color: var(--bg-surface);
}
.bg-\[var\(--bg-surface-hover\)\] {
  background-color: var(--bg-surface-hover);
}
.bg-\[var\(--border-default\)\] {
  background-color: var(--border-default);
}
.bg-\[var\(--card-bg\)\] {
  background-color: var(--card-bg);
}
.bg-\[var\(--color-accent\)\] {
  background-color: var(--color-accent);
}
.bg-\[var\(--color-accent-gold\)\] {
  background-color: var(--color-accent-gold);
}
.bg-\[var\(--color-accent-gold-soft\)\] {
  background-color: var(--color-accent-gold-soft);
}
.bg-\[var\(--color-accent-light\)\] {
  background-color: var(--color-accent-light);
}
.bg-\[var\(--color-accent-light\2c var\(--color-accent\)\)\] {
  background-color: var(--color-accent);
  background-color: var(--color-accent-light,var(--color-accent));
}
.bg-\[var\(--color-accent-primary\)\] {
  background-color: var(--color-accent-primary);
}
.bg-\[var\(--color-action-primary\)\] {
  background-color: #D6B16A;
  background-color: var(--color-action-primary);
}
.bg-\[var\(--color-action-primary\2c var\(--p-indigo-400\)\)\] {
  background-color: #D6B16A;
  background-color: var(--color-action-primary,var(--p-indigo-400));
}
.bg-\[var\(--color-action-primary-light\)\] {
  background-color: var(--color-action-primary-light);
}
.bg-\[var\(--color-action-primary-subtle\2c var\(--tint-brand\)\)\] {
  background-color: rgba(255, 213, 0, 0.10);
  background-color: var(--color-action-primary-subtle,var(--tint-brand));
}
.bg-\[var\(--color-action-secondary\)\] {
  background-color: var(--color-action-secondary);
}
.bg-\[var\(--color-bg\)\] {
  background-color: var(--color-bg);
}
.bg-\[var\(--color-bg\2c \#fff\)\] {
  background-color: #fff;
  background-color: var(--color-bg,#fff);
}
.bg-\[var\(--color-bg-active\)\] {
  background-color: var(--color-bg-active);
}
.bg-\[var\(--color-bg-app\)\] {
  background-color: var(--color-bg-app);
}
.bg-\[var\(--color-bg-card\)\] {
  background-color: var(--color-bg-card);
}
.bg-\[var\(--color-bg-elevated\)\] {
  background-color: var(--color-bg-elevated);
}
.bg-\[var\(--color-bg-elevated\2c var\(--color-bg-card\)\)\] {
  background-color: var(--color-bg-card);
  background-color: var(--color-bg-elevated,var(--color-bg-card));
}
.bg-\[var\(--color-bg-inverse\)\] {
  background-color: var(--color-bg-inverse);
}
.bg-\[var\(--color-bg-muted\)\] {
  background-color: var(--color-bg-muted);
}
.bg-\[var\(--color-bg-overlay\)\] {
  background-color: var(--color-bg-overlay);
}
.bg-\[var\(--color-bg-page\)\] {
  background-color: var(--color-bg-page);
}
.bg-\[var\(--color-bg-secondary\)\] {
  background-color: var(--color-bg-secondary);
}
.bg-\[var\(--color-bg-subtle\)\] {
  background-color: var(--color-bg-subtle);
}
.bg-\[var\(--color-bg-subtle\2c _\#f3f4f6\)\] {
  background-color: #f3f4f6;
  background-color: var(--color-bg-subtle, #f3f4f6);
}
.bg-\[var\(--color-bg-subtle\2c var\(--color-bg\)\)\] {
  background-color: var(--color-bg);
  background-color: var(--color-bg-subtle,var(--color-bg));
}
.bg-\[var\(--color-bg-subtle\2c var\(--color-bg-sunken\)\)\] {
  background-color: var(--color-bg-sunken);
  background-color: var(--color-bg-subtle,var(--color-bg-sunken));
}
.bg-\[var\(--color-bg-sunken\)\] {
  background-color: var(--color-bg-sunken);
}
.bg-\[var\(--color-bg-surface\)\] {
  background-color: var(--color-bg-surface);
}
.bg-\[var\(--color-bg-tertiary\)\] {
  background-color: var(--color-bg-tertiary);
}
.bg-\[var\(--color-border-default\)\] {
  background-color: var(--color-border-default);
}
.bg-\[var\(--color-border-subtle\)\] {
  background-color: var(--color-border-subtle);
}
.bg-\[var\(--color-border-subtle\2c var\(--color-border\)\)\] {
  background-color: var(--color-border);
  background-color: var(--color-border-subtle,var(--color-border));
}
.bg-\[var\(--color-brand-gold\)\] {
  background-color: #FFD500;
  background-color: var(--color-brand-gold);
}
.bg-\[var\(--color-brand-gold-light\)\] {
  background-color: #D6B16A;
  background-color: var(--color-brand-gold-light);
}
.bg-\[var\(--color-brand-primary\)\] {
  background-color: var(--color-brand-primary);
}
.bg-\[var\(--color-cat-violet\)\] {
  background-color: var(--color-cat-violet);
}
.bg-\[var\(--color-feedback-danger\)\] {
  background-color: var(--color-feedback-danger);
}
.bg-\[var\(--color-feedback-danger-light\)\] {
  background-color: var(--color-feedback-danger-light);
}
.bg-\[var\(--color-feedback-danger-soft\)\] {
  background-color: var(--color-feedback-danger-soft);
}
.bg-\[var\(--color-feedback-danger-soft\2c \#fef2f2\)\] {
  background-color: #fef2f2;
  background-color: var(--color-feedback-danger-soft,#fef2f2);
}
.bg-\[var\(--color-feedback-info\)\] {
  background-color: var(--color-feedback-info);
}
.bg-\[var\(--color-feedback-info-light\)\] {
  background-color: var(--color-feedback-info-light);
}
.bg-\[var\(--color-feedback-info-soft\)\] {
  background-color: var(--color-feedback-info-soft);
}
.bg-\[var\(--color-feedback-info-soft\2c \#eff6ff\)\] {
  background-color: #eff6ff;
  background-color: var(--color-feedback-info-soft,#eff6ff);
}
.bg-\[var\(--color-feedback-info-soft\2c var\(--color-info-bg\)\)\] {
  background-color: var(--color-info-bg);
  background-color: var(--color-feedback-info-soft,var(--color-info-bg));
}
.bg-\[var\(--color-feedback-success\)\] {
  background-color: var(--color-feedback-success);
}
.bg-\[var\(--color-feedback-success\2c var\(--color-success\)\)\] {
  background-color: var(--color-success);
  background-color: var(--color-feedback-success,var(--color-success));
}
.bg-\[var\(--color-feedback-success-light\)\] {
  background-color: var(--color-feedback-success-light);
}
.bg-\[var\(--color-feedback-success-soft\)\] {
  background-color: var(--color-feedback-success-soft);
}
.bg-\[var\(--color-feedback-warning\)\] {
  background-color: var(--color-feedback-warning);
}
.bg-\[var\(--color-feedback-warning\2c var\(--color-warning\)\)\] {
  background-color: var(--color-warning);
  background-color: var(--color-feedback-warning,var(--color-warning));
}
.bg-\[var\(--color-feedback-warning-light\)\] {
  background-color: var(--color-feedback-warning-light);
}
.bg-\[var\(--color-feedback-warning-soft\)\] {
  background-color: var(--color-feedback-warning-soft);
}
.bg-\[var\(--color-feedback-warning-soft\2c \#fffbeb\)\] {
  background-color: #fffbeb;
  background-color: var(--color-feedback-warning-soft,#fffbeb);
}
.bg-\[var\(--color-feedback-warning-soft\2c var\(--color-warning-bg\)\)\] {
  background-color: var(--color-warning-bg);
  background-color: var(--color-feedback-warning-soft,var(--color-warning-bg));
}
.bg-\[var\(--color-primary\)\] {
  background-color: var(--color-primary);
}
.bg-\[var\(--color-success\)\] {
  background-color: var(--color-success);
}
.bg-\[var\(--color-table-header-bg\)\] {
  background-color: var(--color-table-header-bg);
}
.bg-\[var\(--color-text-inverse\)\] {
  background-color: var(--color-text-inverse);
}
.bg-\[var\(--color-text-muted\)\] {
  background-color: var(--color-text-muted);
}
.bg-\[var\(--color-text-primary\)\] {
  background-color: var(--color-text-primary);
}
.bg-\[var\(--color-text-secondary\)\] {
  background-color: var(--color-text-secondary);
}
.bg-\[var\(--divider\)\] {
  background-color: var(--divider);
}
.bg-\[var\(--glass-panel-bg\)\] {
  background-color: var(--glass-panel-bg);
}
.bg-\[var\(--input-bg\)\] {
  background-color: var(--input-bg);
}
.bg-\[var\(--muted\)\] {
  background-color: var(--color-bg-tertiary);
  background-color: var(--muted);
}
.bg-\[var\(--nav-item-active-bg\)\] {
  background-color: var(--nav-item-active-bg);
}
.bg-\[var\(--p-indigo-900\)\] {
  background-color: var(--p-indigo-900);
}
.bg-\[var\(--popover\)\] {
  background-color: var(--color-surface);
  background-color: var(--popover);
}
.bg-\[var\(--primary\)\] {
  background-color: var(--color-accent-secondary);
  background-color: var(--primary);
}
.bg-\[var\(--status-success\)\] {
  background-color: var(--status-success);
}
.bg-\[var\(--status-success-bg\)\] {
  background-color: var(--status-success-bg);
}
.bg-\[var\(--surface-active\)\] {
  background-color: var(--surface-active);
}
.bg-\[var\(--surface-elevated\)\] {
  background-color: var(--surface-elevated);
}
.bg-\[var\(--surface-hover\)\] {
  background-color: var(--surface-hover);
}
.bg-\[var\(--theme-primary\)\] {
  background-color: var(--theme-primary);
}
.bg-accent {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}
.bg-accent\/50 {
  background-color: hsl(var(--color-accent-primary) / 0.5);
  background-color: hsl(var(--accent) / 0.5);
}
.bg-amber-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / 1);
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.bg-amber-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 191 36 / 1);
  background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1));
}
.bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / 1);
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.bg-amber-50\/40 {
  background-color: rgb(255 251 235 / 0.4);
}
.bg-amber-50\/60 {
  background-color: rgb(255 251 235 / 0.6);
}
.bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / 1);
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
.bg-amber-500\/10 {
  background-color: rgb(245 158 11 / 0.1);
}
.bg-amber-500\/20 {
  background-color: rgb(245 158 11 / 0.2);
}
.bg-amber-500\/5 {
  background-color: rgb(245 158 11 / 0.05);
}
.bg-background {
  background-color: hsl(var(--color-bg-primary));
  background-color: hsl(var(--background));
}
.bg-background\/50 {
  background-color: hsl(var(--color-bg-primary) / 0.5);
  background-color: hsl(var(--background) / 0.5);
}
.bg-background\/80 {
  background-color: hsl(var(--color-bg-primary) / 0.8);
  background-color: hsl(var(--background) / 0.8);
}
.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / 1);
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-black\/10 {
  background-color: rgb(0 0 0 / 0.1);
}
.bg-black\/20 {
  background-color: rgb(0 0 0 / 0.2);
}
.bg-black\/30 {
  background-color: rgb(0 0 0 / 0.3);
}
.bg-black\/40 {
  background-color: rgb(0 0 0 / 0.4);
}
.bg-black\/5 {
  background-color: rgb(0 0 0 / 0.05);
}
.bg-black\/50 {
  background-color: rgb(0 0 0 / 0.5);
}
.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}
.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}
.bg-black\/80 {
  background-color: rgb(0 0 0 / 0.8);
}
.bg-black\/90 {
  background-color: rgb(0 0 0 / 0.9);
}
.bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / 1);
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.bg-blue-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(96 165 250 / 1);
  background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1));
}
.bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / 1);
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
.bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / 1);
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.bg-blue-500\/10 {
  background-color: rgb(59 130 246 / 0.1);
}
.bg-blue-500\/20 {
  background-color: rgb(59 130 246 / 0.2);
}
.bg-blue-500\/90 {
  background-color: rgb(59 130 246 / 0.9);
}
.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / 1);
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.bg-border {
  background-color: hsl(var(--color-border-light));
  background-color: hsl(var(--border));
}
.bg-card {
  background-color: hsl(var(--color-surface));
  background-color: hsl(var(--card));
}
.bg-card\/95 {
  background-color: hsl(var(--color-surface) / 0.95);
  background-color: hsl(var(--card) / 0.95);
}
.bg-current {
  background-color: currentColor;
}
.bg-cyan-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(6 182 212 / 1);
  background-color: rgb(6 182 212 / var(--tw-bg-opacity, 1));
}
.bg-cyan-500\/10 {
  background-color: rgb(6 182 212 / 0.1);
}
.bg-cyan-500\/20 {
  background-color: rgb(6 182 212 / 0.2);
}
.bg-cyan-500\/5 {
  background-color: rgb(6 182 212 / 0.05);
}
.bg-destructive {
  background-color: hsl(var(--color-error));
  background-color: hsl(var(--destructive));
}
.bg-destructive\/10 {
  background-color: hsl(var(--color-error) / 0.1);
  background-color: hsl(var(--destructive) / 0.1);
}
.bg-elevated {
  background-color: var(--color-bg-elevated);
}
.bg-emerald-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / 1);
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}
.bg-emerald-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / 1);
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}
.bg-emerald-50\/40 {
  background-color: rgb(236 253 245 / 0.4);
}
.bg-emerald-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / 1);
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}
.bg-emerald-500\/10 {
  background-color: rgb(16 185 129 / 0.1);
}
.bg-emerald-500\/20 {
  background-color: rgb(16 185 129 / 0.2);
}
.bg-emerald-500\/5 {
  background-color: rgb(16 185 129 / 0.05);
}
.bg-emerald-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(5 150 105 / 1);
  background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1));
}
.bg-foreground {
  background-color: hsl(var(--color-text-primary));
  background-color: hsl(var(--foreground));
}
.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / 1);
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / 1);
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.bg-gray-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / 1);
  background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
}
.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / 1);
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.bg-gray-500\/10 {
  background-color: rgb(107 114 128 / 0.1);
}
.bg-gray-500\/5 {
  background-color: rgb(107 114 128 / 0.05);
}
.bg-gray-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / 1);
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}
.bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / 1);
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.bg-green-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / 1);
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}
.bg-green-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / 1);
  background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}
.bg-green-500\/10 {
  background-color: rgb(34 197 94 / 0.1);
}
.bg-green-500\/20 {
  background-color: rgb(34 197 94 / 0.2);
}
.bg-green-500\/5 {
  background-color: rgb(34 197 94 / 0.05);
}
.bg-green-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / 1);
  background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}
.bg-indigo-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / 1);
  background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));
}
.bg-indigo-500\/10 {
  background-color: rgb(99 102 241 / 0.1);
}
.bg-indigo-500\/15 {
  background-color: rgb(99 102 241 / 0.15);
}
.bg-indigo-500\/5 {
  background-color: rgb(99 102 241 / 0.05);
}
.bg-indigo-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(79 70 229 / 1);
  background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1));
}
.bg-lime-500\/10 {
  background-color: rgb(132 204 22 / 0.1);
}
.bg-muted {
  background-color: hsl(var(--color-bg-tertiary));
  background-color: hsl(var(--muted));
}
.bg-muted-foreground\/20 {
  background-color: hsl(var(--color-text-muted) / 0.2);
  background-color: hsl(var(--muted-foreground) / 0.2);
}
.bg-muted\/20 {
  background-color: hsl(var(--color-bg-tertiary) / 0.2);
  background-color: hsl(var(--muted) / 0.2);
}
.bg-muted\/30 {
  background-color: hsl(var(--color-bg-tertiary) / 0.3);
  background-color: hsl(var(--muted) / 0.3);
}
.bg-muted\/40 {
  background-color: hsl(var(--color-bg-tertiary) / 0.4);
  background-color: hsl(var(--muted) / 0.4);
}
.bg-muted\/50 {
  background-color: hsl(var(--color-bg-tertiary) / 0.5);
  background-color: hsl(var(--muted) / 0.5);
}
.bg-orange-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / 1);
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}
.bg-orange-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / 1);
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}
.bg-orange-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 115 22 / 1);
  background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));
}
.bg-orange-500\/10 {
  background-color: rgb(249 115 22 / 0.1);
}
.bg-orange-500\/20 {
  background-color: rgb(249 115 22 / 0.2);
}
.bg-orange-500\/5 {
  background-color: rgb(249 115 22 / 0.05);
}
.bg-orange-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 88 12 / 1);
  background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1));
}
.bg-pink-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 72 153 / 1);
  background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1));
}
.bg-pink-500\/10 {
  background-color: rgb(236 72 153 / 0.1);
}
.bg-pink-500\/20 {
  background-color: rgb(236 72 153 / 0.2);
}
.bg-popover {
  background-color: hsl(var(--color-surface));
  background-color: hsl(var(--popover));
}
.bg-primary {
  background-color: hsl(var(--color-accent-secondary));
  background-color: hsl(var(--primary));
}
.bg-primary\/10 {
  background-color: hsl(var(--color-accent-secondary) / 0.1);
  background-color: hsl(var(--primary) / 0.1);
}
.bg-primary\/20 {
  background-color: hsl(var(--color-accent-secondary) / 0.2);
  background-color: hsl(var(--primary) / 0.2);
}
.bg-primary\/5 {
  background-color: hsl(var(--color-accent-secondary) / 0.05);
  background-color: hsl(var(--primary) / 0.05);
}
.bg-purple-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 232 255 / 1);
  background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));
}
.bg-purple-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(168 85 247 / 1);
  background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));
}
.bg-purple-500\/10 {
  background-color: rgb(168 85 247 / 0.1);
}
.bg-purple-500\/20 {
  background-color: rgb(168 85 247 / 0.2);
}
.bg-purple-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(147 51 234 / 1);
  background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
}
.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / 1);
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / 1);
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / 1);
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.bg-red-500\/10 {
  background-color: rgb(239 68 68 / 0.1);
}
.bg-red-500\/20 {
  background-color: rgb(239 68 68 / 0.2);
}
.bg-red-500\/5 {
  background-color: rgb(239 68 68 / 0.05);
}
.bg-red-900\/20 {
  background-color: rgb(127 29 29 / 0.2);
}
.bg-red-950\/20 {
  background-color: rgb(69 10 10 / 0.2);
}
.bg-rose-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / 1);
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}
.bg-rose-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / 1);
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}
.bg-rose-500\/10 {
  background-color: rgb(244 63 94 / 0.1);
}
.bg-rose-500\/5 {
  background-color: rgb(244 63 94 / 0.05);
}
.bg-rose-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / 1);
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
}
.bg-secondary {
  background-color: hsl(var(--color-bg-tertiary));
  background-color: hsl(var(--secondary));
}
.bg-secondary\/30 {
  background-color: hsl(var(--color-bg-tertiary) / 0.3);
  background-color: hsl(var(--secondary) / 0.3);
}
.bg-secondary\/50 {
  background-color: hsl(var(--color-bg-tertiary) / 0.5);
  background-color: hsl(var(--secondary) / 0.5);
}
.bg-sky-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(224 242 254 / 1);
  background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));
}
.bg-sky-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 249 255 / 1);
  background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));
}
.bg-sky-50\/40 {
  background-color: rgb(240 249 255 / 0.4);
}
.bg-sky-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 165 233 / 1);
  background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));
}
.bg-sky-500\/10 {
  background-color: rgb(14 165 233 / 0.1);
}
.bg-sky-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(2 132 199 / 1);
  background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));
}
.bg-slate-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / 1);
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}
.bg-slate-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / 1);
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.bg-slate-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(203 213 225 / 1);
  background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
}
.bg-slate-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / 1);
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
.bg-slate-50\/60 {
  background-color: rgb(248 250 252 / 0.6);
}
.bg-slate-50\/80 {
  background-color: rgb(248 250 252 / 0.8);
}
.bg-slate-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(51 65 85 / 1);
  background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
}
.bg-slate-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / 1);
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}
.bg-teal-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(20 184 166 / 1);
  background-color: rgb(20 184 166 / var(--tw-bg-opacity, 1));
}
.bg-teal-500\/10 {
  background-color: rgb(20 184 166 / 0.1);
}
.bg-teal-500\/20 {
  background-color: rgb(20 184 166 / 0.2);
}
.bg-transparent {
  background-color: transparent;
}
.bg-violet-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / 1);
  background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1));
}
.bg-violet-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(221 214 254 / 1);
  background-color: rgb(221 214 254 / var(--tw-bg-opacity, 1));
}
.bg-violet-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 243 255 / 1);
  background-color: rgb(245 243 255 / var(--tw-bg-opacity, 1));
}
.bg-violet-50\/50 {
  background-color: rgb(245 243 255 / 0.5);
}
.bg-violet-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / 1);
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}
.bg-violet-500\/10 {
  background-color: rgb(139 92 246 / 0.1);
}
.bg-violet-500\/20 {
  background-color: rgb(139 92 246 / 0.2);
}
.bg-violet-500\/5 {
  background-color: rgb(139 92 246 / 0.05);
}
.bg-violet-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(124 58 237 / 1);
  background-color: rgb(124 58 237 / var(--tw-bg-opacity, 1));
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / 1);
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/40 {
  background-color: rgb(255 255 255 / 0.4);
}
.bg-white\/45 {
  background-color: rgb(255 255 255 / 0.45);
}
.bg-white\/70 {
  background-color: rgb(255 255 255 / 0.7);
}
.bg-white\/80 {
  background-color: rgb(255 255 255 / 0.8);
}
.bg-white\/95 {
  background-color: rgb(255 255 255 / 0.95);
}
.bg-white\/\[0\.04\] {
  background-color: rgb(255 255 255 / 0.04);
}
.bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / 1);
  background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}
.bg-yellow-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / 1);
  background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}
.bg-yellow-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / 1);
  background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}
.bg-yellow-500\/10 {
  background-color: rgb(234 179 8 / 0.1);
}
.bg-yellow-500\/20 {
  background-color: rgb(234 179 8 / 0.2);
}
.bg-zinc-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(9 9 11 / 1);
  background-color: rgb(9 9 11 / var(--tw-bg-opacity, 1));
}
.bg-opacity-20 {
  --tw-bg-opacity: 0.2;
}
.bg-\[linear-gradient\(180deg\2c rgba\(255\2c 255\2c 255\2c 0\.58\)\2c rgba\(255\2c 255\2c 255\2c 0\.32\)\)\] {
  background-image: linear-gradient(180deg,rgba(255,255,255,0.58),rgba(255,255,255,0.32));
}
.bg-\[linear-gradient\(180deg\2c rgba\(255\2c 255\2c 255\2c 0\.72\)\2c rgba\(255\2c 255\2c 255\2c 0\.38\)\)\] {
  background-image: linear-gradient(180deg,rgba(255,255,255,0.72),rgba(255,255,255,0.38));
}
.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}
.from-\[\#080B14\] {
  --tw-gradient-from: #080B14 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(8 11 20 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[\#0a0f1e\]\/95 {
  --tw-gradient-from: rgb(10 15 30 / 0.95) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(10 15 30 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[\#1a365d\] {
  --tw-gradient-from: #1a365d var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(26 54 93 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[\$\{q\.accent\}\] {
  --tw-gradient-from: ${q.accent} var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--bg-surface\)\] {
  --tw-gradient-from: var(--bg-surface) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-accent\)\] {
  --tw-gradient-from: var(--color-accent) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-accent-light\)\] {
  --tw-gradient-from: var(--color-accent-light) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-action-primary\)\] {
  --tw-gradient-from: var(--color-action-primary) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-bg-inverse\)\] {
  --tw-gradient-from: var(--color-bg-inverse) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-bg-sunken\)\] {
  --tw-gradient-from: var(--color-bg-sunken) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-bg-surface\)\] {
  --tw-gradient-from: var(--color-bg-surface) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-brand-gold\)\] {
  --tw-gradient-from: var(--color-brand-gold) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-brand-gold-light\)\] {
  --tw-gradient-from: var(--color-brand-gold-light) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-feedback-danger\)\] {
  --tw-gradient-from: var(--color-feedback-danger) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-feedback-info\)\] {
  --tw-gradient-from: var(--color-feedback-info) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-feedback-success\)\] {
  --tw-gradient-from: var(--color-feedback-success) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-feedback-warning\)\] {
  --tw-gradient-from: var(--color-feedback-warning) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-text-muted\)\] {
  --tw-gradient-from: var(--color-text-muted) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[var\(--color-text-primary\)\] {
  --tw-gradient-from: var(--color-text-primary) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-amber-100 {
  --tw-gradient-from: #fef3c7 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(254 243 199 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-amber-400 {
  --tw-gradient-from: #fbbf24 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-amber-50 {
  --tw-gradient-from: #fffbeb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-amber-500 {
  --tw-gradient-from: #f59e0b var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-amber-500\/10 {
  --tw-gradient-from: rgb(245 158 11 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-amber-900\/20 {
  --tw-gradient-from: rgb(120 53 15 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(120 53 15 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-black\/60 {
  --tw-gradient-from: rgb(0 0 0 / 0.6) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-black\/70 {
  --tw-gradient-from: rgb(0 0 0 / 0.7) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-400 {
  --tw-gradient-from: #60a5fa var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-50 {
  --tw-gradient-from: #eff6ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-50\/50 {
  --tw-gradient-from: rgb(239 246 255 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-500 {
  --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-500\/10 {
  --tw-gradient-from: rgb(59 130 246 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-500\/20 {
  --tw-gradient-from: rgb(59 130 246 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-500\/30 {
  --tw-gradient-from: rgb(59 130 246 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-600 {
  --tw-gradient-from: #2563eb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-cyan-100 {
  --tw-gradient-from: #cffafe var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(207 250 254 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-cyan-50 {
  --tw-gradient-from: #ecfeff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(236 254 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-cyan-500 {
  --tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-100 {
  --tw-gradient-from: #d1fae5 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(209 250 229 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-50 {
  --tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-500 {
  --tw-gradient-from: #10b981 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-500\/10 {
  --tw-gradient-from: rgb(16 185 129 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-600 {
  --tw-gradient-from: #059669 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(5 150 105 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-900\/50 {
  --tw-gradient-from: rgb(6 78 59 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(6 78 59 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-gray-50 {
  --tw-gradient-from: #f9fafb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-gray-500\/20 {
  --tw-gradient-from: rgb(107 114 128 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(107 114 128 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-green-500 {
  --tw-gradient-from: #22c55e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-green-500\/20 {
  --tw-gradient-from: rgb(34 197 94 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-indigo-50 {
  --tw-gradient-from: #eef2ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-indigo-500 {
  --tw-gradient-from: #6366f1 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-indigo-500\/10 {
  --tw-gradient-from: rgb(99 102 241 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-indigo-500\/\[0\.06\] {
  --tw-gradient-from: rgb(99 102 241 / 0.06) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-indigo-900 {
  --tw-gradient-from: #312e81 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(49 46 129 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-lime-500 {
  --tw-gradient-from: #84cc16 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(132 204 22 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-lime-500\/20 {
  --tw-gradient-from: rgb(132 204 22 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(132 204 22 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-muted\/40 {
  --tw-gradient-from: hsl(var(--muted) / 0.4) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-orange-50 {
  --tw-gradient-from: #fff7ed var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-orange-500 {
  --tw-gradient-from: #f97316 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-orange-500\/20 {
  --tw-gradient-from: rgb(249 115 22 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-pink-50 {
  --tw-gradient-from: #fdf2f8 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(253 242 248 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-pink-500 {
  --tw-gradient-from: #ec4899 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-primary {
  --tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-purple-100 {
  --tw-gradient-from: #f3e8ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(243 232 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-purple-50 {
  --tw-gradient-from: #faf5ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-purple-500 {
  --tw-gradient-from: #a855f7 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-purple-500\/20 {
  --tw-gradient-from: rgb(168 85 247 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-red-100 {
  --tw-gradient-from: #fee2e2 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(254 226 226 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-red-50 {
  --tw-gradient-from: #fef2f2 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(254 242 242 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-red-500 {
  --tw-gradient-from: #ef4444 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-rose-100 {
  --tw-gradient-from: #ffe4e6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 228 230 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-rose-500 {
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-sky-400 {
  --tw-gradient-from: #38bdf8 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-sky-500\/10 {
  --tw-gradient-from: rgb(14 165 233 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-50 {
  --tw-gradient-from: #f8fafc var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-500 {
  --tw-gradient-from: #64748b var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(100 116 139 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-600 {
  --tw-gradient-from: #475569 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(71 85 105 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-900 {
  --tw-gradient-from: #0f172a var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-950 {
  --tw-gradient-from: #020617 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(2 6 23 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-teal-500 {
  --tw-gradient-from: #14b8a6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-transparent {
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-100 {
  --tw-gradient-from: #ede9fe var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(237 233 254 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-100\/80 {
  --tw-gradient-from: rgb(237 233 254 / 0.8) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(237 233 254 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-200 {
  --tw-gradient-from: #ddd6fe var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(221 214 254 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-50 {
  --tw-gradient-from: #f5f3ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(245 243 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-500 {
  --tw-gradient-from: #8b5cf6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-600 {
  --tw-gradient-from: #7c3aed var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-yellow-500 {
  --tw-gradient-from: #eab308 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(234 179 8 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.via-\[\#0B0F19\] {
  --tw-gradient-to: rgb(11 15 25 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #0B0F19 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-\[var\(--color-accent\)\] {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--color-accent) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-\[var\(--color-bg-hover\)\] {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--color-bg-hover) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-\[var\(--color-bg-inverse\)\] {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--color-bg-inverse) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-\[var\(--color-feedback-danger\)\] {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--color-feedback-danger) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-\[var\(--color-feedback-success\)\] {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--color-feedback-success) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-\[var\(--color-feedback-warning\)\] {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--color-feedback-warning) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-amber-200 {
  --tw-gradient-to: rgb(253 230 138 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #fde68a var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-blue-300\/30 {
  --tw-gradient-to: rgb(147 197 253 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(147 197 253 / 0.3) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-blue-900 {
  --tw-gradient-to: rgb(30 58 138 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #1e3a8a var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-blue-950 {
  --tw-gradient-to: rgb(23 37 84 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #172554 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-emerald-900 {
  --tw-gradient-to: rgb(6 78 59 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #064e3b var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-emerald-950 {
  --tw-gradient-to: rgb(2 44 34 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #022c22 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-indigo-600 {
  --tw-gradient-to: rgb(79 70 229 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #4f46e5 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-purple-500\/\[0\.04\] {
  --tw-gradient-to: rgb(168 85 247 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(168 85 247 / 0.04) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-transparent {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-violet-100 {
  --tw-gradient-to: rgb(237 233 254 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #ede9fe var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-violet-900 {
  --tw-gradient-to: rgb(76 29 149 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #4c1d95 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-violet-950 {
  --tw-gradient-to: rgb(46 16 101 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #2e1065 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-white\/10 {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.1) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-white\/20 {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-white\/30 {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.3) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-\[\#050814\]\/95 {
  --tw-gradient-to: rgb(5 8 20 / 0.95) var(--tw-gradient-to-position);
}
.to-\[\#111827\] {
  --tw-gradient-to: #111827 var(--tw-gradient-to-position);
}
.to-\[\#2d4a7c\] {
  --tw-gradient-to: #2d4a7c var(--tw-gradient-to-position);
}
.to-\[\#B8962E\] {
  --tw-gradient-to: #B8962E var(--tw-gradient-to-position);
}
.to-\[\#B8963A\] {
  --tw-gradient-to: #B8963A var(--tw-gradient-to-position);
}
.to-\[\$\{q\.energy\}\] {
  --tw-gradient-to: ${q.energy} var(--tw-gradient-to-position);
}
.to-\[var\(--bg-elevated\)\] {
  --tw-gradient-to: var(--bg-elevated) var(--tw-gradient-to-position);
}
.to-\[var\(--color-accent\)\] {
  --tw-gradient-to: var(--color-accent) var(--tw-gradient-to-position);
}
.to-\[var\(--color-action-primary\)\] {
  --tw-gradient-to: var(--color-action-primary) var(--tw-gradient-to-position);
}
.to-\[var\(--color-action-primary-hover\)\] {
  --tw-gradient-to: var(--color-action-primary-hover) var(--tw-gradient-to-position);
}
.to-\[var\(--color-bg-inverse\)\] {
  --tw-gradient-to: var(--color-bg-inverse) var(--tw-gradient-to-position);
}
.to-\[var\(--color-bg-subtle\)\] {
  --tw-gradient-to: var(--color-bg-subtle) var(--tw-gradient-to-position);
}
.to-\[var\(--color-bg-sunken\)\] {
  --tw-gradient-to: var(--color-bg-sunken) var(--tw-gradient-to-position);
}
.to-\[var\(--color-brand-gold\)\] {
  --tw-gradient-to: var(--color-brand-gold) var(--tw-gradient-to-position);
}
.to-\[var\(--color-feedback-danger\)\] {
  --tw-gradient-to: var(--color-feedback-danger) var(--tw-gradient-to-position);
}
.to-\[var\(--color-feedback-info\)\] {
  --tw-gradient-to: var(--color-feedback-info) var(--tw-gradient-to-position);
}
.to-\[var\(--color-feedback-info-light\)\] {
  --tw-gradient-to: var(--color-feedback-info-light) var(--tw-gradient-to-position);
}
.to-\[var\(--color-feedback-success\)\] {
  --tw-gradient-to: var(--color-feedback-success) var(--tw-gradient-to-position);
}
.to-\[var\(--color-feedback-warning\)\] {
  --tw-gradient-to: var(--color-feedback-warning) var(--tw-gradient-to-position);
}
.to-\[var\(--color-text-muted\)\] {
  --tw-gradient-to: var(--color-text-muted) var(--tw-gradient-to-position);
}
.to-\[var\(--p-slate-800\)\] {
  --tw-gradient-to: var(--p-slate-800) var(--tw-gradient-to-position);
}
.to-amber-100\/50 {
  --tw-gradient-to: rgb(254 243 199 / 0.5) var(--tw-gradient-to-position);
}
.to-amber-50 {
  --tw-gradient-to: #fffbeb var(--tw-gradient-to-position);
}
.to-amber-600 {
  --tw-gradient-to: #d97706 var(--tw-gradient-to-position);
}
.to-blue-100 {
  --tw-gradient-to: #dbeafe var(--tw-gradient-to-position);
}
.to-blue-50 {
  --tw-gradient-to: #eff6ff var(--tw-gradient-to-position);
}
.to-blue-600 {
  --tw-gradient-to: #2563eb var(--tw-gradient-to-position);
}
.to-blue-600\/10 {
  --tw-gradient-to: rgb(37 99 235 / 0.1) var(--tw-gradient-to-position);
}
.to-blue-700 {
  --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position);
}
.to-cyan-50 {
  --tw-gradient-to: #ecfeff var(--tw-gradient-to-position);
}
.to-cyan-500 {
  --tw-gradient-to: #06b6d4 var(--tw-gradient-to-position);
}
.to-cyan-500\/5 {
  --tw-gradient-to: rgb(6 182 212 / 0.05) var(--tw-gradient-to-position);
}
.to-cyan-600 {
  --tw-gradient-to: #0891b2 var(--tw-gradient-to-position);
}
.to-cyan-700 {
  --tw-gradient-to: #0e7490 var(--tw-gradient-to-position);
}
.to-emerald-100 {
  --tw-gradient-to: #d1fae5 var(--tw-gradient-to-position);
}
.to-emerald-100\/50 {
  --tw-gradient-to: rgb(209 250 229 / 0.5) var(--tw-gradient-to-position);
}
.to-emerald-400 {
  --tw-gradient-to: #34d399 var(--tw-gradient-to-position);
}
.to-emerald-500 {
  --tw-gradient-to: #10b981 var(--tw-gradient-to-position);
}
.to-emerald-500\/20 {
  --tw-gradient-to: rgb(16 185 129 / 0.2) var(--tw-gradient-to-position);
}
.to-emerald-600 {
  --tw-gradient-to: #059669 var(--tw-gradient-to-position);
}
.to-gray-600\/10 {
  --tw-gradient-to: rgb(75 85 99 / 0.1) var(--tw-gradient-to-position);
}
.to-gray-700 {
  --tw-gradient-to: #374151 var(--tw-gradient-to-position);
}
.to-green-50 {
  --tw-gradient-to: #f0fdf4 var(--tw-gradient-to-position);
}
.to-green-500 {
  --tw-gradient-to: #22c55e var(--tw-gradient-to-position);
}
.to-green-500\/5 {
  --tw-gradient-to: rgb(34 197 94 / 0.05) var(--tw-gradient-to-position);
}
.to-green-600 {
  --tw-gradient-to: #16a34a var(--tw-gradient-to-position);
}
.to-green-600\/10 {
  --tw-gradient-to: rgb(22 163 74 / 0.1) var(--tw-gradient-to-position);
}
.to-indigo-100 {
  --tw-gradient-to: #e0e7ff var(--tw-gradient-to-position);
}
.to-indigo-50 {
  --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);
}
.to-indigo-500\/10 {
  --tw-gradient-to: rgb(99 102 241 / 0.1) var(--tw-gradient-to-position);
}
.to-indigo-600 {
  --tw-gradient-to: #4f46e5 var(--tw-gradient-to-position);
}
.to-indigo-900 {
  --tw-gradient-to: #312e81 var(--tw-gradient-to-position);
}
.to-indigo-900\/30 {
  --tw-gradient-to: rgb(49 46 129 / 0.3) var(--tw-gradient-to-position);
}
.to-lime-500\/5 {
  --tw-gradient-to: rgb(132 204 22 / 0.05) var(--tw-gradient-to-position);
}
.to-lime-600 {
  --tw-gradient-to: #65a30d var(--tw-gradient-to-position);
}
.to-muted\/20 {
  --tw-gradient-to: hsl(var(--muted) / 0.2) var(--tw-gradient-to-position);
}
.to-orange-100 {
  --tw-gradient-to: #ffedd5 var(--tw-gradient-to-position);
}
.to-orange-50 {
  --tw-gradient-to: #fff7ed var(--tw-gradient-to-position);
}
.to-orange-500 {
  --tw-gradient-to: #f97316 var(--tw-gradient-to-position);
}
.to-orange-500\/5 {
  --tw-gradient-to: rgb(249 115 22 / 0.05) var(--tw-gradient-to-position);
}
.to-orange-600 {
  --tw-gradient-to: #ea580c var(--tw-gradient-to-position);
}
.to-orange-600\/10 {
  --tw-gradient-to: rgb(234 88 12 / 0.1) var(--tw-gradient-to-position);
}
.to-pink-100 {
  --tw-gradient-to: #fce7f3 var(--tw-gradient-to-position);
}
.to-pink-100\/60 {
  --tw-gradient-to: rgb(252 231 243 / 0.6) var(--tw-gradient-to-position);
}
.to-pink-600 {
  --tw-gradient-to: #db2777 var(--tw-gradient-to-position);
}
.to-primary\/80 {
  --tw-gradient-to: hsl(var(--primary) / 0.8) var(--tw-gradient-to-position);
}
.to-purple-100 {
  --tw-gradient-to: #f3e8ff var(--tw-gradient-to-position);
}
.to-purple-200 {
  --tw-gradient-to: #e9d5ff var(--tw-gradient-to-position);
}
.to-purple-50 {
  --tw-gradient-to: #faf5ff var(--tw-gradient-to-position);
}
.to-purple-500 {
  --tw-gradient-to: #a855f7 var(--tw-gradient-to-position);
}
.to-purple-500\/10 {
  --tw-gradient-to: rgb(168 85 247 / 0.1) var(--tw-gradient-to-position);
}
.to-purple-500\/30 {
  --tw-gradient-to: rgb(168 85 247 / 0.3) var(--tw-gradient-to-position);
}
.to-purple-600 {
  --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
}
.to-purple-600\/10 {
  --tw-gradient-to: rgb(147 51 234 / 0.1) var(--tw-gradient-to-position);
}
.to-purple-700 {
  --tw-gradient-to: #7e22ce var(--tw-gradient-to-position);
}
.to-red-100 {
  --tw-gradient-to: #fee2e2 var(--tw-gradient-to-position);
}
.to-red-600 {
  --tw-gradient-to: #dc2626 var(--tw-gradient-to-position);
}
.to-rose-500 {
  --tw-gradient-to: #f43f5e var(--tw-gradient-to-position);
}
.to-rose-600 {
  --tw-gradient-to: #e11d48 var(--tw-gradient-to-position);
}
.to-sky-50 {
  --tw-gradient-to: #f0f9ff var(--tw-gradient-to-position);
}
.to-slate-100 {
  --tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position);
}
.to-slate-100\/50 {
  --tw-gradient-to: rgb(241 245 249 / 0.5) var(--tw-gradient-to-position);
}
.to-slate-600 {
  --tw-gradient-to: #475569 var(--tw-gradient-to-position);
}
.to-slate-700 {
  --tw-gradient-to: #334155 var(--tw-gradient-to-position);
}
.to-slate-900 {
  --tw-gradient-to: #0f172a var(--tw-gradient-to-position);
}
.to-slate-950 {
  --tw-gradient-to: #020617 var(--tw-gradient-to-position);
}
.to-teal-100 {
  --tw-gradient-to: #ccfbf1 var(--tw-gradient-to-position);
}
.to-teal-50 {
  --tw-gradient-to: #f0fdfa var(--tw-gradient-to-position);
}
.to-teal-600 {
  --tw-gradient-to: #0d9488 var(--tw-gradient-to-position);
}
.to-teal-700 {
  --tw-gradient-to: #0f766e var(--tw-gradient-to-position);
}
.to-teal-900\/50 {
  --tw-gradient-to: rgb(19 78 74 / 0.5) var(--tw-gradient-to-position);
}
.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.to-violet-100 {
  --tw-gradient-to: #ede9fe var(--tw-gradient-to-position);
}
.to-violet-50 {
  --tw-gradient-to: #f5f3ff var(--tw-gradient-to-position);
}
.to-violet-500 {
  --tw-gradient-to: #8b5cf6 var(--tw-gradient-to-position);
}
.to-violet-500\/5 {
  --tw-gradient-to: rgb(139 92 246 / 0.05) var(--tw-gradient-to-position);
}
.to-violet-600 {
  --tw-gradient-to: #7c3aed var(--tw-gradient-to-position);
}
.to-violet-950 {
  --tw-gradient-to: #2e1065 var(--tw-gradient-to-position);
}
.to-white {
  --tw-gradient-to: #fff var(--tw-gradient-to-position);
}
.to-yellow-50 {
  --tw-gradient-to: #fefce8 var(--tw-gradient-to-position);
}
.to-yellow-600 {
  --tw-gradient-to: #ca8a04 var(--tw-gradient-to-position);
}
.to-zinc-500 {
  --tw-gradient-to: #71717a var(--tw-gradient-to-position);
}
.to-zinc-500\/20 {
  --tw-gradient-to: rgb(113 113 122 / 0.2) var(--tw-gradient-to-position);
}
.bg-\[length\:200\%_100\%\] {
  background-size: 200% 100%;
}
.bg-clip-text {
  -webkit-background-clip: text;
          background-clip: text;
}
.fill-\[var\(--color-action-primary\)\] {
  fill: #D6B16A;
  fill: var(--color-action-primary);
}
.fill-\[var\(--color-text-muted\)\] {
  fill: var(--color-text-muted);
}
.fill-\[var\(--color-text-secondary\)\] {
  fill: var(--color-text-secondary);
}
.fill-amber-500 {
  fill: #f59e0b;
}
.fill-current {
  fill: currentColor;
}
.fill-primary {
  fill: hsl(var(--color-accent-secondary));
  fill: hsl(var(--primary));
}
.fill-red-500 {
  fill: #ef4444;
}
.fill-white {
  fill: #fff;
}
.fill-yellow-500 {
  fill: #eab308;
}
.stroke-\[var\(--color-action-primary\)\] {
  stroke: #D6B16A;
  stroke: var(--color-action-primary);
}
.stroke-current {
  stroke: currentColor;
}
.stroke-muted\/20 {
  stroke: hsl(var(--color-bg-tertiary) / 0.2);
  stroke: hsl(var(--muted) / 0.2);
}
.stroke-white\/50 {
  stroke: rgb(255 255 255 / 0.5);
}
.stroke-1 {
  stroke-width: 1;
}
.stroke-2 {
  stroke-width: 2;
}
.object-contain {
  object-fit: contain;
}
.object-cover {
  object-fit: cover;
}
.\!p-2\.5 {
  padding: 0.625rem !important;
}
.p-0 {
  padding: 0px;
}
.p-0\.5 {
  padding: 0.125rem;
}
.p-1 {
  padding: 0.25rem;
}
.p-1\.5 {
  padding: 0.375rem;
}
.p-10 {
  padding: 2.5rem;
}
.p-12 {
  padding: 3rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-2\.5 {
  padding: 0.625rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-3\.5 {
  padding: 0.875rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-8 {
  padding: 2rem;
}
.p-\[var\(--spacing-4\)\] {
  padding: var(--spacing-4);
}
.p-px {
  padding: 1px;
}
.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}
.px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-24 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.\!pl-11 {
  padding-left: 2.75rem !important;
}
.\!pl-14 {
  padding-left: 3.5rem !important;
}
.pb-0 {
  padding-bottom: 0px;
}
.pb-1 {
  padding-bottom: 0.25rem;
}
.pb-1\.5 {
  padding-bottom: 0.375rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-28 {
  padding-bottom: 7rem;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pb-32 {
  padding-bottom: 8rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pb-5 {
  padding-bottom: 1.25rem;
}
.pb-6 {
  padding-bottom: 1.5rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pl-0 {
  padding-left: 0px;
}
.pl-0\.5 {
  padding-left: 0.125rem;
}
.pl-1 {
  padding-left: 0.25rem;
}
.pl-10 {
  padding-left: 2.5rem;
}
.pl-11 {
  padding-left: 2.75rem;
}
.pl-12 {
  padding-left: 3rem;
}
.pl-14 {
  padding-left: 3.5rem;
}
.pl-16 {
  padding-left: 4rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-2\.5 {
  padding-left: 0.625rem;
}
.pl-3 {
  padding-left: 0.75rem;
}
.pl-3\.5 {
  padding-left: 0.875rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pl-5 {
  padding-left: 1.25rem;
}
.pl-6 {
  padding-left: 1.5rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pl-9 {
  padding-left: 2.25rem;
}
.pl-\[18px\] {
  padding-left: 18px;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-10 {
  padding-right: 2.5rem;
}
.pr-12 {
  padding-right: 3rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-2\.5 {
  padding-right: 0.625rem;
}
.pr-3 {
  padding-right: 0.75rem;
}
.pr-4 {
  padding-right: 1rem;
}
.pr-6 {
  padding-right: 1.5rem;
}
.pr-8 {
  padding-right: 2rem;
}
.pr-9 {
  padding-right: 2.25rem;
}
.ps-1 {
  padding-inline-start: 0.25rem;
}
.ps-2 {
  padding-inline-start: 0.5rem;
}
.pt-0 {
  padding-top: 0px;
}
.pt-0\.5 {
  padding-top: 0.125rem;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-16 {
  padding-top: 4rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-2\.5 {
  padding-top: 0.625rem;
}
.pt-20 {
  padding-top: 5rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-\[10vh\] {
  padding-top: 10vh;
}
.pt-\[12vh\] {
  padding-top: 12vh;
}
.pt-\[15vh\] {
  padding-top: 15vh;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.align-middle {
  vertical-align: middle;
}
.font-\[\'Chivo\'\] {
  font-family: 'Chivo';
}
.font-\[\'Plus_Jakarta_Sans\'\] {
  font-family: 'Plus Jakarta Sans';
}
.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.font-sans {
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl {
  font-size: 3rem;
  line-height: 1;
}
.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.text-\[0\.8rem\] {
  font-size: 0.8rem;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[15px\] {
  font-size: 15px;
}
.text-\[3px\] {
  font-size: 3px;
}
.text-\[6px\] {
  font-size: 6px;
}
.text-\[7px\] {
  font-size: 7px;
}
.text-\[8px\] {
  font-size: 8px;
}
.text-\[9px\] {
  font-size: 9px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-black {
  font-weight: 900;
}
.font-bold {
  font-weight: 700;
}
.font-light {
  font-weight: 300;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.capitalize {
  text-transform: capitalize;
}
.italic {
  font-style: italic;
}
.not-italic {
  font-style: normal;
}
.ordinal {
  --tw-ordinal: ordinal;
  font-feature-settings: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.slashed-zero {
  --tw-slashed-zero: slashed-zero;
  font-feature-settings: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-feature-settings: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-\[12px\] {
  line-height: 12px;
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-\[0\.15em\] {
  letter-spacing: 0.15em;
}
.tracking-\[0\.2em\] {
  letter-spacing: 0.2em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.\!text-\[var\(--color-feedback-success\)\] {
  color: var(--color-feedback-success) !important;
}
.text-\[\#64748B\] {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / 1);
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.text-\[\#94A3B8\] {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / 1);
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.text-\[\#F1F5F9\] {
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / 1);
  color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}
.text-\[Npx\] {
  color: Npx;
}
.text-\[var\(--accent\)\] {
  color: var(--color-accent-primary);
  color: var(--accent);
}
.text-\[var\(--accent-danger\)\] {
  color: #B85C5C;
  color: var(--accent-danger);
}
.text-\[var\(--accent-primary\)\] {
  color: #D6B16A;
  color: var(--accent-primary);
}
.text-\[var\(--accent-success\)\] {
  color: #8FA99A;
  color: var(--accent-success);
}
.text-\[var\(--accent-warning\)\] {
  color: #D6B16A;
  color: var(--accent-warning);
}
.text-\[var\(--badge-critical-text\)\] {
  color: var(--badge-critical-text);
}
.text-\[var\(--color-accent\)\] {
  color: var(--color-accent);
}
.text-\[var\(--color-accent-dark\)\] {
  color: var(--color-accent-dark);
}
.text-\[var\(--color-accent-gold\)\] {
  color: var(--color-accent-gold);
}
.text-\[var\(--color-accent-primary\)\] {
  color: var(--color-accent-primary);
}
.text-\[var\(--color-action-primary\)\] {
  color: #D6B16A;
  color: var(--color-action-primary);
}
.text-\[var\(--color-action-primary-hover\)\] {
  color: #C29E57;
  color: var(--color-action-primary-hover);
}
.text-\[var\(--color-bg-inverse\)\] {
  color: var(--color-bg-inverse);
}
.text-\[var\(--color-border-subtle\)\] {
  color: var(--color-border-subtle);
}
.text-\[var\(--color-brand-gold\)\] {
  color: #FFD500;
  color: var(--color-brand-gold);
}
.text-\[var\(--color-brand-gold-light\)\] {
  color: #D6B16A;
  color: var(--color-brand-gold-light);
}
.text-\[var\(--color-brand-primary\)\] {
  color: var(--color-brand-primary);
}
.text-\[var\(--color-cat-violet\)\] {
  color: var(--color-cat-violet);
}
.text-\[var\(--color-feedback-danger\)\] {
  color: var(--color-feedback-danger);
}
.text-\[var\(--color-feedback-danger\2c var\(--color-error\)\)\] {
  color: var(--color-error);
  color: var(--color-feedback-danger,var(--color-error));
}
.text-\[var\(--color-feedback-danger\2c var\(--p-rose-400\)\)\] {
  color: var(--p-rose-400);
  color: var(--color-feedback-danger,var(--p-rose-400));
}
.text-\[var\(--color-feedback-danger-dark\)\] {
  color: var(--color-feedback-danger-dark);
}
.text-\[var\(--color-feedback-info\)\] {
  color: var(--color-feedback-info);
}
.text-\[var\(--color-feedback-info\2c var\(--color-info\)\)\] {
  color: var(--color-info);
  color: var(--color-feedback-info,var(--color-info));
}
.text-\[var\(--color-feedback-info-dark\)\] {
  color: var(--color-feedback-info-dark);
}
.text-\[var\(--color-feedback-success\)\] {
  color: var(--color-feedback-success);
}
.text-\[var\(--color-feedback-success\2c var\(--color-success\)\)\] {
  color: var(--color-success);
  color: var(--color-feedback-success,var(--color-success));
}
.text-\[var\(--color-feedback-success\2c var\(--p-emerald-400\)\)\] {
  color: var(--p-emerald-400);
  color: var(--color-feedback-success,var(--p-emerald-400));
}
.text-\[var\(--color-feedback-success-dark\)\] {
  color: var(--color-feedback-success-dark);
}
.text-\[var\(--color-feedback-warning\)\] {
  color: var(--color-feedback-warning);
}
.text-\[var\(--color-feedback-warning\2c var\(--color-warning\)\)\] {
  color: var(--color-warning);
  color: var(--color-feedback-warning,var(--color-warning));
}
.text-\[var\(--color-feedback-warning\2c var\(--p-amber-400\)\)\] {
  color: var(--p-amber-400);
  color: var(--color-feedback-warning,var(--p-amber-400));
}
.text-\[var\(--color-feedback-warning-dark\)\] {
  color: var(--color-feedback-warning-dark);
}
.text-\[var\(--color-primary\)\] {
  color: var(--color-primary);
}
.text-\[var\(--color-text\)\] {
  color: var(--color-text);
}
.text-\[var\(--color-text-danger\)\] {
  color: var(--color-text-danger);
}
.text-\[var\(--color-text-info\)\] {
  color: var(--color-text-info);
}
.text-\[var\(--color-text-inverse\)\] {
  color: var(--color-text-inverse);
}
.text-\[var\(--color-text-muted\)\] {
  color: var(--color-text-muted);
}
.text-\[var\(--color-text-primary\)\] {
  color: var(--color-text-primary);
}
.text-\[var\(--color-text-primary\2c _\#111\)\] {
  color: #111;
  color: var(--color-text-primary, #111);
}
.text-\[var\(--color-text-primary\2c var\(--color-text-primary\)\)\] {
  color: var(--color-text-primary);
  color: var(--color-text-primary,var(--color-text-primary));
}
.text-\[var\(--color-text-secondary\)\] {
  color: var(--color-text-secondary);
}
.text-\[var\(--color-text-secondary\2c var\(--color-text-muted\)\)\] {
  color: var(--color-text-muted);
  color: var(--color-text-secondary,var(--color-text-muted));
}
.text-\[var\(--color-text-success\)\] {
  color: var(--color-text-success);
}
.text-\[var\(--color-text-tertiary\)\] {
  color: var(--color-text-tertiary);
}
.text-\[var\(--color-text-warning\)\] {
  color: var(--color-text-warning);
}
.text-\[var\(--fontSize-sm\)\] {
  color: var(--fontSize-sm);
}
.text-\[var\(--foreground\)\] {
  color: var(--color-text-primary);
  color: var(--foreground);
}
.text-\[var\(--muted-foreground\)\] {
  color: var(--color-text-muted);
  color: var(--muted-foreground);
}
.text-\[var\(--nav-item-active-text\)\] {
  color: var(--nav-item-active-text);
}
.text-\[var\(--p-indigo-900\)\] {
  color: var(--p-indigo-900);
}
.text-\[var\(--status-success\)\] {
  color: var(--status-success);
}
.text-\[var\(--status-warning\)\] {
  color: var(--status-warning);
}
.text-\[var\(--text-muted\)\] {
  color: var(--text-muted);
}
.text-\[var\(--text-on-accent\)\] {
  color: var(--text-on-accent);
}
.text-\[var\(--text-primary\)\] {
  color: var(--text-primary);
}
.text-\[var\(--text-secondary\)\] {
  color: var(--text-secondary);
}
.text-accent-foreground {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--accent-foreground));
}
.text-amber-300 {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / 1);
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}
.text-amber-400 {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / 1);
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}
.text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / 1);
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.text-amber-500\/70 {
  color: rgb(245 158 11 / 0.7);
}
.text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / 1);
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.text-amber-700 {
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / 1);
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}
.text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / 1);
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.text-amber-900 {
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / 1);
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / 1);
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.text-black\/60 {
  color: rgb(0 0 0 / 0.6);
}
.text-blue-100 {
  --tw-text-opacity: 1;
  color: rgb(219 234 254 / 1);
  color: rgb(219 234 254 / var(--tw-text-opacity, 1));
}
.text-blue-200\/80 {
  color: rgb(191 219 254 / 0.8);
}
.text-blue-300 {
  --tw-text-opacity: 1;
  color: rgb(147 197 253 / 1);
  color: rgb(147 197 253 / var(--tw-text-opacity, 1));
}
.text-blue-400 {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / 1);
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}
.text-blue-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / 1);
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / 1);
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-blue-700 {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / 1);
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.text-blue-800 {
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / 1);
  color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}
.text-blue-900 {
  --tw-text-opacity: 1;
  color: rgb(30 58 138 / 1);
  color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}
.text-current {
  color: currentColor;
}
.text-cyan-200 {
  --tw-text-opacity: 1;
  color: rgb(165 243 252 / 1);
  color: rgb(165 243 252 / var(--tw-text-opacity, 1));
}
.text-cyan-300 {
  --tw-text-opacity: 1;
  color: rgb(103 232 249 / 1);
  color: rgb(103 232 249 / var(--tw-text-opacity, 1));
}
.text-cyan-400 {
  --tw-text-opacity: 1;
  color: rgb(34 211 238 / 1);
  color: rgb(34 211 238 / var(--tw-text-opacity, 1));
}
.text-cyan-500 {
  --tw-text-opacity: 1;
  color: rgb(6 182 212 / 1);
  color: rgb(6 182 212 / var(--tw-text-opacity, 1));
}
.text-cyan-600 {
  --tw-text-opacity: 1;
  color: rgb(8 145 178 / 1);
  color: rgb(8 145 178 / var(--tw-text-opacity, 1));
}
.text-destructive {
  color: hsl(var(--color-error));
  color: hsl(var(--destructive));
}
.text-destructive-foreground {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--destructive-foreground));
}
.text-emerald-300 {
  --tw-text-opacity: 1;
  color: rgb(110 231 183 / 1);
  color: rgb(110 231 183 / var(--tw-text-opacity, 1));
}
.text-emerald-400 {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / 1);
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}
.text-emerald-500 {
  --tw-text-opacity: 1;
  color: rgb(16 185 129 / 1);
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
}
.text-emerald-600 {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / 1);
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}
.text-emerald-700 {
  --tw-text-opacity: 1;
  color: rgb(4 120 87 / 1);
  color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}
.text-emerald-800 {
  --tw-text-opacity: 1;
  color: rgb(6 95 70 / 1);
  color: rgb(6 95 70 / var(--tw-text-opacity, 1));
}
.text-emerald-900 {
  --tw-text-opacity: 1;
  color: rgb(6 78 59 / 1);
  color: rgb(6 78 59 / var(--tw-text-opacity, 1));
}
.text-foreground {
  color: hsl(var(--color-text-primary));
  color: hsl(var(--foreground));
}
.text-foreground\/50 {
  color: hsl(var(--color-text-primary) / 0.5);
  color: hsl(var(--foreground) / 0.5);
}
.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / 1);
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / 1);
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / 1);
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / 1);
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}
.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / 1);
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.text-green-300 {
  --tw-text-opacity: 1;
  color: rgb(134 239 172 / 1);
  color: rgb(134 239 172 / var(--tw-text-opacity, 1));
}
.text-green-400 {
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / 1);
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}
.text-green-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / 1);
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / 1);
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / 1);
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}
.text-green-800 {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / 1);
  color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}
.text-green-900 {
  --tw-text-opacity: 1;
  color: rgb(20 83 45 / 1);
  color: rgb(20 83 45 / var(--tw-text-opacity, 1));
}
.text-indigo-400 {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / 1);
  color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}
.text-indigo-400\/30 {
  color: rgb(129 140 248 / 0.3);
}
.text-indigo-400\/40 {
  color: rgb(129 140 248 / 0.4);
}
.text-indigo-500 {
  --tw-text-opacity: 1;
  color: rgb(99 102 241 / 1);
  color: rgb(99 102 241 / var(--tw-text-opacity, 1));
}
.text-indigo-500\/70 {
  color: rgb(99 102 241 / 0.7);
}
.text-indigo-700 {
  --tw-text-opacity: 1;
  color: rgb(67 56 202 / 1);
  color: rgb(67 56 202 / var(--tw-text-opacity, 1));
}
.text-input {
  color: hsl(var(--color-border-light));
  color: hsl(var(--input));
}
.text-lime-500 {
  --tw-text-opacity: 1;
  color: rgb(132 204 22 / 1);
  color: rgb(132 204 22 / var(--tw-text-opacity, 1));
}
.text-muted {
  color: hsl(var(--color-bg-tertiary));
  color: hsl(var(--muted));
}
.text-muted-foreground {
  color: hsl(var(--color-text-muted));
  color: hsl(var(--muted-foreground));
}
.text-muted-foreground\/30 {
  color: hsl(var(--color-text-muted) / 0.3);
  color: hsl(var(--muted-foreground) / 0.3);
}
.text-muted-foreground\/40 {
  color: hsl(var(--color-text-muted) / 0.4);
  color: hsl(var(--muted-foreground) / 0.4);
}
.text-muted-foreground\/50 {
  color: hsl(var(--color-text-muted) / 0.5);
  color: hsl(var(--muted-foreground) / 0.5);
}
.text-muted-foreground\/70 {
  color: hsl(var(--color-text-muted) / 0.7);
  color: hsl(var(--muted-foreground) / 0.7);
}
.text-muted\/20 {
  color: hsl(var(--color-bg-tertiary) / 0.2);
  color: hsl(var(--muted) / 0.2);
}
.text-orange-300 {
  --tw-text-opacity: 1;
  color: rgb(253 186 116 / 1);
  color: rgb(253 186 116 / var(--tw-text-opacity, 1));
}
.text-orange-400 {
  --tw-text-opacity: 1;
  color: rgb(251 146 60 / 1);
  color: rgb(251 146 60 / var(--tw-text-opacity, 1));
}
.text-orange-500 {
  --tw-text-opacity: 1;
  color: rgb(249 115 22 / 1);
  color: rgb(249 115 22 / var(--tw-text-opacity, 1));
}
.text-orange-600 {
  --tw-text-opacity: 1;
  color: rgb(234 88 12 / 1);
  color: rgb(234 88 12 / var(--tw-text-opacity, 1));
}
.text-orange-700 {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / 1);
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}
.text-orange-800 {
  --tw-text-opacity: 1;
  color: rgb(154 52 18 / 1);
  color: rgb(154 52 18 / var(--tw-text-opacity, 1));
}
.text-orange-900 {
  --tw-text-opacity: 1;
  color: rgb(124 45 18 / 1);
  color: rgb(124 45 18 / var(--tw-text-opacity, 1));
}
.text-pink-400 {
  --tw-text-opacity: 1;
  color: rgb(244 114 182 / 1);
  color: rgb(244 114 182 / var(--tw-text-opacity, 1));
}
.text-pink-500 {
  --tw-text-opacity: 1;
  color: rgb(236 72 153 / 1);
  color: rgb(236 72 153 / var(--tw-text-opacity, 1));
}
.text-popover-foreground {
  color: hsl(var(--color-text-primary));
  color: hsl(var(--popover-foreground));
}
.text-primary {
  color: hsl(var(--color-accent-secondary));
  color: hsl(var(--primary));
}
.text-primary-foreground {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--primary-foreground));
}
.text-purple-300 {
  --tw-text-opacity: 1;
  color: rgb(216 180 254 / 1);
  color: rgb(216 180 254 / var(--tw-text-opacity, 1));
}
.text-purple-400 {
  --tw-text-opacity: 1;
  color: rgb(192 132 252 / 1);
  color: rgb(192 132 252 / var(--tw-text-opacity, 1));
}
.text-purple-500 {
  --tw-text-opacity: 1;
  color: rgb(168 85 247 / 1);
  color: rgb(168 85 247 / var(--tw-text-opacity, 1));
}
.text-purple-600 {
  --tw-text-opacity: 1;
  color: rgb(147 51 234 / 1);
  color: rgb(147 51 234 / var(--tw-text-opacity, 1));
}
.text-purple-700 {
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / 1);
  color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}
.text-purple-800 {
  --tw-text-opacity: 1;
  color: rgb(107 33 168 / 1);
  color: rgb(107 33 168 / var(--tw-text-opacity, 1));
}
.text-purple-900 {
  --tw-text-opacity: 1;
  color: rgb(88 28 135 / 1);
  color: rgb(88 28 135 / var(--tw-text-opacity, 1));
}
.text-red-300 {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / 1);
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / 1);
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / 1);
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / 1);
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / 1);
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / 1);
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
.text-red-900 {
  --tw-text-opacity: 1;
  color: rgb(127 29 29 / 1);
  color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}
.text-rose-100 {
  --tw-text-opacity: 1;
  color: rgb(255 228 230 / 1);
  color: rgb(255 228 230 / var(--tw-text-opacity, 1));
}
.text-rose-300\/70 {
  color: rgb(253 164 175 / 0.7);
}
.text-rose-400 {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / 1);
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}
.text-rose-500 {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / 1);
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}
.text-rose-600 {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / 1);
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}
.text-rose-700 {
  --tw-text-opacity: 1;
  color: rgb(190 18 60 / 1);
  color: rgb(190 18 60 / var(--tw-text-opacity, 1));
}
.text-rose-800 {
  --tw-text-opacity: 1;
  color: rgb(159 18 57 / 1);
  color: rgb(159 18 57 / var(--tw-text-opacity, 1));
}
.text-rose-900 {
  --tw-text-opacity: 1;
  color: rgb(136 19 55 / 1);
  color: rgb(136 19 55 / var(--tw-text-opacity, 1));
}
.text-secondary {
  color: hsl(var(--color-bg-tertiary));
  color: hsl(var(--secondary));
}
.text-secondary-foreground {
  color: hsl(var(--color-text-primary));
  color: hsl(var(--secondary-foreground));
}
.text-sky-500 {
  --tw-text-opacity: 1;
  color: rgb(14 165 233 / 1);
  color: rgb(14 165 233 / var(--tw-text-opacity, 1));
}
.text-sky-600 {
  --tw-text-opacity: 1;
  color: rgb(2 132 199 / 1);
  color: rgb(2 132 199 / var(--tw-text-opacity, 1));
}
.text-sky-700 {
  --tw-text-opacity: 1;
  color: rgb(3 105 161 / 1);
  color: rgb(3 105 161 / var(--tw-text-opacity, 1));
}
.text-sky-800 {
  --tw-text-opacity: 1;
  color: rgb(7 89 133 / 1);
  color: rgb(7 89 133 / var(--tw-text-opacity, 1));
}
.text-sky-900 {
  --tw-text-opacity: 1;
  color: rgb(12 74 110 / 1);
  color: rgb(12 74 110 / var(--tw-text-opacity, 1));
}
.text-slate-400 {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / 1);
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.text-slate-500 {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / 1);
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.text-slate-600 {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / 1);
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
.text-slate-700 {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / 1);
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
.text-slate-800 {
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / 1);
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.text-slate-900 {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / 1);
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.text-teal-300 {
  --tw-text-opacity: 1;
  color: rgb(94 234 212 / 1);
  color: rgb(94 234 212 / var(--tw-text-opacity, 1));
}
.text-teal-400 {
  --tw-text-opacity: 1;
  color: rgb(45 212 191 / 1);
  color: rgb(45 212 191 / var(--tw-text-opacity, 1));
}
.text-teal-500 {
  --tw-text-opacity: 1;
  color: rgb(20 184 166 / 1);
  color: rgb(20 184 166 / var(--tw-text-opacity, 1));
}
.text-teal-600 {
  --tw-text-opacity: 1;
  color: rgb(13 148 136 / 1);
  color: rgb(13 148 136 / var(--tw-text-opacity, 1));
}
.text-teal-700 {
  --tw-text-opacity: 1;
  color: rgb(15 118 110 / 1);
  color: rgb(15 118 110 / var(--tw-text-opacity, 1));
}
.text-transparent {
  color: transparent;
}
.text-violet-200 {
  --tw-text-opacity: 1;
  color: rgb(221 214 254 / 1);
  color: rgb(221 214 254 / var(--tw-text-opacity, 1));
}
.text-violet-300 {
  --tw-text-opacity: 1;
  color: rgb(196 181 253 / 1);
  color: rgb(196 181 253 / var(--tw-text-opacity, 1));
}
.text-violet-400 {
  --tw-text-opacity: 1;
  color: rgb(167 139 250 / 1);
  color: rgb(167 139 250 / var(--tw-text-opacity, 1));
}
.text-violet-500 {
  --tw-text-opacity: 1;
  color: rgb(139 92 246 / 1);
  color: rgb(139 92 246 / var(--tw-text-opacity, 1));
}
.text-violet-600 {
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / 1);
  color: rgb(124 58 237 / var(--tw-text-opacity, 1));
}
.text-violet-700 {
  --tw-text-opacity: 1;
  color: rgb(109 40 217 / 1);
  color: rgb(109 40 217 / var(--tw-text-opacity, 1));
}
.text-violet-800 {
  --tw-text-opacity: 1;
  color: rgb(91 33 182 / 1);
  color: rgb(91 33 182 / var(--tw-text-opacity, 1));
}
.text-violet-900 {
  --tw-text-opacity: 1;
  color: rgb(76 29 149 / 1);
  color: rgb(76 29 149 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / 1);
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-yellow-400 {
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / 1);
  color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}
.text-yellow-500 {
  --tw-text-opacity: 1;
  color: rgb(234 179 8 / 1);
  color: rgb(234 179 8 / var(--tw-text-opacity, 1));
}
.text-yellow-600 {
  --tw-text-opacity: 1;
  color: rgb(202 138 4 / 1);
  color: rgb(202 138 4 / var(--tw-text-opacity, 1));
}
.text-yellow-700 {
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / 1);
  color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}
.text-yellow-800 {
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / 1);
  color: rgb(133 77 14 / var(--tw-text-opacity, 1));
}
.text-yellow-900 {
  --tw-text-opacity: 1;
  color: rgb(113 63 18 / 1);
  color: rgb(113 63 18 / var(--tw-text-opacity, 1));
}
.text-zinc-500 {
  --tw-text-opacity: 1;
  color: rgb(113 113 122 / 1);
  color: rgb(113 113 122 / var(--tw-text-opacity, 1));
}
.underline {
  text-decoration-line: underline;
}
.line-through {
  text-decoration-line: line-through;
}
.underline-offset-2 {
  text-underline-offset: 2px;
}
.underline-offset-4 {
  text-underline-offset: 4px;
}
.placeholder-gray-500::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(107 114 128 / 1);
  color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1));
}
.placeholder-slate-400::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(148 163 184 / 1);
  color: rgb(148 163 184 / var(--tw-placeholder-opacity, 1));
}
.placeholder-slate-500::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(100 116 139 / 1);
  color: rgb(100 116 139 / var(--tw-placeholder-opacity, 1));
}
.placeholder-white\/40::placeholder {
  color: rgb(255 255 255 / 0.4);
}
.accent-\[var\(--color-action-primary\)\] {
  accent-color: #D6B16A;
  accent-color: var(--color-action-primary);
}
.accent-\[var\(--color-brand-gold\)\] {
  accent-color: #FFD500;
  accent-color: var(--color-brand-gold);
}
.accent-blue-500 {
  accent-color: #3b82f6;
}
.accent-green-500 {
  accent-color: #22c55e;
}
.accent-primary {
  accent-color: hsl(var(--color-accent-secondary));
  accent-color: hsl(var(--primary));
}
.accent-purple-500 {
  accent-color: #a855f7;
}
.accent-red-500 {
  accent-color: #ef4444;
}
.opacity-0 {
  opacity: 0;
}
.opacity-100 {
  opacity: 1;
}
.opacity-15 {
  opacity: 0.15;
}
.opacity-20 {
  opacity: 0.2;
}
.opacity-30 {
  opacity: 0.3;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-5 {
  opacity: 0.05;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.opacity-75 {
  opacity: 0.75;
}
.opacity-80 {
  opacity: 0.8;
}
.opacity-90 {
  opacity: 0.9;
}
.opacity-\[0\.03\] {
  opacity: 0.03;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_0_40px_\$\{q\.accent\}40\] {
  --tw-shadow: 0 0 40px ${q.accent}40;
  --tw-shadow-colored: 0 0 40px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_1px_2px_rgba\(26\2c 31\2c 42\2c 0\.04\)\] {
  --tw-shadow: 0 1px 2px rgba(26,31,42,0.04);
  --tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_20px_60px_-15px_rgba\(0\2c 0\2c 0\2c 0\.5\)\] {
  --tw-shadow: 0 20px 60px -15px rgba(0,0,0,0.5);
  --tw-shadow-colored: 0 20px 60px -15px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_2px_8px_-2px_rgba\(0\2c 0\2c 0\2c 0\.08\)\] {
  --tw-shadow: 0 2px 8px -2px rgba(0,0,0,0.08);
  --tw-shadow-colored: 0 2px 8px -2px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_8px_24px_rgba\(0\2c 0\2c 0\2c 0\.16\)\2c 0_2px_8px_rgba\(0\2c 0\2c 0\2c 0\.08\)\] {
  --tw-shadow: 0 8px 24px rgba(0,0,0,0.16),0 2px 8px rgba(0,0,0,0.08);
  --tw-shadow-colored: 0 8px 24px var(--tw-shadow-color), 0 2px 8px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[inset_0_0_30px_rgba\(255\2c 255\2c 255\2c 0\.3\)\] {
  --tw-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  --tw-shadow-colored: inset 0 0 30px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-inner {
  --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-none {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[var\(--shadow-lg\)\] {
  --tw-shadow-color: var(--shadow-lg);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-\[var\(--shadow-sm\)\] {
  --tw-shadow-color: var(--shadow-sm);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-amber-500\/20 {
  --tw-shadow-color: rgb(245 158 11 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-amber-500\/25 {
  --tw-shadow-color: rgb(245 158 11 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-amber-500\/30 {
  --tw-shadow-color: rgb(245 158 11 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-black\/10 {
  --tw-shadow-color: rgb(0 0 0 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-black\/15 {
  --tw-shadow-color: rgb(0 0 0 / 0.15);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-black\/20 {
  --tw-shadow-color: rgb(0 0 0 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-black\/25 {
  --tw-shadow-color: rgb(0 0 0 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-black\/30 {
  --tw-shadow-color: rgb(0 0 0 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-blue-400\/25 {
  --tw-shadow-color: rgb(96 165 250 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-blue-500\/25 {
  --tw-shadow-color: rgb(59 130 246 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-blue-500\/30 {
  --tw-shadow-color: rgb(59 130 246 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-blue-600\/20 {
  --tw-shadow-color: rgb(37 99 235 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-cyan-500\/20 {
  --tw-shadow-color: rgb(6 182 212 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-cyan-500\/30 {
  --tw-shadow-color: rgb(6 182 212 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-emerald-500\/10 {
  --tw-shadow-color: rgb(16 185 129 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-emerald-500\/20 {
  --tw-shadow-color: rgb(16 185 129 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-emerald-500\/25 {
  --tw-shadow-color: rgb(16 185 129 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-emerald-500\/30 {
  --tw-shadow-color: rgb(16 185 129 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-gray-500\/25 {
  --tw-shadow-color: rgb(107 114 128 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-orange-500\/25 {
  --tw-shadow-color: rgb(249 115 22 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-pink-500\/20 {
  --tw-shadow-color: rgb(236 72 153 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-pink-500\/30 {
  --tw-shadow-color: rgb(236 72 153 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-purple-500\/25 {
  --tw-shadow-color: rgb(168 85 247 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-red-500\/20 {
  --tw-shadow-color: rgb(239 68 68 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-red-500\/25 {
  --tw-shadow-color: rgb(239 68 68 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-red-500\/30 {
  --tw-shadow-color: rgb(239 68 68 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-red-500\/50 {
  --tw-shadow-color: rgb(239 68 68 / 0.5);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-rose-500\/25 {
  --tw-shadow-color: rgb(244 63 94 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-slate-500\/25 {
  --tw-shadow-color: rgb(100 116 139 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-violet-500\/10 {
  --tw-shadow-color: rgb(139 92 246 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-violet-500\/15 {
  --tw-shadow-color: rgb(139 92 246 / 0.15);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-violet-500\/20 {
  --tw-shadow-color: rgb(139 92 246 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-violet-500\/25 {
  --tw-shadow-color: rgb(139 92 246 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-violet-500\/30 {
  --tw-shadow-color: rgb(139 92 246 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-violet-500\/5 {
  --tw-shadow-color: rgb(139 92 246 / 0.05);
  --tw-shadow: var(--tw-shadow-colored);
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.outline {
  outline-style: solid;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-0 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-4 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-inset {
  --tw-ring-inset: inset;
}
.ring-\[var\(--color-accent\)\] {
  --tw-ring-color: var(--color-accent);
}
.ring-\[var\(--color-accent-light\)\] {
  --tw-ring-color: var(--color-accent-light);
}
.ring-\[var\(--color-action-primary\)\] {
  --tw-ring-color: var(--color-action-primary);
}
.ring-\[var\(--color-border-default\)\] {
  --tw-ring-color: var(--color-border-default);
}
.ring-\[var\(--color-border-subtle\2c var\(--color-border\)\)\] {
  --tw-ring-color: var(--color-border-subtle,var(--color-border));
}
.ring-\[var\(--color-feedback-danger\)\] {
  --tw-ring-color: var(--color-feedback-danger);
}
.ring-\[var\(--color-feedback-danger-light\)\] {
  --tw-ring-color: var(--color-feedback-danger-light);
}
.ring-\[var\(--color-feedback-info\)\] {
  --tw-ring-color: var(--color-feedback-info);
}
.ring-\[var\(--color-feedback-info-light\)\] {
  --tw-ring-color: var(--color-feedback-info-light);
}
.ring-\[var\(--color-feedback-success\)\] {
  --tw-ring-color: var(--color-feedback-success);
}
.ring-\[var\(--color-feedback-success-light\)\] {
  --tw-ring-color: var(--color-feedback-success-light);
}
.ring-\[var\(--color-feedback-warning\)\] {
  --tw-ring-color: var(--color-feedback-warning);
}
.ring-\[var\(--color-feedback-warning-light\)\] {
  --tw-ring-color: var(--color-feedback-warning-light);
}
.ring-\[var\(--glass-bg\)\] {
  --tw-ring-color: var(--glass-bg);
}
.ring-black\/10 {
  --tw-ring-color: rgb(0 0 0 / 0.1);
}
.ring-blue-400 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1));
}
.ring-current {
  --tw-ring-color: currentColor;
}
.ring-cyan-500\/40 {
  --tw-ring-color: rgb(6 182 212 / 0.4);
}
.ring-indigo-500\/20 {
  --tw-ring-color: rgb(99 102 241 / 0.2);
}
.ring-primary {
  --tw-ring-color: hsl(var(--primary));
}
.ring-primary\/20 {
  --tw-ring-color: hsl(var(--primary) / 0.2);
}
.ring-ring {
  --tw-ring-color: hsl(var(--ring));
}
.ring-sky-200 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity, 1));
}
.ring-white {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
}
.ring-white\/10 {
  --tw-ring-color: rgb(255 255 255 / 0.1);
}
.ring-white\/20 {
  --tw-ring-color: rgb(255 255 255 / 0.2);
}
.ring-white\/40 {
  --tw-ring-color: rgb(255 255 255 / 0.4);
}
.ring-white\/50 {
  --tw-ring-color: rgb(255 255 255 / 0.5);
}
.ring-offset-1 {
  --tw-ring-offset-width: 1px;
}
.ring-offset-2 {
  --tw-ring-offset-width: 2px;
}
.ring-offset-\[\#050814\] {
  --tw-ring-offset-color: #050814;
}
.ring-offset-\[var\(--color-bg-surface\)\] {
  --tw-ring-offset-color: var(--color-bg-surface);
}
.ring-offset-\[var\(--glass-bg\)\] {
  --tw-ring-offset-color: var(--glass-bg);
}
.ring-offset-background {
  --tw-ring-offset-color: hsl(var(--background));
}
.ring-offset-gray-900 {
  --tw-ring-offset-color: #111827;
}
.ring-offset-slate-900 {
  --tw-ring-offset-color: #0f172a;
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-2xl {
  --tw-blur: blur(40px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-3xl {
  --tw-blur: blur(64px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-\[100px\] {
  --tw-blur: blur(100px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-\[120px\] {
  --tw-blur: blur(120px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-xl {
  --tw-blur: blur(24px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.invert {
  --tw-invert: invert(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.sepia {
  --tw-sepia: sepia(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.\!filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur {
  --tw-backdrop-blur: blur(8px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-2xl {
  --tw-backdrop-blur: blur(40px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-\[1px\] {
  --tw-backdrop-blur: blur(1px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-lg {
  --tw-backdrop-blur: blur(16px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-xl {
  --tw-backdrop-blur: blur(24px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-filter {
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[width\] {
  transition-property: width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-100 {
  transition-duration: 100ms;
}
.duration-1000 {
  transition-duration: 1000ms;
}
.duration-150 {
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.duration-700 {
  transition-duration: 700ms;
}
.duration-75 {
  transition-duration: 75ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@keyframes enter {
  from {
    opacity: 1;
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotate(0);
    transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}
@keyframes exit {
  to {
    opacity: 1;
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotate(0);
    transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}
.animate-in {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.fade-in {
  --tw-enter-opacity: 0;
}
.fade-in-0 {
  --tw-enter-opacity: 0;
}
.zoom-in {
  --tw-enter-scale: 0;
}
.zoom-in-95 {
  --tw-enter-scale: .95;
}
.slide-in-from-bottom {
  --tw-enter-translate-y: 100%;
}
.slide-in-from-bottom-1 {
  --tw-enter-translate-y: 0.25rem;
}
.slide-in-from-bottom-2 {
  --tw-enter-translate-y: 0.5rem;
}
.slide-in-from-bottom-4 {
  --tw-enter-translate-y: 1rem;
}
.slide-in-from-left {
  --tw-enter-translate-x: -100%;
}
.slide-in-from-left-2 {
  --tw-enter-translate-x: -0.5rem;
}
.slide-in-from-right {
  --tw-enter-translate-x: 100%;
}
.slide-in-from-right-4 {
  --tw-enter-translate-x: 1rem;
}
.slide-in-from-top {
  --tw-enter-translate-y: -100%;
}
.slide-in-from-top-2 {
  --tw-enter-translate-y: -0.5rem;
}
.duration-100 {
  animation-duration: 100ms;
}
.duration-1000 {
  animation-duration: 1000ms;
}
.duration-150 {
  animation-duration: 150ms;
}
.duration-200 {
  animation-duration: 200ms;
}
.duration-300 {
  animation-duration: 300ms;
}
.duration-500 {
  animation-duration: 500ms;
}
.duration-700 {
  animation-duration: 700ms;
}
.duration-75 {
  animation-duration: 75ms;
}
.ease-in-out {
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.\!running {
  animation-play-state: running !important;
}
.running {
  animation-play-state: running;
}
.paused {
  animation-play-state: paused;
}
/* Gold accent utilities */
.text-gold {
    color: var(--color-accent-primary);
  }
.border-gold {
    border-color: var(--color-accent-primary);
  }
/* Surface utilities */
.bg-surface {
    background-color: var(--color-surface);
  }
/* Text utilities basées sur variables */
/* Border utilities */
/* Gradient text utility */
/* No scrollbar utility */
.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
.scrollbar-hide::-webkit-scrollbar {
    display: none;
  }
/* Focus states pour tous les éléments interactifs */
.focus-ring:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
  --tw-ring-offset-width: 2px;
}
/* Transitions fluides pour les états */
/* Ombres pour les cartes */
.card-shadow {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
  animation-duration: 200ms;
}
.card-shadow:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
/* États actifs pour les boutons */
/* Scrollbar personnalisée */
.custom-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: var(--color-border-medium) transparent;
  }
.custom-scrollbar::-webkit-scrollbar {
    width: 6px;
    height: 6px;
  }
.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 3px;
  }
.custom-scrollbar::-webkit-scrollbar-thumb {
    background-color: #64748b;
    background-color: var(--color-border-medium, #64748b);
    border-radius: 3px;
  }
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background-color: #475569;
    background-color: var(--color-border-heavy, #475569);
  }
.\[scrollbar-gutter\:stable\] {
  scrollbar-gutter: stable;
}

/* 🎯 DESIGN VARIABLES CENTRALISÉES - POINT D'ENTRÉE UNIQUE */

/* Design System Tokens */

/* Premium Animations */

/* Premium Hover Effects */

/* Legacy Design System */

/* Système de Thème */

/* ═══════════════════════════════════════════════════
   Integra v4 — ULTRA-MODERN DESIGN SYSTEM
   Ces imports OVERRIDE tout ce qui précède.
   ═══════════════════════════════════════════════════ */

/* Design Tokens (CSS variables: couleurs, espacements, typographie) */

/* Micro-animations (ripple, tilt, shimmer, skeleton, print) */

/* Design overrides (cards, buttons, inputs, tables — final layer) */

/* BIOMIMETIC FLOW */

/* Integra MDI Desktop Design System */

/* 100 MEGA THEMES (Fantasy, Swiss, Finance, Nature, Tech, Food, Sports, etc.) */

/* Accessibility: 8 colorblind-safe themes + filters + modes */

/* ===========================================
   TAILWIND BASE LAYER - Utilise nos variables
   =========================================== */

/* ==========================================================================
   INTEGRA Executive Direction
   --------------------------------------------------------------------------
   Final visual layer for the active runtime. It moves the product away from
   the former blue SaaS palette and anchors the shared UI in the gold diagonal
   identity of the current logo.
   ========================================================================== */
:root {
  --integra-graphite-950: #111317;
  --integra-graphite-900: #1A1D22;
  --integra-graphite-800: #20242B;
  --integra-ivory: #F5F3EE;
  --integra-stone: #D8D3C9;
  --integra-muted: #8E918B;
  --integra-gold: #FFD500;
  --integra-soft-gold: #D6B16A;
  --integra-sage: #8FA99A;
  --integra-red: #B85C5C;

  --accent-primary: var(--integra-soft-gold);
  --accent-primary-hover: #C29E57;
  --accent-primary-light: rgba(255, 213, 0, 0.18);
  --accent-primary-lighter: rgba(255, 213, 0, 0.09);
  --accent-secondary: var(--integra-gold);
  --accent-success: var(--integra-sage);
  --accent-warning: var(--integra-soft-gold);
  --accent-danger: var(--integra-red);
  --accent-primary-rgb: 214, 177, 106;

  --color-brand-gold: var(--integra-gold);
  --color-brand-gold-light: var(--integra-soft-gold);
  --color-brand-gold-muted: rgba(255, 213, 0, 0.15);
  --color-action-primary: var(--integra-soft-gold);
  --color-action-primary-hover: #C29E57;
  --color-border-focus: var(--integra-gold);
  --ring-color: var(--integra-gold);
  --tint-brand: rgba(255, 213, 0, 0.10);
  --shadow-glow: 0 0 22px rgba(255, 213, 0, 0.13);
}

body {
  background:
    radial-gradient(circle at 18% 0%, rgba(255,213,0,0.06), transparent 30%),
    linear-gradient(180deg, #F5F3EE 0%, #E7E3DA 100%);
}

button,
[role="button"],
input,
select,
textarea {
  letter-spacing: 0;
}

button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline-color: #FFD500 !important;
  outline-color: var(--integra-gold) !important;
  box-shadow: 0 0 0 3px rgba(255, 213, 0, 0.18) !important;
}

.glass-card,
[class*="glass-card"],
[class*="Card"],
article[role="button"] {
  border-color: rgba(32, 36, 43, 0.12);
  box-shadow: 0 16px 44px rgba(17, 19, 23, 0.10);
}

header,
[role="banner"] {
  border-color: rgba(32, 36, 43, 0.10);
}

nav button,
nav a {
  border-radius: 8px;
}

nav button[aria-current="page"],
nav a[aria-current="page"],
nav button:hover,
nav a:hover {
  color: #111317;
  color: var(--integra-graphite-950);
  background: rgba(255, 213, 0, 0.10);
}

nav button[aria-current="page"]::before,
nav a[aria-current="page"]::before,
nav a.active::before {
  background: linear-gradient(180deg, #FFD500, #D6B16A);
  background: linear-gradient(180deg, var(--integra-gold), var(--integra-soft-gold));
}

[data-testid="app-layout-v2"] {
  background:
    linear-gradient(135deg, rgba(255,213,0,0.08) 0 1px, transparent 1px 84px),
    radial-gradient(circle at 82% 12%, rgba(255,213,0,0.12), transparent 28%),
    linear-gradient(135deg, #111317 0%, #1A1D22 42%, #20242B 100%) !important;
  color: #F5F3EE;
  color: var(--integra-ivory);
}

[data-testid="app-header-v2"],
.glass-header {
  background: rgba(17,19,23,0.80) !important;
  color: #F5F3EE !important;
  color: var(--integra-ivory) !important;
  border-bottom: 1px solid rgba(255,213,0,0.16) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,0.28) !important;
  -webkit-backdrop-filter: blur(22px);
          backdrop-filter: blur(22px);
}

[data-testid="app-layout-v2"] main,
[data-testid="app-layout-v2"] [role="main"] {
  color: #F5F3EE;
  color: var(--integra-ivory);
}

[data-testid="app-layout-v2"] .glass-page {
  color: #F5F3EE !important;
  color: var(--integra-ivory) !important;
}

[data-testid="app-layout-v2"] .glass-page h1,
[data-testid="app-layout-v2"] .glass-page h2,
[data-testid="app-layout-v2"] .glass-page .glass-header-title,
[data-testid="app-layout-v2"] .glass-page .glass-title-gradient {
  color: #F5F3EE !important;
  color: var(--integra-ivory) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

[data-testid="app-layout-v2"] .glass-page p,
[data-testid="app-layout-v2"] .glass-page .glass-header-subtitle {
  color: rgba(245,243,238,0.70) !important;
}

[data-testid="app-layout-v2"] main > div,
[data-testid="app-layout-v2"] [data-testid*="employees"],
[data-testid="app-layout-v2"] .page-shell,
[data-testid="app-layout-v2"] [class*="PageShell"] {
  border-radius: 14px;
}

[data-testid="app-layout-v2"] .glass-card,
[data-testid="app-layout-v2"] .glass-panel,
[data-testid="app-layout-v2"] [class*="Card"],
[data-testid="app-layout-v2"] table,
[data-testid="app-layout-v2"] [class*="Table"] {
  background: rgba(245,243,238,0.94) !important;
  border-color: rgba(255,213,0,0.14) !important;
  color: #111317 !important;
  color: var(--integra-graphite-950) !important;
}

[data-testid="app-layout-v2"] .glass-panel h1,
[data-testid="app-layout-v2"] .glass-panel h2,
[data-testid="app-layout-v2"] .glass-panel p,
[data-testid="app-layout-v2"] .glass-panel span,
[data-testid="app-layout-v2"] .glass-panel div {
  color: inherit;
}

[data-testid="app-layout-v2"] .glass-panel .glass-panel-inner-glow {
  color: inherit;
  background:
    linear-gradient(90deg, transparent, rgba(255,213,0,0.18), transparent) !important;
}

[data-testid="app-layout-v2"] input,
[data-testid="app-layout-v2"] select,
[data-testid="app-layout-v2"] textarea {
  background: rgba(245,243,238,0.96) !important;
  border-color: rgba(32,36,43,0.16) !important;
  color: #111317 !important;
  color: var(--integra-graphite-950) !important;
  border-radius: 10px !important;
}

[data-testid="app-layout-v2"] button.bg-\[var\(--color-action-primary\)\],
[data-testid="app-layout-v2"] button[class*="bg-[var(--color-action-primary)]"],
[data-testid="app-layout-v2"] button[class*="bg-blue"],
[data-testid="app-layout-v2"] a[class*="bg-blue"],
[data-testid="app-layout-v2"] button[class*="bg-indigo"],
[data-testid="app-layout-v2"] a[class*="bg-indigo"],
[data-testid="app-layout-v2"] .btn-primary {
  background: #111317 !important;
  color: #F5F3EE !important;
  border: 1px solid rgba(255,213,0,0.32) !important;
  box-shadow: inset 0 -2px 0 rgba(255,213,0,0.80), 0 12px 28px rgba(17,19,23,0.20) !important;
}

[data-testid="app-layout-v2"] button[class*="bg-green"],
[data-testid="app-layout-v2"] a[class*="bg-green"],
[data-testid="app-layout-v2"] button[class*="bg-emerald"],
[data-testid="app-layout-v2"] a[class*="bg-emerald"] {
  background: #8FA99A !important;
  color: #111317 !important;
  border: 1px solid rgba(245,243,238,0.16) !important;
  box-shadow: 0 12px 28px rgba(17,19,23,0.18) !important;
}

[data-testid="app-layout-v2"] th {
  color: rgba(17,19,23,0.62) !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11px;
}

[data-testid="app-layout-v2"] tr:hover {
  background: rgba(255,213,0,0.06) !important;
}

/* ===========================================
   THEME TRANSITIONS
   =========================================== */
.theme-transition,
.theme-transition *,
.theme-transition *::before,
.theme-transition *::after {
  transition: background-color 0.3s ease, 
              border-color 0.3s ease, 
              color 0.3s ease,
              box-shadow 0.3s ease !important;
}

/* Dark mode specific adjustments */
html.dark {
  color-scheme: dark;
}

html.dark img:not([src*=".svg"]) {
  filter: brightness(0.9);
}

html.dark .bg-white {
  background-color: var(--bg-surface) !important;
}

html.dark .text-slate-900 {
  color: var(--text-primary) !important;
}

html.dark .text-slate-800 {
  color: var(--text-primary) !important;
}

html.dark .text-slate-700 {
  color: var(--text-secondary) !important;
}

html.dark .text-slate-600 {
  color: var(--text-secondary) !important;
}

html.dark .text-slate-500 {
  color: var(--text-muted) !important;
}

html.dark .text-slate-400 {
  color: var(--text-muted) !important;
}

html.dark .border-slate-200 {
  border-color: var(--border-default) !important;
}

html.dark .border-slate-100 {
  border-color: var(--border-light) !important;
}

html.dark .bg-slate-100 {
  background-color: var(--bg-muted) !important;
}

html.dark .bg-slate-50 {
  background-color: var(--bg-subtle) !important;
}

html.dark .hover\:bg-slate-100:hover {
  background-color: var(--bg-muted) !important;
}

html.dark .hover\:bg-slate-200:hover {
  background-color: var(--bg-elevated) !important;
}

/* ===========================================
   TAILWIND COMPONENTS LAYER
   =========================================== */

/* ===========================================
   SHADCN/UI OVERRIDES - Variables seulement
   =========================================== */

/* ===========================================
   UTILITIES ADDITIONNELLES
   =========================================== */

/* ===========================================
   RESPONSIVE FONT SIZES
   =========================================== */
@media (max-width: 640px) {
  :root {
    --font-size-base: 0.875rem;
    --font-size-lg: 1rem;
    --font-size-xl: 1.125rem;
    --font-size-2xl: 1.25rem;
    --font-size-3xl: 1.5rem;
    --font-size-4xl: 1.875rem;
    --font-size-5xl: 2.25rem;
    --font-size-6xl: 3rem;
  }
}

/* ===========================================
   REDUCED MOTION
   =========================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ===========================================
   MOBILE PERFORMANCE OPTIMIZATION
   Disable backdrop-filter on low-power devices
   =========================================== */
@media (max-width: 768px) and (hover: none) {
  .backdrop-blur,
  .backdrop-blur-sm,
  .backdrop-blur-md,
  .backdrop-blur-lg,
  .backdrop-blur-xl,
  .backdrop-blur-2xl,
  .backdrop-blur-3xl {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* ===========================================
   MOBILE PORTAL - PWA Safe Area
   =========================================== */
.safe-area-pt {
  padding-top: env(safe-area-inset-top, 0px);
}

.safe-area-pb {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.safe-area-inset {
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
}

/* Mobile Portal Scrollbar Hide */
.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

/* Mobile Touch Optimizations */
@media (hover: none) {
  .hover\:scale-105:active {
    transform: scale(0.97);
  }
}

/* PWA Standalone Mode */
@media (display-mode: standalone) {
  .safe-area-pt {
    padding-top: max(env(safe-area-inset-top, 0px), 20px);
  }
}

/* ===========================================
   RESPONSIVE DESIGN SYSTEM - CONFIGURABLE
   Variables dynamiques chargées depuis l'API
   =========================================== */

/* Mobile First - Base responsive */
:root {
  /* Tap targets - Apple HIG / Material Design */
  --tap-target-min: 44px;
  --tap-target-spacing: 8px;
  
  /* Typography responsive */
  --text-min-mobile: 14px;
  --text-min-desktop: 12px;
  --line-length-mobile: 45ch;
  --line-length-tablet: 65ch;
  --line-length-desktop: 80ch;
  
  /* Spacing scale */
  --spacing-mobile: 1rem;
  --spacing-tablet: 1.5rem;
  --spacing-desktop: 2rem;
}

/* ===========================================
   MOBILE RESPONSIVE (<640px)
   =========================================== */
@media (max-width: 639px) {
  /* Typography */
  html {
    font-size: 16px; /* Prevent iOS zoom on input focus */
  }
  
  body {
    font-size: 14px;
    font-size: var(--text-min-mobile);
    line-height: 1.6;
  }
  
  /* Headings scale */
  h1 { font-size: 1.75rem; line-height: 1.2; }
  h2 { font-size: 1.5rem; line-height: 1.25; }
  h3 { font-size: 1.25rem; line-height: 1.3; }
  h4, h5, h6 { font-size: 1rem; }
  
  /* Prevent horizontal scroll */
  html, body {
    overflow-x: hidden;
    max-width: 100vw;
  }
  
  /* Tap targets - Minimum 44x44px */
  button,
  a,
  [role="button"],
  input[type="checkbox"],
  input[type="radio"],
  .clickable,
  .tap-target {
    min-height: 44px;
    min-height: var(--tap-target-min);
    min-width: 44px;
    min-width: var(--tap-target-min);
  }
  
  /* Form inputs - Full width, prevent zoom */
  input,
  select,
  textarea {
    width: 100%;
    font-size: 16px !important; /* Prevents iOS zoom */
    padding: 12px;
    border-radius: 8px;
    border-radius: var(--radius-md, 8px);
  }
  
  /* Tables - Horizontal scroll wrapper */
  .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 calc(1rem * -1);
    margin: 0 calc(var(--spacing-mobile) * -1);
    padding: 0 1rem;
    padding: 0 var(--spacing-mobile);
  }
  
  table {
    min-width: 600px;
  }
  
  /* Cards - Full width */
  .card,
  [class*="Card"] {
    border-radius: 12px;
    border-radius: var(--radius-lg, 12px);
  }
  
  /* Modals - Full screen on mobile */
  [role="dialog"],
  .modal,
  .dialog-content {
    width: 100% !important;
    max-width: 100vw !important;
    height: 100% !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    margin: 0 !important;
  }
  
  /* Navigation - Hide desktop nav, show mobile */
  .nav-desktop {
    display: none !important;
  }
  
  .nav-mobile {
    display: flex !important;
  }
  
  /* Sidebar - Hidden by default on mobile */
  .sidebar-desktop {
    display: none !important;
  }
  
  /* Content - Full width */
  .container,
  main,
  .content {
    padding-left: 1rem;
    padding-left: var(--spacing-mobile);
    padding-right: 1rem;
    padding-right: var(--spacing-mobile);
  }
  
  /* Text - Readable line length */
  p,
  .prose,
  .content-text {
    max-width: 45ch;
    max-width: var(--line-length-mobile);
  }
  
  /* Buttons - Full width on mobile */
  .btn-full-mobile,
  .button-group-mobile > button {
    width: 100%;
  }
  
  /* Grid - Stack on mobile */
  .grid-responsive {
    grid-template-columns: 1fr !important;
  }
  
  /* Flex - Wrap on mobile */
  .flex-responsive {
    flex-wrap: wrap;
  }
  
  /* Hide on mobile */
  .hide-mobile,
  .desktop-only {
    display: none !important;
  }
  
  /* Show on mobile only */
  .mobile-only {
    display: block !important;
  }
}

/* ===========================================
   TABLET RESPONSIVE (640px - 1023px)
   =========================================== */
@media (min-width: 640px) and (max-width: 1023px) {
  body {
    font-size: 14px;
    font-size: var(--text-min-mobile);
  }
  
  /* Headings */
  h1 { font-size: 2rem; }
  h2 { font-size: 1.75rem; }
  h3 { font-size: 1.5rem; }
  
  /* Tap targets still important */
  button,
  a,
  [role="button"] {
    min-height: 44px;
    min-height: var(--tap-target-min);
  }
  
  /* Two column layouts */
  .grid-responsive {
    grid-template-columns: repeat(2, 1fr);
  }
  
  /* Sidebar - Collapsible */
  .sidebar-tablet {
    width: 64px;
    transition: width 0.3s ease;
  }
  
  .sidebar-tablet:hover,
  .sidebar-tablet.expanded {
    width: 256px;
  }
  
  /* Text line length */
  p,
  .prose {
    max-width: 65ch;
    max-width: var(--line-length-tablet);
  }
  
  /* Container padding */
  .container {
    padding-left: 1.5rem;
    padding-left: var(--spacing-tablet);
    padding-right: 1.5rem;
    padding-right: var(--spacing-tablet);
  }
  
  /* Modals - Centered with max-width */
  [role="dialog"],
  .modal {
    max-width: 90vw !important;
    max-height: 90vh !important;
    border-radius: 16px !important;
    border-radius: var(--radius-xl, 16px) !important;
  }
  
  .hide-tablet {
    display: none !important;
  }
  
  .tablet-only {
    display: block !important;
  }
}

/* ===========================================
   LAPTOP RESPONSIVE (1024px - 1279px)
   =========================================== */
@media (min-width: 1024px) and (max-width: 1279px) {
  body {
    font-size: 12px;
    font-size: var(--text-min-desktop);
  }
  
  /* Headings */
  h1 { font-size: 2.25rem; }
  h2 { font-size: 1.875rem; }
  h3 { font-size: 1.5rem; }
  
  /* Sidebar - Full but compact */
  .sidebar-laptop {
    width: 200px;
  }
  
  /* Grid - 3 columns */
  .grid-responsive {
    grid-template-columns: repeat(3, 1fr);
  }
  
  /* Text line length */
  p,
  .prose {
    max-width: 80ch;
    max-width: var(--line-length-desktop);
  }
  
  /* Container */
  .container {
    padding-left: 2rem;
    padding-left: var(--spacing-desktop);
    padding-right: 2rem;
    padding-right: var(--spacing-desktop);
    max-width: 1200px;
    margin: 0 auto;
  }
  
  .hide-laptop {
    display: none !important;
  }
}

/* ===========================================
   DESKTOP RESPONSIVE (>=1280px)
   =========================================== */
@media (min-width: 1280px) {
  body {
    font-size: 12px;
    font-size: var(--text-min-desktop);
  }
  
  /* Headings */
  h1 { font-size: 2.5rem; }
  h2 { font-size: 2rem; }
  h3 { font-size: 1.75rem; }
  
  /* Sidebar - Full */
  .sidebar-desktop {
    width: 256px;
  }
  
  /* Grid - 4 columns */
  .grid-responsive {
    grid-template-columns: repeat(4, 1fr);
  }
  
  /* Container - Centered with max-width */
  .container {
    max-width: 1400px;
    margin: 0 auto;
  }
  
  /* Large screens - Wider content */
  @media (min-width: 1536px) {
    .container {
      max-width: 1600px;
    }
    
    .grid-responsive {
      grid-template-columns: repeat(5, 1fr);
    }
  }
  
  /* 4K screens */
  @media (min-width: 2560px) {
    :root {
      --text-min-desktop: 14px;
    }
    
    .container {
      max-width: 2000px;
    }
  }
  
  .hide-desktop {
    display: none !important;
  }
  
  .desktop-only {
    display: block !important;
  }
}

/* ===========================================
   ACCESSIBILITY - TOUCH & CONTRAST
   =========================================== */

/* Touch device optimizations */
@media (hover: none) and (pointer: coarse) {
  /* Increase tap targets on touch devices */
  button,
  a,
  [role="button"],
  input,
  select {
    min-height: 48px;
    padding: 12px 16px;
  }
  
  /* Remove hover effects that don't work on touch */
  .hover-effect:hover {
    transform: none;
  }
  
  /* Add active state instead */
  .hover-effect:active {
    transform: scale(0.98);
    opacity: 0.9;
  }
}

/* High contrast mode */
@media (prefers-contrast: high) {
  :root {
    --color-text-primary: #000000;
    --color-text-secondary: #333333;
    --color-border-light: #000000;
  }
  
  .dark {
    --color-text-primary: #ffffff;
    --color-text-secondary: #e5e5e5;
    --color-border-light: #ffffff;
  }
}

/* ===========================================
   PRINT RESPONSIVE
   =========================================== */
@media print {
  .no-print,
  .sidebar,
  .nav,
  button,
  .modal {
    display: none !important;
  }
  
  body {
    font-size: 12pt;
    color: #000;
    color: var(--theme-text-primary, #000);
    background: #fff;
    background: var(--theme-bg-inverse, #fff);
  }
  
  a {
    color: #000;
    color: var(--theme-text-primary, #000);
    text-decoration: underline;
  }
  
  .container {
    max-width: 100%;
    padding: 0;
  }
}

/* ===========================================
   ACCESSIBILITÉ - Focus States & Contraste
   (Corrections Integra Specs Approuvées)
   =========================================== */

/* Focus states globaux pour inputs */
input:focus,
textarea:focus,
select:focus,
[role="combobox"]:focus,
[role="listbox"]:focus,
button:focus-visible {
  outline: none;
  ring: 2px;
  ring-color: #0C8298;
  ring-color: var(--color-accent, #0C8298);
  ring-offset: 2px;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #0C8298;
  box-shadow: 0 0 0 2px var(--color-bg-primary, #fff), 0 0 0 4px var(--color-accent, #0C8298);
}

/* Contraste amélioré pour textes sur fonds gris */
.text-contrast-safe {
  color: #374151;
  color: var(--color-text-secondary, #374151);
}

/* Grids Responsives - Classes utilitaires */

.file\:border-0::file-selector-button {
  border-width: 0px;
}

.file\:bg-transparent::file-selector-button {
  background-color: transparent;
}

.file\:text-sm::file-selector-button {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.file\:font-medium::file-selector-button {
  font-weight: 500;
}

.placeholder\:text-\[\#64748B\]::placeholder {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / 1);
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}

.placeholder\:text-\[var\(--color-accent\)\]::placeholder {
  color: var(--color-accent);
}

.placeholder\:text-\[var\(--color-text-muted\)\]::placeholder {
  color: var(--color-text-muted);
}

.placeholder\:text-\[var\(--color-text-secondary\)\]::placeholder {
  color: var(--color-text-secondary);
}

.placeholder\:text-\[var\(--text-secondary\)\]::placeholder {
  color: var(--text-secondary);
}

.placeholder\:text-muted-foreground::placeholder {
  color: hsl(var(--color-text-muted));
  color: hsl(var(--muted-foreground));
}

.before\:absolute::before {
  content: var(--tw-content);
  position: absolute;
}

.before\:inset-0::before {
  content: var(--tw-content);
  inset: 0px;
}

.before\:-translate-x-full::before {
  content: var(--tw-content);
  --tw-translate-x: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.before\:animate-\[shimmer_2s_infinite\]::before {
  content: var(--tw-content);
  animation: shimmer 2s infinite;
}

.before\:bg-gradient-to-r::before {
  content: var(--tw-content);
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.before\:from-transparent::before {
  content: var(--tw-content);
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.before\:via-white\/20::before {
  content: var(--tw-content);
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.before\:to-transparent::before {
  content: var(--tw-content);
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

.after\:absolute::after {
  content: var(--tw-content);
  position: absolute;
}

.after\:inset-y-0::after {
  content: var(--tw-content);
  top: 0px;
  bottom: 0px;
}

.after\:left-1\/2::after {
  content: var(--tw-content);
  left: 50%;
}

.after\:left-\[2px\]::after {
  content: var(--tw-content);
  left: 2px;
}

.after\:top-0\.5::after {
  content: var(--tw-content);
  top: 0.125rem;
}

.after\:h-5::after {
  content: var(--tw-content);
  height: 1.25rem;
}

.after\:w-1::after {
  content: var(--tw-content);
  width: 0.25rem;
}

.after\:w-5::after {
  content: var(--tw-content);
  width: 1.25rem;
}

.after\:-translate-x-1\/2::after {
  content: var(--tw-content);
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.after\:rounded-full::after {
  content: var(--tw-content);
  border-radius: 9999px;
}

.after\:bg-\[var\(--color-bg-surface\)\]::after {
  content: var(--tw-content);
  background-color: var(--color-bg-surface);
}

.after\:transition-all::after {
  content: var(--tw-content);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.after\:content-\[\'\'\]::after {
  --tw-content: '';
  content: var(--tw-content);
}

.first\:rounded-l-md:first-child {
  border-top-left-radius: calc(var(--radius-lg) - 2px);
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius-lg) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.first\:border-l:first-child {
  border-left-width: 1px;
}

.first\:pt-0:first-child {
  padding-top: 0px;
}

.last\:mb-0:last-child {
  margin-bottom: 0px;
}

.last\:rounded-r-md:last-child {
  border-top-right-radius: calc(var(--radius-lg) - 2px);
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius-lg) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.last\:border-0:last-child {
  border-width: 0px;
}

.last\:pb-0:last-child {
  padding-bottom: 0px;
}

.odd\:bg-\[var\(--color-bg-surface\)\]:nth-child(odd) {
  background-color: var(--color-bg-surface);
}

.focus-within\:relative:focus-within {
  position: relative;
}

.focus-within\:z-20:focus-within {
  z-index: 20;
}

.focus-within\:border-\[var\(--color-feedback-warning\)\]:focus-within {
  border-color: var(--color-feedback-warning);
}

.focus-within\:bg-\[var\(--color-bg-muted\)\]:focus-within {
  background-color: var(--color-bg-muted);
}

.focus-within\:bg-\[var\(--color-bg-surface\)\]:focus-within {
  background-color: var(--color-bg-surface);
}

.focus-within\:ring-2:focus-within {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:-translate-y-1:hover {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:translate-x-0\.5:hover {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:translate-x-1:hover {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:translate-y-\[-1px\]:hover {
  --tw-translate-y: -1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-110:hover {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.002\]:hover {
  --tw-scale-x: 1.002;
  --tw-scale-y: 1.002;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.005\]:hover {
  --tw-scale-x: 1.005;
  --tw-scale-y: 1.005;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.01\]:hover {
  --tw-scale-x: 1.01;
  --tw-scale-y: 1.01;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.02\]:hover {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.03\]:hover {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.05\]:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:border-\[var\(--accent\)\]:hover {
  border-color: var(--color-accent-primary);
  border-color: var(--accent);
}

.hover\:border-\[var\(--accent-primary\)\]:hover {
  border-color: #D6B16A;
  border-color: var(--accent-primary);
}

.hover\:border-\[var\(--border-hover\)\]:hover {
  border-color: var(--border-hover);
}

.hover\:border-\[var\(--color-accent\)\]:hover {
  border-color: var(--color-accent);
}

.hover\:border-\[var\(--color-accent-light\)\]:hover {
  border-color: var(--color-accent-light);
}

.hover\:border-\[var\(--color-action-primary\)\]:hover {
  border-color: #D6B16A;
  border-color: var(--color-action-primary);
}

.hover\:border-\[var\(--color-border-default\)\]:hover {
  border-color: var(--color-border-default);
}

.hover\:border-\[var\(--color-border-focus\)\]:hover {
  border-color: #FFD500;
  border-color: var(--color-border-focus);
}

.hover\:border-\[var\(--color-border-hover\2c var\(--color-border-default\)\)\]:hover {
  border-color: var(--color-border-default);
  border-color: var(--color-border-hover,var(--color-border-default));
}

.hover\:border-\[var\(--color-border-strong\)\]:hover {
  border-color: var(--color-border-strong);
}

.hover\:border-\[var\(--color-brand-gold\)\]:hover {
  border-color: #FFD500;
  border-color: var(--color-brand-gold);
}

.hover\:border-\[var\(--color-feedback-danger\)\]:hover {
  border-color: var(--color-feedback-danger);
}

.hover\:border-\[var\(--color-feedback-info\)\]:hover {
  border-color: var(--color-feedback-info);
}

.hover\:border-\[var\(--color-feedback-info-light\)\]:hover {
  border-color: var(--color-feedback-info-light);
}

.hover\:border-\[var\(--color-feedback-success\)\]:hover {
  border-color: var(--color-feedback-success);
}

.hover\:border-\[var\(--color-feedback-success-light\)\]:hover {
  border-color: var(--color-feedback-success-light);
}

.hover\:border-\[var\(--color-feedback-warning\)\]:hover {
  border-color: var(--color-feedback-warning);
}

.hover\:border-\[var\(--color-feedback-warning-light\)\]:hover {
  border-color: var(--color-feedback-warning-light);
}

.hover\:border-blue-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / 1);
  border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
}

.hover\:border-border:hover {
  border-color: hsl(var(--color-border-light));
  border-color: hsl(var(--border));
}

.hover\:border-destructive\/50:hover {
  border-color: hsl(var(--color-error) / 0.5);
  border-color: hsl(var(--destructive) / 0.5);
}

.hover\:border-indigo-500\/20:hover {
  border-color: rgb(99 102 241 / 0.2);
}

.hover\:border-primary\/30:hover {
  border-color: hsl(var(--color-accent-secondary) / 0.3);
  border-color: hsl(var(--primary) / 0.3);
}

.hover\:border-primary\/40:hover {
  border-color: hsl(var(--color-accent-secondary) / 0.4);
  border-color: hsl(var(--primary) / 0.4);
}

.hover\:border-primary\/50:hover {
  border-color: hsl(var(--color-accent-secondary) / 0.5);
  border-color: hsl(var(--primary) / 0.5);
}

.hover\:border-purple-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(216 180 254 / 1);
  border-color: rgb(216 180 254 / var(--tw-border-opacity, 1));
}

.hover\:border-sky-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(56 189 248 / 1);
  border-color: rgb(56 189 248 / var(--tw-border-opacity, 1));
}

.hover\:border-slate-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / 1);
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
}

.hover\:border-white\/20:hover {
  border-color: rgb(255 255 255 / 0.2);
}

.hover\:border-white\/\[0\.12\]:hover {
  border-color: rgb(255 255 255 / 0.12);
}

.hover\:bg-\[\#2d4a7c\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(45 74 124 / 1);
  background-color: rgb(45 74 124 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#C4A030\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(196 160 48 / 1);
  background-color: rgb(196 160 48 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#E5C048\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 192 72 / 1);
  background-color: rgb(229 192 72 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[rgba\(255\2c 255\2c 255\2c 0\.06\)\]:hover {
  background-color: rgba(255,255,255,0.06);
}

.hover\:bg-\[var\(--accent\)\]:hover {
  background-color: var(--color-accent-primary);
  background-color: var(--accent);
}

.hover\:bg-\[var\(--badge-critical-bg\)\]:hover {
  background-color: var(--badge-critical-bg);
}

.hover\:bg-\[var\(--bg-elevated\)\]:hover {
  background-color: var(--bg-elevated);
}

.hover\:bg-\[var\(--bg-muted\)\]:hover {
  background-color: var(--bg-muted);
}

.hover\:bg-\[var\(--color-accent\)\]:hover {
  background-color: var(--color-accent);
}

.hover\:bg-\[var\(--color-accent-gold-hover\)\]:hover {
  background-color: var(--color-accent-gold-hover);
}

.hover\:bg-\[var\(--color-accent-light\)\]:hover {
  background-color: var(--color-accent-light);
}

.hover\:bg-\[var\(--color-action-primary\)\]:hover {
  background-color: #D6B16A;
  background-color: var(--color-action-primary);
}

.hover\:bg-\[var\(--color-action-primary-hover\)\]:hover {
  background-color: #C29E57;
  background-color: var(--color-action-primary-hover);
}

.hover\:bg-\[var\(--color-action-primary-light\)\]:hover {
  background-color: var(--color-action-primary-light);
}

.hover\:bg-\[var\(--color-action-primary-subtle\2c var\(--tint-brand\)\)\]:hover {
  background-color: rgba(255, 213, 0, 0.10);
  background-color: var(--color-action-primary-subtle,var(--tint-brand));
}

.hover\:bg-\[var\(--color-action-secondary-hover\)\]:hover {
  background-color: var(--color-action-secondary-hover);
}

.hover\:bg-\[var\(--color-action-tertiary-hover\)\]:hover {
  background-color: var(--color-action-tertiary-hover);
}

.hover\:bg-\[var\(--color-bg-app\)\]:hover {
  background-color: var(--color-bg-app);
}

.hover\:bg-\[var\(--color-bg-elevated\)\]:hover {
  background-color: var(--color-bg-elevated);
}

.hover\:bg-\[var\(--color-bg-hover\)\]:hover {
  background-color: var(--color-bg-hover);
}

.hover\:bg-\[var\(--color-bg-hover\2c var\(--color-bg-subtle\)\)\]:hover {
  background-color: var(--color-bg-subtle);
  background-color: var(--color-bg-hover,var(--color-bg-subtle));
}

.hover\:bg-\[var\(--color-bg-inverse\)\]:hover {
  background-color: var(--color-bg-inverse);
}

.hover\:bg-\[var\(--color-bg-muted\)\]:hover {
  background-color: var(--color-bg-muted);
}

.hover\:bg-\[var\(--color-bg-subtle\)\]:hover {
  background-color: var(--color-bg-subtle);
}

.hover\:bg-\[var\(--color-bg-sunken\)\]:hover {
  background-color: var(--color-bg-sunken);
}

.hover\:bg-\[var\(--color-bg-surface\)\]:hover {
  background-color: var(--color-bg-surface);
}

.hover\:bg-\[var\(--color-bg-tertiary\)\]:hover {
  background-color: var(--color-bg-tertiary);
}

.hover\:bg-\[var\(--color-border-default\)\]:hover {
  background-color: var(--color-border-default);
}

.hover\:bg-\[var\(--color-brand-gold\)\]:hover {
  background-color: #FFD500;
  background-color: var(--color-brand-gold);
}

.hover\:bg-\[var\(--color-feedback-danger\)\]:hover {
  background-color: var(--color-feedback-danger);
}

.hover\:bg-\[var\(--color-feedback-danger-light\)\]:hover {
  background-color: var(--color-feedback-danger-light);
}

.hover\:bg-\[var\(--color-feedback-info\)\]:hover {
  background-color: var(--color-feedback-info);
}

.hover\:bg-\[var\(--color-feedback-info-light\)\]:hover {
  background-color: var(--color-feedback-info-light);
}

.hover\:bg-\[var\(--color-feedback-success\)\]:hover {
  background-color: var(--color-feedback-success);
}

.hover\:bg-\[var\(--color-feedback-success-light\)\]:hover {
  background-color: var(--color-feedback-success-light);
}

.hover\:bg-\[var\(--color-feedback-warning\)\]:hover {
  background-color: var(--color-feedback-warning);
}

.hover\:bg-\[var\(--color-feedback-warning-light\)\]:hover {
  background-color: var(--color-feedback-warning-light);
}

.hover\:bg-\[var\(--color-table-row-hover\)\]:hover {
  background-color: var(--color-table-row-hover);
}

.hover\:bg-\[var\(--color-text-secondary\)\]:hover {
  background-color: var(--color-text-secondary);
}

.hover\:bg-\[var\(--muted\)\]:hover {
  background-color: var(--color-bg-tertiary);
  background-color: var(--muted);
}

.hover\:bg-\[var\(--nav-item-hover\)\]:hover {
  background-color: var(--nav-item-hover);
}

.hover\:bg-\[var\(--surface-hover\)\]:hover {
  background-color: var(--surface-hover);
}

.hover\:bg-accent:hover {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.hover\:bg-accent\/30:hover {
  background-color: hsl(var(--color-accent-primary) / 0.3);
  background-color: hsl(var(--accent) / 0.3);
}

.hover\:bg-accent\/50:hover {
  background-color: hsl(var(--color-accent-primary) / 0.5);
  background-color: hsl(var(--accent) / 0.5);
}

.hover\:bg-background:hover {
  background-color: hsl(var(--color-bg-primary));
  background-color: hsl(var(--background));
}

.hover\:bg-black\/10:hover {
  background-color: rgb(0 0 0 / 0.1);
}

.hover\:bg-black\/5:hover {
  background-color: rgb(0 0 0 / 0.05);
}

.hover\:bg-blue-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(96 165 250 / 1);
  background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1));
}

.hover\:bg-blue-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / 1);
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-blue-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / 1);
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}

.hover\:bg-blue-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / 1);
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}

.hover\:bg-cyan-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(34 211 238 / 1);
  background-color: rgb(34 211 238 / var(--tw-bg-opacity, 1));
}

.hover\:bg-cyan-500\/20:hover {
  background-color: rgb(6 182 212 / 0.2);
}

.hover\:bg-destructive\/10:hover {
  background-color: hsl(var(--color-error) / 0.1);
  background-color: hsl(var(--destructive) / 0.1);
}

.hover\:bg-emerald-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / 1);
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}

.hover\:bg-emerald-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(4 120 87 / 1);
  background-color: rgb(4 120 87 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / 1);
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / 1);
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(21 128 61 / 1);
  background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
}

.hover\:bg-indigo-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(67 56 202 / 1);
  background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));
}

.hover\:bg-muted:hover {
  background-color: hsl(var(--color-bg-tertiary));
  background-color: hsl(var(--muted));
}

.hover\:bg-muted\/30:hover {
  background-color: hsl(var(--color-bg-tertiary) / 0.3);
  background-color: hsl(var(--muted) / 0.3);
}

.hover\:bg-muted\/50:hover {
  background-color: hsl(var(--color-bg-tertiary) / 0.5);
  background-color: hsl(var(--muted) / 0.5);
}

.hover\:bg-muted\/80:hover {
  background-color: hsl(var(--color-bg-tertiary) / 0.8);
  background-color: hsl(var(--muted) / 0.8);
}

.hover\:bg-orange-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / 1);
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}

.hover\:bg-orange-500\/30:hover {
  background-color: rgb(249 115 22 / 0.3);
}

.hover\:bg-orange-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(194 65 12 / 1);
  background-color: rgb(194 65 12 / var(--tw-bg-opacity, 1));
}

.hover\:bg-primary:hover {
  background-color: hsl(var(--color-accent-secondary));
  background-color: hsl(var(--primary));
}

.hover\:bg-purple-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(126 34 206 / 1);
  background-color: rgb(126 34 206 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / 1);
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-500\/20:hover {
  background-color: rgb(239 68 68 / 0.2);
}

.hover\:bg-rose-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / 1);
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}

.hover\:bg-rose-500\/10:hover {
  background-color: rgb(244 63 94 / 0.1);
}

.hover\:bg-rose-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / 1);
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
}

.hover\:bg-rose-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(190 18 60 / 1);
  background-color: rgb(190 18 60 / var(--tw-bg-opacity, 1));
}

.hover\:bg-secondary:hover {
  background-color: hsl(var(--color-bg-tertiary));
  background-color: hsl(var(--secondary));
}

.hover\:bg-sky-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(240 249 255 / 1);
  background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-sky-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(3 105 161 / 1);
  background-color: rgb(3 105 161 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / 1);
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / 1);
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-50\/60:hover {
  background-color: rgb(248 250 252 / 0.6);
}

.hover\:bg-slate-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(51 65 85 / 1);
  background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / 1);
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / 1);
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}

.hover\:bg-transparent:hover {
  background-color: transparent;
}

.hover\:bg-violet-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(221 214 254 / 1);
  background-color: rgb(221 214 254 / var(--tw-bg-opacity, 1));
}

.hover\:bg-violet-50\/50:hover {
  background-color: rgb(245 243 255 / 0.5);
}

.hover\:bg-violet-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(109 40 217 / 1);
  background-color: rgb(109 40 217 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white\/60:hover {
  background-color: rgb(255 255 255 / 0.6);
}

.hover\:bg-opacity-50:hover {
  --tw-bg-opacity: 0.5;
}

.hover\:from-\[var\(--color-accent\)\]:hover {
  --tw-gradient-from: var(--color-accent) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-\[var\(--color-action-primary\)\]:hover {
  --tw-gradient-from: var(--color-action-primary) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-\[var\(--color-action-primary-hover\)\]:hover {
  --tw-gradient-from: var(--color-action-primary-hover) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-\[var\(--color-feedback-danger\)\]:hover {
  --tw-gradient-from: var(--color-feedback-danger) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-\[var\(--color-feedback-success\)\]:hover {
  --tw-gradient-from: var(--color-feedback-success) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-\[var\(--color-feedback-warning\)\]:hover {
  --tw-gradient-from: var(--color-feedback-warning) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-violet-700:hover {
  --tw-gradient-from: #6d28d9 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(109 40 217 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:to-\[var\(--color-accent\)\]:hover {
  --tw-gradient-to: var(--color-accent) var(--tw-gradient-to-position);
}

.hover\:to-\[var\(--color-action-primary-hover\)\]:hover {
  --tw-gradient-to: var(--color-action-primary-hover) var(--tw-gradient-to-position);
}

.hover\:to-\[var\(--color-feedback-success\)\]:hover {
  --tw-gradient-to: var(--color-feedback-success) var(--tw-gradient-to-position);
}

.hover\:to-\[var\(--color-feedback-warning\)\]:hover {
  --tw-gradient-to: var(--color-feedback-warning) var(--tw-gradient-to-position);
}

.hover\:to-amber-700:hover {
  --tw-gradient-to: #b45309 var(--tw-gradient-to-position);
}

.hover\:to-indigo-700:hover {
  --tw-gradient-to: #4338ca var(--tw-gradient-to-position);
}

.hover\:to-indigo-900\/40:hover {
  --tw-gradient-to: rgb(49 46 129 / 0.4) var(--tw-gradient-to-position);
}

.hover\:to-purple-700:hover {
  --tw-gradient-to: #7e22ce var(--tw-gradient-to-position);
}

.hover\:to-red-700:hover {
  --tw-gradient-to: #b91c1c var(--tw-gradient-to-position);
}

.hover\:to-violet-700:hover {
  --tw-gradient-to: #6d28d9 var(--tw-gradient-to-position);
}

.hover\:text-\[var\(--color-accent\)\]:hover {
  color: var(--color-accent);
}

.hover\:text-\[var\(--color-accent-dark\)\]:hover {
  color: var(--color-accent-dark);
}

.hover\:text-\[var\(--color-action-primary\)\]:hover {
  color: #D6B16A;
  color: var(--color-action-primary);
}

.hover\:text-\[var\(--color-action-primary-hover\)\]:hover {
  color: #C29E57;
  color: var(--color-action-primary-hover);
}

.hover\:text-\[var\(--color-feedback-danger\)\]:hover {
  color: var(--color-feedback-danger);
}

.hover\:text-\[var\(--color-feedback-info\)\]:hover {
  color: var(--color-feedback-info);
}

.hover\:text-\[var\(--color-feedback-success\)\]:hover {
  color: var(--color-feedback-success);
}

.hover\:text-\[var\(--color-feedback-warning\)\]:hover {
  color: var(--color-feedback-warning);
}

.hover\:text-\[var\(--color-primary\)\]:hover {
  color: var(--color-primary);
}

.hover\:text-\[var\(--color-text-inverse\)\]:hover {
  color: var(--color-text-inverse);
}

.hover\:text-\[var\(--color-text-muted\)\]:hover {
  color: var(--color-text-muted);
}

.hover\:text-\[var\(--color-text-primary\)\]:hover {
  color: var(--color-text-primary);
}

.hover\:text-\[var\(--color-text-primary\2c var\(--color-text-primary\)\)\]:hover {
  color: var(--color-text-primary);
  color: var(--color-text-primary,var(--color-text-primary));
}

.hover\:text-\[var\(--color-text-secondary\)\]:hover {
  color: var(--color-text-secondary);
}

.hover\:text-\[var\(--text-primary\)\]:hover {
  color: var(--text-primary);
}

.hover\:text-\[var\(--text-secondary\)\]:hover {
  color: var(--text-secondary);
}

.hover\:text-accent-foreground:hover {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--accent-foreground));
}

.hover\:text-black:hover {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / 1);
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}

.hover\:text-blue-200:hover {
  --tw-text-opacity: 1;
  color: rgb(191 219 254 / 1);
  color: rgb(191 219 254 / var(--tw-text-opacity, 1));
}

.hover\:text-cyan-400:hover {
  --tw-text-opacity: 1;
  color: rgb(34 211 238 / 1);
  color: rgb(34 211 238 / var(--tw-text-opacity, 1));
}

.hover\:text-destructive:hover {
  color: hsl(var(--color-error));
  color: hsl(var(--destructive));
}

.hover\:text-foreground:hover {
  color: hsl(var(--color-text-primary));
  color: hsl(var(--foreground));
}

.hover\:text-indigo-400:hover {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / 1);
  color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}

.hover\:text-muted-foreground:hover {
  color: hsl(var(--color-text-muted));
  color: hsl(var(--muted-foreground));
}

.hover\:text-orange-700:hover {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / 1);
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}

.hover\:text-primary:hover {
  color: hsl(var(--color-accent-secondary));
  color: hsl(var(--primary));
}

.hover\:text-primary-foreground:hover {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--primary-foreground));
}

.hover\:text-red-600:hover {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / 1);
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.hover\:text-red-700:hover {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / 1);
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.hover\:text-rose-500:hover {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / 1);
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.hover\:text-rose-900:hover {
  --tw-text-opacity: 1;
  color: rgb(136 19 55 / 1);
  color: rgb(136 19 55 / var(--tw-text-opacity, 1));
}

.hover\:text-sky-800:hover {
  --tw-text-opacity: 1;
  color: rgb(7 89 133 / 1);
  color: rgb(7 89 133 / var(--tw-text-opacity, 1));
}

.hover\:text-slate-600:hover {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / 1);
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

.hover\:text-slate-700:hover {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / 1);
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

.hover\:text-slate-800:hover {
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / 1);
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}

.hover\:underline:hover {
  text-decoration-line: underline;
}

.hover\:opacity-100:hover {
  opacity: 1;
}

.hover\:opacity-70:hover {
  opacity: 0.7;
}

.hover\:opacity-80:hover {
  opacity: 0.8;
}

.hover\:opacity-90:hover {
  opacity: 0.9;
}

.hover\:shadow:hover {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-2xl:hover {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-lg:hover {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-md:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-sm:hover {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-xl:hover {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-cyan-500\/20:hover {
  --tw-shadow-color: rgb(6 182 212 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-emerald-500\/5:hover {
  --tw-shadow-color: rgb(16 185 129 / 0.05);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-pink-500\/5:hover {
  --tw-shadow-color: rgb(236 72 153 / 0.05);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-violet-500\/15:hover {
  --tw-shadow-color: rgb(139 92 246 / 0.15);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-violet-500\/25:hover {
  --tw-shadow-color: rgb(139 92 246 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-violet-500\/30:hover {
  --tw-shadow-color: rgb(139 92 246 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-violet-500\/5:hover {
  --tw-shadow-color: rgb(139 92 246 / 0.05);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:ring-1:hover {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.hover\:ring-2:hover {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.hover\:ring-white\/20:hover {
  --tw-ring-color: rgb(255 255 255 / 0.2);
}

.hover\:ring-white\/30:hover {
  --tw-ring-color: rgb(255 255 255 / 0.3);
}

.hover\:ring-white\/50:hover {
  --tw-ring-color: rgb(255 255 255 / 0.5);
}

.hover\:brightness-105:hover {
  --tw-brightness: brightness(1.05);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.hover\:brightness-110:hover {
  --tw-brightness: brightness(1.1);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.focus\:border-\[var\(--color-accent\)\]:focus {
  border-color: var(--color-accent);
}

.focus\:border-\[var\(--color-action-primary\)\]:focus {
  border-color: #D6B16A;
  border-color: var(--color-action-primary);
}

.focus\:border-\[var\(--color-border-focus\)\]:focus {
  border-color: #FFD500;
  border-color: var(--color-border-focus);
}

.focus\:border-\[var\(--color-brand-gold\)\]:focus {
  border-color: #FFD500;
  border-color: var(--color-brand-gold);
}

.focus\:border-\[var\(--color-feedback-danger\)\]:focus {
  border-color: var(--color-feedback-danger);
}

.focus\:border-\[var\(--color-feedback-success\)\]:focus {
  border-color: var(--color-feedback-success);
}

.focus\:border-blue-400:focus {
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / 1);
  border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
}

.focus\:border-rose-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / 1);
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
}

.focus\:border-sky-400:focus {
  --tw-border-opacity: 1;
  border-color: rgb(56 189 248 / 1);
  border-color: rgb(56 189 248 / var(--tw-border-opacity, 1));
}

.focus\:border-transparent:focus {
  border-color: transparent;
}

.focus\:border-violet-400:focus {
  --tw-border-opacity: 1;
  border-color: rgb(167 139 250 / 1);
  border-color: rgb(167 139 250 / var(--tw-border-opacity, 1));
}

.focus\:bg-\[var\(--color-bg-elevated\)\]:focus {
  background-color: var(--color-bg-elevated);
}

.focus\:bg-\[var\(--color-bg-subtle\)\]:focus {
  background-color: var(--color-bg-subtle);
}

.focus\:bg-\[var\(--color-feedback-danger-light\)\]:focus {
  background-color: var(--color-feedback-danger-light);
}

.focus\:bg-accent:focus {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.focus\:bg-primary:focus {
  background-color: hsl(var(--color-accent-secondary));
  background-color: hsl(var(--primary));
}

.focus\:text-\[var\(--color-feedback-danger\)\]:focus {
  color: var(--color-feedback-danger);
}

.focus\:text-\[var\(--color-text-primary\)\]:focus {
  color: var(--color-text-primary);
}

.focus\:text-accent-foreground:focus {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--accent-foreground));
}

.focus\:text-primary-foreground:focus {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--primary-foreground));
}

.focus\:underline:focus {
  text-decoration-line: underline;
}

.focus\:opacity-100:focus {
  opacity: 1;
}

.focus\:shadow-\[0_0_0_3px_rgba\(244\2c 63\2c 94\2c 0\.1\)\]:focus {
  --tw-shadow: 0 0 0 3px rgba(244,63,94,0.1);
  --tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:ring-0:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-1:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-inset:focus {
  --tw-ring-inset: inset;
}

.focus\:ring-\[\#1a365d\]:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(26 54 93 / var(--tw-ring-opacity, 1));
}

.focus\:ring-\[var\(--accent-primary\)\]:focus {
  --tw-ring-color: var(--accent-primary);
}

.focus\:ring-\[var\(--color-accent\)\]:focus {
  --tw-ring-color: var(--color-accent);
}

.focus\:ring-\[var\(--color-action-primary\)\]:focus {
  --tw-ring-color: var(--color-action-primary);
}

.focus\:ring-\[var\(--color-border-focus\)\]:focus {
  --tw-ring-color: var(--color-border-focus);
}

.focus\:ring-\[var\(--color-brand-gold-light\)\]:focus {
  --tw-ring-color: var(--color-brand-gold-light);
}

.focus\:ring-\[var\(--color-feedback-danger\)\]:focus {
  --tw-ring-color: var(--color-feedback-danger);
}

.focus\:ring-\[var\(--color-feedback-info\)\]:focus {
  --tw-ring-color: var(--color-feedback-info);
}

.focus\:ring-\[var\(--color-feedback-warning\)\]:focus {
  --tw-ring-color: var(--color-feedback-warning);
}

.focus\:ring-blue-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}

.focus\:ring-ring:focus {
  --tw-ring-color: hsl(var(--ring));
}

.focus\:ring-rose-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity, 1));
}

.focus\:ring-sky-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(125 211 252 / var(--tw-ring-opacity, 1));
}

.focus\:ring-sky-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity, 1));
}

.focus\:ring-violet-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity, 1));
}

.focus\:ring-offset-1:focus {
  --tw-ring-offset-width: 1px;
}

.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}

.focus\:ring-offset-\[var\(--color-bg-page\)\]:focus {
  --tw-ring-offset-color: var(--color-bg-page);
}

.focus-visible\:border-\[var\(--color-border-focus\)\]:focus-visible {
  border-color: #FFD500;
  border-color: var(--color-border-focus);
}

.focus-visible\:border-\[var\(--color-feedback-danger\)\]:focus-visible {
  border-color: var(--color-feedback-danger);
}

.focus-visible\:border-\[var\(--color-feedback-success\)\]:focus-visible {
  border-color: var(--color-feedback-success);
}

.focus-visible\:outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:ring-0:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-1:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-4:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-\[var\(--color-accent\)\]:focus-visible {
  --tw-ring-color: var(--color-accent);
}

.focus-visible\:ring-\[var\(--color-action-primary\)\]:focus-visible {
  --tw-ring-color: var(--color-action-primary);
}

.focus-visible\:ring-\[var\(--color-border-focus\)\]:focus-visible {
  --tw-ring-color: var(--color-border-focus);
}

.focus-visible\:ring-\[var\(--color-feedback-danger\)\]:focus-visible {
  --tw-ring-color: var(--color-feedback-danger);
}

.focus-visible\:ring-\[var\(--color-feedback-info\)\]:focus-visible {
  --tw-ring-color: var(--color-feedback-info);
}

.focus-visible\:ring-\[var\(--color-feedback-success\)\]:focus-visible {
  --tw-ring-color: var(--color-feedback-success);
}

.focus-visible\:ring-blue-500:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}

.focus-visible\:ring-gray-500\/50:focus-visible {
  --tw-ring-color: rgb(107 114 128 / 0.5);
}

.focus-visible\:ring-primary:focus-visible {
  --tw-ring-color: hsl(var(--primary));
}

.focus-visible\:ring-ring:focus-visible {
  --tw-ring-color: hsl(var(--ring));
}

.focus-visible\:ring-yellow-500\/50:focus-visible {
  --tw-ring-color: rgb(234 179 8 / 0.5);
}

.focus-visible\:ring-offset-0:focus-visible {
  --tw-ring-offset-width: 0px;
}

.focus-visible\:ring-offset-1:focus-visible {
  --tw-ring-offset-width: 1px;
}

.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}

.active\:scale-90:active {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-95:active {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-\[0\.97\]:active {
  --tw-scale-x: 0.97;
  --tw-scale-y: 0.97;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-\[0\.98\]:active {
  --tw-scale-x: 0.98;
  --tw-scale-y: 0.98;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-\[0\.99\]:active {
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:cursor-grabbing:active {
  cursor: grabbing;
}

.active\:bg-\[var\(--color-action-primary\)\]:active {
  background-color: #D6B16A;
  background-color: var(--color-action-primary);
}

.active\:bg-\[var\(--color-action-primary-active\)\]:active {
  background-color: var(--color-action-primary-active);
}

.active\:bg-\[var\(--color-bg-muted\)\]:active {
  background-color: var(--color-bg-muted);
}

.active\:bg-\[var\(--color-feedback-danger\)\]:active {
  background-color: var(--color-feedback-danger);
}

.active\:bg-black\/10:active {
  background-color: rgb(0 0 0 / 0.1);
}

.active\:bg-slate-900:active {
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / 1);
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}

.enabled\:hover\:opacity-90:hover:enabled {
  opacity: 0.9;
}

.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}

.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}

.disabled\:cursor-wait:disabled {
  cursor: wait;
}

.disabled\:bg-\[var\(--color-bg-muted\)\]:disabled {
  background-color: var(--color-bg-muted);
}

.disabled\:no-underline:disabled {
  text-decoration-line: none;
}

.disabled\:opacity-30:disabled {
  opacity: 0.3;
}

.disabled\:opacity-40:disabled {
  opacity: 0.4;
}

.disabled\:opacity-50:disabled {
  opacity: 0.5;
}

.disabled\:opacity-60:disabled {
  opacity: 0.6;
}

.disabled\:opacity-70:disabled {
  opacity: 0.7;
}

.disabled\:hover\:scale-100:hover:disabled {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:visible {
  visibility: visible;
}

.group:hover .group-hover\:block {
  display: block;
}

.group:hover .group-hover\:hidden {
  display: none;
}

.group\/row:hover .group-hover\/row\:translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:rotate-3 {
  --tw-rotate: 3deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group\/theme:hover .group-hover\/theme\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-125 {
  --tw-scale-x: 1.25;
  --tw-scale-y: 1.25;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:border-\[var\(--color-border-default\)\] {
  border-color: var(--color-border-default);
}

.group:hover .group-hover\:border-\[var\(--color-border-focus\)\] {
  border-color: #FFD500;
  border-color: var(--color-border-focus);
}

.group:hover .group-hover\:bg-\[var\(--color-feedback-info-light\)\] {
  background-color: var(--color-feedback-info-light);
}

.group:hover .group-hover\:text-\[var\(--color-accent\)\] {
  color: var(--color-accent);
}

.group:hover .group-hover\:text-\[var\(--color-action-primary\)\] {
  color: #D6B16A;
  color: var(--color-action-primary);
}

.group:hover .group-hover\:text-\[var\(--color-feedback-info\)\] {
  color: var(--color-feedback-info);
}

.group:hover .group-hover\:text-\[var\(--color-feedback-success\)\] {
  color: var(--color-feedback-success);
}

.group:hover .group-hover\:text-\[var\(--color-feedback-warning\)\] {
  color: var(--color-feedback-warning);
}

.group:hover .group-hover\:text-\[var\(--color-text-inverse\)\] {
  color: var(--color-text-inverse);
}

.group:hover .group-hover\:text-\[var\(--color-text-muted\)\] {
  color: var(--color-text-muted);
}

.group:hover .group-hover\:text-\[var\(--color-text-primary\)\] {
  color: var(--color-text-primary);
}

.group:hover .group-hover\:text-blue-400 {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / 1);
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.group\/carousel:hover .group-hover\/carousel\:opacity-90 {
  opacity: 0.9;
}

.group\/theme:hover .group-hover\/theme\:opacity-100 {
  opacity: 1;
}

.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}

.group:hover .group-hover\:opacity-30 {
  opacity: 0.3;
}

.group:hover .group-hover\:opacity-40 {
  opacity: 0.4;
}

.group:hover .group-hover\:opacity-5 {
  opacity: 0.05;
}

.group:hover .group-hover\:opacity-50 {
  opacity: 0.5;
}

.group:hover .group-hover\:opacity-60 {
  opacity: 0.6;
}

.group:hover .group-hover\:opacity-70 {
  opacity: 0.7;
}

.group:hover .group-hover\:opacity-90 {
  opacity: 0.9;
}

.group:hover .group-hover\:shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.group:hover .group-hover\:shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.group:hover .group-hover\:shadow-violet-500\/40 {
  --tw-shadow-color: rgb(139 92 246 / 0.4);
  --tw-shadow: var(--tw-shadow-colored);
}

.group:hover .group-hover\:brightness-110 {
  --tw-brightness: brightness(1.1);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.group.destructive .group-\[\.destructive\]\:border-muted\/40 {
  border-color: hsl(var(--color-bg-tertiary) / 0.4);
  border-color: hsl(var(--muted) / 0.4);
}

.group.toaster .group-\[\.toaster\]\:border-border {
  border-color: hsl(var(--color-border-light));
  border-color: hsl(var(--border));
}

.group.toast .group-\[\.toast\]\:bg-muted {
  background-color: hsl(var(--color-bg-tertiary));
  background-color: hsl(var(--muted));
}

.group.toast .group-\[\.toast\]\:bg-primary {
  background-color: hsl(var(--color-accent-secondary));
  background-color: hsl(var(--primary));
}

.group.toaster .group-\[\.toaster\]\:bg-background {
  background-color: hsl(var(--color-bg-primary));
  background-color: hsl(var(--background));
}

.group.destructive .group-\[\.destructive\]\:text-\[var\(--color-feedback-danger\)\] {
  color: var(--color-feedback-danger);
}

.group.toast .group-\[\.toast\]\:text-muted-foreground {
  color: hsl(var(--color-text-muted));
  color: hsl(var(--muted-foreground));
}

.group.toast .group-\[\.toast\]\:text-primary-foreground {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--primary-foreground));
}

.group.toaster .group-\[\.toaster\]\:text-foreground {
  color: hsl(var(--color-text-primary));
  color: hsl(var(--foreground));
}

.group.toaster .group-\[\.toaster\]\:shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover {
  border-color: hsl(var(--color-error) / 0.3);
  border-color: hsl(var(--destructive) / 0.3);
}

.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover {
  background-color: hsl(var(--color-error));
  background-color: hsl(var(--destructive));
}

.group.destructive .group-\[\.destructive\]\:hover\:text-\[var\(--color-feedback-danger\)\]:hover {
  color: var(--color-feedback-danger);
}

.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--destructive-foreground));
}

.group.destructive .group-\[\.destructive\]\:focus\:ring-\[var\(--color-feedback-danger\)\]:focus {
  --tw-ring-color: var(--color-feedback-danger);
}

.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus {
  --tw-ring-color: hsl(var(--destructive));
}

.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus {
  --tw-ring-offset-color: #dc2626;
}

.peer:checked ~ .peer-checked\:border-\[var\(--color-feedback-info\)\] {
  border-color: var(--color-feedback-info);
}

.peer:checked ~ .peer-checked\:bg-\[var\(--color-feedback-info\)\] {
  background-color: var(--color-feedback-info);
}

.peer:checked ~ .peer-checked\:bg-\[var\(--color-feedback-warning\)\] {
  background-color: var(--color-feedback-warning);
}

.peer:checked ~ .peer-checked\:opacity-100 {
  opacity: 1;
}

.peer:checked ~ .peer-checked\:after\:translate-x-full::after {
  content: var(--tw-content);
  --tw-translate-x: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.peer:disabled ~ .peer-disabled\:cursor-not-allowed {
  cursor: not-allowed;
}

.peer:disabled ~ .peer-disabled\:opacity-70 {
  opacity: 0.7;
}

.has-\[\:disabled\]\:opacity-50:has(:disabled) {
  opacity: 0.5;
}

.aria-selected\:bg-accent[aria-selected="true"] {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.aria-selected\:bg-accent\/50[aria-selected="true"] {
  background-color: hsl(var(--color-accent-primary) / 0.5);
  background-color: hsl(var(--accent) / 0.5);
}

.aria-selected\:text-accent-foreground[aria-selected="true"] {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--accent-foreground));
}

.aria-selected\:text-muted-foreground[aria-selected="true"] {
  color: hsl(var(--color-text-muted));
  color: hsl(var(--muted-foreground));
}

.aria-selected\:opacity-100[aria-selected="true"] {
  opacity: 1;
}

.data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"] {
  pointer-events: none;
}

.data-\[disabled\]\:pointer-events-none[data-disabled] {
  pointer-events: none;
}

.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction="vertical"] {
  height: 1px;
}

.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction="vertical"] {
  width: 100%;
}

.data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
  --tw-translate-y: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[side\=left\]\:-translate-x-1[data-side="left"] {
  --tw-translate-x: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[side\=right\]\:translate-x-1[data-side="right"] {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[side\=top\]\:-translate-y-1[data-side="top"] {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[state\=checked\]\:translate-x-\[18px\][data-state="checked"] {
  --tw-translate-x: 18px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[state\=unchecked\]\:translate-x-\[2px\][data-state="unchecked"] {
  --tw-translate-x: 2px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[swipe\=cancel\]\:translate-x-0[data-swipe="cancel"] {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe="end"] {
  --tw-translate-x: var(--radix-toast-swipe-end-x);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe="move"] {
  --tw-translate-x: var(--radix-toast-swipe-move-x);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes accordion-up {
  from {
    height: var(--radix-accordion-content-height);
  }
  to {
    height: 0;
  }
}

.data-\[state\=closed\]\:animate-accordion-up[data-state="closed"] {
  animation: accordion-up 0.2s ease-out;
}

@keyframes accordion-down {
  from {
    height: 0;
  }
  to {
    height: var(--radix-accordion-content-height);
  }
}

.data-\[state\=open\]\:animate-accordion-down[data-state="open"] {
  animation: accordion-down 0.2s ease-out;
}

.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction="vertical"] {
  flex-direction: column;
}

.data-\[state\=checked\]\:border-\[var\(--color-action-primary\)\][data-state="checked"] {
  border-color: #D6B16A;
  border-color: var(--color-action-primary);
}

.data-\[state\=checked\]\:border-\[var\(--color-feedback-warning\)\][data-state="checked"] {
  border-color: var(--color-feedback-warning);
}

.data-\[highlighted\]\:bg-\[var\(--color-bg-elevated\)\][data-highlighted] {
  background-color: var(--color-bg-elevated);
}

.data-\[selected\=true\]\:bg-accent[data-selected="true"] {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.data-\[state\=active\]\:bg-\[var\(--color-accent\)\][data-state="active"] {
  background-color: var(--color-accent);
}

.data-\[state\=active\]\:bg-\[var\(--color-action-primary\)\][data-state="active"] {
  background-color: #D6B16A;
  background-color: var(--color-action-primary);
}

.data-\[state\=active\]\:bg-\[var\(--color-bg-surface\)\][data-state="active"] {
  background-color: var(--color-bg-surface);
}

.data-\[state\=active\]\:bg-\[var\(--color-feedback-danger\)\][data-state="active"] {
  background-color: var(--color-feedback-danger);
}

.data-\[state\=active\]\:bg-\[var\(--color-feedback-info\)\][data-state="active"] {
  background-color: var(--color-feedback-info);
}

.data-\[state\=active\]\:bg-\[var\(--color-feedback-success\)\][data-state="active"] {
  background-color: var(--color-feedback-success);
}

.data-\[state\=active\]\:bg-\[var\(--color-feedback-warning\)\][data-state="active"] {
  background-color: var(--color-feedback-warning);
}

.data-\[state\=active\]\:bg-blue-500\/20[data-state="active"] {
  background-color: rgb(59 130 246 / 0.2);
}

.data-\[state\=active\]\:bg-green-500\/20[data-state="active"] {
  background-color: rgb(34 197 94 / 0.2);
}

.data-\[state\=active\]\:bg-orange-500\/20[data-state="active"] {
  background-color: rgb(249 115 22 / 0.2);
}

.data-\[state\=active\]\:bg-purple-500\/20[data-state="active"] {
  background-color: rgb(168 85 247 / 0.2);
}

.data-\[state\=checked\]\:bg-\[var\(--color-accent\)\][data-state="checked"] {
  background-color: var(--color-accent);
}

.data-\[state\=checked\]\:bg-\[var\(--color-action-primary\)\][data-state="checked"] {
  background-color: #D6B16A;
  background-color: var(--color-action-primary);
}

.data-\[state\=checked\]\:bg-\[var\(--color-feedback-success\)\][data-state="checked"] {
  background-color: var(--color-feedback-success);
}

.data-\[state\=checked\]\:bg-\[var\(--color-feedback-warning\)\][data-state="checked"] {
  background-color: var(--color-feedback-warning);
}

.data-\[state\=on\]\:bg-accent[data-state="on"] {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:bg-\[var\(--color-bg-subtle\)\][data-state="open"] {
  background-color: var(--color-bg-subtle);
}

.data-\[state\=open\]\:bg-accent[data-state="open"] {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:bg-accent\/50[data-state="open"] {
  background-color: hsl(var(--color-accent-primary) / 0.5);
  background-color: hsl(var(--accent) / 0.5);
}

.data-\[state\=open\]\:bg-secondary[data-state="open"] {
  background-color: hsl(var(--color-bg-tertiary));
  background-color: hsl(var(--secondary));
}

.data-\[state\=selected\]\:bg-\[var\(--color-table-row-selected\)\][data-state="selected"] {
  background-color: var(--color-table-row-selected);
}

.data-\[state\=active\]\:bg-gradient-to-r[data-state="active"] {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.data-\[state\=active\]\:from-\[var\(--color-accent\)\][data-state="active"] {
  --tw-gradient-from: var(--color-accent) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.data-\[state\=active\]\:from-cyan-500[data-state="active"] {
  --tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.data-\[state\=active\]\:from-emerald-500[data-state="active"] {
  --tw-gradient-from: #10b981 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.data-\[state\=active\]\:from-red-500[data-state="active"] {
  --tw-gradient-from: #ef4444 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.data-\[state\=active\]\:from-violet-500[data-state="active"] {
  --tw-gradient-from: #8b5cf6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.data-\[state\=active\]\:to-\[var\(--color-action-primary\)\][data-state="active"] {
  --tw-gradient-to: var(--color-action-primary) var(--tw-gradient-to-position);
}

.data-\[state\=active\]\:to-blue-600[data-state="active"] {
  --tw-gradient-to: #2563eb var(--tw-gradient-to-position);
}

.data-\[state\=active\]\:to-orange-600[data-state="active"] {
  --tw-gradient-to: #ea580c var(--tw-gradient-to-position);
}

.data-\[state\=active\]\:to-purple-600[data-state="active"] {
  --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
}

.data-\[state\=active\]\:to-teal-600[data-state="active"] {
  --tw-gradient-to: #0d9488 var(--tw-gradient-to-position);
}

.data-\[state\=active\]\:font-semibold[data-state="active"] {
  font-weight: 600;
}

.data-\[highlighted\]\:text-\[var\(--color-text-inverse\)\][data-highlighted] {
  color: var(--color-text-inverse);
}

.data-\[placeholder\]\:text-\[var\(--color-text-muted\)\][data-placeholder] {
  color: var(--color-text-muted);
}

.data-\[selected\=true\]\:text-accent-foreground[data-selected="true"] {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--accent-foreground));
}

.data-\[state\=active\]\:text-\[var\(--color-accent\)\][data-state="active"] {
  color: var(--color-accent);
}

.data-\[state\=active\]\:text-\[var\(--color-feedback-success\)\][data-state="active"] {
  color: var(--color-feedback-success);
}

.data-\[state\=active\]\:text-\[var\(--color-text-inverse\)\][data-state="active"] {
  color: var(--color-text-inverse);
}

.data-\[state\=active\]\:text-\[var\(--color-text-primary\)\][data-state="active"] {
  color: var(--color-text-primary);
}

.data-\[state\=checked\]\:text-\[var\(--color-text-inverse\)\][data-state="checked"] {
  color: var(--color-text-inverse);
}

.data-\[state\=on\]\:text-accent-foreground[data-state="on"] {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--accent-foreground));
}

.data-\[state\=open\]\:text-accent-foreground[data-state="open"] {
  color: hsl(var(--color-text-inverted));
  color: hsl(var(--accent-foreground));
}

.data-\[disabled\=true\]\:opacity-50[data-disabled="true"] {
  opacity: 0.5;
}

.data-\[disabled\]\:opacity-50[data-disabled] {
  opacity: 0.5;
}

.data-\[state\=active\]\:shadow-lg[data-state="active"] {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[state\=active\]\:shadow-sm[data-state="active"] {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[swipe\=move\]\:transition-none[data-swipe="move"] {
  transition-property: none;
}

.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  transition-duration: 300ms;
}

.data-\[state\=open\]\:duration-500[data-state="open"] {
  transition-duration: 500ms;
}

.data-\[motion\^\=from-\]\:animate-in[data-motion^="from-"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}

.data-\[state\=open\]\:animate-in[data-state="open"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}

.data-\[state\=visible\]\:animate-in[data-state="visible"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}

.data-\[motion\^\=to-\]\:animate-out[data-motion^="to-"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.data-\[state\=closed\]\:animate-out[data-state="closed"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.data-\[state\=hidden\]\:animate-out[data-state="hidden"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.data-\[swipe\=end\]\:animate-out[data-swipe="end"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.data-\[motion\^\=from-\]\:fade-in[data-motion^="from-"] {
  --tw-enter-opacity: 0;
}

.data-\[motion\^\=to-\]\:fade-out[data-motion^="to-"] {
  --tw-exit-opacity: 0;
}

.data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
  --tw-exit-opacity: 0;
}

.data-\[state\=closed\]\:fade-out-80[data-state="closed"] {
  --tw-exit-opacity: 0.8;
}

.data-\[state\=hidden\]\:fade-out[data-state="hidden"] {
  --tw-exit-opacity: 0;
}

.data-\[state\=open\]\:fade-in-0[data-state="open"] {
  --tw-enter-opacity: 0;
}

.data-\[state\=visible\]\:fade-in[data-state="visible"] {
  --tw-enter-opacity: 0;
}

.data-\[state\=closed\]\:zoom-out-95[data-state="closed"] {
  --tw-exit-scale: .95;
}

.data-\[state\=open\]\:zoom-in-90[data-state="open"] {
  --tw-enter-scale: .9;
}

.data-\[state\=open\]\:zoom-in-95[data-state="open"] {
  --tw-enter-scale: .95;
}

.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion="from-end"] {
  --tw-enter-translate-x: 13rem;
}

.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion="from-start"] {
  --tw-enter-translate-x: -13rem;
}

.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion="to-end"] {
  --tw-exit-translate-x: 13rem;
}

.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion="to-start"] {
  --tw-exit-translate-x: -13rem;
}

.data-\[side\=bottom\]\:slide-in-from-top-2[data-side="bottom"] {
  --tw-enter-translate-y: -0.5rem;
}

.data-\[side\=left\]\:slide-in-from-right-2[data-side="left"] {
  --tw-enter-translate-x: 0.5rem;
}

.data-\[side\=right\]\:slide-in-from-left-2[data-side="right"] {
  --tw-enter-translate-x: -0.5rem;
}

.data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
  --tw-enter-translate-y: 0.5rem;
}

.data-\[state\=closed\]\:slide-out-to-bottom[data-state="closed"] {
  --tw-exit-translate-y: 100%;
}

.data-\[state\=closed\]\:slide-out-to-left[data-state="closed"] {
  --tw-exit-translate-x: -100%;
}

.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state="closed"] {
  --tw-exit-translate-x: -50%;
}

.data-\[state\=closed\]\:slide-out-to-right[data-state="closed"] {
  --tw-exit-translate-x: 100%;
}

.data-\[state\=closed\]\:slide-out-to-right-full[data-state="closed"] {
  --tw-exit-translate-x: 100%;
}

.data-\[state\=closed\]\:slide-out-to-top[data-state="closed"] {
  --tw-exit-translate-y: -100%;
}

.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state="closed"] {
  --tw-exit-translate-y: -48%;
}

.data-\[state\=open\]\:slide-in-from-bottom[data-state="open"] {
  --tw-enter-translate-y: 100%;
}

.data-\[state\=open\]\:slide-in-from-left[data-state="open"] {
  --tw-enter-translate-x: -100%;
}

.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state="open"] {
  --tw-enter-translate-x: -50%;
}

.data-\[state\=open\]\:slide-in-from-right[data-state="open"] {
  --tw-enter-translate-x: 100%;
}

.data-\[state\=open\]\:slide-in-from-top[data-state="open"] {
  --tw-enter-translate-y: -100%;
}

.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state="open"] {
  --tw-enter-translate-y: -48%;
}

.data-\[state\=open\]\:slide-in-from-top-full[data-state="open"] {
  --tw-enter-translate-y: -100%;
}

.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  animation-duration: 300ms;
}

.data-\[state\=open\]\:duration-500[data-state="open"] {
  animation-duration: 500ms;
}

.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  left: 0px;
}

.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  height: 0.25rem;
}

.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  width: 100%;
}

.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[state\=open\]\:hover\:bg-accent:hover[data-state="open"] {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:focus\:bg-accent:focus[data-state="open"] {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.group[data-state="open"] .group-data-\[state\=open\]\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.dark\:divide-slate-700:is(.dark *) > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(51 65 85 / 1);
  border-color: rgb(51 65 85 / var(--tw-divide-opacity, 1));
}

.dark\:divide-slate-800:is(.dark *) > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(30 41 59 / 1);
  border-color: rgb(30 41 59 / var(--tw-divide-opacity, 1));
}

.dark\:border-\[\#060a13\]:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(6 10 19 / 1);
  border-color: rgb(6 10 19 / var(--tw-border-opacity, 1));
}

.dark\:border-\[var\(--color-accent\)\]:is(.dark *) {
  border-color: var(--color-accent);
}

.dark\:border-\[var\(--color-accent-dark\)\]:is(.dark *) {
  border-color: var(--color-accent-dark);
}

.dark\:border-\[var\(--color-action-primary-hover\)\]:is(.dark *) {
  border-color: #C29E57;
  border-color: var(--color-action-primary-hover);
}

.dark\:border-\[var\(--color-border-default\)\]:is(.dark *) {
  border-color: var(--color-border-default);
}

.dark\:border-\[var\(--color-border-inverse\)\]:is(.dark *) {
  border-color: var(--color-border-inverse);
}

.dark\:border-\[var\(--color-border-strong\)\]:is(.dark *) {
  border-color: var(--color-border-strong);
}

.dark\:border-\[var\(--color-brand-gold\)\]:is(.dark *) {
  border-color: #FFD500;
  border-color: var(--color-brand-gold);
}

.dark\:border-\[var\(--color-feedback-danger\)\]:is(.dark *) {
  border-color: var(--color-feedback-danger);
}

.dark\:border-\[var\(--color-feedback-danger-dark\)\]:is(.dark *) {
  border-color: var(--color-feedback-danger-dark);
}

.dark\:border-\[var\(--color-feedback-success\)\]:is(.dark *) {
  border-color: var(--color-feedback-success);
}

.dark\:border-\[var\(--color-feedback-success-dark\)\]:is(.dark *) {
  border-color: var(--color-feedback-success-dark);
}

.dark\:border-\[var\(--color-feedback-warning\)\]:is(.dark *) {
  border-color: var(--color-feedback-warning);
}

.dark\:border-\[var\(--color-feedback-warning-dark\)\]:is(.dark *) {
  border-color: var(--color-feedback-warning-dark);
}

.dark\:border-amber-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(146 64 14 / 1);
  border-color: rgb(146 64 14 / var(--tw-border-opacity, 1));
}

.dark\:border-blue-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(30 64 175 / 1);
  border-color: rgb(30 64 175 / var(--tw-border-opacity, 1));
}

.dark\:border-emerald-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(6 95 70 / 1);
  border-color: rgb(6 95 70 / var(--tw-border-opacity, 1));
}

.dark\:border-orange-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(154 52 18 / 1);
  border-color: rgb(154 52 18 / var(--tw-border-opacity, 1));
}

.dark\:border-violet-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(91 33 182 / 1);
  border-color: rgb(91 33 182 / var(--tw-border-opacity, 1));
}

.dark\:border-white\/10:is(.dark *) {
  border-color: rgb(255 255 255 / 0.1);
}

.dark\:border-white\/20:is(.dark *) {
  border-color: rgb(255 255 255 / 0.2);
}

.dark\:border-white\/5:is(.dark *) {
  border-color: rgb(255 255 255 / 0.05);
}

.dark\:border-white\/\[0\.06\]:is(.dark *) {
  border-color: rgb(255 255 255 / 0.06);
}

.dark\:bg-\[\#020617\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(2 6 23 / 1);
  background-color: rgb(2 6 23 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[var\(--color-accent-dark\)\]:is(.dark *) {
  background-color: var(--color-accent-dark);
}

.dark\:bg-\[var\(--color-bg-elevated\)\]:is(.dark *) {
  background-color: var(--color-bg-elevated);
}

.dark\:bg-\[var\(--color-bg-inverse\)\]:is(.dark *) {
  background-color: var(--color-bg-inverse);
}

.dark\:bg-\[var\(--color-bg-muted\)\]:is(.dark *) {
  background-color: var(--color-bg-muted);
}

.dark\:bg-\[var\(--color-bg-page\)\]:is(.dark *) {
  background-color: var(--color-bg-page);
}

.dark\:bg-\[var\(--color-bg-surface\)\]:is(.dark *) {
  background-color: var(--color-bg-surface);
}

.dark\:bg-\[var\(--color-brand-gold\)\]:is(.dark *) {
  background-color: #FFD500;
  background-color: var(--color-brand-gold);
}

.dark\:bg-\[var\(--color-text-secondary\)\]:is(.dark *) {
  background-color: var(--color-text-secondary);
}

.dark\:bg-black\/10:is(.dark *) {
  background-color: rgb(0 0 0 / 0.1);
}

.dark\:bg-black\/20:is(.dark *) {
  background-color: rgb(0 0 0 / 0.2);
}

.dark\:bg-black\/30:is(.dark *) {
  background-color: rgb(0 0 0 / 0.3);
}

.dark\:bg-blue-900\/20:is(.dark *) {
  background-color: rgb(30 58 138 / 0.2);
}

.dark\:bg-green-900\/20:is(.dark *) {
  background-color: rgb(20 83 45 / 0.2);
}

.dark\:bg-orange-900\/20:is(.dark *) {
  background-color: rgb(124 45 18 / 0.2);
}

.dark\:bg-violet-800:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(91 33 182 / 1);
  background-color: rgb(91 33 182 / var(--tw-bg-opacity, 1));
}

.dark\:bg-violet-900\/30:is(.dark *) {
  background-color: rgb(76 29 149 / 0.3);
}

.dark\:from-\[var\(--color-bg-inverse\)\]:is(.dark *) {
  --tw-gradient-from: var(--color-bg-inverse) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-amber-900\/20:is(.dark *) {
  --tw-gradient-from: rgb(120 53 15 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(120 53 15 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-amber-900\/30:is(.dark *) {
  --tw-gradient-from: rgb(120 53 15 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(120 53 15 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-amber-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(69 26 3 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(69 26 3 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-blue-900\/20:is(.dark *) {
  --tw-gradient-from: rgb(30 58 138 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(30 58 138 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-blue-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(23 37 84 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(23 37 84 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-blue-950\/50:is(.dark *) {
  --tw-gradient-from: rgb(23 37 84 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(23 37 84 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-cyan-900\/30:is(.dark *) {
  --tw-gradient-from: rgb(22 78 99 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(22 78 99 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-cyan-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(8 51 68 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(8 51 68 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-emerald-900\/20:is(.dark *) {
  --tw-gradient-from: rgb(6 78 59 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(6 78 59 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-emerald-900\/30:is(.dark *) {
  --tw-gradient-from: rgb(6 78 59 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(6 78 59 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-emerald-950\/20:is(.dark *) {
  --tw-gradient-from: rgb(2 44 34 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(2 44 34 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-emerald-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(2 44 34 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(2 44 34 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-emerald-950\/50:is(.dark *) {
  --tw-gradient-from: rgb(2 44 34 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(2 44 34 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-indigo-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(30 27 75 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(30 27 75 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-orange-900\/20:is(.dark *) {
  --tw-gradient-from: rgb(124 45 18 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(124 45 18 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-pink-950\/50:is(.dark *) {
  --tw-gradient-from: rgb(80 7 36 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(80 7 36 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-purple-900\/30:is(.dark *) {
  --tw-gradient-from: rgb(88 28 135 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(88 28 135 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-red-900\/20:is(.dark *) {
  --tw-gradient-from: rgb(127 29 29 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(127 29 29 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-red-900\/30:is(.dark *) {
  --tw-gradient-from: rgb(127 29 29 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(127 29 29 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-red-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(69 10 10 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(69 10 10 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-red-950\/50:is(.dark *) {
  --tw-gradient-from: rgb(69 10 10 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(69 10 10 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-violet-900\/10:is(.dark *) {
  --tw-gradient-from: rgb(76 29 149 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(76 29 149 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-violet-900\/20:is(.dark *) {
  --tw-gradient-from: rgb(76 29 149 / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(76 29 149 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-violet-900\/30:is(.dark *) {
  --tw-gradient-from: rgb(76 29 149 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(76 29 149 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-violet-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(46 16 101 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(46 16 101 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:to-\[var\(--color-bg-inverse\)\]:is(.dark *) {
  --tw-gradient-to: var(--color-bg-inverse) var(--tw-gradient-to-position);
}

.dark\:to-amber-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(120 53 15 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-background:is(.dark *) {
  --tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position);
}

.dark\:to-blue-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(30 58 138 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-blue-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(30 58 138 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-cyan-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(22 78 99 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-cyan-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(8 51 68 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-emerald-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(6 78 59 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-emerald-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(6 78 59 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-green-950\/20:is(.dark *) {
  --tw-gradient-to: rgb(5 46 22 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-green-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(5 46 22 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-indigo-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(49 46 129 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-indigo-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(49 46 129 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-indigo-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(30 27 75 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-orange-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(124 45 18 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-orange-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(124 45 18 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-orange-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(67 20 7 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-pink-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(131 24 67 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-purple-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(88 28 135 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-purple-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(88 28 135 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-purple-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(59 7 100 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-red-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(127 29 29 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-sky-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(8 47 73 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-teal-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(19 78 74 / 0.2) var(--tw-gradient-to-position);
}

.dark\:to-teal-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(19 78 74 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-teal-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(4 47 46 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-violet-900\/30:is(.dark *) {
  --tw-gradient-to: rgb(76 29 149 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-violet-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(46 16 101 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-yellow-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(113 63 18 / 0.2) var(--tw-gradient-to-position);
}

.dark\:\!text-\[var\(--color-feedback-success\)\]:is(.dark *) {
  color: var(--color-feedback-success) !important;
}

.dark\:text-\[var\(--color-accent\)\]:is(.dark *) {
  color: var(--color-accent);
}

.dark\:text-\[var\(--color-action-primary\)\]:is(.dark *) {
  color: #D6B16A;
  color: var(--color-action-primary);
}

.dark\:text-\[var\(--color-brand-gold\)\]:is(.dark *) {
  color: #FFD500;
  color: var(--color-brand-gold);
}

.dark\:text-\[var\(--color-feedback-danger\)\]:is(.dark *) {
  color: var(--color-feedback-danger);
}

.dark\:text-\[var\(--color-feedback-info\)\]:is(.dark *) {
  color: var(--color-feedback-info);
}

.dark\:text-\[var\(--color-feedback-success\)\]:is(.dark *) {
  color: var(--color-feedback-success);
}

.dark\:text-\[var\(--color-feedback-warning\)\]:is(.dark *) {
  color: var(--color-feedback-warning);
}

.dark\:text-\[var\(--color-text-inverse\)\]:is(.dark *) {
  color: var(--color-text-inverse);
}

.dark\:text-\[var\(--color-text-muted\)\]:is(.dark *) {
  color: var(--color-text-muted);
}

.dark\:text-\[var\(--color-text-primary\)\]:is(.dark *) {
  color: var(--color-text-primary);
}

.dark\:text-\[var\(--color-text-secondary\)\]:is(.dark *) {
  color: var(--color-text-secondary);
}

.dark\:text-amber-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / 1);
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.dark\:text-black:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / 1);
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}

.dark\:text-blue-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / 1);
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.dark\:text-cyan-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(34 211 238 / 1);
  color: rgb(34 211 238 / var(--tw-text-opacity, 1));
}

.dark\:text-emerald-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / 1);
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.dark\:text-orange-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 186 116 / 1);
  color: rgb(253 186 116 / var(--tw-text-opacity, 1));
}

.dark\:text-orange-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 146 60 / 1);
  color: rgb(251 146 60 / var(--tw-text-opacity, 1));
}

.dark\:text-red-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / 1);
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}

.dark\:text-violet-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(196 181 253 / 1);
  color: rgb(196 181 253 / var(--tw-text-opacity, 1));
}

.dark\:text-violet-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(167 139 250 / 1);
  color: rgb(167 139 250 / var(--tw-text-opacity, 1));
}

.dark\:shadow-black\/30:is(.dark *) {
  --tw-shadow-color: rgb(0 0 0 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}

.dark\:bg-gold:is(.dark *) {
    background-color: var(--color-accent-primary);
  }

.dark\:placeholder\:text-\[var\(--color-text-muted\)\]:is(.dark *)::placeholder {
  color: var(--color-text-muted);
}

.dark\:focus-within\:bg-\[var\(--color-bg-inverse\)\]:focus-within:is(.dark *) {
  background-color: var(--color-bg-inverse);
}

.dark\:hover\:border-\[var\(--color-action-primary\)\]:hover:is(.dark *) {
  border-color: #D6B16A;
  border-color: var(--color-action-primary);
}

.dark\:hover\:border-\[var\(--color-action-primary-hover\)\]:hover:is(.dark *) {
  border-color: #C29E57;
  border-color: var(--color-action-primary-hover);
}

.dark\:hover\:border-\[var\(--color-border-default\)\]:hover:is(.dark *) {
  border-color: var(--color-border-default);
}

.dark\:hover\:border-\[var\(--color-feedback-warning\)\]:hover:is(.dark *) {
  border-color: var(--color-feedback-warning);
}

.dark\:hover\:bg-\[var\(--color-bg-elevated\)\]:hover:is(.dark *) {
  background-color: var(--color-bg-elevated);
}

.dark\:hover\:bg-\[var\(--color-bg-inverse\)\]:hover:is(.dark *) {
  background-color: var(--color-bg-inverse);
}

.dark\:hover\:bg-\[var\(--color-bg-muted\)\]:hover:is(.dark *) {
  background-color: var(--color-bg-muted);
}

.dark\:hover\:bg-\[var\(--color-feedback-danger-dark\)\]:hover:is(.dark *) {
  background-color: var(--color-feedback-danger-dark);
}

.dark\:hover\:bg-\[var\(--color-feedback-warning-dark\)\]:hover:is(.dark *) {
  background-color: var(--color-feedback-warning-dark);
}

.dark\:hover\:bg-black\/20:hover:is(.dark *) {
  background-color: rgb(0 0 0 / 0.2);
}

.dark\:hover\:bg-violet-900\/10:hover:is(.dark *) {
  background-color: rgb(76 29 149 / 0.1);
}

.dark\:hover\:text-\[var\(--color-accent\)\]:hover:is(.dark *) {
  color: var(--color-accent);
}

.dark\:hover\:text-\[var\(--color-feedback-danger\)\]:hover:is(.dark *) {
  color: var(--color-feedback-danger);
}

.dark\:hover\:text-\[var\(--color-feedback-info\)\]:hover:is(.dark *) {
  color: var(--color-feedback-info);
}

.dark\:hover\:text-\[var\(--color-text-inverse\)\]:hover:is(.dark *) {
  color: var(--color-text-inverse);
}

.dark\:hover\:text-\[var\(--color-text-muted\)\]:hover:is(.dark *) {
  color: var(--color-text-muted);
}

@media (min-width: 420px) {
  .xs\:block {
    display: block;
  }
  .xs\:hidden {
    display: none;
  }
  .xs\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xs\:flex-col {
    flex-direction: column;
  }
  .xs\:justify-center {
    justify-content: center;
  }
  .xs\:text-center {
    text-align: center;
  }
  .xs\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 640px) {
  .sm\:bottom-0 {
    bottom: 0px;
  }
  .sm\:right-0 {
    right: 0px;
  }
  .sm\:right-4 {
    right: 1rem;
  }
  .sm\:top-4 {
    top: 1rem;
  }
  .sm\:top-auto {
    top: auto;
  }
  .sm\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .sm\:col-span-3 {
    grid-column: span 3 / span 3;
  }
  .sm\:mb-5 {
    margin-bottom: 1.25rem;
  }
  .sm\:ml-0 {
    margin-left: 0px;
  }
  .sm\:ml-auto {
    margin-left: auto;
  }
  .sm\:mr-2 {
    margin-right: 0.5rem;
  }
  .sm\:mt-0 {
    margin-top: 0px;
  }
  .sm\:mt-6 {
    margin-top: 1.5rem;
  }
  .sm\:block {
    display: block;
  }
  .sm\:inline {
    display: inline;
  }
  .sm\:flex {
    display: flex;
  }
  .sm\:inline-flex {
    display: inline-flex;
  }
  .sm\:hidden {
    display: none;
  }
  .sm\:h-10 {
    height: 2.5rem;
  }
  .sm\:h-20 {
    height: 5rem;
  }
  .sm\:h-5 {
    height: 1.25rem;
  }
  .sm\:h-8 {
    height: 2rem;
  }
  .sm\:max-h-96 {
    max-height: 24rem;
  }
  .sm\:w-10 {
    width: 2.5rem;
  }
  .sm\:w-20 {
    width: 5rem;
  }
  .sm\:w-40 {
    width: 10rem;
  }
  .sm\:w-5 {
    width: 1.25rem;
  }
  .sm\:w-64 {
    width: 16rem;
  }
  .sm\:w-8 {
    width: 2rem;
  }
  .sm\:w-96 {
    width: 24rem;
  }
  .sm\:w-\[140px\] {
    width: 140px;
  }
  .sm\:w-\[160px\] {
    width: 160px;
  }
  .sm\:w-auto {
    width: auto;
  }
  .sm\:max-w-2xl {
    max-width: 42rem;
  }
  .sm\:max-w-4xl {
    max-width: 56rem;
  }
  .sm\:max-w-\[600px\] {
    max-width: 600px;
  }
  .sm\:max-w-lg {
    max-width: 32rem;
  }
  .sm\:max-w-md {
    max-width: 28rem;
  }
  .sm\:max-w-none {
    max-width: none;
  }
  .sm\:max-w-sm {
    max-width: 24rem;
  }
  .sm\:max-w-xl {
    max-width: 36rem;
  }
  .sm\:flex-1 {
    flex: 1 1;
  }
  .sm\:flex-none {
    flex: none;
  }
  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .sm\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .sm\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .sm\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .sm\:flex-row {
    flex-direction: row;
  }
  .sm\:flex-col {
    flex-direction: column;
  }
  .sm\:flex-nowrap {
    flex-wrap: nowrap;
  }
  .sm\:items-start {
    align-items: flex-start;
  }
  .sm\:items-center {
    align-items: center;
  }
  .sm\:justify-start {
    justify-content: flex-start;
  }
  .sm\:justify-end {
    justify-content: flex-end;
  }
  .sm\:justify-between {
    justify-content: space-between;
  }
  .sm\:gap-0 {
    gap: 0px;
  }
  .sm\:gap-2 {
    gap: 0.5rem;
  }
  .sm\:gap-2\.5 {
    gap: 0.625rem;
  }
  .sm\:gap-3 {
    gap: 0.75rem;
  }
  .sm\:gap-4 {
    gap: 1rem;
  }
  .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }
  .sm\:space-x-4 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(1rem * var(--tw-space-x-reverse));
    margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
  }
  .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0px * var(--tw-space-y-reverse));
  }
  .sm\:rounded-lg {
    border-radius: var(--radius-lg);
    border-radius: var(--radius);
  }
  .sm\:p-10 {
    padding: 2.5rem;
  }
  .sm\:p-12 {
    padding: 3rem;
  }
  .sm\:p-3 {
    padding: 0.75rem;
  }
  .sm\:p-5 {
    padding: 1.25rem;
  }
  .sm\:p-6 {
    padding: 1.5rem;
  }
  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .sm\:py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .sm\:py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
  .sm\:text-left {
    text-align: left;
  }
  .sm\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .sm\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }
  .sm\:text-\[10px\] {
    font-size: 10px;
  }
  .sm\:text-\[13px\] {
    font-size: 13px;
  }
  .sm\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }
  .sm\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state="open"] {
    --tw-enter-translate-y: 100%;
  }
}

@media (min-width: 768px) {
  .md\:pointer-events-none {
    pointer-events: none;
  }
  .md\:absolute {
    position: absolute;
  }
  .md\:relative {
    position: relative;
  }
  .md\:z-auto {
    z-index: auto;
  }
  .md\:col-span-1 {
    grid-column: span 1 / span 1;
  }
  .md\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .md\:col-span-3 {
    grid-column: span 3 / span 3;
  }
  .md\:mx-0 {
    margin-left: 0px;
    margin-right: 0px;
  }
  .md\:ml-2 {
    margin-left: 0.5rem;
  }
  .md\:block {
    display: block;
  }
  .md\:inline {
    display: inline;
  }
  .md\:flex {
    display: flex;
  }
  .md\:table-cell {
    display: table-cell;
  }
  .md\:grid {
    display: grid;
  }
  .md\:hidden {
    display: none;
  }
  .md\:h-10 {
    height: 2.5rem;
  }
  .md\:h-12 {
    height: 3rem;
  }
  .md\:h-16 {
    height: 4rem;
  }
  .md\:h-5 {
    height: 1.25rem;
  }
  .md\:h-6 {
    height: 1.5rem;
  }
  .md\:h-\[calc\(100vh-80px\)\] {
    height: calc(100vh - 80px);
  }
  .md\:w-1\/2 {
    width: 50%;
  }
  .md\:w-10 {
    width: 2.5rem;
  }
  .md\:w-12 {
    width: 3rem;
  }
  .md\:w-16 {
    width: 4rem;
  }
  .md\:w-32 {
    width: 8rem;
  }
  .md\:w-48 {
    width: 12rem;
  }
  .md\:w-5 {
    width: 1.25rem;
  }
  .md\:w-6 {
    width: 1.5rem;
  }
  .md\:w-80 {
    width: 20rem;
  }
  .md\:w-96 {
    width: 24rem;
  }
  .md\:w-\[var\(--radix-navigation-menu-viewport-width\)\] {
    width: var(--radix-navigation-menu-viewport-width);
  }
  .md\:w-auto {
    width: auto;
  }
  .md\:w-full {
    width: 100%;
  }
  .md\:min-w-0 {
    min-width: 0px;
  }
  .md\:max-w-\[420px\] {
    max-width: 420px;
  }
  .md\:max-w-\[50\%\] {
    max-width: 50%;
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .md\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .md\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .md\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .md\:flex-row {
    flex-direction: row;
  }
  .md\:flex-col {
    flex-direction: column;
  }
  .md\:items-start {
    align-items: flex-start;
  }
  .md\:items-end {
    align-items: flex-end;
  }
  .md\:items-center {
    align-items: center;
  }
  .md\:justify-between {
    justify-content: space-between;
  }
  .md\:gap-3 {
    gap: 0.75rem;
  }
  .md\:gap-4 {
    gap: 1rem;
  }
  .md\:gap-5 {
    gap: 1.25rem;
  }
  .md\:space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
  }
  .md\:divide-x > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-x-reverse: 0;
    border-right-width: calc(1px * var(--tw-divide-x-reverse));
    border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
  }
  .md\:divide-y-0 > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
  }
  .md\:bg-black\/30 {
    background-color: rgb(0 0 0 / 0.3);
  }
  .md\:bg-transparent {
    background-color: transparent;
  }
  .md\:p-10 {
    padding: 2.5rem;
  }
  .md\:p-2 {
    padding: 0.5rem;
  }
  .md\:p-4 {
    padding: 1rem;
  }
  .md\:p-5 {
    padding: 1.25rem;
  }
  .md\:p-6 {
    padding: 1.5rem;
  }
  .md\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }
  .md\:px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .md\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .md\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }
  .md\:py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  .md\:py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
  .md\:pb-4 {
    padding-bottom: 1rem;
  }
  .md\:pl-4 {
    padding-left: 1rem;
  }
  .md\:pt-6 {
    padding-top: 1.5rem;
  }
  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .md\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }
  .md\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
  .md\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .md\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
  .md\:text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
  }
  .md\:opacity-100 {
    opacity: 1;
  }
}

@media (min-width: 1024px) {
  .lg\:bottom-4 {
    bottom: 1rem;
  }
  .lg\:bottom-6 {
    bottom: 1.5rem;
  }
  .lg\:col-span-1 {
    grid-column: span 1 / span 1;
  }
  .lg\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .lg\:col-span-3 {
    grid-column: span 3 / span 3;
  }
  .lg\:col-span-4 {
    grid-column: span 4 / span 4;
  }
  .lg\:col-span-8 {
    grid-column: span 8 / span 8;
  }
  .lg\:block {
    display: block;
  }
  .lg\:inline {
    display: inline;
  }
  .lg\:flex {
    display: flex;
  }
  .lg\:inline-flex {
    display: inline-flex;
  }
  .lg\:table-cell {
    display: table-cell;
  }
  .lg\:inline-grid {
    display: inline-grid;
  }
  .lg\:hidden {
    display: none;
  }
  .lg\:h-10 {
    height: 2.5rem;
  }
  .lg\:h-14 {
    height: 3.5rem;
  }
  .lg\:h-6 {
    height: 1.5rem;
  }
  .lg\:h-\[600px\] {
    height: 600px;
  }
  .lg\:min-h-\[120px\] {
    min-height: 120px;
  }
  .lg\:w-10 {
    width: 2.5rem;
  }
  .lg\:w-14 {
    width: 3.5rem;
  }
  .lg\:w-6 {
    width: 1.5rem;
  }
  .lg\:w-auto {
    width: auto;
  }
  .lg\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .lg\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .lg\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .lg\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .lg\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .lg\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_auto\] {
    grid-template-columns: minmax(0,1fr) auto;
  }
  .lg\:flex-row {
    flex-direction: row;
  }
  .lg\:items-start {
    align-items: flex-start;
  }
  .lg\:items-center {
    align-items: center;
  }
  .lg\:justify-start {
    justify-content: flex-start;
  }
  .lg\:justify-between {
    justify-content: space-between;
  }
  .lg\:gap-3 {
    gap: 0.75rem;
  }
  .lg\:gap-4 {
    gap: 1rem;
  }
  .lg\:p-5 {
    padding: 1.25rem;
  }
  .lg\:p-6 {
    padding: 1.5rem;
  }
  .lg\:p-8 {
    padding: 2rem;
  }
  .lg\:px-16 {
    padding-left: 4rem;
    padding-right: 4rem;
  }
  .lg\:px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .lg\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .lg\:pl-3 {
    padding-left: 0.75rem;
  }
  .lg\:text-left {
    text-align: left;
  }
  .lg\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }
  .lg\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }
  .lg\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

@media (min-width: 1280px) {
  .xl\:col-span-1 {
    grid-column: span 1 / span 1;
  }
  .xl\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .xl\:col-span-3 {
    grid-column: span 3 / span 3;
  }
  .xl\:inline {
    display: inline;
  }
  .xl\:table-cell {
    display: table-cell;
  }
  .xl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xl\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}

@media (min-width: 1536px) {
  .\32xl\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
}

@media print {
  .print\:rounded-none {
    border-radius: 0px;
  }
  .print\:border-0 {
    border-width: 0px;
  }
  .print\:text-black {
    --tw-text-opacity: 1;
    color: rgb(0 0 0 / 1);
    color: rgb(0 0 0 / var(--tw-text-opacity, 1));
  }
  .print\:shadow-none {
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
}

.\[\&\+div\]\:text-xs+div {
  font-size: 0.75rem;
  line-height: 1rem;
}

.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb {
  height: 1rem;
}

.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb {
  width: 1rem;
}

.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb {
  border-radius: 9999px;
}

.\[\&\:\:-moz-range-thumb\]\:border-0::-moz-range-thumb {
  border-width: 0px;
}

.\[\&\:\:-moz-range-thumb\]\:bg-\[var\(--color-action-primary\)\]::-moz-range-thumb {
  background-color: #D6B16A;
  background-color: var(--color-action-primary);
}

.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb {
  height: 1rem;
}

.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb {
  width: 1rem;
}

.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb {
  appearance: none;
}

.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb {
  border-radius: 9999px;
}

.\[\&\:\:-webkit-slider-thumb\]\:bg-\[var\(--color-action-primary\)\]::-webkit-slider-thumb {
  background-color: #D6B16A;
  background-color: var(--color-action-primary);
}

.\[\&\:\:-webkit-slider-thumb\]\:shadow-sm::-webkit-slider-thumb {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: 0 0 #0000, 0 0 #0000, var(--tw-shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.\[\&\:\:-webkit-slider-thumb\]\:transition-transform::-webkit-slider-thumb {
  -webkit-transition-property: transform;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.\[\&\:\:-webkit-slider-thumb\]\:duration-150::-webkit-slider-thumb {
  transition-duration: 150ms;
  animation-duration: 150ms;
}

.\[\&\:\:-webkit-slider-thumb\]\:hover\:scale-110:hover::-webkit-slider-thumb {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end) {
  border-top-right-radius: calc(var(--radius-lg) - 2px);
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius-lg) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start) {
  border-top-left-radius: calc(var(--radius-lg) - 2px);
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius-lg) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]) {
  border-radius: calc(var(--radius-lg) - 2px);
  border-radius: calc(var(--radius) - 2px);
}

.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]) {
  background-color: hsl(var(--color-accent-primary));
  background-color: hsl(var(--accent));
}

.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child {
  border-top-left-radius: calc(var(--radius-lg) - 2px);
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius-lg) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child {
  border-top-right-radius: calc(var(--radius-lg) - 2px);
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius-lg) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside) {
  background-color: hsl(var(--color-accent-primary) / 0.5);
  background-color: hsl(var(--accent) / 0.5);
}

.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end) {
  border-top-right-radius: calc(var(--radius-lg) - 2px);
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius-lg) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]) {
  padding-right: 0px;
}

.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox] {
  --tw-translate-y: 2px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&\>span\]\:line-clamp-1>span {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div {
  --tw-translate-y: -3px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&\>svg\]\:absolute>svg {
  position: absolute;
}

.\[\&\>svg\]\:left-4>svg {
  left: 1rem;
}

.\[\&\>svg\]\:top-4>svg {
  top: 1rem;
}

.\[\&\>svg\]\:size-4>svg {
  width: 1rem;
  height: 1rem;
}

.\[\&\>svg\]\:h-3\.5>svg {
  height: 0.875rem;
}

.\[\&\>svg\]\:w-3\.5>svg {
  width: 0.875rem;
}

.\[\&\>svg\]\:shrink-0>svg {
  flex-shrink: 0;
}

.\[\&\>svg\]\:text-\[var\(--color-accent-gold\)\]>svg {
  color: var(--color-accent-gold);
}

.\[\&\>svg\]\:text-\[var\(--color-feedback-danger\)\]>svg {
  color: var(--color-feedback-danger);
}

.\[\&\>svg\]\:text-\[var\(--color-feedback-info\)\]>svg {
  color: var(--color-feedback-info);
}

.\[\&\>svg\]\:text-\[var\(--color-feedback-success\)\]>svg {
  color: var(--color-feedback-success);
}

.\[\&\>svg\]\:text-\[var\(--color-feedback-warning\)\]>svg {
  color: var(--color-feedback-warning);
}

.\[\&\>svg\]\:text-\[var\(--color-text-secondary\)\]>svg {
  color: var(--color-text-secondary);
}

.\[\&\>svg\~\*\]\:pl-8>svg~* {
  padding-left: 2rem;
}

.\[\&\>tr\]\:last\:border-b-0:last-child>tr {
  border-bottom-width: 0px;
}

.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading] {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading] {
  font-size: 0.75rem;
  line-height: 1rem;
}

.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading] {
  font-weight: 500;
}

.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading] {
  color: hsl(var(--color-text-muted));
  color: hsl(var(--muted-foreground));
}

.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden]) ~[cmdk-group] {
  padding-top: 0px;
}

.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg {
  height: 1.25rem;
}

.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg {
  width: 1.25rem;
}

.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input] {
  height: 3rem;
}

.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item] {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg {
  height: 1.25rem;
}

.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg {
  width: 1.25rem;
}

.\[\&_p\]\:leading-relaxed p {
  line-height: 1.625;
}

.\[\&_svg\]\:pointer-events-none svg {
  pointer-events: none;
}

.\[\&_svg\]\:size-4 svg {
  width: 1rem;
  height: 1rem;
}

.\[\&_svg\]\:h-6 svg {
  height: 1.5rem;
}

.\[\&_svg\]\:h-8 svg {
  height: 2rem;
}

.\[\&_svg\]\:h-\[var\(--size-icon-lg\)\] svg {
  height: var(--size-icon-lg);
}

.\[\&_svg\]\:h-\[var\(--size-icon-md\)\] svg {
  height: var(--size-icon-md);
}

.\[\&_svg\]\:h-\[var\(--size-icon-sm\)\] svg {
  height: var(--size-icon-sm);
}

.\[\&_svg\]\:w-6 svg {
  width: 1.5rem;
}

.\[\&_svg\]\:w-8 svg {
  width: 2rem;
}

.\[\&_svg\]\:w-\[var\(--size-icon-lg\)\] svg {
  width: var(--size-icon-lg);
}

.\[\&_svg\]\:w-\[var\(--size-icon-md\)\] svg {
  width: var(--size-icon-md);
}

.\[\&_svg\]\:w-\[var\(--size-icon-sm\)\] svg {
  width: var(--size-icon-sm);
}

.\[\&_svg\]\:shrink-0 svg {
  flex-shrink: 0;
}

.\[\&_svg\]\:text-\[var\(--color-text-muted\)\] svg {
  color: var(--color-text-muted);
}

@media (min-width: 640px) {
  .sm\:\[\&_svg\]\:h-10 svg {
    height: 2.5rem;
  }
  .sm\:\[\&_svg\]\:w-10 svg {
    width: 2.5rem;
  }
}

.\[\&_tr\:last-child\]\:border-0 tr:last-child {
  border-width: 0px;
}

.\[\&_tr\]\:border-b tr {
  border-bottom-width: 1px;
}

.\[\&_tr\]\:border-\[var\(--color-border-default\)\] tr {
  border-color: var(--color-border-default);
}


/* Così - Theme Variables Foundation
 * ====================================
 * Default variables + glassmorphism styles.
 * These are the fallback values; the engine overrides them dynamically.
 */

:root {
  /* Background — Light glassmorphe (bleu pastel → blanc) */
  --theme-bg-from: #e6f0ff;
  --theme-bg-via: #f0f4ff;
  --theme-bg-to: #f7f8ff;

  /* Accent — Blue Premium */
  --theme-accent: #1A9FB5;
  --theme-accent-light: #6B8AF7;
  --theme-accent-dark: #3B5DE5;
  --theme-accent-soft: rgba(12, 130, 152, 0.10);
  --theme-accent-muted: #8B9FD9;
  --theme-accent-rgb: 12, 130, 152;
  --theme-accent-contrast: #FFFFFF;

  /* Text — Dark on light */
  --theme-text-primary: #1A1A1A;
  --theme-text-secondary: rgba(26, 26, 26, 0.60);
  --theme-text-tertiary: rgba(26, 26, 26, 0.35);
  --theme-text-muted: rgba(26, 26, 26, 0.35);
  --theme-text-on-accent: #FFFFFF;

  /* Glass — Subtle (cards) */
  --theme-glass-bg: rgba(255, 255, 255, 0.65);
  --theme-glass-border: rgba(0, 0, 0, 0.08);
  --theme-glass-shadow: 0 4px 30px rgba(0, 0, 0, 0.08);
  --theme-glass-hover: rgba(255, 255, 255, 0.80);
  --theme-glass-blur: 20px;

  /* Glass — Pronounced (sidebar, modals) */
  --theme-glass-panel-bg: rgba(255, 255, 255, 0.85);
  --theme-glass-panel-border: rgba(0, 0, 0, 0.12);
  --theme-glass-panel-shadow: 0 16px 48px rgba(0, 0, 0, 0.10);
  --theme-glass-panel-blur: 24px;

  /* Buttons */
  --theme-btn-primary-bg: #1A9FB5;
  --theme-btn-primary-hover: #5A7DF7;
  --theme-btn-primary-active: #3B5DE5;
  --theme-btn-primary-text: #FFFFFF;
  --theme-btn-secondary-bg: rgba(255, 255, 255, 0.50);
  --theme-btn-secondary-text: #1A1A1A;
  --theme-btn-secondary-hover: rgba(255, 255, 255, 0.70);
  --theme-btn-secondary-border: rgba(0, 0, 0, 0.10);
  --theme-btn-ghost-text: #4B5563;
  --theme-btn-ghost-hover-bg: rgba(0, 0, 0, 0.04);

  /* Inputs */
  --theme-input-bg: rgba(255, 255, 255, 0.70);
  --theme-input-border: rgba(0, 0, 0, 0.12);
  --theme-input-border-focus: #1A9FB5;
  --theme-input-text: #1A1A1A;
  --theme-input-placeholder: rgba(26, 26, 26, 0.35);
  --theme-input-bg-disabled: rgba(0, 0, 0, 0.03);
  --theme-input-text-disabled: rgba(26, 26, 26, 0.25);

  /* Semantic (fixed) */
  --theme-success: #10B981;
  --theme-warning: #F59E0B;
  --theme-danger: #EF4444;

  /* Borders & Glow */
  --theme-accent-border: rgba(12, 130, 152, 0.20);
  --theme-accent-glow: rgba(12, 130, 152, 0.25);

  /* States */
  --theme-hover-bg: rgba(0, 0, 0, 0.03);
  --theme-active-bg: rgba(12, 130, 152, 0.10);
  --theme-focus-ring: rgba(12, 130, 152, 0.40);
  --theme-selected-bg: rgba(12, 130, 152, 0.08);

  /* Sidebar */
  --theme-sidebar-bg: rgba(255, 255, 255, 0.60);
  --theme-sidebar-item-active: rgba(12, 130, 152, 0.12);
  --theme-sidebar-item-hover: rgba(0, 0, 0, 0.03);

  /* Misc */
  --theme-divider: rgba(0, 0, 0, 0.06);
  --theme-scrollbar-thumb: rgba(0, 0, 0, 0.12);
  --theme-scrollbar-track: transparent;

  /* Color picker - FIXED */
  --picker-panel-bg: #FFFFFF;
  --picker-panel-border: #E5E7EB;
  --picker-panel-shadow: rgba(0, 0, 0, 0.1);
  --picker-text: #1F2937;
  --picker-text-secondary: #6B7280;
  --picker-input-bg: #F9FAFB;
  --picker-input-border: #D1D5DB;
  --picker-input-focus: #1A9FB5;
}

/* Glassmorphism utility classes */

/* Subtle glass — for cards, content panels */
.glass-card {
  backdrop-filter: blur(20px);
  backdrop-filter: blur(var(--theme-glass-blur, 12px));
  -webkit-backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--theme-glass-blur, 12px));
  background: rgba(255, 255, 255, 0.65);
  background: var(--theme-glass-bg);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border: 1px solid var(--theme-glass-border);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.08);
  box-shadow: var(--theme-glass-shadow);
  border-radius: 1.5rem;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.3s ease;
}

.glass-card:hover {
  background: rgba(255, 255, 255, 0.80);
  background: var(--theme-glass-hover);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.08);
  box-shadow: var(--theme-glass-shadow), 0 0 0 1px var(--theme-glass-border);
}

/* Pronounced glass — for sidebar, modals, overlays */
.glass-panel {
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--theme-glass-panel-blur, 24px));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--theme-glass-panel-blur, 24px));
  background: rgba(255, 255, 255, 0.85);
  background: var(--theme-glass-panel-bg);
  border: 1px solid rgba(0, 0, 0, 0.12);
  border: 1px solid var(--theme-glass-panel-border);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.10);
  box-shadow: var(--theme-glass-panel-shadow);
  transition: background 0.2s ease, border-color 0.2s ease;
}

/* Background gradient */
.theme-bg {
  background: linear-gradient(135deg, #e6f0ff, #f0f4ff, #f7f8ff);
  background: linear-gradient(135deg, var(--theme-bg-from), var(--theme-bg-via), var(--theme-bg-to));
  min-height: 100vh;
}

/* Themed scrollbar — Glass aesthetic */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.12) transparent;
  scrollbar-color: var(--theme-scrollbar-thumb) var(--theme-scrollbar-track);
}
::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 99px;
  -webkit-transition: background 0.3s ease;
  transition: background 0.3s ease;
}
*:hover > ::-webkit-scrollbar-thumb,
::-webkit-scrollbar-thumb:hover,
*:hover::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.12);
  background: var(--theme-scrollbar-thumb);
}
::-webkit-scrollbar-thumb:active {
  background: rgba(12, 130, 152, 0.4);
  background: rgba(var(--theme-accent-rgb), 0.4);
}
::-webkit-scrollbar-corner {
  background: transparent;
}

/* Smooth scroll globally */
html {
  scroll-behavior: smooth;
}
.overflow-auto, .overflow-y-auto, .overflow-x-auto {
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

/* ──────────────────────────────────────────────────
   BRANDAI CARBON FIBER IDENTITY
   Mode clair : texte avec texture fibre de carbone
   Mode sombre : background fibre de carbone
   Toujours : bleu électrique + gris métal brossé
   ────────────────────────────────────────────────── */

/* === CARBON FIBER TEXT — DÉSACTIVÉ GLOBALEMENT (audit #136, #186, #297) ===
   L'effet `background-clip: text` appliqué globalement à h1/h2/h3/p/span/div
   cassait les boutons, dégradait la lisibilité et imposait des dizaines de
   `-webkit-text-fill-color` overrides à travers toute la cascade CSS.
   Désormais opt-in via la classe `.carbon-text` uniquement (réservée au
   `.display-hero` du marketing). Ne PAS l'utiliser sur du texte courant. */
.carbon-text {
  background:
    repeating-linear-gradient(
      0deg,
      rgba(26, 26, 46, 0.94) 0px,
      rgba(26, 26, 46, 0.86) 1px,
      rgba(26, 26, 46, 0.96) 1px,
      rgba(26, 26, 46, 0.94) 2px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(26, 26, 46, 0.94) 0px,
      rgba(26, 26, 46, 0.86) 1px,
      rgba(26, 26, 46, 0.96) 1px,
      rgba(26, 26, 46, 0.94) 2px
    );
  background-size: 2px 2px;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* === CARBON FIBER BACKGROUND (mode sombre) === */
[data-theme="dark"] .theme-bg,
.dark .theme-bg {
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.018) 0px,
      rgba(255, 255, 255, 0.018) 1px,
      transparent 1px,
      transparent 3px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.018) 0px,
      rgba(255, 255, 255, 0.018) 1px,
      transparent 1px,
      transparent 3px
    ),
    linear-gradient(135deg, #0B0F19 0%, #0d0d1a 35%, #1a1a2e 100%);
  min-height: 100vh;
}

/* Dark mode sidebar + panels : deeper carbon */
[data-theme="dark"] .glass-panel,
.dark .glass-panel {
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.012) 0px,
      rgba(255, 255, 255, 0.012) 1px,
      transparent 1px,
      transparent 3px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.012) 0px,
      rgba(255, 255, 255, 0.012) 1px,
      transparent 1px,
      transparent 3px
    ),
    rgba(10, 16, 32, 0.88);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

/* === BLEU ÉLECTRIQUE — rappels partout === */
:root {
  --brand.ai-electric-blue: #1A9FB5;
  --brand.ai-deep-blue: #0C8298;
  --brand.ai-chrome: #C0C0C0;
  --brand.ai-brushed-metal: linear-gradient(
    180deg,
    #D4D4D8 0%,
    #A1A1AA 25%,
    #C0C0C0 50%,
    #A1A1AA 75%,
    #D4D4D8 100%
  );
  --brand.ai-brushed-metal-subtle: linear-gradient(
    180deg,
    rgba(192, 192, 192, 0.15) 0%,
    rgba(161, 161, 170, 0.08) 50%,
    rgba(192, 192, 192, 0.15) 100%
  );
}

/* Electric blue accent glow on interactive elements */
[data-theme="dark"] .glass-card:hover,
.dark .glass-card:hover {
  border-color: rgba(0, 163, 255, 0.25);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.3),
    0 0 20px rgba(0, 163, 255, 0.08),
    inset 0 1px 0 rgba(0, 163, 255, 0.1);
}

/* Light mode: electric blue accent on cards */
[data-theme="light"] .glass-card:hover,
:root:not([data-theme="dark"]):not(.dark) .glass-card:hover {
  border-color: rgba(12, 130, 152, 0.2);
  box-shadow:
    0 4px 16px rgba(12, 130, 152, 0.08),
    0 0 0 1px rgba(12, 130, 152, 0.06);
}

/* === GRIS MÉTAL BROSSÉ — bordures et séparateurs === */
[data-theme="dark"] .theme-divider,
.dark .theme-divider,
[data-theme="dark"] hr,
.dark hr {
  border-color: transparent;
  background: linear-gradient(
    180deg,
    rgba(192, 192, 192, 0.15) 0%,
    rgba(161, 161, 170, 0.08) 50%,
    rgba(192, 192, 192, 0.15) 100%
  );
  background: var(--brand.ai-brushed-metal-subtle);
  height: 1px;
  border: none;
}

[data-theme="light"] .theme-divider,
[data-theme="light"] hr {
  border-color: transparent;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(192, 192, 192, 0.4) 20%,
    rgba(192, 192, 192, 0.6) 50%,
    rgba(192, 192, 192, 0.4) 80%,
    transparent 100%
  );
  height: 1px;
  border: none;
}

/* === MÉTAL BROSSÉ — boutons secondaires === */
[data-theme="dark"] .btn-chrome,
.dark .btn-chrome {
  background: linear-gradient(180deg, #3f3f46 0%, #27272a 100%);
  border: 1px solid rgba(192, 192, 192, 0.2);
  color: #e4e4e7;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

[data-theme="light"] .btn-chrome {
  background: linear-gradient(
    180deg,
    #D4D4D8 0%,
    #A1A1AA 25%,
    #C0C0C0 50%,
    #A1A1AA 75%,
    #D4D4D8 100%
  );
  background: var(--brand.ai-brushed-metal);
  border: 1px solid rgba(192, 192, 192, 0.5);
  color: #1a1a2e;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

.btn-chrome:hover {
  filter: brightness(1.1);
  box-shadow: 0 2px 8px rgba(0, 163, 255, 0.15);
}

/* Carbon fiber texture — applied when data-theme="carbon" */
[data-theme="carbon"] {
  --theme-primary: #1A9FB5; --theme-secondary: #0C8298; --theme-accent: #818CF8;
  --theme-gradient-start: #0C8298; --theme-gradient-mid: #1A9FB5; --theme-gradient-end: #1A237E;
  --theme-glow: rgba(12, 130, 152,0.30);
  --nebula-color-1: rgba(12, 130, 152,0.08); --nebula-color-2: rgba(61,90,254,0.06); --nebula-color-3: rgba(129,140,248,0.04);
  --accent-primary: #1A9FB5; --accent-primary-hover: #0C8298; --accent-secondary: #1A237E;
  --theme-light-bg: #F5F5F5; --theme-light-surface: #FAFAFA; --theme-light-text: #0F172A;
  --theme-dark-bg: #0A0A0F; --theme-dark-surface: #14141A; --theme-dark-text: #E2E8F0;
}
[data-theme="carbon"] .theme-bg {
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.015) 0px,
      rgba(255, 255, 255, 0.015) 1px,
      transparent 1px,
      transparent 4px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.015) 0px,
      rgba(255, 255, 255, 0.015) 1px,
      transparent 1px,
      transparent 4px
    ),
    linear-gradient(135deg, #e6f0ff, #f0f4ff, #f7f8ff);
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.015) 0px,
      rgba(255, 255, 255, 0.015) 1px,
      transparent 1px,
      transparent 4px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.015) 0px,
      rgba(255, 255, 255, 0.015) 1px,
      transparent 1px,
      transparent 4px
    ),
    linear-gradient(135deg, var(--theme-bg-from), var(--theme-bg-via), var(--theme-bg-to));
  min-height: 100vh;
}

/* Matte-black — subtle noise overlay via micro-gradient */
[data-theme="matte-black"] {
  --theme-primary: #90A4AE; --theme-secondary: #607D8B; --theme-accent: #B0BEC5;
  --theme-gradient-start: #607D8B; --theme-gradient-mid: #78909C; --theme-gradient-end: #37474F;
  --theme-glow: rgba(144,164,174,0.25);
  --nebula-color-1: rgba(144,164,174,0.08); --nebula-color-2: rgba(96,125,139,0.06); --nebula-color-3: rgba(176,190,197,0.04);
  --accent-primary: #90A4AE; --accent-primary-hover: #78909C; --accent-secondary: #455A64;
  --theme-light-bg: #F5F5F5; --theme-light-surface: #FAFAFA; --theme-light-text: #212121;
  --theme-dark-bg: #0A0A0A; --theme-dark-surface: #141414; --theme-dark-text: #E0E0E0;
}
[data-theme="matte-black"] .theme-bg {
  background:
    repeating-linear-gradient(
      45deg,
      rgba(255, 255, 255, 0.008) 0px,
      transparent 2px,
      transparent 4px
    ),
    linear-gradient(135deg, #e6f0ff, #f0f4ff, #f7f8ff);
  background:
    repeating-linear-gradient(
      45deg,
      rgba(255, 255, 255, 0.008) 0px,
      transparent 2px,
      transparent 4px
    ),
    linear-gradient(135deg, var(--theme-bg-from), var(--theme-bg-via), var(--theme-bg-to));
  min-height: 100vh;
}

/* ──────────────────────────────────────────────────
   GLOBAL THEME UTILITY CLASSES
   These apply theme colors to elements globally,
   so even components with isDark ternaries fallback
   to themed colors.
   ────────────────────────────────────────────────── */

/* Base text colors */
.theme-text { color: #1A1A1A; color: var(--theme-text-primary); }
.theme-text-secondary { color: rgba(26, 26, 26, 0.60); color: var(--theme-text-secondary); }
.theme-text-muted { color: rgba(26, 26, 26, 0.35); color: var(--theme-text-muted); }
.theme-text-accent { color: #1A9FB5; color: var(--theme-accent); }

/* Glass surfaces — subtle level */
.theme-glass {
  background: rgba(255, 255, 255, 0.65);
  background: var(--theme-glass-bg);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border: 1px solid var(--theme-glass-border);
  backdrop-filter: blur(20px);
  backdrop-filter: blur(var(--theme-glass-blur, 12px));
  -webkit-backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--theme-glass-blur, 12px));
}

/* Glass surfaces — pronounced level */
.theme-glass-strong {
  background: rgba(255, 255, 255, 0.85);
  background: var(--theme-glass-panel-bg);
  border: 1px solid rgba(0, 0, 0, 0.12);
  border: 1px solid var(--theme-glass-panel-border);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.10);
  box-shadow: var(--theme-glass-panel-shadow);
  backdrop-filter: blur(24px);
  backdrop-filter: blur(var(--theme-glass-panel-blur, 24px));
  -webkit-backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(var(--theme-glass-panel-blur, 24px));
}

/* Accent surfaces */
.theme-accent-bg { background: #1A9FB5; background: var(--theme-accent); color: #FFFFFF; color: var(--theme-accent-contrast); }
.theme-accent-soft { background: rgba(12, 130, 152, 0.10); background: var(--theme-accent-soft); }

/* Input auto-theming */
.theme-input {
  background: rgba(255, 255, 255, 0.70);
  background: var(--theme-input-bg);
  border: 1px solid rgba(0, 0, 0, 0.12);
  border: 1px solid var(--theme-input-border);
  color: #1A1A1A;
  color: var(--theme-input-text);
}
.theme-input:focus { border-color: #1A9FB5; border-color: var(--theme-input-border-focus); }

/* Button theming */
.theme-btn-primary {
  background: #1A9FB5;
  background: var(--theme-btn-primary-bg);
  color: #FFFFFF;
  color: var(--theme-btn-primary-text);
}
.theme-btn-secondary {
  background: rgba(255, 255, 255, 0.50);
  background: var(--theme-btn-secondary-bg);
  color: #1A1A1A;
  color: var(--theme-btn-secondary-text);
  border: 1px solid rgba(0, 0, 0, 0.10);
  border: 1px solid var(--theme-btn-secondary-border);
}
.theme-btn-ghost {
  background: transparent;
  color: #4B5563;
  color: var(--theme-btn-ghost-text);
}
.theme-btn-ghost:hover {
  background: rgba(0, 0, 0, 0.04);
  background: var(--theme-btn-ghost-hover-bg);
}

/* Dividers */
.theme-divider { border-color: rgba(0, 0, 0, 0.06); border-color: var(--theme-divider); }
.theme-border { border-color: rgba(0, 0, 0, 0.08); border-color: var(--theme-glass-border); }

/* Hover row */
.theme-hover-row:hover {
  background: rgba(0, 0, 0, 0.03);
  background: var(--theme-hover-bg);
}

/* Card hover shimmer */
.card-hover-premium {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card-hover-premium:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 48px 0 4px 30px rgba(0, 0, 0, 0.08);
  box-shadow: 0 16px 48px var(--theme-glass-shadow);
}

/* Stat card hover */
.stat-card-hover {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.stat-card-hover:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 48px 0 4px 30px rgba(0, 0, 0, 0.08);
  box-shadow: 0 16px 48px var(--theme-glass-shadow);
}

/* Hover shine effect for glass cards */
.hover-shine {
  background: linear-gradient(135deg, transparent 30%, rgba(255,255,255,0.02) 50%, transparent 70%);
  transition: background 0.5s ease;
}
.card-hover-premium:hover .hover-shine {
  background: linear-gradient(135deg, transparent 30%, rgba(255,255,255,0.06) 50%, transparent 70%);
}

/* ═══════════════════════════════════════
   RTL (Right-to-Left) Support — Arabic
   ═══════════════════════════════════════ */
[dir="rtl"] {
  direction: rtl;
  text-align: right;
}

[dir="rtl"] .flex {
  flex-direction: row-reverse;
}

[dir="rtl"] input,
[dir="rtl"] textarea,
[dir="rtl"] select {
  text-align: right;
}

[dir="rtl"] .pl-10 { padding-left: 0; padding-right: 2.5rem; }
[dir="rtl"] .pl-9 { padding-left: 0; padding-right: 2.25rem; }
[dir="rtl"] .pr-4 { padding-right: 0; padding-left: 1rem; }
[dir="rtl"] .ml-3 { margin-left: 0; margin-right: 0.75rem; }
[dir="rtl"] .mr-2 { margin-right: 0; margin-left: 0.5rem; }

[dir="rtl"] .left-3 { left: auto; right: 0.75rem; }
[dir="rtl"] .right-3 { right: auto; left: 0.75rem; }

/**
 * Così ULTRA — Next-Gen Design System
 * ========================================
 * 350+ composants, animations et styles
 * 
 * SOMMAIRE :
 * 1. VARIABLES ÉTENDUES
 * 2. ANIMATIONS (100+)
 * 3. BOUTONS (30+ styles)
 * 4. CARDS (25+ styles)
 * 5. DROPDOWNS & SELECTS
 * 6. SWITCHES & TOGGLES
 * 7. NAVIGATION
 * 8. ONGLETS & TABS
 * 9. FLOATING NAV SMART
 * 10. MICRO-INTERACTIONS
 * 11. ÉTATS & FEEDBACK
 * 12. UTILITAIRES
 */

/* =============================================
   1. VARIABLES ÉTENDUES
   ============================================= */
:root {
  /* --- Mapping from theme-variables.css --- */
  --glass-bg: var(--theme-glass-bg, rgba(255, 255, 255, 0.05));
  --glass-panel-bg: var(--theme-glass-panel-bg, rgba(0, 0, 0, 0.40));
  --glass-panel-border: var(--theme-glass-panel-border, rgba(255, 255, 255, 0.12));
  --glass-blur: var(--theme-glass-blur, 12px);
  
  --text-primary: var(--theme-text-primary, #F1F5F9);
  --text-secondary: var(--theme-text-secondary, rgba(241, 245, 249, 0.60));
  --text-muted: var(--theme-text-muted, rgba(241, 245, 249, 0.35));
  
  --surface-hover: var(--theme-hover-bg, rgba(255, 255, 255, 0.05));
  --surface-active: var(--theme-active-bg, rgba(139, 92, 246, 0.15));
  --surface-secondary: var(--theme-glass-bg, rgba(255, 255, 255, 0.05));
  
  --divider: var(--theme-divider, rgba(255, 255, 255, 0.06));
  
  --accent-primary: var(--theme-primary, var(--theme-accent, #1A9FB5));
  --accent-primary-hover: var(--theme-primary-hover, #0C8298);
  --accent-secondary: var(--theme-secondary, #005EA6);
  --accent-success: var(--theme-success, #10B981);
  --accent-warning: var(--theme-warning, #F59E0B);
  --accent-danger: var(--theme-danger, #EF4444);
  
  --input-bg: var(--theme-input-bg, rgba(255, 255, 255, 0.04));
  --input-border: var(--theme-input-border, rgba(255, 255, 255, 0.10));
  --input-focus-border: var(--theme-input-border-focus, #1A9FB5);
  --input-focus-glow: 0 0 0 3px rgba(0, 163, 255, 0.2);
  
  --shadow-card: 0 8px 32px rgba(0, 0, 0, 0.2);
  --shadow-dropdown: 0 16px 48px rgba(0, 0, 0, 0.3);
  
  --badge-success-bg: rgba(16, 185, 129, 0.15);
  --badge-success-text: #10B981;
  --badge-warning-bg: rgba(245, 158, 11, 0.15);
  --badge-warning-text: #F59E0B;
  --badge-critical-bg: rgba(239, 68, 68, 0.15);
  --badge-critical-text: #EF4444;
  --badge-info-bg: rgba(0, 163, 255, 0.15);
  --badge-info-text: #1A9FB5;

  /* --- Extended Color Palettes --- */
  --ocean-100: #E6F4FF;
  --ocean-200: #BAE0FF;
  --ocean-300: #7CC4FA;
  --ocean-400: #1A9FB5;
  --ocean-500: #1677FF;
  --ocean-600: #0958D9;
  --ocean-700: #003EB3;
  --ocean-800: #002C8C;
  --ocean-900: #001D66;

  --aurora-100: #F0E6FF;
  --aurora-200: #D3B8FF;
  --aurora-300: #B388FF;
  --aurora-400: #9254DE;
  --aurora-500: #722ED1;
  --aurora-600: #531DAB;
  --aurora-700: #391085;
  --aurora-800: #22075E;
  --aurora-900: #120338;

  --sunset-100: #FFF2E8;
  --sunset-200: #FFD8BF;
  --sunset-300: #FFBB96;
  --sunset-400: #FF9C6E;
  --sunset-500: #FF7A45;
  --sunset-600: #FA541C;
  --sunset-700: #D4380D;
  --sunset-800: #AD2102;
  --sunset-900: #871400;

  --forest-100: #F6FFED;
  --forest-200: #D9F7BE;
  --forest-300: #B7EB8F;
  --forest-400: #95DE64;
  --forest-500: #73D13D;
  --forest-600: #52C41A;
  --forest-700: #389E0D;
  --forest-800: #237804;
  --forest-900: #135200;

  --neon-cyan: #00FFFF;
  --neon-magenta: #FF00FF;
  --neon-yellow: #FFFF00;
  --neon-green: #39FF14;
  --neon-pink: #FF1493;
  --neon-blue: #00BFFF;

  /* --- Animation Timings --- */
  --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-sharp: cubic-bezier(0.4, 0, 0.6, 1);
  --ease-elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6);

  --duration-instant: 100ms;
  --duration-fast: 200ms;
  --duration-normal: 300ms;
  --duration-slow: 500ms;
  --duration-slower: 800ms;
  --duration-slowest: 1200ms;

  /* --- Z-Index Scale --- */
  --z-dropdown: 1000;
  --z-sticky: 1100;
  --z-fixed: 1200;
  --z-modal-backdrop: 1300;
  --z-modal: 1400;
  --z-popover: 1500;
  --z-tooltip: 1600;
  --z-toast: 1700;
  --z-floating-nav: 1800;
  --z-max: 9999;

  /* --- Spacing Scale (8px grid) --- */
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  /* --- Border Radius Scale --- */
  --radius-none: 0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-3xl: 32px;
  --radius-full: 9999px;

  /* --- Floating Nav Variables --- */
  --floating-nav-size: 56px;
  --floating-nav-expanded: 320px;
  --floating-nav-bg: rgba(15, 25, 45, 0.95);
  --floating-nav-blur: 20px;
  --floating-nav-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.1);
}

/* =============================================
   2. ANIMATIONS (100+)
   ============================================= */

/* --- Entrées/Sorties --- */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-20px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes scaleOut {
  from { opacity: 1; transform: scale(1); }
  to { opacity: 0; transform: scale(0.9); }
}

@keyframes slideInUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

@keyframes slideInDown {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}

@keyframes slideInLeft {
  from { transform: translateX(-100%); }
  to { transform: translateX(0); }
}

@keyframes slideInRight {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

@keyframes flip3D {
  from { opacity: 0; transform: perspective(400px) rotateY(90deg); }
  to { opacity: 1; transform: perspective(400px) rotateY(0); }
}

@keyframes blurIn {
  from { opacity: 0; filter: blur(10px); }
  to { opacity: 1; filter: blur(0); }
}

@keyframes blurOut {
  from { opacity: 1; filter: blur(0); }
  to { opacity: 0; filter: blur(10px); }
}

@keyframes staggerFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes morphIn {
  0% { opacity: 0; transform: scale(0.8) rotate(-5deg); border-radius: 50%; }
  100% { opacity: 1; transform: scale(1) rotate(0); border-radius: 12px; border-radius: var(--radius-lg); }
}

@keyframes typewriter {
  from { width: 0; }
  to { width: 100%; }
}

@keyframes counterRoll {
  from { transform: translateY(-100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* --- Continues/Loop --- */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(12, 130, 152, 0.4); }
  50% { box-shadow: 0 0 0 15px rgba(12, 130, 152, 0); }
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes levitate {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(1deg); }
  75% { transform: translateY(-5px) rotate(-1deg); }
}

@keyframes rotateSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes shine {
  0% { left: -100%; }
  100% { left: 200%; }
}

@keyframes wave {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.5); }
}

@keyframes breathing {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

@keyframes particleFloat {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(10px, -10px) rotate(90deg); }
  50% { transform: translate(0, -20px) rotate(180deg); }
  75% { transform: translate(-10px, -10px) rotate(270deg); }
}

/* --- Interactions --- */
@keyframes bounce {
  0%, 20%, 53%, 100% { transform: translateY(0); }
  40% { transform: translateY(-20px); }
  70% { transform: translateY(-10px); }
  90% { transform: translateY(-4px); }
}

@keyframes elasticBounce {
  0% { transform: scale(1); }
  30% { transform: scale(1.15); }
  50% { transform: scale(0.95); }
  70% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

@keyframes jellyWobble {
  0% { transform: scale(1, 1); }
  25% { transform: scale(0.9, 1.1); }
  50% { transform: scale(1.1, 0.9); }
  75% { transform: scale(0.95, 1.05); }
  100% { transform: scale(1, 1); }
}

@keyframes squeeze {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(0.95); }
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
  20%, 40%, 60%, 80% { transform: translateX(5px); }
}

@keyframes headShake {
  0% { transform: translateX(0); }
  6.5% { transform: translateX(-6px) rotateY(-9deg); }
  18.5% { transform: translateX(5px) rotateY(7deg); }
  31.5% { transform: translateX(-3px) rotateY(-5deg); }
  43.5% { transform: translateX(2px) rotateY(3deg); }
  50% { transform: translateX(0); }
}

@keyframes ripple {
  0% { transform: scale(0); opacity: 1; }
  100% { transform: scale(4); opacity: 0; }
}

@keyframes confettiBurst {
  0% { transform: scale(0) rotate(0deg); opacity: 1; }
  50% { transform: scale(1.2) rotate(180deg); opacity: 1; }
  100% { transform: scale(0) rotate(360deg); opacity: 0; }
}

@keyframes firework {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { opacity: 1; }
  100% { transform: translateY(-100px) scale(0); opacity: 0; }
}

@keyframes successCheck {
  0% { stroke-dashoffset: 100; }
  100% { stroke-dashoffset: 0; }
}

@keyframes errorX {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

/* --- Skeletons & Loaders --- */
@keyframes skeletonPulse {
  0%, 100% { background-color: rgba(255, 255, 255, 0.05); }
  50% { background-color: rgba(255, 255, 255, 0.1); }
}

@keyframes skeletonShimmer {
  0% { background-position: -200px 0; }
  100% { background-position: calc(200px + 100%) 0; }
}

@keyframes spinnerRotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes dotBounce {
  0%, 80%, 100% { transform: scale(0); }
  40% { transform: scale(1); }
}

/* --- Floating Nav Specific --- */
@keyframes floatingNavPulse {
  0%, 100% { box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.1), 0 0 0 0 rgba(12, 130, 152, 0.3); box-shadow: var(--floating-nav-shadow), 0 0 0 0 rgba(12, 130, 152, 0.3); }
  50% { box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.1), 0 0 0 8px rgba(12, 130, 152, 0); box-shadow: var(--floating-nav-shadow), 0 0 0 8px rgba(12, 130, 152, 0); }
}

@keyframes floatingNavExpand {
  from { 
    width: 56px; 
    width: var(--floating-nav-size);
    height: 56px;
    height: var(--floating-nav-size);
    border-radius: 9999px;
    border-radius: var(--radius-full);
  }
  to { 
    width: 320px; 
    width: var(--floating-nav-expanded);
    height: auto;
    border-radius: 24px;
    border-radius: var(--radius-2xl);
  }
}

@keyframes radialReveal {
  from { transform: scale(0) rotate(-180deg); opacity: 0; }
  to { transform: scale(1) rotate(0deg); opacity: 1; }
}

@keyframes arcReveal {
  from { transform: translateY(20px) scale(0.8); opacity: 0; }
  to { transform: translateY(0) scale(1); opacity: 1; }
}

@keyframes fanSpread {
  from { transform: rotate(0deg) translateX(0); opacity: 0; }
  to { transform: rotate(var(--fan-angle)) translateX(var(--fan-distance)); opacity: 1; }
}

@keyframes spiralIn {
  from { transform: rotate(-720deg) scale(0); opacity: 0; }
  to { transform: rotate(0deg) scale(1); opacity: 1; }
}

@keyframes glitchReveal {
  0% { clip-path: inset(50% 0 50% 0); transform: skewX(0deg); }
  20% { clip-path: inset(20% 0 30% 0); transform: skewX(-5deg); }
  40% { clip-path: inset(70% 0 10% 0); transform: skewX(5deg); }
  60% { clip-path: inset(10% 0 60% 0); transform: skewX(-3deg); }
  80% { clip-path: inset(40% 0 20% 0); transform: skewX(2deg); }
  100% { clip-path: inset(0 0 0 0); transform: skewX(0deg); }
}

/* =============================================
   3. BOUTONS (30+ styles)
   ============================================= */

/* --- Base Button --- */
.btn-ultra {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  gap: var(--space-2);
  padding: 12px 20px;
  padding: var(--space-3) var(--space-5);
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.5;
  border: none;
  cursor: pointer;
  overflow: hidden;
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: all var(--duration-fast) var(--ease-smooth);
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
          user-select: none;
}

.btn-ultra:focus-visible {
  outline: 2px solid #1A9FB5;
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

.btn-ultra:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* --- Formes --- */
.btn-pill { border-radius: 9999px; border-radius: var(--radius-full); }
.btn-sharp { border-radius: 0; }
.btn-rounded { border-radius: 8px; border-radius: var(--radius-md); }
.btn-asymmetric { border-radius: 0 16px 0 16px; border-radius: 0 var(--radius-xl) 0 var(--radius-xl); }
.btn-notched { 
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
}

/* --- Styles Primaire --- */
.btn-primary-ultra {
  background: linear-gradient(135deg, #1A9FB5, #0958D9);
  background: linear-gradient(135deg, var(--accent-primary), var(--ocean-600));
  color: white;
  box-shadow: 0 4px 15px rgba(12, 130, 152, 0.3);
}

.btn-primary-ultra:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(12, 130, 152, 0.4);
}

.btn-primary-ultra:active {
  transform: translateY(0);
}

/* --- Gradient Shift --- */
.btn-gradient-shift {
  background: linear-gradient(90deg, #722ED1, #1677FF, #722ED1);
  background: linear-gradient(90deg, var(--aurora-500), var(--ocean-500), var(--aurora-500));
  background-size: 200% 100%;
  color: white;
  border-radius: 12px;
  border-radius: var(--radius-lg);
}

.btn-gradient-shift:hover {
  background-position: 100% 0;
}

/* --- Border Glow --- */
.btn-border-glow {
  background: transparent;
  color: #F1F5F9;
  color: var(--text-primary);
  border: 2px solid #1A9FB5;
  border: 2px solid var(--accent-primary);
  border-radius: 12px;
  border-radius: var(--radius-lg);
}

.btn-border-glow:hover {
  box-shadow: 0 0 20px #1A9FB5, inset 0 0 20px rgba(12, 130, 152, 0.1);
  box-shadow: 0 0 20px var(--accent-primary), inset 0 0 20px rgba(12, 130, 152, 0.1);
}

/* --- Fill Sweep --- */
.btn-fill-sweep {
  background: transparent;
  color: #F1F5F9;
  color: var(--text-primary);
  border: 2px solid #1A9FB5;
  border: 2px solid var(--accent-primary);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  z-index: 1;
}

.btn-fill-sweep::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #1A9FB5;
  background: var(--accent-primary);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform var(--duration-normal) var(--ease-smooth);
  z-index: -1;
}

.btn-fill-sweep:hover::before {
  transform: scaleX(1);
}

.btn-fill-sweep:hover {
  color: white;
}

/* --- Outline to Fill --- */
.btn-outline-fill {
  background: transparent;
  color: #1A9FB5;
  color: var(--accent-primary);
  border: 2px solid #1A9FB5;
  border: 2px solid var(--accent-primary);
  border-radius: 12px;
  border-radius: var(--radius-lg);
}

.btn-outline-fill:hover {
  background: #1A9FB5;
  background: var(--accent-primary);
  color: white;
}

/* --- Neon Glow --- */
.btn-neon {
  background: transparent;
  color: #00FFFF;
  color: var(--neon-cyan);
  border: 2px solid #00FFFF;
  border: 2px solid var(--neon-cyan);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  text-shadow: 0 0 10px #00FFFF;
  text-shadow: 0 0 10px var(--neon-cyan);
}

.btn-neon:hover {
  background: #00FFFF;
  background: var(--neon-cyan);
  color: #000;
  box-shadow: 
    0 0 10px #00FFFF,
    0 0 20px #00FFFF,
    0 0 40px #00FFFF;
  box-shadow: 
    0 0 10px var(--neon-cyan),
    0 0 20px var(--neon-cyan),
    0 0 40px var(--neon-cyan);
  text-shadow: none;
}

/* --- Glassmorphic --- */
.btn-glass {
  background: rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  color: #F1F5F9;
  color: var(--text-primary);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  border-radius: var(--radius-lg);
}

.btn-glass:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.2);
}

/* --- Neumorphic --- */
.btn-neumorphic {
  background: rgba(255, 255, 255, 0.05);
  background: var(--glass-bg);
  color: #F1F5F9;
  color: var(--text-primary);
  border: none;
  border-radius: 16px;
  border-radius: var(--radius-xl);
  box-shadow: 
    8px 8px 16px rgba(0, 0, 0, 0.4),
    -8px -8px 16px rgba(255, 255, 255, 0.05);
}

.btn-neumorphic:hover {
  box-shadow: 
    4px 4px 8px rgba(0, 0, 0, 0.4),
    -4px -4px 8px rgba(255, 255, 255, 0.05);
}

.btn-neumorphic:active {
  box-shadow: 
    inset 4px 4px 8px rgba(0, 0, 0, 0.4),
    inset -4px -4px 8px rgba(255, 255, 255, 0.05);
}

/* --- Cyberpunk --- */
.btn-cyberpunk {
  background: linear-gradient(135deg, #FF00FF, #00FFFF);
  background: linear-gradient(135deg, var(--neon-magenta), var(--neon-cyan));
  color: white;
  border: none;
  border-radius: 4px;
  border-radius: var(--radius-sm);
  clip-path: polygon(0 10%, 10% 0, 100% 0, 100% 90%, 90% 100%, 0 100%);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 700;
}

.btn-cyberpunk:hover {
  animation: glitchReveal 0.3s ease;
}

/* --- Liquid Fill --- */
.btn-liquid {
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  color: #F1F5F9;
  color: var(--text-primary);
  border: 2px solid #1A9FB5;
  border: 2px solid var(--accent-primary);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.btn-liquid::before {
  content: '';
  position: absolute;
  bottom: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: #1A9FB5;
  background: var(--accent-primary);
  border-radius: 40%;
  transition: transform 500ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform var(--duration-slow) var(--ease-smooth);
  transform: translateY(100%) rotate(0deg);
}

.btn-liquid:hover::before {
  transform: translateY(50%) rotate(180deg);
}

.btn-liquid span {
  position: relative;
  z-index: 1;
}

.btn-liquid:hover {
  color: white;
}

/* --- Magnetic Button (requires JS) --- */
.btn-magnetic {
  background: #1A9FB5;
  background: var(--accent-primary);
  color: white;
  border: none;
  border-radius: 12px;
  border-radius: var(--radius-lg);
  transition: transform 200ms cubic-bezier(0.68, -0.6, 0.32, 1.6);
  transition: transform var(--duration-fast) var(--ease-elastic);
}

/* --- Icon Rotate --- */
.btn-icon-rotate {
  background: #1A9FB5;
  background: var(--accent-primary);
  color: white;
  border: none;
  border-radius: 12px;
  border-radius: var(--radius-lg);
}

.btn-icon-rotate .btn-icon {
  transition: transform 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform var(--duration-normal) var(--ease-spring);
}

.btn-icon-rotate:hover .btn-icon {
  transform: rotate(360deg);
}

/* --- Text Slide --- */
.btn-text-slide {
  background: #1A9FB5;
  background: var(--accent-primary);
  color: white;
  border: none;
  border-radius: 12px;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.btn-text-slide .btn-text,
.btn-text-slide .btn-icon-alt {
  transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform var(--duration-normal) var(--ease-smooth);
}

.btn-text-slide .btn-icon-alt {
  position: absolute;
  transform: translateX(-100%);
}

.btn-text-slide:hover .btn-text {
  transform: translateX(100%);
}

.btn-text-slide:hover .btn-icon-alt {
  transform: translateX(0);
}

/* --- Loading State --- */
.btn-loading {
  color: transparent !important;
  pointer-events: none;
}

.btn-loading::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  border: 2px solid transparent;
  border-top-color: currentColor;
  border-radius: 50%;
  animation: spinnerRotate 0.8s linear infinite;
}

/* --- Success State --- */
.btn-success-state {
  background: #10B981 !important;
  background: var(--accent-success) !important;
}

/* --- Error State --- */
.btn-error-state {
  animation: shake 0.5s ease;
  background: #EF4444 !important;
  background: var(--accent-danger) !important;
}

/* --- Ripple Effect --- */
.btn-ripple {
  overflow: hidden;
}

.btn-ripple .ripple-effect {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transform: scale(0);
  animation: ripple 0.6s linear;
  pointer-events: none;
}

/* =============================================
   4. CARDS (25+ styles)
   ============================================= */

/* --- Base Card --- */
.card-ultra {
  position: relative;
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  border-radius: 16px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: all var(--duration-normal) var(--ease-smooth);
}

/* --- Minimal --- */
.card-minimal {
  background: transparent;
  border: none;
  padding: 16px;
  padding: var(--space-4);
}

/* --- Bordered --- */
.card-bordered {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  border-radius: 12px;
  border-radius: var(--radius-lg);
}

/* --- Elevated --- */
.card-elevated {
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: none;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  box-shadow: var(--shadow-card);
}

/* --- Floating --- */
.card-floating {
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  box-shadow: 
    0 20px 40px rgba(0, 0, 0, 0.3),
    0 0 0 1px rgba(255, 255, 255, 0.05);
}

/* --- Glassmorphic --- */
.card-glass {
  background: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
          backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* --- Gradient Border --- */
.card-gradient-border {
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: none;
  position: relative;
}

.card-gradient-border::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, #722ED1, #1677FF, #FF7A45);
  background: linear-gradient(135deg, var(--aurora-500), var(--ocean-500), var(--sunset-500));
  -webkit-mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  background-size: 300% 300%;
  animation: shimmer 4s linear infinite;
}

/* --- Spotlight --- */
.card-spotlight {
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  overflow: hidden;
}

.card-spotlight::before {
  content: '';
  position: absolute;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(12, 130, 152, 0.15), transparent 70%);
  opacity: 0;
  transition: opacity 200ms;
  transition: opacity var(--duration-fast);
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.card-spotlight:hover::before {
  opacity: 1;
}

/* --- Holographic --- */
.card-holographic {
  background: linear-gradient(
    135deg,
    rgba(255, 0, 128, 0.1),
    rgba(0, 255, 255, 0.1),
    rgba(255, 255, 0, 0.1),
    rgba(128, 0, 255, 0.1)
  );
  background-size: 400% 400%;
  animation: shimmer 8s ease infinite;
  border: 1px solid rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

/* --- Hover Effects --- */
.card-lift:hover {
  transform: translateY(-8px);
  box-shadow: 
    0 20px 40px rgba(0, 0, 0, 0.3),
    0 0 0 1px rgba(255, 255, 255, 0.1);
}

.card-tilt-3d {
  transform-style: preserve-3d;
  perspective: 1000px;
}

.card-expand-preview {
  transition: all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: all var(--duration-slow) var(--ease-spring);
}

.card-expand-preview:hover {
  transform: scale(1.05);
  z-index: 10;
}

.card-flip {
  transform-style: preserve-3d;
  transition: transform 500ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform var(--duration-slow) var(--ease-smooth);
}

.card-flip:hover {
  transform: rotateY(180deg);
}

.card-flip .card-front,
.card-flip .card-back {
  backface-visibility: hidden;
}

.card-flip .card-back {
  transform: rotateY(180deg);
  position: absolute;
  inset: 0;
}

/* =============================================
   5. DROPDOWNS & SELECTS
   ============================================= */

/* --- Base Dropdown --- */
.dropdown-ultra {
  position: relative;
  display: inline-block;
}

.dropdown-trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  gap: var(--space-2);
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  background: rgba(255, 255, 255, 0.04);
  background: var(--input-bg);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border: 1px solid var(--input-border);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  color: #F1F5F9;
  color: var(--text-primary);
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.dropdown-trigger:hover {
  border-color: #1A9FB5;
  border-color: var(--input-focus-border);
}

.dropdown-trigger:focus {
  outline: none;
  border-color: #1A9FB5;
  border-color: var(--input-focus-border);
  box-shadow: 0 0 0 3px rgba(0, 163, 255, 0.2);
  box-shadow: var(--input-focus-glow);
}

.dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  top: calc(100% + var(--space-2));
  left: 0;
  min-width: 200px;
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
          backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.3);
  box-shadow: var(--shadow-dropdown);
  z-index: 1000;
  z-index: var(--z-dropdown);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: all var(--duration-fast) var(--ease-smooth);
}

.dropdown-ultra.open .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dropdown-item {
  display: flex;
  align-items: center;
  gap: 12px;
  gap: var(--space-3);
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.dropdown-item:hover {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  color: #F1F5F9;
  color: var(--text-primary);
}

.dropdown-item.active {
  background: rgba(139, 92, 246, 0.15);
  background: var(--surface-active);
  color: #1A9FB5;
  color: var(--accent-primary);
}

/* --- Searchable --- */
.dropdown-searchable .dropdown-search {
  padding: 12px;
  padding: var(--space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
}

.dropdown-searchable .dropdown-search input {
  width: 100%;
  padding: 8px 12px;
  padding: var(--space-2) var(--space-3);
  background: rgba(255, 255, 255, 0.04);
  background: var(--input-bg);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border: 1px solid var(--input-border);
  border-radius: 8px;
  border-radius: var(--radius-md);
  color: #F1F5F9;
  color: var(--text-primary);
}

/* --- Multi-select Chips --- */
.dropdown-chips .selected-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  gap: var(--space-2);
  padding: 8px;
  padding: var(--space-2);
}

.dropdown-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  gap: var(--space-1);
  padding: 4px 8px;
  padding: var(--space-1) var(--space-2);
  background: rgba(139, 92, 246, 0.15);
  background: var(--surface-active);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  color: #1A9FB5;
  color: var(--accent-primary);
}

.dropdown-chip-remove {
  cursor: pointer;
  opacity: 0.7;
}

.dropdown-chip-remove:hover {
  opacity: 1;
}

/* --- Grouped --- */
.dropdown-group-label {
  padding: 8px 16px;
  padding: var(--space-2) var(--space-4);
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* =============================================
   6. SWITCHES & TOGGLES
   ============================================= */

/* --- Base Switch --- */
.switch-ultra {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.switch-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* --- iOS Style --- */
.switch-ios {
  width: 52px;
  height: 32px;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  transition: background 200ms;
  transition: background var(--duration-fast);
}

.switch-ios::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 28px;
  height: 28px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  transition: transform 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform var(--duration-fast) var(--ease-spring);
}

.switch-input:checked + .switch-ios {
  background: #1A9FB5;
  background: var(--accent-primary);
}

.switch-input:checked + .switch-ios::before {
  transform: translateX(20px);
}

/* --- Pill Toggle --- */
.switch-pill {
  display: flex;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  padding: 4px;
  padding: var(--space-1);
}

.switch-pill-option {
  padding: 8px 16px;
  padding: var(--space-2) var(--space-4);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  font-size: 0.875rem;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  transition: all 200ms;
  transition: all var(--duration-fast);
  cursor: pointer;
}

.switch-pill-option.active {
  background: #1A9FB5;
  background: var(--accent-primary);
  color: white;
}

/* --- Icon Swap (Dark/Light) --- */
.switch-icon-swap {
  width: 56px;
  height: 32px;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  position: relative;
}

.switch-icon-swap .icon-sun,
.switch-icon-swap .icon-moon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.switch-icon-swap .icon-sun {
  left: 6px;
  opacity: 1;
}

.switch-icon-swap .icon-moon {
  right: 6px;
  opacity: 0.5;
}

.switch-input:checked + .switch-icon-swap .icon-sun {
  opacity: 0.5;
}

.switch-input:checked + .switch-icon-swap .icon-moon {
  opacity: 1;
}

/* --- Glow Toggle --- */
.switch-glow {
  width: 52px;
  height: 32px;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.switch-input:checked + .switch-glow {
  background: #1A9FB5;
  background: var(--accent-primary);
  box-shadow: 0 0 20px #1A9FB5;
  box-shadow: 0 0 20px var(--accent-primary);
}

/* --- Bounce Toggle --- */
.switch-bounce::before {
  transition: transform 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
  transition: transform var(--duration-normal) var(--ease-bounce);
}

/* --- Segmented Control --- */
.segmented-control {
  display: flex;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  padding: 4px;
  padding: var(--space-1);
  position: relative;
}

.segmented-option {
  flex: 1 1;
  padding: 8px 16px;
  padding: var(--space-2) var(--space-4);
  text-align: center;
  font-size: 0.875rem;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  cursor: pointer;
  position: relative;
  z-index: 1;
  transition: color 200ms;
  transition: color var(--duration-fast);
}

.segmented-option.active {
  color: #F1F5F9;
  color: var(--text-primary);
}

.segmented-indicator {
  position: absolute;
  top: 4px;
  top: var(--space-1);
  bottom: 4px;
  bottom: var(--space-1);
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border-radius: 8px;
  border-radius: var(--radius-md);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  box-shadow: var(--shadow-card);
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: all var(--duration-fast) var(--ease-smooth);
}

/* --- Checkbox Animated --- */
.checkbox-ultra {
  position: relative;
  width: 22px;
  height: 22px;
  border: 2px solid rgba(255, 255, 255, 0.10);
  border: 2px solid var(--input-border);
  border-radius: 4px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.checkbox-ultra::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 10px;
  border: 2px solid white;
  border-top: none;
  border-left: none;
  transform: translate(-50%, -60%) rotate(45deg) scale(0);
  transition: transform 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform var(--duration-fast) var(--ease-spring);
}

.switch-input:checked + .checkbox-ultra {
  background: #1A9FB5;
  background: var(--accent-primary);
  border-color: #1A9FB5;
  border-color: var(--accent-primary);
}

.switch-input:checked + .checkbox-ultra::before {
  transform: translate(-50%, -60%) rotate(45deg) scale(1);
}

/* --- Radio Pulse --- */
.radio-ultra {
  position: relative;
  width: 22px;
  height: 22px;
  border: 2px solid rgba(255, 255, 255, 0.10);
  border: 2px solid var(--input-border);
  border-radius: 50%;
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.radio-ultra::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  background: #1A9FB5;
  background: var(--accent-primary);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform var(--duration-fast) var(--ease-spring);
}

.switch-input:checked + .radio-ultra {
  border-color: #1A9FB5;
  border-color: var(--accent-primary);
}

.switch-input:checked + .radio-ultra::before {
  transform: translate(-50%, -50%) scale(1);
  animation: pulseGlow 1s ease-out;
}

/* =============================================
   7. NAVIGATION (Tabs, Breadcrumbs, etc.)
   ============================================= */

/* --- Tab Underline --- */
.tabs-underline {
  display: flex;
  gap: 24px;
  gap: var(--space-6);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
  position: relative;
}

.tab-underline {
  padding: 12px 0;
  padding: var(--space-3) 0;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  cursor: pointer;
  position: relative;
  transition: color 200ms;
  transition: color var(--duration-fast);
}

.tab-underline:hover {
  color: #F1F5F9;
  color: var(--text-primary);
}

.tab-underline.active {
  color: #1A9FB5;
  color: var(--accent-primary);
}

.tab-underline.active::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: #1A9FB5;
  background: var(--accent-primary);
  border-radius: 9999px;
  border-radius: var(--radius-full);
}

.tabs-indicator {
  position: absolute;
  bottom: -1px;
  height: 2px;
  background: #1A9FB5;
  background: var(--accent-primary);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: all var(--duration-fast) var(--ease-smooth);
}

/* --- Tab Pills --- */
.tabs-pills {
  display: flex;
  gap: 8px;
  gap: var(--space-2);
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  padding: 4px;
  padding: var(--space-1);
  border-radius: 12px;
  border-radius: var(--radius-lg);
}

.tab-pill {
  padding: 8px 16px;
  padding: var(--space-2) var(--space-4);
  border-radius: 8px;
  border-radius: var(--radius-md);
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.tab-pill:hover {
  color: #F1F5F9;
  color: var(--text-primary);
}

.tab-pill.active {
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  color: #F1F5F9;
  color: var(--text-primary);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  box-shadow: var(--shadow-card);
}

/* --- Vertical Tabs --- */
.tabs-vertical {
  display: flex;
  flex-direction: column;
  gap: 4px;
  gap: var(--space-1);
  width: 200px;
}

.tab-vertical {
  display: flex;
  align-items: center;
  gap: 12px;
  gap: var(--space-3);
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.tab-vertical:hover {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  color: #F1F5F9;
  color: var(--text-primary);
}

.tab-vertical.active {
  background: rgba(139, 92, 246, 0.15);
  background: var(--surface-active);
  color: #1A9FB5;
  color: var(--accent-primary);
}

/* --- Scrollable Tabs --- */
.tabs-scrollable {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  gap: 8px;
  gap: var(--space-2);
  padding-bottom: 8px;
  padding-bottom: var(--space-2);
}

.tabs-scrollable::-webkit-scrollbar {
  display: none;
}

/* --- Breadcrumbs --- */
.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  gap: var(--space-2);
  font-size: 0.875rem;
}

.breadcrumb-item {
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
  cursor: pointer;
  transition: color 200ms;
  transition: color var(--duration-fast);
}

.breadcrumb-item:hover {
  color: #F1F5F9;
  color: var(--text-primary);
}

.breadcrumb-item.active {
  color: #F1F5F9;
  color: var(--text-primary);
  cursor: default;
}

.breadcrumb-separator {
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
}

/* --- Steps/Wizard --- */
.steps {
  display: flex;
  align-items: center;
}

.step {
  display: flex;
  align-items: center;
  gap: 12px;
  gap: var(--space-3);
}

.step-number {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-radius: 50%;
  font-weight: 600;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.step.active .step-number {
  background: #1A9FB5;
  background: var(--accent-primary);
  color: white;
}

.step.completed .step-number {
  background: #10B981;
  background: var(--accent-success);
  color: white;
}

.step-connector {
  flex: 1 1;
  height: 2px;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  margin: 0 12px;
  margin: 0 var(--space-3);
}

.step-connector.completed {
  background: #10B981;
  background: var(--accent-success);
}

/* =============================================
   8. ONGLETS HORIZONTAUX SCROLL DANS NAV
   ============================================= */

.nav-tabs-scroll {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  gap: 4px;
  gap: var(--space-1);
  padding: 8px;
  padding: var(--space-2);
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.nav-tabs-scroll::-webkit-scrollbar {
  display: none;
}

.nav-tab-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  gap: var(--space-2);
  padding: 8px 16px;
  padding: var(--space-2) var(--space-4);
  background: transparent;
  border: none;
  border-radius: 12px;
  border-radius: var(--radius-lg);
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  font-size: 0.875rem;
  white-space: nowrap;
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.nav-tab-item:hover {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  color: #F1F5F9;
  color: var(--text-primary);
}

.nav-tab-item.active {
  background: rgba(139, 92, 246, 0.15);
  background: var(--surface-active);
  color: #1A9FB5;
  color: var(--accent-primary);
}

.nav-scroll-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  border-radius: 50%;
  color: #F1F5F9;
  color: var(--text-primary);
  cursor: pointer;
  z-index: 10;
  opacity: 0;
  transition: opacity 200ms;
  transition: opacity var(--duration-fast);
}

.nav-scroll-container:hover .nav-scroll-btn {
  opacity: 1;
}

.nav-scroll-btn.left {
  left: 0;
}

.nav-scroll-btn.right {
  right: 0;
}

/* =============================================
   9. FLOATING NAV SMART
   ============================================= */

.floating-nav-container {
  z-index: 1800;
  z-index: var(--z-floating-nav);
  transition: none;
}

.floating-nav-container.dragging {
  transition: none;
}

/* --- Floating Button --- */
.floating-nav-btn {
  width: 56px;
  width: var(--floating-nav-size);
  height: 56px;
  height: var(--floating-nav-size);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  background: rgba(15, 25, 45, 0.95);
  background: var(--floating-nav-bg);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--floating-nav-blur));
          backdrop-filter: blur(var(--floating-nav-blur));
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.1);
  box-shadow: var(--floating-nav-shadow);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  transition: all 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: all var(--duration-fast) var(--ease-spring);
  color: #F1F5F9;
  color: var(--text-primary);
  position: relative;
}

.floating-nav-btn.grabbing {
  cursor: grabbing;
}

.floating-nav-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.1), 0 0 30px rgba(12, 130, 152, 0.3);
  box-shadow: var(--floating-nav-shadow), 0 0 30px rgba(12, 130, 152, 0.3);
}

.floating-nav-btn:active {
  transform: scale(1.05);
}

.floating-nav-btn.pulse {
  animation: floatingNavPulse 2s ease-in-out infinite;
}

.floating-nav-btn .icon {
  width: 24px;
  height: 24px;
  transition: transform 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform var(--duration-normal) var(--ease-spring);
}

.floating-nav-container.open .floating-nav-btn .icon {
  transform: rotate(90deg);
}

/* Drag indicator */
.floating-nav-btn .drag-indicator {
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.2s;
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
}

.floating-nav-btn:hover .drag-indicator {
  opacity: 0.6;
}

/* --- Menu Panel --- */
.floating-nav-menu {
  position: absolute;
  background: rgba(15, 25, 45, 0.95);
  background: var(--floating-nav-bg);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--floating-nav-blur));
          backdrop-filter: blur(var(--floating-nav-blur));
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 24px;
  border-radius: var(--radius-2xl);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.1);
  box-shadow: var(--floating-nav-shadow);
  padding: 16px;
  padding: var(--space-4);
  opacity: 0;
  visibility: hidden;
  transform: scale(0.9);
  transition: all 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: all var(--duration-normal) var(--ease-spring);
  min-width: 280px;
  max-height: 80vh;
  overflow-y: auto;
}

.floating-nav-container.open .floating-nav-menu {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

/* --- Smart Menu Alignment --- */
.floating-nav-menu.align-right {
  right: 0;
}

.floating-nav-menu.align-left {
  left: 0;
}

.floating-nav-menu.align-top {
  bottom: calc(56px + 12px);
  bottom: calc(var(--floating-nav-size) + var(--space-3));
  transform-origin: bottom center;
}

.floating-nav-menu.align-bottom {
  top: calc(56px + 12px);
  top: calc(var(--floating-nav-size) + var(--space-3));
  transform-origin: top center;
}

.floating-nav-menu.align-right.align-top {
  transform-origin: bottom right;
}

.floating-nav-menu.align-left.align-top {
  transform-origin: bottom left;
}

.floating-nav-menu.align-right.align-bottom {
  transform-origin: top right;
}

.floating-nav-menu.align-left.align-bottom {
  transform-origin: top left;
}

/* --- Menu Sections --- */
.floating-nav-section {
  margin-bottom: 16px;
  margin-bottom: var(--space-4);
}

.floating-nav-section:last-child {
  margin-bottom: 0;
}

.floating-nav-section-title {
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0 8px;
  padding: 0 var(--space-2);
  margin-bottom: 8px;
  margin-bottom: var(--space-2);
}

/* --- Menu Items --- */
.floating-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  gap: var(--space-3);
  padding: 12px 12px;
  padding: var(--space-3) var(--space-3);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.floating-nav-item:hover {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  color: #F1F5F9;
  color: var(--text-primary);
}

.floating-nav-item.active {
  background: rgba(139, 92, 246, 0.15);
  background: var(--surface-active);
  color: #1A9FB5;
  color: var(--accent-primary);
  border-left: 3px solid #1A9FB5;
  border-left: 3px solid var(--brand.ai-electric-blue, #1A9FB5);
  box-shadow: inset 4px 0 12px -4px rgba(0, 163, 255, 0.3);
}

.floating-nav-item .icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.floating-nav-item .label {
  flex: 1 1;
  font-size: 0.875rem;
}

.floating-nav-item .badge {
  background: #EF4444;
  background: var(--accent-danger);
  color: white;
  font-size: 0.625rem;
  padding: 2px 6px;
  border-radius: 9999px;
  border-radius: var(--radius-full);
}

/* --- Radial Menu --- */
.floating-nav-radial .floating-nav-menu {
  background: transparent;
  border: none;
  box-shadow: none;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.floating-nav-radial .floating-nav-item {
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(15, 25, 45, 0.95);
  background: var(--floating-nav-bg);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(var(--floating-nav-blur));
          backdrop-filter: blur(var(--floating-nav-blur));
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.1);
  box-shadow: var(--floating-nav-shadow);
  padding: 0;
  justify-content: center;
  opacity: 0;
  transform: scale(0);
  transition: all 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: all var(--duration-normal) var(--ease-spring);
}

.floating-nav-radial.open .floating-nav-item {
  opacity: 1;
  transform: scale(1);
}

.floating-nav-radial .floating-nav-item:nth-child(1) { --angle: -45deg; --distance: 80px; }
.floating-nav-radial .floating-nav-item:nth-child(2) { --angle: 0deg; --distance: 80px; }
.floating-nav-radial .floating-nav-item:nth-child(3) { --angle: 45deg; --distance: 80px; }
.floating-nav-radial .floating-nav-item:nth-child(4) { --angle: 90deg; --distance: 80px; }
.floating-nav-radial .floating-nav-item:nth-child(5) { --angle: 135deg; --distance: 80px; }

.floating-nav-radial.open .floating-nav-item {
  transform: rotate(var(--angle)) translateY(calc(var(--distance) * -1)) rotate(calc(var(--angle) * -1));
}

/* --- Search in Menu --- */
.floating-nav-search {
  padding: 8px;
  padding: var(--space-2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
  margin-bottom: 12px;
  margin-bottom: var(--space-3);
}

.floating-nav-search input {
  width: 100%;
  padding: 8px 12px;
  padding: var(--space-2) var(--space-3);
  background: rgba(255, 255, 255, 0.04);
  background: var(--input-bg);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border: 1px solid var(--input-border);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  color: #F1F5F9;
  color: var(--text-primary);
  font-size: 0.875rem;
}

.floating-nav-search input:focus {
  outline: none;
  border-color: #1A9FB5;
  border-color: var(--input-focus-border);
  box-shadow: 0 0 0 3px rgba(0, 163, 255, 0.2);
  box-shadow: var(--input-focus-glow);
}

/* --- Quick Actions --- */
.floating-nav-quick-actions {
  display: flex;
  gap: 8px;
  gap: var(--space-2);
  padding: 12px;
  padding: var(--space-3);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-top: 1px solid var(--divider);
  margin-top: 12px;
  margin-top: var(--space-3);
}

.floating-nav-quick-action {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  gap: var(--space-1);
  padding: 8px;
  padding: var(--space-2);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.floating-nav-quick-action:hover {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
}

.floating-nav-quick-action .icon {
  width: 20px;
  height: 20px;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
}

.floating-nav-quick-action .label {
  font-size: 0.625rem;
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
}

/* =============================================
   10. MICRO-INTERACTIONS
   ============================================= */

/* --- Hover Lift --- */
.hover-lift {
  transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform var(--duration-fast) var(--ease-smooth),
              box-shadow var(--duration-fast) var(--ease-smooth);
}

.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);
}

/* --- Hover Glow --- */
.hover-glow {
  transition: box-shadow 200ms;
  transition: box-shadow var(--duration-fast);
}

.hover-glow:hover {
  box-shadow: 0 0 30px rgba(12, 130, 152, 0.3);
}

/* --- Hover Scale --- */
.hover-scale {
  transition: transform 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform var(--duration-fast) var(--ease-spring);
}

.hover-scale:hover {
  transform: scale(1.05);
}

/* --- Click Feedback --- */
.click-shrink:active {
  transform: scale(0.97);
}

.click-bounce:active {
  animation: elasticBounce 0.4s ease;
}

/* --- Focus Ring --- */
.focus-ring:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(12, 130, 152, 0.5);
}

/* --- Skeleton Loading --- */
.skeleton {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.05) 0%,
    rgba(255, 255, 255, 0.1) 50%,
    rgba(255, 255, 255, 0.05) 100%
  );
  background-size: 200px 100%;
  animation: skeletonShimmer 1.5s infinite;
  border-radius: 8px;
  border-radius: var(--radius-md);
}

.skeleton-text {
  height: 1em;
  margin-bottom: 0.5em;
}

.skeleton-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}

.skeleton-card {
  height: 200px;
}

/* --- Count Animation --- */
.count-up {
  display: inline-block;
}

/* --- Stagger Children --- */
.stagger-children > * {
  animation: staggerFadeIn 0.5s ease both;
}

.stagger-children > *:nth-child(1) { animation-delay: 0.05s; }
.stagger-children > *:nth-child(2) { animation-delay: 0.1s; }
.stagger-children > *:nth-child(3) { animation-delay: 0.15s; }
.stagger-children > *:nth-child(4) { animation-delay: 0.2s; }
.stagger-children > *:nth-child(5) { animation-delay: 0.25s; }
.stagger-children > *:nth-child(6) { animation-delay: 0.3s; }
.stagger-children > *:nth-child(7) { animation-delay: 0.35s; }
.stagger-children > *:nth-child(8) { animation-delay: 0.4s; }
.stagger-children > *:nth-child(9) { animation-delay: 0.45s; }
.stagger-children > *:nth-child(10) { animation-delay: 0.5s; }

/* =============================================
   11. ÉTATS & FEEDBACK
   ============================================= */

/* --- Status Badges --- */
.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  gap: var(--space-1);
  padding: 4px 8px;
  padding: var(--space-1) var(--space-2);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 500;
}

.status-badge.success {
  background: rgba(16, 185, 129, 0.15);
  background: var(--badge-success-bg);
  color: #10B981;
  color: var(--badge-success-text);
}

.status-badge.warning {
  background: rgba(245, 158, 11, 0.15);
  background: var(--badge-warning-bg);
  color: #F59E0B;
  color: var(--badge-warning-text);
}

.status-badge.error {
  background: rgba(239, 68, 68, 0.15);
  background: var(--badge-critical-bg);
  color: #EF4444;
  color: var(--badge-critical-text);
}

.status-badge.info {
  background: rgba(0, 163, 255, 0.15);
  background: var(--badge-info-bg);
  color: #1A9FB5;
  color: var(--badge-info-text);
}

.status-badge .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.status-badge.success .dot { animation: pulse 2s infinite; }

/* --- Toast Notifications --- */
.toast-container {
  position: fixed;
  bottom: 24px;
  bottom: var(--space-6);
  right: 24px;
  right: var(--space-6);
  z-index: 1700;
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  gap: 12px;
  gap: var(--space-3);
}

.toast {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  gap: var(--space-3);
  padding: 16px;
  padding: var(--space-4);
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
          backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.3);
  box-shadow: var(--shadow-dropdown);
  min-width: 300px;
  max-width: 420px;
  animation: slideInRight 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: slideInRight 0.3s var(--ease-spring);
}

.toast.exiting {
  animation: slideInRight 0.3s cubic-bezier(0.4, 0, 0.2, 1) reverse forwards;
  animation: slideInRight 0.3s var(--ease-smooth) reverse forwards;
}

.toast-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.toast.success .toast-icon { color: #10B981; color: var(--accent-success); }
.toast.warning .toast-icon { color: #F59E0B; color: var(--accent-warning); }
.toast.error .toast-icon { color: #EF4444; color: var(--accent-danger); }
.toast.info .toast-icon { color: #1A9FB5; color: var(--accent-primary); }

.toast-content {
  flex: 1 1;
}

.toast-title {
  font-weight: 600;
  color: #F1F5F9;
  color: var(--text-primary);
  margin-bottom: 4px;
  margin-bottom: var(--space-1);
}

.toast-message {
  font-size: 0.875rem;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
}

.toast-actions {
  display: flex;
  gap: 8px;
  gap: var(--space-2);
  margin-top: 8px;
  margin-top: var(--space-2);
}

.toast-action {
  font-size: 0.875rem;
  color: #1A9FB5;
  color: var(--accent-primary);
  cursor: pointer;
}

.toast-action:hover {
  text-decoration: underline;
}

.toast-close {
  cursor: pointer;
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
  transition: color 200ms;
  transition: color var(--duration-fast);
}

.toast-close:hover {
  color: #F1F5F9;
  color: var(--text-primary);
}

/* --- Empty States --- */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px;
  padding: var(--space-12);
  text-align: center;
}

.empty-state-icon {
  width: 64px;
  height: 64px;
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
  margin-bottom: 16px;
  margin-bottom: var(--space-4);
  opacity: 0.5;
}

.empty-state-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: #F1F5F9;
  color: var(--text-primary);
  margin-bottom: 8px;
  margin-bottom: var(--space-2);
}

.empty-state-description {
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  max-width: 400px;
  margin-bottom: 24px;
  margin-bottom: var(--space-6);
}

/* --- Progress Indicators --- */
.progress-bar {
  height: 8px;
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-radius: 9999px;
  border-radius: var(--radius-full);
  overflow: hidden;
}

.progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #1A9FB5, #1A9FB5);
  background: linear-gradient(90deg, var(--accent-primary), var(--ocean-400));
  border-radius: 9999px;
  border-radius: var(--radius-full);
  transition: width 500ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: width var(--duration-slow) var(--ease-smooth);
}

.progress-ring {
  transform: rotate(-90deg);
}

.progress-ring-bg {
  fill: none;
  stroke: rgba(255, 255, 255, 0.05);
  stroke: var(--surface-hover);
}

.progress-ring-fill {
  fill: none;
  stroke: #1A9FB5;
  stroke: var(--accent-primary);
  stroke-linecap: round;
  transition: stroke-dashoffset 500ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: stroke-dashoffset var(--duration-slow) var(--ease-smooth);
}

/* =============================================
   12. UTILITAIRES
   ============================================= */

/* --- Animations Utility --- */
.animate-fade-in { animation: fadeIn 300ms cubic-bezier(0.4, 0, 0.2, 1); animation: fadeIn var(--duration-normal) var(--ease-smooth); }
.animate-fade-in-up { animation: fadeInUp 300ms cubic-bezier(0.4, 0, 0.2, 1); animation: fadeInUp var(--duration-normal) var(--ease-smooth); }
.animate-fade-in-down { animation: fadeInDown 300ms cubic-bezier(0.4, 0, 0.2, 1); animation: fadeInDown var(--duration-normal) var(--ease-smooth); }
.animate-scale-in { animation: scaleIn 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275); animation: scaleIn var(--duration-normal) var(--ease-spring); }
.animate-slide-in-up { animation: slideInUp 300ms cubic-bezier(0.4, 0, 0.2, 1); animation: slideInUp var(--duration-normal) var(--ease-smooth); }
.animate-slide-in-down { animation: slideInDown 300ms cubic-bezier(0.4, 0, 0.2, 1); animation: slideInDown var(--duration-normal) var(--ease-smooth); }
.animate-slide-in-left { animation: slideInLeft 300ms cubic-bezier(0.4, 0, 0.2, 1); animation: slideInLeft var(--duration-normal) var(--ease-smooth); }
.animate-slide-in-right { animation: slideInRight 300ms cubic-bezier(0.4, 0, 0.2, 1); animation: slideInRight var(--duration-normal) var(--ease-smooth); }
.animate-bounce { animation: bounce 1s cubic-bezier(0.4, 0, 0.2, 1); animation: bounce 1s var(--ease-smooth); }
.animate-pulse { animation: pulse 2s infinite; }
.animate-float { animation: float 3s ease-in-out infinite; }
.animate-shimmer { animation: shimmer 2s linear infinite; }
.animate-spin { animation: spinnerRotate 1s linear infinite; }

/* --- Scroll Snap --- */
.scroll-snap-x {
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.scroll-snap-center {
  scroll-snap-align: center;
}

.scroll-snap-start {
  scroll-snap-align: start;
}

/* --- Hide Scrollbar --- */
.hide-scrollbar {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

/* --- Glass Effect --- */
.glass-effect {
  background: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(var(--glass-blur));
          backdrop-filter: blur(var(--glass-blur));
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* --- Gradient Text --- */
.gradient-text {
  background: linear-gradient(135deg, #9254DE, #1A9FB5);
  background: linear-gradient(135deg, var(--aurora-400), var(--ocean-400));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* --- Truncate --- */
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* --- Aspect Ratios --- */
.aspect-square { aspect-ratio: 1; }
.aspect-video { aspect-ratio: 16 / 9; }
.aspect-portrait { aspect-ratio: 3 / 4; }

/* --- Backdrop --- */
.backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  z-index: 1300;
  z-index: var(--z-modal-backdrop);
  opacity: 0;
  visibility: hidden;
  transition: all 200ms;
  transition: all var(--duration-fast);
}

.backdrop.visible {
  opacity: 1;
  visibility: visible;
}

/* --- Dividers --- */
.divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.06);
  background: var(--divider);
  margin: 16px 0;
  margin: var(--space-4) 0;
}

.divider-vertical {
  width: 1px;
  height: 100%;
  background: rgba(255, 255, 255, 0.06);
  background: var(--divider);
  margin: 0 16px;
  margin: 0 var(--space-4);
}

/* --- Selection --- */
::selection {
  background: rgba(12, 130, 152, 0.3);
  color: #F1F5F9;
  color: var(--text-primary);
}

/* --- Print Hidden --- */
@media print {
  .no-print {
    display: none !important;
  }
}

/* --- Reduced Motion --- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* =============================================
   13. PAGE LAYOUTS & STRUCTURE
   ============================================= */

/* --- Page Ultra Wrapper --- */
.page-ultra-wrapper {
  position: relative;
  min-height: 100%;
  padding: 24px;
  padding: var(--space-6);
}

/* --- Page Layout --- */
.page-layout {
  display: flex;
  flex-direction: column;
  gap: 24px;
  gap: var(--space-6);
  /* Full width - no max-width constraint */
}

/* --- Page Header --- */
.page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  gap: var(--space-4);
}

.page-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #F1F5F9;
  color: var(--text-primary);
  line-height: 1.2;
}

.page-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  gap: var(--space-2);
}

/* --- Section Title --- */
.section-title {
  position: relative;
  display: inline-block;
}

.section-title::before {
  content: '';
  position: absolute;
  left: -16px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 70%;
  background: #1A9FB5;
  background: var(--theme-primary, var(--accent-primary));
  border-radius: 9999px;
  border-radius: var(--radius-full);
}

/* --- Card Grid Layouts --- */
.card-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  grid-gap: 16px;
  grid-gap: var(--space-4);
  gap: var(--space-4);
}

.card-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  grid-gap: 16px;
  grid-gap: var(--space-4);
  gap: var(--space-4);
}

.card-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  grid-gap: 16px;
  grid-gap: var(--space-4);
  gap: var(--space-4);
}

@media (max-width: 1200px) {
  .card-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .card-grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .card-grid-4,
  .card-grid-3,
  .card-grid-2 { grid-template-columns: 1fr; }
}

/* --- Split Layout (Main + Sidebar) --- */
.layout-split {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 24px;
  grid-gap: 24px;
  grid-gap: var(--space-6);
  gap: var(--space-6);
}

.layout-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
  gap: var(--space-4);
}

.layout-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
  gap: var(--space-4);
}

@media (max-width: 1024px) {
  .layout-split {
    grid-template-columns: 1fr;
  }
  
  .layout-sidebar {
    order: -1;
  }
}

/* --- Glass Card Styles --- */
.glass-card {
  position: relative;
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
  border-radius: 16px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: all var(--duration-fast) var(--ease-smooth);
}

.glass-card:hover {
  border-color: rgba(255, 255, 255, 0.15);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  box-shadow: var(--shadow-card);
}

/* --- Glass Table --- */
.glass-table {
  width: 100%;
  border-collapse: collapse;
}

.glass-table th {
  text-align: left;
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
}

.glass-table td {
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  font-size: 0.875rem;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid var(--divider);
}

.glass-table tr:hover td {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
}

.glass-table-compact th,
.glass-table-compact td {
  padding: 8px 12px;
  padding: var(--space-2) var(--space-3);
}

.glass-table .col-amount {
  text-align: right;
  font-family: monospace;
  font-family: var(--font-mono, monospace);
}

/* --- Table Container --- */
.table-container {
  overflow-x: auto;
  border-radius: 12px;
  border-radius: var(--radius-lg);
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
}

/* --- Buttons --- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  gap: var(--space-2);
  padding: 8px 16px;
  padding: var(--space-2) var(--space-4);
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 12px;
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: all var(--duration-fast) var(--ease-smooth);
  border: none;
  white-space: nowrap;
}

.btn-primary {
  background: #1A9FB5;
  background: var(--theme-primary, var(--accent-primary));
  color: white;
  box-shadow: 0 2px 10px color-mix(in srgb, #1A9FB5 30%, transparent);
  box-shadow: 0 2px 10px color-mix(in srgb, var(--theme-primary, var(--accent-primary)) 30%, transparent);
}

.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 15px color-mix(in srgb, #1A9FB5 40%, transparent);
  box-shadow: 0 4px 15px color-mix(in srgb, var(--theme-primary, var(--accent-primary)) 40%, transparent);
}

.btn-secondary {
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  color: #F1F5F9;
  color: var(--text-primary);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
}

.btn-secondary:hover {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  border-color: rgba(255, 255, 255, 0.15);
}

.btn-ghost {
  background: transparent;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
}

.btn-ghost:hover {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  color: #F1F5F9;
  color: var(--text-primary);
}

.btn-with-icon {
  gap: 8px;
  gap: var(--space-2);
}

.btn-block {
  width: 100%;
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* --- Loading State --- */
.loading-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px;
  padding: var(--space-12);
  gap: 16px;
  gap: var(--space-4);
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
}

.spinner {
  width: 24px;
  height: 24px;
  border: 2px solid rgba(255, 255, 255, 0.05);
  border: 2px solid var(--surface-hover);
  border-top-color: #1A9FB5;
  border-top-color: var(--accent-primary);
  border-radius: 50%;
  animation: spinnerRotate 0.8s linear infinite;
}

.spinner-lg {
  width: 40px;
  height: 40px;
  border-width: 3px;
}

/* --- Status Badges --- */
.status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  gap: var(--space-1);
  padding: 4px 12px;
  padding: var(--space-1) var(--space-3);
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 9999px;
  border-radius: var(--radius-full);
}

.status-draft {
  background: rgba(255, 255, 255, 0.05);
  background: var(--surface-hover);
  color: rgba(241, 245, 249, 0.35);
  color: var(--text-muted);
}

.status-pending {
  background: rgba(245, 158, 11, 0.15);
  background: var(--badge-warning-bg);
  color: #F59E0B;
  color: var(--badge-warning-text);
}

.status-validated {
  background: rgba(16, 185, 129, 0.15);
  background: var(--badge-success-bg);
  color: #10B981;
  color: var(--badge-success-text);
}

.status-error {
  background: rgba(239, 68, 68, 0.15);
  background: var(--badge-critical-bg);
  color: #EF4444;
  color: var(--badge-critical-text);
}

/* --- Alerts --- */
.alert {
  display: flex;
  gap: 12px;
  gap: var(--space-3);
  padding: 16px;
  padding: var(--space-4);
  border-radius: 12px;
  border-radius: var(--radius-lg);
  background: rgba(0, 0, 0, 0.40);
  background: var(--glass-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: 1px solid var(--glass-panel-border);
}

.alert-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.alert-content {
  flex: 1 1;
}

.alert-title {
  font-weight: 600;
  font-size: 0.875rem;
  color: #F1F5F9;
  color: var(--text-primary);
}

.alert-message {
  font-size: 0.8125rem;
  color: rgba(241, 245, 249, 0.60);
  color: var(--text-secondary);
  margin-top: 4px;
  margin-top: var(--space-1);
}

.alert-info {
  border-color: color-mix(in srgb, #1A9FB5 30%, transparent);
  border-color: color-mix(in srgb, var(--accent-primary) 30%, transparent);
}

.alert-info .alert-icon {
  color: #1A9FB5;
  color: var(--accent-primary);
}

.alert-success {
  border-color: color-mix(in srgb, #10B981 30%, transparent);
  border-color: color-mix(in srgb, var(--accent-success) 30%, transparent);
}

.alert-success .alert-icon {
  color: #10B981;
  color: var(--accent-success);
}

.alert-warning {
  border-color: color-mix(in srgb, #F59E0B 30%, transparent);
  border-color: color-mix(in srgb, var(--accent-warning) 30%, transparent);
}

.alert-warning .alert-icon {
  color: #F59E0B;
  color: var(--accent-warning);
}

.alert-danger {
  border-color: color-mix(in srgb, #EF4444 30%, transparent);
  border-color: color-mix(in srgb, var(--accent-danger) 30%, transparent);
}

.alert-danger .alert-icon {
  color: #EF4444;
  color: var(--accent-danger);
}

/* --- Section Divider (Light Line) --- */
.section-divider {
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    #1A9FB5 20%,
    #1A9FB5 80%,
    transparent 100%
  );
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--accent-primary) 20%,
    var(--accent-primary) 80%,
    transparent 100%
  );
  opacity: 0.3;
}

/* --- Card Hover Effects --- */
.card-hover-glow {
  position: relative;
}

.card-hover-glow::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  transition: opacity 200ms;
  transition: opacity var(--duration-fast);
  pointer-events: none;
  box-shadow: 0 0 30px rgba(12, 130, 152, 0.2);
  box-shadow: 0 0 30px var(--theme-glow, rgba(12, 130, 152, 0.2));
}

.card-hover-glow:hover::after {
  opacity: 1;
}

/* --- Reveal Animation Class --- */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  animation: revealUp 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation: revealUp 0.6s var(--ease-smooth) forwards;
}

.reveal:nth-child(1) { animation-delay: 0.05s; }
.reveal:nth-child(2) { animation-delay: 0.1s; }
.reveal:nth-child(3) { animation-delay: 0.15s; }
.reveal:nth-child(4) { animation-delay: 0.2s; }
.reveal:nth-child(5) { animation-delay: 0.25s; }
.reveal:nth-child(6) { animation-delay: 0.3s; }

@keyframes revealUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/**
 * Così THEMES — Système de thèmes dynamiques
 * ==============================================
 * 6 thèmes : Ocean, Aurora, Sunset, Forest, Neon, Midnight
 * + Mode clair/sombre pour chaque thème
 */

/* =============================================
   THEME: COSI CARBON (Default / alias "brand.ai")
   ============================================= */
[data-theme="brand.ai"],
[data-theme="cosi"] {
  --theme-light-text: #0C1524; --theme-dark-text: #D4D4D8;
  --theme-primary: #1A9FB5;
  --theme-secondary: #0C8298;
  --theme-accent: #1A9FB5;
  --theme-gradient-start: #0C8298;
  --theme-gradient-mid: #0C8298;
--theme-gradient-end: #005EA6;
  --theme-glow: rgba(0, 163, 255, 0.30);
  --nebula-color-1: rgba(12, 130, 152, 0.10);
  --nebula-color-2: rgba(0, 163, 255, 0.08);
  --nebula-color-3: rgba(0, 94, 166, 0.1);
  --accent-primary: #1A9FB5;
  --accent-primary-hover: #0C8298;
  --accent-secondary: #005EA6;

  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF;
  --theme-dark-bg: #2E3344; --theme-dark-surface: #313A5B;
}

/* =============================================
   THEME: OCEAN
   ============================================= */
[data-theme="ocean"] {
  --theme-primary: #1A9FB5;
  --theme-secondary: #0C8298;
  --theme-accent: #1A9FB5;
  --theme-gradient-start: #0C8298;
  --theme-gradient-mid: #0C8298;
--theme-gradient-end: #005EA6;
  --theme-glow: rgba(0, 163, 255, 0.30);

  --nebula-color-1: rgba(12, 130, 152, 0.10);
  --nebula-color-2: rgba(0, 163, 255, 0.08);
  --nebula-color-3: rgba(0, 94, 166, 0.1);

  /* Override accent colors */
  --accent-primary: #1A9FB5;
  --accent-primary-hover: #0C8298;
  --accent-secondary: #005EA6;
  --theme-light-text: #0C1524;
  --theme-dark-text: #D4D4D8;

  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF;
  --theme-dark-bg: #2E3344; --theme-dark-surface: #313A5B;
}

/* =============================================
   THEME: AURORA
   ============================================= */
[data-theme="aurora"] {
  --theme-primary: #9254DE;
  --theme-secondary: #722ED1;
  --theme-accent: #B388FF;
  --theme-gradient-start: #722ED1;
  --theme-gradient-mid: #722ED1;
--theme-gradient-end: #391085;
  --theme-glow: rgba(146, 84, 222, 0.30);
  
  --nebula-color-1: rgba(146, 84, 222, 0.10);
  --nebula-color-2: rgba(114, 46, 209, 0.08);
  --nebula-color-3: rgba(179, 136, 255, 0.1);
  
  /* Override accent colors */
  --accent-primary: #9254DE;
  --accent-primary-hover: #722ED1;
  --accent-secondary: #B388FF;
  --theme-light-text: #1A0A2E;
  --theme-dark-text: #D4D4D8;

  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFE;
  --theme-dark-bg: #323232; --theme-dark-surface: #3E3A43;
}

/* =============================================
   THEME: SUNSET
   ============================================= */
[data-theme="sunset"] {
  --theme-primary: #FF7A45;
  --theme-secondary: #FA541C;
  --theme-accent: #FFA940;
  --theme-gradient-start: #FF7A45;
  --theme-gradient-mid: #FF7A45;
--theme-gradient-end: #D4380D;
  --theme-glow: rgba(255, 122, 69, 0.30);
  
  --nebula-color-1: rgba(255, 122, 69, 0.10);
  --nebula-color-2: rgba(250, 84, 28, 0.08);
  --nebula-color-3: rgba(255, 169, 64, 0.1);
  
  --accent-primary: #FF7A45;
  --accent-primary-hover: #FA541C;
  --accent-secondary: #FFA940;
  --theme-light-text: #3D0C00;
  --theme-dark-text: #D4D4D8;

  --theme-light-bg: #FFFFFF; --theme-light-surface: #FFFFFF;
  --theme-dark-bg: #4C3128; --theme-dark-surface: #63382A;
}

/* =============================================
   THEME: FOREST
   ============================================= */
[data-theme="forest"] {
  --theme-primary: #52C41A;
  --theme-secondary: #389E0D;
  --theme-accent: #95DE64;
  --theme-gradient-start: #52C41A;
  --theme-gradient-mid: #52C41A;
--theme-gradient-end: #237804;
  --theme-glow: rgba(82, 196, 26, 0.30);
  
  --nebula-color-1: rgba(82, 196, 26, 0.10);
  --nebula-color-2: rgba(56, 158, 13, 0.08);
  --nebula-color-3: rgba(149, 222, 100, 0.1);
  
  --accent-primary: #52C41A;
  --accent-primary-hover: #389E0D;
  --accent-secondary: #95DE64;
  --theme-light-text: #0A1A0A;
  --theme-dark-text: #D4D4D8;

  --theme-light-bg: #BCC3BC; --theme-light-surface: #CACACA;
  --theme-dark-bg: #000000; --theme-dark-surface: #000000;
}

/* =============================================
   THEME: NEON
   ============================================= */
[data-theme="neon"] {
  --theme-primary: #FF00FF;
  --theme-secondary: #00FFFF;
  --theme-accent: #39FF14;
  --theme-gradient-start: #FF00FF;
  --theme-gradient-mid: #FF00FF;
--theme-gradient-end: #00FFFF;
  --theme-glow: rgba(255, 0, 255, 0.30);
  
  --nebula-color-1: rgba(255, 0, 255, 0.10);
  --nebula-color-2: rgba(0, 255, 255, 0.08);
  --nebula-color-3: rgba(57, 255, 20, 0.1);
  
  --accent-primary: #FF00FF;
  --accent-primary-hover: #CC00CC;
  --accent-secondary: #00FFFF;
  
  --theme-light-text: #1A1A1A;
  --theme-dark-text: #D4D4D8;

  /* Neon specific effects */
  --glass-bg: rgba(5, 5, 15, 0.95);
  --glass-panel-bg: rgba(10, 10, 25, 0.85);

  --theme-light-bg: #EAF7E0; --theme-light-surface: #F5FAF1;
  --theme-dark-bg: #192212; --theme-dark-surface: #253617;
}

/* =============================================
   THEME: MIDNIGHT
   ============================================= */
[data-theme="midnight"] {
  --theme-primary: #1890FF;
  --theme-secondary: #096DD9;
  --theme-accent: #40A9FF;
  --theme-gradient-start: #141414;
  --theme-gradient-mid: #141414;
--theme-gradient-end: #000000;
  --theme-glow: rgba(24, 144, 255, 0.3);
  
  --nebula-color-1: rgba(24, 144, 255, 0.1);
  --nebula-color-2: rgba(9, 109, 217, 0.08);
  --nebula-color-3: rgba(64, 169, 255, 0.06);
  
  --accent-primary: #1890FF;
  --accent-primary-hover: #096DD9;
  --theme-light-text: #001529;
  --theme-dark-text: #D4D4D8;

  /* Darker backgrounds */
  --glass-bg: rgba(0, 0, 0, 0.98);
  --glass-panel-bg: rgba(10, 10, 15, 0.9);
  --surface-hover: rgba(255, 255, 255, 0.04);

  --theme-light-bg: #BEC1D1; --theme-light-surface: #CECFD5;
  --theme-dark-bg: #000000; --theme-dark-surface: #030303;
  --accent-secondary: #1A237E;
}

/* =============================================
   LIGHT MODE OVERRIDE
   ============================================= */
[data-mode="light"] {
  --glass-bg: rgba(245, 247, 250, 0.95);
  --glass-panel-bg: rgba(255, 255, 255, 0.85);
  --glass-panel-border: rgba(0, 0, 0, 0.08);
  
  --text-primary: #1a1a2e;
  --text-secondary: #4a4a6a;
  --text-muted: #8a8aa0;
  
  --surface-hover: rgba(0, 0, 0, 0.04);
  --surface-active: rgba(0, 0, 0, 0.08);
  
  --divider: rgba(0, 0, 0, 0.08);
  
  --input-bg: rgba(255, 255, 255, 0.9);
  --input-border: rgba(0, 0, 0, 0.08);
  
  --nav-bg: rgba(255, 255, 255, 0.9);
  --nav-item-hover: rgba(0, 0, 0, 0.04);
  --nav-item-active-bg: rgba(var(--theme-primary-rgb, 12, 130, 152), 0.1);
  
  --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.08);
  --shadow-dropdown: 0 8px 30px rgba(0, 0, 0, 0.08);
  
  /* Adjust nebula for light mode */
  --nebula-color-1: rgba(12, 130, 152, 0.08);
  --nebula-color-2: rgba(146, 84, 222, 0.06);
  --nebula-color-3: rgba(255, 122, 69, 0.05);
}

/* =============================================
   THEME TRANSITIONS
   ============================================= */
:root {
  --theme-transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  
  /* Map section-color to theme-primary for dashboard sections */
  --section-color: var(--theme-primary, var(--accent-primary, #1A9FB5));
}

/* Force accent colors to use theme colors when theme is set */
[data-theme] {
  --accent-primary: var(--theme-primary) !important;
  --accent-primary-hover: var(--theme-secondary) !important;
  --section-color: var(--theme-primary) !important;
  --theme-accent: var(--theme-primary) !important;
}

body,
[data-theme],
[data-mode] {
  transition: 
    background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: 
    background-color var(--theme-transition),
    color var(--theme-transition),
    border-color var(--theme-transition),
    box-shadow var(--theme-transition);
}

/* Smooth color transitions for all themed elements */
.glass-card,
.glass-nav,
.glass-panel,
.btn-ultra,
.card-ultra,
.floating-nav,
.floating-nav-menu,
input,
select,
textarea {
  transition: 
    background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: 
    background-color var(--theme-transition),
    border-color var(--theme-transition),
    box-shadow var(--theme-transition),
    color var(--theme-transition);
}

/* =============================================
   THEME PICKER COMPONENT STYLES
   ============================================= */
.theme-picker {
  display: flex;
  gap: var(--space-2);
  padding: var(--space-3);
}

.theme-swatch {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  cursor: pointer;
  border: 2px solid transparent;
  transition: all var(--duration-fast) var(--ease-spring);
  position: relative;
  overflow: hidden;
}

.theme-swatch::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--swatch-start), var(--swatch-end));
}

.theme-swatch:hover {
  transform: scale(1.15);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.theme-swatch.active {
  border-color: white;
  transform: scale(1.1);
  box-shadow: 0 0 0 3px var(--theme-glow);
}

.theme-swatch[data-swatch="ocean"] {
  --swatch-start: #1A9FB5;
  --swatch-end: #0C8298;
}

.theme-swatch[data-swatch="aurora"] {
  --swatch-start: #9254DE;
  --swatch-end: #722ED1;
}

.theme-swatch[data-swatch="sunset"] {
  --swatch-start: #FF7A45;
  --swatch-end: #FA541C;
}

.theme-swatch[data-swatch="forest"] {
  --swatch-start: #52C41A;
  --swatch-end: #389E0D;
}

.theme-swatch[data-swatch="neon"] {
  --swatch-start: #FF00FF;
  --swatch-end: #00FFFF;
}

.theme-swatch[data-swatch="midnight"] {
  --swatch-start: #1890FF;
  --swatch-end: #141414;
}

/* Mode toggle */
.mode-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-hover);
  border-radius: var(--radius-full);
}

.mode-toggle-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--duration-fast) var(--ease-spring);
  color: var(--text-muted);
}

.mode-toggle-btn:hover {
  background: var(--surface-active);
  color: var(--text-primary);
}

.mode-toggle-btn.active {
  background: var(--theme-primary);
  color: white;
}

/**
 * Così — Page Transitions & Global Animations
 * ================================================
 * Animations de transition entre pages et effets globaux
 */

/* =============================================
   PAGE TRANSITIONS
   ============================================= */

/* Base page wrapper */
.page-wrapper {
  animation: pageReveal 0.5s var(--ease-smooth) forwards;
}

@keyframes pageReveal {
  0% {
    opacity: 0;
    transform: translateY(20px);
    filter: blur(4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

/* Staggered content reveal */
.page-wrapper > * {
  animation: contentReveal 0.6s var(--ease-smooth) both;
}

.page-wrapper > *:nth-child(1) { animation-delay: 0.05s; }
.page-wrapper > *:nth-child(2) { animation-delay: 0.1s; }
.page-wrapper > *:nth-child(3) { animation-delay: 0.15s; }
.page-wrapper > *:nth-child(4) { animation-delay: 0.2s; }
.page-wrapper > *:nth-child(5) { animation-delay: 0.25s; }
.page-wrapper > *:nth-child(6) { animation-delay: 0.3s; }
.page-wrapper > *:nth-child(7) { animation-delay: 0.35s; }
.page-wrapper > *:nth-child(8) { animation-delay: 0.4s; }

@keyframes contentReveal {
  0% {
    opacity: 0;
    transform: translateY(15px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Exit animation */
.page-exit {
  animation: pageExit 0.3s var(--ease-smooth) forwards;
}

@keyframes pageExit {
  0% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
  }
}

/* =============================================
   SECTION ANIMATIONS
   ============================================= */

/* Reveal on scroll */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s var(--ease-smooth);
}

.reveal-on-scroll.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Reveal from left */
.reveal-left {
  opacity: 0;
  transform: translateX(-50px);
  transition: all 0.6s var(--ease-smooth);
}

.reveal-left.revealed {
  opacity: 1;
  transform: translateX(0);
}

/* Reveal from right */
.reveal-right {
  opacity: 0;
  transform: translateX(50px);
  transition: all 0.6s var(--ease-smooth);
}

.reveal-right.revealed {
  opacity: 1;
  transform: translateX(0);
}

/* Scale reveal */
.reveal-scale {
  opacity: 0;
  transform: scale(0.9);
  transition: all 0.5s var(--ease-spring);
}

.reveal-scale.revealed {
  opacity: 1;
  transform: scale(1);
}

/* =============================================
   INTERACTIVE ELEMENTS
   ============================================= */

/* Magnetic effect base */
.magnetic {
  transition: transform 0.3s var(--ease-smooth);
}

/* Tilt 3D effect */
.tilt-3d {
  transform-style: preserve-3d;
  perspective: 1000px;
  transition: transform 0.1s ease-out;
}

/* Glow on hover */
.glow-hover {
  transition: box-shadow 0.3s var(--ease-smooth);
}

.glow-hover:hover {
  box-shadow: 
    0 0 30px var(--theme-glow),
    0 0 60px var(--theme-glow);
}

/* Pulse attention */
.pulse-attention {
  animation: pulseAttention 2s ease-in-out infinite;
}

@keyframes pulseAttention {
  0%, 100% {
    box-shadow: 0 0 0 0 var(--theme-glow);
  }
  50% {
    box-shadow: 0 0 0 10px transparent;
  }
}

/* Shimmer effect */
.shimmer-effect {
  position: relative;
  overflow: hidden;
}

.shimmer-effect::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.1),
    transparent
  );
  animation: shimmerMove 2s infinite;
}

@keyframes shimmerMove {
  0% { left: -100%; }
  100% { left: 100%; }
}

/* =============================================
   SUCCESS ANIMATIONS
   ============================================= */

/* Confetti burst */
@keyframes confetti {
  0% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: translateY(-500px) rotate(720deg);
    opacity: 0;
  }
}

.confetti-particle {
  position: fixed;
  width: 10px;
  height: 10px;
  animation: confetti 3s ease-out forwards;
  pointer-events: none;
  z-index: 1080;
  z-index: var(--z-toast, 1080);
}

/* Success checkmark */
@keyframes checkmarkDraw {
  0% {
    stroke-dashoffset: 100;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

.success-checkmark {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  animation: checkmarkDraw 0.5s ease-out forwards;
}

/* Success ring */
@keyframes successRing {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

.success-ring {
  animation: successRing 0.6s ease-out forwards;
}

/* =============================================
   LOADING STATES
   ============================================= */

/* Skeleton pulse */
.skeleton-animated {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.03) 0%,
    rgba(255, 255, 255, 0.08) 50%,
    rgba(255, 255, 255, 0.03) 100%
  );
  background-size: 200% 100%;
  animation: skeletonWave 1.5s ease-in-out infinite;
}

@keyframes skeletonWave {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Dot loader */
.dot-loader {
  display: flex;
  gap: 6px;
}

.dot-loader span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--theme-primary);
  animation: dotBounce 1.4s ease-in-out infinite both;
}

.dot-loader span:nth-child(1) { animation-delay: -0.32s; }
.dot-loader span:nth-child(2) { animation-delay: -0.16s; }
.dot-loader span:nth-child(3) { animation-delay: 0s; }

@keyframes dotBounce {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}

/* Spinner */
.spinner-ring {
  width: 40px;
  height: 40px;
  border: 3px solid var(--surface-hover);
  border-top-color: var(--theme-primary);
  border-radius: 50%;
  animation: spinnerRotate 0.8s linear infinite;
}

@keyframes spinnerRotate {
  to { transform: rotate(360deg); }
}

/* Progress bar animated */
.progress-animated {
  position: relative;
  overflow: hidden;
}

.progress-animated::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.3),
    transparent
  );
  animation: progressShine 1.5s infinite;
}

@keyframes progressShine {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* =============================================
   COUNTER ANIMATIONS
   ============================================= */

/* Number roll */
.counter-roll {
  display: inline-block;
  overflow: hidden;
  height: 1em;
}

.counter-roll-inner {
  animation: counterRollUp 0.5s ease-out forwards;
}

@keyframes counterRollUp {
  0% {
    transform: translateY(100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Value change flash */
.value-changed {
  animation: valueFlash 0.5s ease-out;
}

@keyframes valueFlash {
  0%, 100% {
    background: transparent;
  }
  50% {
    background: var(--theme-glow);
  }
}

/* =============================================
   HOVER EFFECTS ENHANCED
   ============================================= */

/* Card hover lift with glow */
.card-hover-glow {
  transition: all 0.3s var(--ease-smooth);
}

.card-hover-glow:hover {
  transform: translateY(-8px);
  box-shadow: 
    0 20px 40px rgba(0, 0, 0, 0.3),
    0 0 40px var(--theme-glow);
}

/* Button press effect */
.btn-press:active {
  transform: scale(0.96);
  transition: transform 0.1s ease-out;
}

/* Link underline animation */
.link-animated {
  position: relative;
  text-decoration: none;
}

.link-animated::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--theme-primary);
  transition: width 0.3s var(--ease-smooth);
}

.link-animated:hover::after {
  width: 100%;
}

/* Icon bounce on hover */
.icon-bounce:hover {
  animation: iconBounce 0.5s var(--ease-spring);
}

@keyframes iconBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

/* =============================================
   NOTIFICATION ANIMATIONS
   ============================================= */

/* Toast slide in */
.toast-enter {
  animation: toastSlideIn 0.4s var(--ease-spring) forwards;
}

@keyframes toastSlideIn {
  0% {
    transform: translateX(100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

/* Toast slide out */
.toast-exit {
  animation: toastSlideOut 0.3s var(--ease-smooth) forwards;
}

@keyframes toastSlideOut {
  0% {
    transform: translateX(0);
    opacity: 1;
  }
  100% {
    transform: translateX(100%);
    opacity: 0;
  }
}

/* Badge pop */
.badge-pop {
  animation: badgePop 0.3s var(--ease-spring);
}

@keyframes badgePop {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}

/* =============================================
   SPECIAL EFFECTS
   ============================================= */

/* Sparkle effect */
@keyframes sparkle {
  0%, 100% {
    opacity: 0;
    transform: scale(0) rotate(0deg);
  }
  50% {
    opacity: 1;
    transform: scale(1) rotate(180deg);
  }
}

.sparkle {
  position: absolute;
  width: 10px;
  height: 10px;
  background: white;
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  animation: sparkle 1.5s ease-in-out infinite;
  pointer-events: none;
}

/* Glitch effect */
@keyframes glitch {
  0% {
    clip-path: inset(40% 0 61% 0);
    transform: translate(-2px, 2px);
  }
  20% {
    clip-path: inset(92% 0 1% 0);
    transform: translate(2px, -2px);
  }
  40% {
    clip-path: inset(43% 0 1% 0);
    transform: translate(-2px, 2px);
  }
  60% {
    clip-path: inset(25% 0 58% 0);
    transform: translate(2px, -2px);
  }
  80% {
    clip-path: inset(54% 0 7% 0);
    transform: translate(-2px, 2px);
  }
  100% {
    clip-path: inset(58% 0 43% 0);
    transform: translate(2px, -2px);
  }
}

.glitch-effect {
  position: relative;
}

.glitch-effect::before,
.glitch-effect::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.glitch-effect::before {
  animation: glitch 2s infinite linear alternate-reverse;
  color: var(--neon-cyan);
  z-index: -1;
}

.glitch-effect::after {
  animation: glitch 3s infinite linear alternate-reverse;
  color: var(--neon-magenta);
  z-index: -2;
}

/* Morphing blob background */
@keyframes morphBlob {
  0%, 100% {
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
  }
  50% {
    border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;
  }
}

.morph-blob {
  animation: morphBlob 8s ease-in-out infinite;
}

/* Gradient text animation */
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.gradient-text-animated {
  background: linear-gradient(
    90deg,
    var(--theme-primary),
    var(--theme-accent),
    var(--theme-secondary),
    var(--theme-primary)
  );
  background-size: 300% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: gradientShift 4s ease infinite;
}

/* Floating particles */
@keyframes floatParticle {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    transform: translate(50px, -100px) rotate(360deg);
    transform: translate(var(--tx, 50px), var(--ty, -100px)) rotate(360deg);
    opacity: 0;
  }
}

.floating-particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: var(--theme-primary);
  border-radius: 50%;
  animation: floatParticle 4s ease-in-out infinite;
  pointer-events: none;
}

/* =============================================
   RESPONSIVE MOTION
   ============================================= */

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .page-wrapper,
  .page-wrapper > *,
  .reveal-on-scroll,
  .reveal-left,
  .reveal-right,
  .reveal-scale {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/**
 * Così - Protection de sélection de texte
 * =============================================
 * Applique user-select: none sur tous les éléments UI figés
 * (labels, titres, textes statiques) pour éviter la sélection accidentelle.
 *
 * Éléments PROTÉGÉS (non sélectionnables) :
 * - Labels, titres, badges, navigation, headers
 * - Boutons et icônes
 * - Texte statique de l'application
 *
 * Éléments ÉDITABLES (sélection autorisée) :
 * - Inputs, textareas, selects
 * - Contenus contenteditable
 * - Cellules de tableau de données
 */

/* ── Protection globale UI ─────────────────────────────────────── */
*:not(input):not(textarea):not([contenteditable="true"]):not(.selectable):not(.cell-data):not(code):not(pre) {
  -webkit-user-select: none;
  user-select: none;
}

/* ── Éléments toujours sélectionnables ────────────────────────── */
input,
textarea,
[contenteditable="true"],
.selectable,
.cell-data,
code,
pre,
/* Données de tableaux */
td.selectable-cell,
/* Zones d'audit / logs */
.audit-log-text,
.payslip-value,
.reportable-text {
  -webkit-user-select: text;
  user-select: text;
}

/* ── Curseur approprié ────────────────────────────────────────── */
label,
.sp-nav-item,
.sp-sidebar-link,
button:not([disabled]),
[role="button"],
[data-testid$="-btn"],
[data-testid$="-button"] {
  cursor: pointer;
}

input,
textarea,
[contenteditable="true"] {
  cursor: text;
}

/* ── Boutons disabled ─────────────────────────────────────────── */
button:disabled,
[disabled] {
  cursor: not-allowed;
  pointer-events: none;
}

/**
 * Brand.ai — Layout Fixes
 *
 * P2.6: Page centering (max-width + auto margin)
 * P2.4: Mobile responsive (breakpoints applied)
 * P2.7: Consistent spacing and sizing
 *
 * This file consolidates layout fixes that apply globally.
 * Import in App.js after design-variables.css.
 */

/* ═══════════════════════════════════════════════════
   PAGE CENTERING — All content centered with max-width
   ═══════════════════════════════════════════════════ */

.page-content,
[data-page-content],
main > .container,
main > div:first-child {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

/* Dashboard cards grid */
.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-gap: 1rem;
  gap: 1rem;
  max-width: 1400px;
  margin: 0 auto;
}

/* ═══════════════════════════════════════════════════
   MOBILE RESPONSIVE — Applied breakpoints
   ═══════════════════════════════════════════════════ */

/* Stack multi-column layouts on mobile */
@media (max-width: 768px) {
  /* Sidebar: collapse on mobile */
  [data-sidebar],
  .sidebar,
  nav[aria-label="main"] {
    position: fixed;
    left: -100%;
    transition: left 0.3s ease;
    z-index: 40;
    width: 280px;
  }

  [data-sidebar].open,
  .sidebar.open {
    left: 0;
  }

  /* Tables: horizontal scroll on mobile */
  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Forms: single column on mobile */
  .form-grid,
  .grid-cols-2,
  .grid-cols-3 {
    grid-template-columns: 1fr !important;
  }

  /* Cards: full width on mobile */
  .card-grid,
  .dashboard-grid {
    grid-template-columns: 1fr !important;
  }

  /* Dialogs: full width on mobile */
  [role="dialog"] > div,
  .modal-content {
    max-width: 100% !important;
    margin: 0.5rem !important;
    border-radius: 0.75rem !important;
  }

  /* Text: slightly smaller on mobile */
  .page-title {
    font-size: 1.25rem !important;
  }

  /* Padding: tighter on mobile */
  .px-6 { padding-left: 1rem !important; padding-right: 1rem !important; }
  .px-8 { padding-left: 1rem !important; padding-right: 1rem !important; }

  /* Hide non-essential on mobile */
  .hide-mobile,
  [data-hide-mobile] {
    display: none !important;
  }
}

/* Tablet adjustments */
@media (min-width: 769px) and (max-width: 1024px) {
  .dashboard-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .grid-cols-3 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ═══════════════════════════════════════════════════
   DROPDOWN AUTO-CLOSE — Visual hint that dropdowns are interactive
   ═══════════════════════════════════════════════════ */

/* All select/dropdown elements should show pointer cursor */
select,
[role="listbox"],
[role="combobox"],
[data-dropdown] {
  cursor: pointer;
}

/* Focus ring for keyboard navigation */
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #3b82f6;
  outline: 2px solid var(--color-action-primary, #3b82f6);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ═══════════════════════════════════════════════════
   CONSISTENT SPACING
   ═══════════════════════════════════════════════════ */

/* Page header consistent spacing */
.page-header {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e5e7eb;
  border-bottom: 1px solid var(--color-border-subtle, #e5e7eb);
}

/* Section spacing */
.section + .section {
  margin-top: 2rem;
}

/* Card consistent sizing */
.card {
  border-radius: 0.75rem;
  overflow: hidden;
}

/* ═══════════════════════════════════════════════════
   PRINT STYLES
   ═══════════════════════════════════════════════════ */

@media print {
  nav, .sidebar, .chat-panel, .floating-button, [data-no-print] {
    display: none !important;
  }

  main {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  table {
    page-break-inside: auto;
  }

  tr {
    page-break-inside: avoid;
  }
}

/**
 * Brand.ai — Hover Background Animations
 *
 * Subtle animated background effect on hover for the entire theme.
 * Adds life and interactivity to every element.
 *
 * Copyright (c) 2026 Brand.ai
 */

/* ═══════════════════════════════════════════════════
   CARD HOVER — Gradient shimmer on hover
   ═══════════════════════════════════════════════════ */

.card:hover,
[class*="Card"]:hover,
[class*="card"]:hover:not(table *) {
  background-image: linear-gradient(
    135deg,
    transparent 0%,
    rgba(59, 130, 246, 0.02) 25%,
    transparent 50%,
    rgba(12, 130, 152, 0.02) 75%,
    transparent 100%
  );
  background-size: 200% 200%;
  animation: cardHoverShimmer 3s ease infinite;
}

@keyframes cardHoverShimmer {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ═══════════════════════════════════════════════════
   ROW HOVER — Soft glow left border
   ═══════════════════════════════════════════════════ */

tr:hover td,
[role="row"]:hover {
  transition: all 0.2s ease;
}

tr:hover {
  box-shadow: inset 3px 0 0 #3b82f6;
  box-shadow: inset 3px 0 0 var(--color-action-primary, #3b82f6);
}

/* ═══════════════════════════════════════════════════
   BUTTON HOVER — Subtle lift + glow
   ═══════════════════════════════════════════════════ */

button:hover:not(:disabled):not(.no-lift),
[role="button"]:hover:not(:disabled):not(.no-lift) {
  transform: translateY(-1px);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

button:active:not(:disabled):not(.no-lift) {
  transform: translateY(0) scale(0.98);
}

.no-lift,
.no-lift:hover,
.no-lift:active,
.no-lift:focus {
  transform: translateY(-50%) !important;
  transition: color 0.15s ease, background-color 0.15s ease !important;
}

/* ═══════════════════════════════════════════════════
   SIDEBAR ITEM HOVER — Slide-in indicator
   ═══════════════════════════════════════════════════ */

nav a:hover,
[data-sidebar] a:hover {
  position: relative;
}

nav a:hover::before,
[data-sidebar] a:hover::before {
  content: '';
  position: absolute;
  left: 0;
  top: 15%;
  height: 70%;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: #3b82f6;
  background: var(--color-action-primary, #3b82f6);
  animation: sidebarIndicatorIn 0.15s ease-out;
}

@keyframes sidebarIndicatorIn {
  from { height: 0; top: 50%; }
  to { height: 70%; top: 15%; }
}

/* ═══════════════════════════════════════════════════
   INPUT FOCUS — Breathing border
   ═══════════════════════════════════════════════════ */

input:focus,
textarea:focus,
select:focus {
  box-shadow: 0 0 0 2px #3b82f6,
              0 0 8px rgba(59, 130, 246, 0.15);
  box-shadow: 0 0 0 2px var(--color-action-primary, #3b82f6),
              0 0 8px rgba(59, 130, 246, 0.15);
  transition: box-shadow 0.2s ease;
}

/* ═══════════════════════════════════════════════════
   BADGE HOVER — Subtle pulse
   ═══════════════════════════════════════════════════ */

[class*="Badge"]:hover,
[class*="badge"]:hover {
  animation: badgePulse 0.3s ease;
}

@keyframes badgePulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* ═══════════════════════════════════════════════════
   GLOBAL CURSOR — Everything interactive shows pointer
   ═══════════════════════════════════════════════════ */

a, button, [role="button"], [tabindex]:not([tabindex="-1"]),
label, select, summary, [class*="Card"], [class*="card"],
tr:not(thead tr), [role="row"], [data-clickable] {
  cursor: pointer;
}

/* Disabled elements */
[disabled], [aria-disabled="true"] {
  cursor: not-allowed !important;
  opacity: 0.5;
}

/* ═══════════════════════════════════════════════════
   REDUCE MOTION — Respect user preference
   ═══════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

:root {
  --organic-scroll-track: color-mix(in srgb, var(--color-bg-primary, #111317) 58%, transparent);
  --organic-scroll-thumb: color-mix(in srgb, var(--accent, var(--integra-soft-gold, #d6b16a)) 68%, #ffffff 8%);
  --organic-scroll-thumb-quiet: color-mix(in srgb, var(--text-muted, #8e918b) 42%, transparent);
  --organic-scroll-preview-bg: color-mix(in srgb, var(--color-bg-primary, #111317) 82%, #ffffff 6%);
  --organic-scroll-preview-text: var(--color-text-primary, #f5f3ee);
  --organic-scroll-preview-muted: color-mix(in srgb, var(--color-text-primary, #f5f3ee) 62%, transparent);
  scroll-behavior: smooth;
}

/* UX-2 re-scope: the organic scrollbar is OPT-IN. Only surfaces carrying
   .organic-scroll / [data-organic-scroll] participate; on those surfaces the
   native scrollbar is hidden so the organic rail is THE scrollbar (one
   scrollbar per surface, never two). Every other surface keeps the plain
   native browser scrollbar untouched. */
.organic-scroll,
[data-organic-scroll] {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.organic-scroll::-webkit-scrollbar,
[data-organic-scroll]::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.organic-scroll-layer {
  position: fixed;
  inset: 0;
  z-index: 2147482500;
  pointer-events: none;
}

.organic-scroll-rail {
  position: fixed;
  pointer-events: auto;
  touch-action: none;
  border-radius: 999px;
  outline: none;
  opacity: 0.48;
  cursor: pointer;
  transition: opacity 180ms ease, filter 180ms ease;
}

.organic-scroll-rail:hover,
.organic-scroll-rail:focus-visible,
.organic-scroll-rail.is-active {
  opacity: 1;
}

.organic-scroll-rail:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, color-mix(in srgb, #d6b16a 68%, #ffffff 8%) 26%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--organic-scroll-thumb) 26%, transparent);
}

.organic-scroll-rail--y {
  width: 30px;
}

.organic-scroll-rail--x {
  height: 30px;
}

/* UX-2 wave track: the rail is ONE continuous static sine path ("mouvement
   en ondes"), not discrete segments. The path is generated component-side
   from the track length and never animates — only the thumb and the
   progress fill move along it. */
.organic-scroll-wave {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  opacity: 0.88;
}

.organic-scroll-wave path {
  fill: none;
  stroke: color-mix(in srgb, #8e918b 42%, transparent);
  stroke: var(--organic-scroll-thumb-quiet);
  stroke-width: 1.5;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.organic-scroll-rail:hover .organic-scroll-wave path,
.organic-scroll-rail.is-active .organic-scroll-wave path {
  stroke: color-mix(in srgb, color-mix(in srgb, #d6b16a 68%, #ffffff 8%) 55%, transparent);
  stroke: color-mix(in srgb, var(--organic-scroll-thumb) 55%, transparent);
}

/* UX-2 real thumb: a clearly grabbable pill (12px broad), the PRIMARY hit
   target of the rail. It replaces the native thumb on opted surfaces. */
.organic-scroll-thumb {
  position: absolute;
  display: block;
  border-radius: 999px;
  cursor: grab;
  pointer-events: auto;
  touch-action: none;
  background:
    linear-gradient(180deg, color-mix(in srgb, #ffffff 72%, color-mix(in srgb, #d6b16a 68%, #ffffff 8%) 28%), color-mix(in srgb, #d6b16a 68%, #ffffff 8%));
  background:
    linear-gradient(180deg, color-mix(in srgb, #ffffff 72%, var(--organic-scroll-thumb) 28%), var(--organic-scroll-thumb));
  box-shadow:
    0 10px 30px color-mix(in srgb, color-mix(in srgb, #d6b16a 68%, #ffffff 8%) 30%, transparent),
    0 0 0 1px color-mix(in srgb, #ffffff 40%, transparent);
  box-shadow:
    0 10px 30px color-mix(in srgb, var(--organic-scroll-thumb) 30%, transparent),
    0 0 0 1px color-mix(in srgb, #ffffff 40%, transparent);
  transition: transform 130ms cubic-bezier(0.2, 0.8, 0.2, 1), filter 180ms ease;
}

.organic-scroll-rail:hover .organic-scroll-thumb,
.organic-scroll-rail:focus-visible .organic-scroll-thumb {
  filter: saturate(1.12) brightness(1.08);
}

.organic-scroll-thumb:active {
  cursor: grabbing;
  filter: brightness(1.16);
}

.organic-scroll-rail--y .organic-scroll-thumb {
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 12px;
}

.organic-scroll-rail--x .organic-scroll-thumb {
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto 0;
  height: 12px;
}

.organic-scroll-progress {
  position: absolute;
  pointer-events: none;
  border-radius: inherit;
  background: color-mix(in srgb, color-mix(in srgb, #d6b16a 68%, #ffffff 8%) 24%, transparent);
  background: color-mix(in srgb, var(--organic-scroll-thumb) 24%, transparent);
  opacity: 0;
  transition: opacity 180ms ease;
}

.organic-scroll-rail.is-active .organic-scroll-progress,
.organic-scroll-rail:hover .organic-scroll-progress {
  opacity: 1;
}

.organic-scroll-rail--y .organic-scroll-progress {
  left: 14px;
  top: 0;
  width: 1px;
  height: 0%;
  height: var(--organic-scroll-progress, 0%);
}

.organic-scroll-rail--x .organic-scroll-progress {
  left: 0;
  top: 14px;
  width: 0%;
  width: var(--organic-scroll-progress, 0%);
  height: 1px;
}

.organic-scroll-preview {
  position: fixed;
  max-width: min(322px, calc(100vw - 72px));
  min-width: 220px;
  padding: 12px 14px 13px;
  border: 1px solid color-mix(in srgb, #f5f3ee 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--organic-scroll-preview-text) 10%, transparent);
  border-radius: 10px;
  background:
    linear-gradient(145deg, color-mix(in srgb, #ffffff 9%, transparent), transparent 42%),
    color-mix(in srgb, #111317 82%, #ffffff 6%);
  background:
    linear-gradient(145deg, color-mix(in srgb, #ffffff 9%, transparent), transparent 42%),
    var(--organic-scroll-preview-bg);
  color: #f5f3ee;
  color: var(--organic-scroll-preview-text);
  box-shadow:
    0 22px 60px color-mix(in srgb, #000000 34%, transparent),
    0 0 0 1px color-mix(in srgb, #ffffff 4%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(1.12);
          backdrop-filter: blur(18px) saturate(1.12);
  pointer-events: none;
  animation: organic-scroll-preview-in 150ms ease-out both;
}

.organic-scroll-preview-kicker {
  display: block;
  margin-bottom: 5px;
  color: color-mix(in srgb, #f5f3ee 62%, transparent);
  color: var(--organic-scroll-preview-muted);
  font-size: 11px;
  font-weight: 650;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.organic-scroll-preview strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: 13px;
  font-weight: 720;
  line-height: 1.28;
  letter-spacing: 0;
}

@keyframes organic-scroll-preview-in {
  from {
    opacity: 0;
    transform: translate3d(-8px, 2px, 0) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }

  .organic-scroll-rail,
  .organic-scroll-thumb,
  .organic-scroll-progress {
    transition: none;
  }

  .organic-scroll-preview {
    animation: none;
  }
}

@media (max-width: 720px) {
  .organic-scroll-rail--y {
    left: 8px !important;
    width: 24px;
  }

  .organic-scroll-rail--x {
    left: 32px !important;
    right: 32px;
    max-width: calc(100vw - 64px);
  }

  .organic-scroll-preview {
    left: 42px !important;
    max-width: calc(100vw - 56px);
    min-width: 0;
  }
}


/* =============================================================================
 * workspace/window-layer/global-window-layer.css
 * -----------------------------------------------------------------------------
 * WMG-1 — Global Window Layer styles.
 *
 * Discipline ratifiée :
 *   - Z stack déterministe (1200-1500 windows, 2000 modals, 3000 fatal)
 *   - Cognitive dominance via .is-focused / .is-recessed (subtle, NOT blur)
 *   - Calm transitions (180-220ms ease, prefers-reduced-motion respected)
 *   - Pas de drag handle visible (Step 3 utilise cursor: move sur .wmg-chrome)
 *   - Mobile/tablet : drag désactivé, transitions allégées
 * ========================================================================== */

/* ── Layer container ─────────────────────────────────────────────────────── */
.wmg-layer {
  position: fixed;
  inset: 0;
  pointer-events: none; /* layer itself is pass-through ; frames re-enable */
  z-index: 1200;
}

/* ── Window frame ────────────────────────────────────────────────────────── */
.wmg-frame {
  /* WMG-1.fix2 — position:fixed so WindowFrame is viewport-anchored
   * regardless of where it is mounted in the React tree. This allows
   * IFI Content to render its own cockpit windows directly (without
   * relying on the GlobalWindowLayer / Portal path). */
  position: fixed;
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.985);
  border: 1px solid rgba(26, 31, 42, 0.10);
  border-radius: 12px;
  box-shadow:
    0 1px 2px rgba(26, 31, 42, 0.06),
    0 8px 24px rgba(26, 31, 42, 0.08);
  overflow: hidden;
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    opacity 0.18s ease;
  /* Cognitive dominance default = recessed. Focused state overrides below. */
  opacity: 0.94;
}

/* Cognitive dominance : focused window = full presence. */
.wmg-frame.is-focused {
  opacity: 1;
  border-color: rgba(26, 31, 42, 0.18);
  box-shadow:
    0 2px 4px rgba(26, 31, 42, 0.10),
    0 12px 36px rgba(26, 31, 42, 0.14);
}

/* Recessed (non-focused) state is the default. Explicit class for clarity. */
.wmg-frame.is-recessed {
  /* same as base ; explicit to make CSS authors aware of the state */
}

/* ── Window modes ────────────────────────────────────────────────────────── */
.wmg-frame.is-maximized {
  /* Fill viewport minus Luna rail offset + breathing margin */
  left: calc(0px + 12px) !important;
  left: calc(var(--luna-rail-width, 0px) + 12px) !important;
  top: 64px !important;
  width: calc(100vw - 0px - 24px) !important;
  width: calc(100vw - var(--luna-rail-width, 0px) - 24px) !important;
  height: calc(100vh - 76px) !important;
  border-radius: 8px;
}

.wmg-frame.is-minimized {
  /* Header strip only — body hidden by WindowFrame conditional render. */
  height: auto !important;
  min-height: 44px;
}

/* ── Window chrome (header) ──────────────────────────────────────────────── */
.wmg-chrome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 44px;
  padding: 0 12px 0 14px;
  border-bottom: 1px solid rgba(26, 31, 42, 0.06);
  background: rgba(245, 247, 250, 0.50);
  flex-shrink: 0;
  cursor: default;
  -webkit-user-select: none;
          user-select: none;
  touch-action: none; /* avoid browser pan when dragging via touch */
}

.wmg-chrome.is-draggable {
  cursor: move;
}

.wmg-chrome:focus-visible {
  outline: 2px solid #2642B0;
  outline-offset: -2px;
}

.wmg-chrome.is-focused {
  background: rgba(245, 247, 250, 0.75);
  border-bottom-color: rgba(26, 31, 42, 0.10);
}

.wmg-title {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: rgba(26, 31, 42, 0.80);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1 1;
  margin-right: 12px;
}

.wmg-frame.is-focused .wmg-title {
  color: rgba(26, 31, 42, 1);
  font-weight: 600;
}

/* ── Luna variant (WMG-2) ────────────────────────────────────────────────── */
/* Luna is a special system window — chrome lighter, distinct background,
 * NO close button, always present even when not focused (no recessed
 * opacity). Visual signal : Luna is structural, not just another window. */
.wmg-frame.wmg-frame-luna {
  opacity: 1 !important; /* never recessed */
  border-color: rgba(38, 66, 176, 0.18);
  background: linear-gradient(180deg, rgba(245, 247, 252, 0.98) 0%, rgba(236, 240, 250, 0.96) 100%);
}
.wmg-frame.wmg-frame-luna.is-focused {
  border-color: rgba(38, 66, 176, 0.30);
}
.wmg-chrome.wmg-chrome-luna {
  height: 36px;
  background: rgba(38, 66, 176, 0.06);
  border-bottom-color: rgba(38, 66, 176, 0.10);
}
.wmg-chrome.wmg-chrome-luna.is-focused {
  background: rgba(38, 66, 176, 0.10);
}
.wmg-frame.wmg-frame-luna .wmg-title {
  color: rgba(38, 66, 176, 0.80);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* ── Window controls (header buttons) ────────────────────────────────────── */
.wmg-controls {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.wmg-control {
  background: transparent;
  border: 0;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font: inherit;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  color: rgba(26, 31, 42, 0.65);
  opacity: 0.70;
  transition: background 0.15s ease, opacity 0.15s ease, color 0.15s ease;
}

.wmg-control:hover {
  background: rgba(26, 31, 42, 0.06);
  opacity: 1;
}

.wmg-control:focus-visible {
  outline: 2px solid #2642B0;
  outline-offset: 2px;
}

.wmg-control-close:hover {
  background: rgba(184, 31, 38, 0.10);
  color: #B81F26;
}

/* ── Window body (content slot) ──────────────────────────────────────────── */
.wmg-body {
  flex: 1 1;
  min-height: 0;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(39, 66, 176, 0.30) transparent;
}

.wmg-body::-webkit-scrollbar { width: 9px; height: 9px; }
.wmg-body::-webkit-scrollbar-thumb {
  background: rgba(39, 66, 176, 0.25);
  border-radius: 5px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
.wmg-body::-webkit-scrollbar-thumb:hover {
  background: rgba(39, 66, 176, 0.45);
  background-clip: padding-box;
}

/* ── Portal slot (Step 5+) ─────────────────────────────────────────────── */
/* Full-height container that IFI Content / Dossier / Support portal into.
 * The actual panel JSX is mounted here via ReactDOM.createPortal. */
.wmg-portal-slot {
  flex: 1 1;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* ── Step 6 fix — .ifi-page wrapper neutralization inside WMG ──────────── */
/* IFIWindowPortal wraps its children in <div class="ifi-page wmg-portal-ifi-page">
 * so the 455+ `.ifi-page .ifi-*` CSS descendant selectors keep matching
 * after the portal moves DOM out of the IFI page subtree. The base
 * .ifi-page styling (min-height:100vh, padding, overflow:hidden, etc.)
 * would break the WMG frame layout — neutralize all of it here. */
.wmg-frame .wmg-portal-ifi-page,
.wmg-frame .ifi-page {
  min-height: 0 !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  display: flex !important;
  flex-direction: column !important;
}
/* The .ifi-page CSS variables (--ifi-glass-strong etc.) must still
 * cascade through the wrapper. The base block above doesn't override
 * them, so they remain available to descendants. */

/* ── Step 6 — chrome cleanup ───────────────────────────────────────────── */
/* When an IFI panel is portaled INSIDE a wmg-frame, the WMG chrome owns
 * window control affordances (title, drag handle, max/min/restore/close).
 * Hide the legacy PanelChrome's title + controls + close to avoid double
 * chrome. Keep .ifi-panel-head-right visible so business badges
 * (MODE DÉMO, isFiltered, preview status) remain present.
 * The legacy .ifi-panel container (wrapping the body) also drops its
 * own background + position because it now lives inside a wmg-frame. */
.wmg-frame .ifi-panel-head .ifi-panel-h3,
.wmg-frame .ifi-panel-head .ifi-panel-control,
.wmg-frame .ifi-panel-head .ifi-panel-close {
  display: none !important;
}
.wmg-frame .ifi-panel-head {
  /* Slim bar showing only the rightSlot badges. */
  padding: 6px 14px;
  min-height: 0;
}
.wmg-frame .ifi-panel-head-right {
  margin-left: auto;
}
/* IFI panels carry their own positioning (.ifi-panel position:fixed). Inside
 * a wmg-frame, the panel body must flow naturally — strip the legacy
 * positioning. The wmg-frame provides position + size. */
.wmg-frame .ifi-panel {
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  border-radius: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
}
/* Cancel the W1-MACRO .is-maximized / .is-minimized panel transforms when
 * inside a wmg-frame — the WMG owns those states now. */
.wmg-frame .ifi-panel.is-maximized,
.wmg-frame .ifi-panel.is-minimized {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  transform: none !important;
}

/* WMG-2 Step 7 — Luna inside wmg-frame : neutralize legacy fixed
 * positioning rules. The legacy .ifi-page.is-cockpit-active .ifi-luna-zone
 * rules use position:fixed left:0 width:320px which would override
 * the WindowFrame bounds. Inside a wmg-frame, Luna's positioning is
 * fully owned by the WindowFrame (bounds inline). The .ifi-page
 * class still cascades CSS variables to LunaZone, but positioning is
 * neutralized here. */
.wmg-frame .ifi-luna-zone {
  position: static !important;
  left: auto !important;
  top: auto !important;
  bottom: auto !important;
  width: 100% !important;
  height: 100% !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  z-index: auto !important;
}
/* Luna mode toggle (WMG-1 era) is hidden : WindowChrome controls
 * own this affordance now. */
.wmg-frame .ifi-luna-mode-toggle {
  display: none !important;
}

/* ── Placeholder surface (Step 2 only ; replaced in Steps 5-7) ──────────── */
.wmg-surface-placeholder {
  padding: 24px;
  font-family: inherit;
  color: rgba(26, 31, 42, 0.70);
}

.wmg-placeholder-line {
  margin: 0 0 8px 0;
  font-size: 13px;
}

.wmg-placeholder-line.wmg-placeholder-meta {
  font-size: 11px;
  opacity: 0.55;
  font-style: italic;
}

.wmg-placeholder-line code {
  background: rgba(26, 31, 42, 0.05);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 11px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* ── WMG-2 Step 8 — Resize handles ──────────────────────────────────────── */
/* 8 handles per WindowFrame (mode='normal' only). Edges 6px thick,
 * corners 12×12px hit target. Visible cursor only ; no visual styling
 * (transparent) to keep the chrome calm. */
.wmg-resize {
  position: absolute;
  background: transparent;
  z-index: 1; /* above frame body, below chrome */
  touch-action: none;
}
.wmg-resize-n { top: -3px;    left: 12px;   right: 12px;   height: 6px;  cursor: ns-resize; }
.wmg-resize-s { bottom: -3px; left: 12px;   right: 12px;   height: 6px;  cursor: ns-resize; }
.wmg-resize-e { right: -3px;  top: 12px;    bottom: 12px;  width: 6px;   cursor: ew-resize; }
.wmg-resize-w { left: -3px;   top: 12px;    bottom: 12px;  width: 6px;   cursor: ew-resize; }
.wmg-resize-nw { top: -3px;    left: -3px;   width: 14px;  height: 14px; cursor: nwse-resize; }
.wmg-resize-ne { top: -3px;    right: -3px;  width: 14px;  height: 14px; cursor: nesw-resize; }
.wmg-resize-sw { bottom: -3px; left: -3px;   width: 14px;  height: 14px; cursor: nesw-resize; }
.wmg-resize-se { bottom: -3px; right: -3px;  width: 14px;  height: 14px; cursor: nwse-resize; }

/* Mobile/tablet : no resize. CSS-driven hide is enough since the
 * resize hook is also gated by viewport detection. */
@media (max-width: 1023px) {
  .wmg-resize { display: none !important; }
}

/* ── Reduced motion : strip all animation/transition ─────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .wmg-frame,
  .wmg-chrome,
  .wmg-control,
  .wmg-title {
    transition: none !important;
  }
}

/* ── WMG-2 — Floating nav bar (WindowNavBar) ────────────────────────────── */
/* Compact, dense, calm pills bar. Bottom-center. UNDER windows (z<1200)
 * so windows always cover the dock when they overlap. NO thumbnails,
 * NO bouncing animations, NO unread agressive counters. Just a spatial
 * marker. */
.wmg-nav-bar {
  position: fixed;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1180;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  max-width: calc(100vw - 32px);
  overflow-x: auto;
  background: rgba(245, 247, 250, 0.55);
  backdrop-filter: blur(8px) saturate(110%);
  -webkit-backdrop-filter: blur(8px) saturate(110%);
  border: 0.5px solid rgba(26, 31, 42, 0.08);
  border-radius: 18px;
  box-shadow: 0 2px 8px rgba(26, 31, 42, 0.06);
  /* prevents native scroll bounce on touchpads from displacing the dock */
  overscroll-behavior-x: contain;
}

.wmg-nav-bar::-webkit-scrollbar {
  height: 4px;
}
.wmg-nav-bar::-webkit-scrollbar-thumb {
  background: rgba(26, 31, 42, 0.20);
  border-radius: 2px;
}

.wmg-nav-sep {
  display: inline-block;
  width: 1px;
  height: 18px;
  background: rgba(26, 31, 42, 0.14);
  margin: 0 4px;
  flex-shrink: 0;
}

.wmg-nav-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 26px;
  max-width: 140px;
  padding: 0 10px;
  border: 0;
  border-radius: 14px;
  background: rgba(26, 31, 42, 0.04);
  color: rgba(26, 31, 42, 0.70);
  font: inherit;
  font-size: 11.5px;
  font-weight: 500;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.12s ease, color 0.12s ease;
}
.wmg-nav-chip:hover {
  background: rgba(26, 31, 42, 0.08);
  color: rgba(26, 31, 42, 0.95);
}
.wmg-nav-chip:focus-visible {
  outline: 2px solid #2642B0;
  outline-offset: 2px;
}

.wmg-nav-chip.is-focused {
  background: rgba(38, 66, 176, 0.12);
  color: #2642B0;
}
.wmg-nav-chip.is-minimized {
  opacity: 0.70;
}

/* Luna chip — subtle indigo, always visible state */
.wmg-nav-chip.is-luna {
  background: rgba(38, 66, 176, 0.08);
  color: rgba(38, 66, 176, 0.85);
}
.wmg-nav-chip.is-luna:hover {
  background: rgba(38, 66, 176, 0.16);
  color: #2642B0;
}
.wmg-nav-chip.is-luna.is-focused {
  background: rgba(38, 66, 176, 0.20);
  color: #1E3A99;
}

.wmg-nav-chip-glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  font-size: 10px;
  font-weight: 700;
  border-radius: 999px;
  background: rgba(26, 31, 42, 0.08);
  flex-shrink: 0;
}
.wmg-nav-chip.is-luna .wmg-nav-chip-glyph {
  background: rgba(38, 66, 176, 0.16);
  color: rgba(38, 66, 176, 0.85);
}
.wmg-nav-chip.is-focused .wmg-nav-chip-glyph {
  background: rgba(38, 66, 176, 0.20);
  color: #2642B0;
}

.wmg-nav-chip-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 90px;
}

.wmg-nav-chip-state {
  font-size: 9px;
  opacity: 0.55;
  flex-shrink: 0;
}

/* Mobile : nav bar hidden, restoration via OS gestures or palette
 * (WMG-3). Keeping it on a tiny viewport would clutter. */
@media (max-width: 640px) {
  .wmg-nav-bar {
    display: none;
  }
}

/* ── Mobile / tablet adaptations (Step 8 will refine) ───────────────────── */
@media (max-width: 768px) {
  .wmg-frame {
    /* Mobile : single-surface. CSS forces full-width frame regardless of
       bounds. Step 8 will also dispatch via reducer to enforce single
       visible window. */
    left: 0 !important;
    top: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    border-radius: 0;
    border-width: 0;
    box-shadow: none;
  }
  .wmg-frame.is-minimized {
    height: 44px !important;
  }
}

