/*
 * AE Firefly — Rainbow variant
 * "All the colors of wonder."
 * Aether Platform / One Sky IT, LLC — Design System Theme
 *
 * Aesthetic vision (Scott Idem, 2026-03-09):
 *   A celebration-of-color variant of the Firefly system.
 *   The three brand color slots span the visible spectrum:
 *   Coral-Red (primary) → Emerald-Green (secondary) → Violet (tertiary).
 *   Warm cream surfaces let the saturated accents breathe without
 *   competing. Joyful and energetic — still calm, still Firefly.
 *
 * Color philosophy:
 *   Primary   — Vivid Coral-Red: ~15°, warm and energetic
 *   Secondary — Emerald Green:   ~148°, lush and clear
 *   Tertiary  — Rich Violet:     ~295°, deep and luminous
 *   Surface   — Sunrise Cream:   barely warm neutral; warm white
 *               (light mode) → deep warm charcoal (dark mode)
 *
 * Section 508 / WCAG 2.1 AA:
 *   - Body text (surface-950 on surface-50 light): >15:1 contrast ✓
 *   - Primary-filled buttons meet ≥3:1 for interactive components ✓
 *   - Chroma values kept within sRGB gamut across the full ramp
 *
 * Based on: Skeleton v4 theme CSS variable structure
 * Variant of: src/ae-firefly.css (AE_Firefly)
 */

html[data-theme='AE_Firefly_Rainbow'] {
    --text-scaling: 1.067;
    --background: var(--color-surface-50) !important;
    --base-font-color: var(--color-surface-950);
    --base-font-color-dark: var(--color-surface-50);
    --base-font-family: system-ui, sans-serif;
    --base-font-size: inherit;
    --base-line-height: inherit;
    --base-font-weight: normal;
    --base-font-style: normal;
    --base-letter-spacing: 0em;
    --heading-font-color: inherit;
    --heading-font-color-dark: inherit;
    --heading-font-family: inherit;
    --heading-font-weight: bold;
    --heading-font-style: normal;
    --heading-letter-spacing: inherit;

    /* Anchors: coral-red in light, lighter coral in dark */
    --anchor-font-color: var(--color-primary-600);
    --anchor-font-color-dark: var(--color-primary-300);
    --anchor-font-family: inherit;
    --anchor-font-size: inherit;
    --anchor-line-height: inherit;
    --anchor-font-weight: inherit;
    --anchor-font-style: inherit;
    --anchor-letter-spacing: inherit;
    --anchor-text-decoration: none;
    --anchor-text-decoration-hover: underline;
    --anchor-text-decoration-active: none;
    --anchor-text-decoration-focus: none;

    --spacing: 0.25rem;
}

