/* Riptide — the platform's own theme.
 *
 * Not invented here. Every value below is derived from the brand palette the marketing sites
 * already ship (app/globals.css in RiptideOS.Marketing and RiptideOS.Automotive.Marketing),
 * converted from sRGB hex to OKLCH so it composes with the rest of the theme system:
 *
 *     navy        #131d32   oklch(0.233 0.043 264.0)   the dark ground
 *     ink         #020202   oklch(0.085 0.000  89.9)   text on light
 *     azure/wave  #0074f3   oklch(0.581 0.210 257.4)   PRIMARY — the brand blue
 *     sky         #5bc8ff   oklch(0.791 0.126 233.5)   the highlight
 *     cornflower  #72adf1   oklch(0.735 0.117 252.8)   the softer blue
 *     mist/foam   #f2f8fa   oklch(0.975 0.007 219.6)   the light ground
 *
 * The neutrals are not grey: they carry the navy's hue at low chroma, so a surface next to the
 * brand blue reads as part of the same family rather than as a stock grey that happens to sit
 * beside it.
 *
 * ONE DELIBERATE DEVIATION, and it is the interactive primary. The brand blue at its exact value
 * carries 4.24:1 against white — under the 4.5:1 that normal-size text needs, which is the size a
 * button label actually is. So the light theme's primary is one small step deeper at the same hue
 * and chroma, oklch(0.555 0.210 257.4), which measures 4.71:1. The true brand value survives where
 * nothing sits on top of it: chart-1. Every foreground/background pair in this file was measured
 * rather than judged, and the worst of them is that 4.71.
 *
 * The dark theme leads with the sky rather than the azure for the same reason in reverse: the
 * brand blue does not carry enough contrast against navy, and the sky is the value the marketing
 * site already uses on its dark ground.
 */

:root {
  --radius: 0.75rem;

  --background: oklch(0.988 0.004 219.6);
  --foreground: oklch(0.233 0.043 264.0);

  --card: oklch(1 0 0);
  --card-foreground: oklch(0.233 0.043 264.0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.233 0.043 264.0);

  --primary: oklch(0.555 0.210 257.4);
  --primary-foreground: oklch(0.988 0.004 219.6);

  --secondary: oklch(0.940 0.014 235.0);
  --secondary-foreground: oklch(0.290 0.045 262.0);

  --muted: oklch(0.950 0.010 225.0);
  --muted-foreground: oklch(0.500 0.040 258.0);

  --accent: oklch(0.920 0.032 233.5);
  --accent-foreground: oklch(0.233 0.043 264.0);

  --destructive: oklch(0.577 0.245 27.325);
  --destructive-foreground: oklch(1 0 0);

  --border: oklch(0.900 0.016 233.0);
  --input: oklch(0.900 0.016 233.0);
  --ring: oklch(0.555 0.210 257.4);

  /* Charts walk the brand's own blues from deep to bright, then step outward in hue so a
     five-series chart stays legible instead of turning into five shades of one colour. */
  --chart-1: oklch(0.581 0.210 257.4);
  --chart-2: oklch(0.735 0.117 252.8);
  --chart-3: oklch(0.791 0.126 233.5);
  --chart-4: oklch(0.430 0.140 262.0);
  --chart-5: oklch(0.660 0.130 205.0);

  --sidebar: oklch(0.968 0.008 222.0);
  --sidebar-foreground: oklch(0.233 0.043 264.0);
  --sidebar-primary: oklch(0.555 0.210 257.4);
  --sidebar-primary-foreground: oklch(0.988 0.004 219.6);
  --sidebar-accent: oklch(0.920 0.032 233.5);
  --sidebar-accent-foreground: oklch(0.233 0.043 264.0);
  --sidebar-border: oklch(0.900 0.016 233.0);
  --sidebar-ring: oklch(0.555 0.210 257.4);
}

.dark {
  --background: oklch(0.180 0.035 264.0);
  --foreground: oklch(0.960 0.008 222.0);

  --card: oklch(0.233 0.043 264.0);
  --card-foreground: oklch(0.960 0.008 222.0);
  --popover: oklch(0.233 0.043 264.0);
  --popover-foreground: oklch(0.960 0.008 222.0);

  /* The highlight leads on the dark ground: the brand blue at full chroma does not carry
     enough contrast against navy, and the sky is the value the marketing site uses there. */
  --primary: oklch(0.791 0.126 233.5);
  --primary-foreground: oklch(0.180 0.035 264.0);

  --secondary: oklch(0.290 0.045 262.0);
  --secondary-foreground: oklch(0.960 0.008 222.0);

  --muted: oklch(0.290 0.045 262.0);
  --muted-foreground: oklch(0.720 0.035 245.0);

  --accent: oklch(0.330 0.055 258.0);
  --accent-foreground: oklch(0.960 0.008 222.0);

  --destructive: oklch(0.704 0.191 22.216);
  --destructive-foreground: oklch(0.180 0.035 264.0);

  --border: oklch(0.960 0.008 222.0 / 12%);
  --input: oklch(0.960 0.008 222.0 / 16%);
  --ring: oklch(0.791 0.126 233.5);

  --chart-1: oklch(0.791 0.126 233.5);
  --chart-2: oklch(0.735 0.117 252.8);
  --chart-3: oklch(0.620 0.190 257.4);
  --chart-4: oklch(0.700 0.120 205.0);
  --chart-5: oklch(0.520 0.150 262.0);

  --sidebar: oklch(0.210 0.040 264.0);
  --sidebar-foreground: oklch(0.960 0.008 222.0);
  --sidebar-primary: oklch(0.791 0.126 233.5);
  --sidebar-primary-foreground: oklch(0.180 0.035 264.0);
  --sidebar-accent: oklch(0.330 0.055 258.0);
  --sidebar-accent-foreground: oklch(0.960 0.008 222.0);
  --sidebar-border: oklch(0.960 0.008 222.0 / 12%);
  --sidebar-ring: oklch(0.791 0.126 233.5);
}
