@import "tailwindcss";
@import "tw-animate-css";

@custom-variant dark (&:is(.dark *));

/* ─────────────────────────────────────────────────────────────
   Trovo brand tokens — PRD §9
   Deep ocean night background + tropical teal primary + warm amber accent.
   Dark mode is the default look; light mode is the alternate.
   HSL channels stored without hsl() so shadcn can opacity-modify.
   ───────────────────────────────────────────────────────────── */

:root {
  --background: 210 20% 98%;
  --foreground: 220 25% 10%;
  --card: 0 0% 100%;
  --card-foreground: 220 25% 10%;
  --popover: 0 0% 100%;
  --popover-foreground: 220 25% 10%;
  --primary: 172 80% 38%;
  --primary-foreground: 0 0% 100%;
  --secondary: 220 14% 96%;
  --secondary-foreground: 220 25% 10%;
  --muted: 220 14% 96%;
  --muted-foreground: 220 12% 45%;
  --accent: 35 95% 55%;
  --accent-foreground: 220 25% 10%;
  --destructive: 0 84% 60%;
  --destructive-foreground: 0 0% 100%;
  --border: 220 13% 91%;
  --input: 220 13% 91%;
  --ring: 172 80% 38%;
  --radius: 0.625rem;
}

.dark {
  --background: 220 25% 7%;
  --foreground: 210 40% 96%;
  --card: 220 25% 10%;
  --card-foreground: 210 40% 96%;
  --popover: 220 25% 10%;
  --popover-foreground: 210 40% 96%;
  --primary: 172 80% 45%;
  --primary-foreground: 220 25% 7%;
  --secondary: 220 20% 16%;
  --secondary-foreground: 210 40% 96%;
  --muted: 220 20% 16%;
  --muted-foreground: 220 12% 65%;
  --accent: 35 95% 58%;
  --accent-foreground: 220 25% 7%;
  --destructive: 0 70% 55%;
  --destructive-foreground: 210 40% 96%;
  --border: 220 20% 16%;
  --input: 220 20% 16%;
  --ring: 172 80% 45%;
}

@theme inline {
  --color-background: hsl(var(--background));
  --color-foreground: hsl(var(--foreground));
  --color-card: hsl(var(--card));
  --color-card-foreground: hsl(var(--card-foreground));
  --color-popover: hsl(var(--popover));
  --color-popover-foreground: hsl(var(--popover-foreground));
  --color-primary: hsl(var(--primary));
  --color-primary-foreground: hsl(var(--primary-foreground));
  --color-secondary: hsl(var(--secondary));
  --color-secondary-foreground: hsl(var(--secondary-foreground));
  --color-muted: hsl(var(--muted));
  --color-muted-foreground: hsl(var(--muted-foreground));
  --color-accent: hsl(var(--accent));
  --color-accent-foreground: hsl(var(--accent-foreground));
  --color-destructive: hsl(var(--destructive));
  --color-destructive-foreground: hsl(var(--destructive-foreground));
  --color-border: hsl(var(--border));
  --color-input: hsl(var(--input));
  --color-ring: hsl(var(--ring));
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);

  /* Typography — PRD §9 */
  --font-display: var(--font-bricolage);
  --font-sans: var(--font-inter);
  --font-mono: var(--font-geist-mono);
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

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

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

body {
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: var(--font-sans), system-ui, -apple-system, sans-serif;

  /* Hide number input spinners */
  input[type="number"]::-webkit-inner-spin-button,
  input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }

  input[type="number"] {
    -moz-appearance: textfield;
  }
}