/* --- Color ramps (light mode) copied from dark block so both modes have full ramps --- */
html[data-theme='AE_Firefly_Rainbow'] {
    --color-primary-50: oklch(97% 0.02 15deg);
    --color-primary-100: oklch(92% 0.048 14deg);
    --color-primary-200: oklch(86% 0.085 13deg);
    --color-primary-300: oklch(79% 0.125 13deg);
    --color-primary-400: oklch(71% 0.16 13deg);
    --color-primary-500: oklch(60% 0.19 14deg);
    --color-primary-600: oklch(52.5% 0.178 15deg);
    --color-primary-700: oklch(45% 0.162 16deg);
    --color-primary-800: oklch(37.5% 0.142 17deg);
    --color-primary-900: oklch(30% 0.118 18deg);
    --color-primary-950: oklch(22.5% 0.092 19deg);
    --color-primary-contrast-dark: var(--color-primary-950);
    --color-primary-contrast-light: var(--color-primary-50);

    --color-secondary-50: oklch(97% 0.04 152deg);
    --color-secondary-100: oklch(92.5% 0.072 150deg);
    --color-secondary-200: oklch(87% 0.105 149deg);
    --color-secondary-300: oklch(81% 0.132 148deg);
    --color-secondary-400: oklch(74.5% 0.152 148deg);
    --color-secondary-500: oklch(62% 0.16 148deg);
    --color-secondary-600: oklch(53.5% 0.148 148deg);
    --color-secondary-700: oklch(45.5% 0.132 147deg);
    --color-secondary-800: oklch(37.5% 0.112 146deg);
    --color-secondary-900: oklch(29.5% 0.09 145deg);
    --color-secondary-950: oklch(21.5% 0.068 144deg);
    --color-secondary-contrast-dark: var(--color-secondary-950);
    --color-secondary-contrast-light: var(--color-secondary-50);

    --color-tertiary-50: oklch(96.5% 0.03 299deg);
    --color-tertiary-100: oklch(91% 0.058 297deg);
    --color-tertiary-200: oklch(84.5% 0.092 296deg);
    --color-tertiary-300: oklch(77% 0.122 295deg);
    --color-tertiary-400: oklch(68.5% 0.148 295deg);
    --color-tertiary-500: oklch(57% 0.158 295deg);
    --color-tertiary-600: oklch(49.5% 0.15 294deg);
    --color-tertiary-700: oklch(42.5% 0.138 293deg);
    --color-tertiary-800: oklch(35.5% 0.122 292deg);
    --color-tertiary-900: oklch(28.5% 0.102 291deg);
    --color-tertiary-950: oklch(21% 0.08 290deg);
    --color-tertiary-contrast-dark: var(--color-tertiary-950);
    --color-tertiary-contrast-light: var(--color-tertiary-50);

    --color-success-50: oklch(95.77% 0.05 152.69deg);
    --color-success-100: oklch(91.59% 0.06 152deg);
    --color-success-200: oklch(87.45% 0.08 152.08deg);
    --color-success-300: oklch(83.57% 0.09 150.85deg);
    --color-success-400: oklch(79.47% 0.11 150.71deg);
    --color-success-500: oklch(75.38% 0.12 149.99deg);
    --color-success-600: oklch(67.65% 0.11 149.94deg);
    --color-success-700: oklch(59.71% 0.09 150.42deg);
    --color-success-800: oklch(51.74% 0.08 150.24deg);
    --color-success-900: oklch(43.2% 0.06 151.12deg);
    --color-success-950: oklch(34.2% 0.04 151.44deg);
    --color-success-contrast-dark: var(--color-success-950);
    --color-success-contrast-light: var(--color-success-50);

    --color-warning-50: oklch(97.5% 0.065 78deg);
    --color-warning-100: oklch(93.5% 0.09 75deg);
    --color-warning-200: oklch(89.5% 0.12 73deg);
    --color-warning-300: oklch(85.5% 0.145 70deg);
    --color-warning-400: oklch(81.5% 0.16 67deg);
    --color-warning-500: oklch(77% 0.165 65deg);
    --color-warning-600: oklch(69.5% 0.155 64deg);
    --color-warning-700: oklch(61.5% 0.14 63deg);
    --color-warning-800: oklch(53.5% 0.125 62deg);
    --color-warning-900: oklch(45% 0.105 61deg);
    --color-warning-950: oklch(37% 0.088 60deg);
    --color-warning-contrast-dark: var(--color-warning-950);
    --color-warning-contrast-light: var(--color-warning-50);

    --color-error-50: oklch(95% 0.04 18deg);
    --color-error-100: oklch(88% 0.07 20deg);
    --color-error-200: oklch(80% 0.105 21deg);
    --color-error-300: oklch(72% 0.14 22deg);
    --color-error-400: oklch(64.5% 0.17 23deg);
    --color-error-500: oklch(57.5% 0.195 24deg);
    --color-error-600: oklch(51.5% 0.182 25deg);
    --color-error-700: oklch(45.5% 0.165 26deg);
    --color-error-800: oklch(39.5% 0.148 27deg);
    --color-error-900: oklch(33% 0.128 28deg);
    --color-error-950: oklch(26.5% 0.108 29deg);
    --color-error-contrast-dark: var(--color-error-950);
    --color-error-contrast-light: var(--color-error-50);

    --color-surface-50: oklch(99.2% 0.004 75deg);
    --color-surface-100: oklch(97% 0.007 72deg);
    --color-surface-200: oklch(93.5% 0.01 70deg);
    --color-surface-300: oklch(88.5% 0.013 68deg);
    --color-surface-400: oklch(81.5% 0.016 66deg);
    --color-surface-500: oklch(70.5% 0.018 64deg);
    --color-surface-600: oklch(59% 0.018 62deg);
    --color-surface-700: oklch(47.5% 0.018 58deg);
    --color-surface-800: oklch(35.5% 0.02 55deg);
    --color-surface-900: oklch(24.5% 0.02 52deg);
    --color-surface-950: oklch(15.5% 0.022 48deg);
    --color-surface-contrast-dark: var(--color-surface-950);
    --color-surface-contrast-light: var(--color-surface-50);
}

html.dark[data-theme='AE_Firefly_Rainbow'] {
    --background: var(--color-surface-950) !important;
    --radius-base: 0.375rem;
    --radius-container: 0.875rem;
    --default-border-width: 1px;
    --default-divide-width: 1px;
    --default-ring-width: 1px;

    --body-background-color: var(--color-surface-50);
    --body-background-color-dark: var(--color-surface-950);

    /* ===================================================================
     * PRIMARY — Vivid Coral-Red (warm end of the rainbow)
     * Hue: ~15°. The warm, energetic anchor of the spectrum —
     * sits between orange and red for maximum vibrancy and warmth.
     * Kept within sRGB gamut across the full ramp.
     * At 500 (L≈60%): sufficient contrast with primary-50 text (≥4:1).
     * =================================================================== */
    --color-primary-50: oklch(97% 0.02 15deg);
    --color-primary-100: oklch(92% 0.048 14deg);
    --color-primary-200: oklch(86% 0.085 13deg);
    --color-primary-300: oklch(79% 0.125 13deg);
    --color-primary-400: oklch(71% 0.16 13deg);
    --color-primary-500: oklch(60% 0.19 14deg);
    --color-primary-600: oklch(52.5% 0.178 15deg);
    --color-primary-700: oklch(45% 0.162 16deg);
    --color-primary-800: oklch(37.5% 0.142 17deg);
    --color-primary-900: oklch(30% 0.118 18deg);
    --color-primary-950: oklch(22.5% 0.092 19deg);
    --color-primary-contrast-dark: var(--color-primary-950);
    --color-primary-contrast-light: var(--color-primary-50);
    --color-primary-contrast-50: var(--color-primary-contrast-dark);
    --color-primary-contrast-100: var(--color-primary-contrast-dark);
    --color-primary-contrast-200: var(--color-primary-contrast-dark);
    --color-primary-contrast-300: var(--color-primary-contrast-dark);
    --color-primary-contrast-400: var(--color-primary-contrast-dark);
    --color-primary-contrast-500: var(--color-primary-contrast-light);
    --color-primary-contrast-600: var(--color-primary-contrast-light);
    --color-primary-contrast-700: var(--color-primary-contrast-light);
    --color-primary-contrast-800: var(--color-primary-contrast-light);
    --color-primary-contrast-900: var(--color-primary-contrast-light);
    --color-primary-contrast-950: var(--color-primary-contrast-light);

    /* ===================================================================
     * SECONDARY — Emerald Green (mid-spectrum, the heart of the rainbow)
     * Hue: ~148°. Clear, lush emerald — the most recognizable
     * "rainbow green." Positioned at the center of the visible spectrum,
     * it bridges the warm red primary and the cool violet tertiary.
     * Used for secondary actions, success-adjacent highlights, badges.
     * =================================================================== */
    --color-secondary-50: oklch(97% 0.04 152deg);
    --color-secondary-100: oklch(92.5% 0.072 150deg);
    --color-secondary-200: oklch(87% 0.105 149deg);
    --color-secondary-300: oklch(81% 0.132 148deg);
    --color-secondary-400: oklch(74.5% 0.152 148deg);
    --color-secondary-500: oklch(62% 0.16 148deg);
    --color-secondary-600: oklch(53.5% 0.148 148deg);
    --color-secondary-700: oklch(45.5% 0.132 147deg);
    --color-secondary-800: oklch(37.5% 0.112 146deg);
    --color-secondary-900: oklch(29.5% 0.09 145deg);
    --color-secondary-950: oklch(21.5% 0.068 144deg);
    --color-secondary-contrast-dark: var(--color-secondary-950);
    --color-secondary-contrast-light: var(--color-secondary-50);
    --color-secondary-contrast-50: var(--color-secondary-contrast-dark);
    --color-secondary-contrast-100: var(--color-secondary-contrast-dark);
    --color-secondary-contrast-200: var(--color-secondary-contrast-dark);
    --color-secondary-contrast-300: var(--color-secondary-contrast-dark);
    --color-secondary-contrast-400: var(--color-secondary-contrast-dark);
    --color-secondary-contrast-500: var(--color-secondary-contrast-light);
    --color-secondary-contrast-600: var(--color-secondary-contrast-light);
    --color-secondary-contrast-700: var(--color-secondary-contrast-light);
    --color-secondary-contrast-800: var(--color-secondary-contrast-light);
    --color-secondary-contrast-900: var(--color-secondary-contrast-light);
    --color-secondary-contrast-950: var(--color-secondary-contrast-light);

    /* ===================================================================
     * TERTIARY — Rich Violet (cool end of the rainbow)
     * Hue: ~295°. Deep blue-violet — the "indigo and violet" end of
     * the arc. Completes the warm-cool spectrum span across the three
     * brand color slots. Creates striking contrast with the warm primary.
     * Used for location chips, deep accents, tertiary elements.
     * =================================================================== */
    --color-tertiary-50: oklch(96.5% 0.03 299deg);
    --color-tertiary-100: oklch(91% 0.058 297deg);
    --color-tertiary-200: oklch(84.5% 0.092 296deg);
    --color-tertiary-300: oklch(77% 0.122 295deg);
    --color-tertiary-400: oklch(68.5% 0.148 295deg);
    --color-tertiary-500: oklch(57% 0.158 295deg);
    --color-tertiary-600: oklch(49.5% 0.15 294deg);
    --color-tertiary-700: oklch(42.5% 0.138 293deg);
    --color-tertiary-800: oklch(35.5% 0.122 292deg);
    --color-tertiary-900: oklch(28.5% 0.102 291deg);
    --color-tertiary-950: oklch(21% 0.08 290deg);
    --color-tertiary-contrast-dark: var(--color-tertiary-950);
    --color-tertiary-contrast-light: var(--color-tertiary-50);
    --color-tertiary-contrast-50: var(--color-tertiary-contrast-dark);
    --color-tertiary-contrast-100: var(--color-tertiary-contrast-dark);
    --color-tertiary-contrast-200: var(--color-tertiary-contrast-dark);
    --color-tertiary-contrast-300: var(--color-tertiary-contrast-dark);
    --color-tertiary-contrast-400: var(--color-tertiary-contrast-dark);
    --color-tertiary-contrast-500: var(--color-tertiary-contrast-light);
    --color-tertiary-contrast-600: var(--color-tertiary-contrast-light);
    --color-tertiary-contrast-700: var(--color-tertiary-contrast-light);
    --color-tertiary-contrast-800: var(--color-tertiary-contrast-light);
    --color-tertiary-contrast-900: var(--color-tertiary-contrast-light);
    --color-tertiary-contrast-950: var(--color-tertiary-contrast-light);

    /* ===================================================================
     * SUCCESS — Bioluminescent Green
     * Hue: ~152°. Consistent with AE_Firefly for recognizable semantic
     * color meaning across OSIT themes.
     * =================================================================== */
    --color-success-50: oklch(95.77% 0.05 152.69deg);
    --color-success-100: oklch(91.59% 0.06 152deg);
    --color-success-200: oklch(87.45% 0.08 152.08deg);
    --color-success-300: oklch(83.57% 0.09 150.85deg);
    --color-success-400: oklch(79.47% 0.11 150.71deg);
    --color-success-500: oklch(75.38% 0.12 149.99deg);
    --color-success-600: oklch(67.65% 0.11 149.94deg);
    --color-success-700: oklch(59.71% 0.09 150.42deg);
    --color-success-800: oklch(51.74% 0.08 150.24deg);
    --color-success-900: oklch(43.2% 0.06 151.12deg);
    --color-success-950: oklch(34.2% 0.04 151.44deg);
    --color-success-contrast-dark: var(--color-success-950);
    --color-success-contrast-light: var(--color-success-50);
    --color-success-contrast-50: var(--color-success-contrast-dark);
    --color-success-contrast-100: var(--color-success-contrast-dark);
    --color-success-contrast-200: var(--color-success-contrast-dark);
    --color-success-contrast-300: var(--color-success-contrast-dark);
    --color-success-contrast-400: var(--color-success-contrast-dark);
    --color-success-contrast-500: var(--color-success-contrast-dark);
    --color-success-contrast-600: var(--color-success-contrast-dark);
    --color-success-contrast-700: var(--color-success-contrast-light);
    --color-success-contrast-800: var(--color-success-contrast-light);
    --color-success-contrast-900: var(--color-success-contrast-light);
    --color-success-contrast-950: var(--color-success-contrast-light);

    /* ===================================================================
     * WARNING — Amber Orange
     * Consistent with AE_Firefly for recognizable semantic meaning.
     * =================================================================== */
    --color-warning-50: oklch(97.5% 0.065 78deg);
    --color-warning-100: oklch(93.5% 0.09 75deg);
    --color-warning-200: oklch(89.5% 0.12 73deg);
    --color-warning-300: oklch(85.5% 0.145 70deg);
    --color-warning-400: oklch(81.5% 0.16 67deg);
    --color-warning-500: oklch(77% 0.165 65deg);
    --color-warning-600: oklch(69.5% 0.155 64deg);
    --color-warning-700: oklch(61.5% 0.14 63deg);
    --color-warning-800: oklch(53.5% 0.125 62deg);
    --color-warning-900: oklch(45% 0.105 61deg);
    --color-warning-950: oklch(37% 0.088 60deg);
    --color-warning-contrast-dark: var(--color-warning-950);
    --color-warning-contrast-light: var(--color-warning-50);
    --color-warning-contrast-50: var(--color-warning-contrast-dark);
    --color-warning-contrast-100: var(--color-warning-contrast-dark);
    --color-warning-contrast-200: var(--color-warning-contrast-dark);
    --color-warning-contrast-300: var(--color-warning-contrast-dark);
    --color-warning-contrast-400: var(--color-warning-contrast-dark);
    --color-warning-contrast-500: var(--color-warning-contrast-dark);
    --color-warning-contrast-600: var(--color-warning-contrast-dark);
    --color-warning-contrast-700: var(--color-warning-contrast-light);
    --color-warning-contrast-800: var(--color-warning-contrast-light);
    --color-warning-contrast-900: var(--color-warning-contrast-light);
    --color-warning-contrast-950: var(--color-warning-contrast-light);

    /* ===================================================================
     * ERROR — Soft Coral/Rose
     * Consistent with AE_Firefly for recognizable semantic meaning.
     * =================================================================== */
    --color-error-50: oklch(95% 0.04 18deg);
    --color-error-100: oklch(88% 0.07 20deg);
    --color-error-200: oklch(80% 0.105 21deg);
    --color-error-300: oklch(72% 0.14 22deg);
    --color-error-400: oklch(64.5% 0.17 23deg);
    --color-error-500: oklch(57.5% 0.195 24deg);
    --color-error-600: oklch(51.5% 0.182 25deg);
    --color-error-700: oklch(45.5% 0.165 26deg);
    --color-error-800: oklch(39.5% 0.148 27deg);
    --color-error-900: oklch(33% 0.128 28deg);
    --color-error-950: oklch(26.5% 0.108 29deg);
    --color-error-contrast-dark: var(--color-error-950);
    --color-error-contrast-light: var(--color-error-50);
    --color-error-contrast-50: var(--color-error-contrast-dark);
    --color-error-contrast-100: var(--color-error-contrast-dark);
    --color-error-contrast-200: var(--color-error-contrast-dark);
    --color-error-contrast-300: var(--color-error-contrast-dark);
    --color-error-contrast-400: var(--color-error-contrast-light);
    --color-error-contrast-500: var(--color-error-contrast-light);
    --color-error-contrast-600: var(--color-error-contrast-light);
    --color-error-contrast-700: var(--color-error-contrast-light);
    --color-error-contrast-800: var(--color-error-contrast-light);
    --color-error-contrast-900: var(--color-error-contrast-light);
    --color-error-contrast-950: var(--color-error-contrast-light);

    /* ===================================================================
     * SURFACE — Sunrise Cream
     * A barely-warm neutral (hue ~70°, chroma 0.004-0.022) that lets
     * the vibrant brand colors breathe. The warmth prevents the surface
     * from feeling clinical when the vivid accents are in use.
     *
     * 50  → body-bg light:  warm near-white, like morning paper
     * 950 → body-bg dark:   deep warm charcoal, like a dim theatre
     * =================================================================== */
    --color-surface-50: oklch(99.2% 0.004 75deg);
    --color-surface-100: oklch(97% 0.007 72deg);
    --color-surface-200: oklch(93.5% 0.01 70deg);
    --color-surface-300: oklch(88.5% 0.013 68deg);
    --color-surface-400: oklch(81.5% 0.016 66deg);
    --color-surface-500: oklch(70.5% 0.018 64deg);
    --color-surface-600: oklch(59% 0.018 62deg);
    --color-surface-700: oklch(47.5% 0.018 58deg);
    --color-surface-800: oklch(35.5% 0.02 55deg);
    --color-surface-900: oklch(24.5% 0.02 52deg);
    --color-surface-950: oklch(15.5% 0.022 48deg);
    --color-surface-contrast-dark: var(--color-surface-950);
    --color-surface-contrast-light: var(--color-surface-50);
    --color-surface-contrast-50: var(--color-surface-contrast-dark);
    --color-surface-contrast-100: var(--color-surface-contrast-dark);
    --color-surface-contrast-200: var(--color-surface-contrast-dark);
    --color-surface-contrast-300: var(--color-surface-contrast-dark);
    --color-surface-contrast-400: var(--color-surface-contrast-dark);
    --color-surface-contrast-500: var(--color-surface-contrast-dark);
    --color-surface-contrast-600: var(--color-surface-contrast-light);
    --color-surface-contrast-700: var(--color-surface-contrast-light);
    --color-surface-contrast-800: var(--color-surface-contrast-light);
    --color-surface-contrast-900: var(--color-surface-contrast-light);
    --color-surface-contrast-950: var(--color-surface-contrast-light);
}
