@tailwind base;
@tailwind components;
@tailwind utilities;

/* Definition of the design system. All colors, gradients, fonts, etc should be defined here. 
All colors MUST be HSL.
*/

@layer base {
  :root {
    /* Warm canvas + cool institutional primary — clearer layers than flat gray-on-cream */
    --background: 38 32% 96%;
    --foreground: 222 28% 16%;

    --card: 0 0% 100%;
    --card-foreground: 222 28% 16%;

    --popover: 0 0% 100%;
    --popover-foreground: 222 28% 16%;

    --primary: 217 52% 38%;
    --primary-foreground: 210 40% 98%;

    --secondary: 220 18% 92%;
    --secondary-foreground: 222 28% 22%;

    --muted: 36 22% 92%;
    --muted-foreground: 220 12% 42%;

    --accent: 168 42% 38%;
    --accent-foreground: 210 40% 98%;

    --destructive: 0 72% 48%;
    --destructive-foreground: 210 40% 98%;

    --border: 220 14% 88%;
    --input: 220 14% 88%;
    --ring: 217 52% 38%;

    --radius: 1rem;

    /* Custom design tokens — tuned to sit cleanly on the new base */
    --tag-financing: 215 48% 78%;
    --tag-lifestyle: 162 36% 72%;
    --tag-community: 32 42% 62%;
    --tag-wellness: 278 32% 74%;
    --tag-travel: 198 48% 72%;
    --tag-creativity: 328 38% 76%;
    --tag-growth: 48 46% 68%;

    /* Polish design tokens */
    --cream: 40 38% 92%;
    --cream-foreground: 222 28% 16%;
    --surface-elevated: 0 0% 99%;
    --shadow-soft: 222 28% 16%;
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    /* Sidebar tokens */
    --sidebar-background: 220 16% 97%;
    --sidebar-foreground: 222 28% 16%;
    --sidebar-primary: 217 52% 38%;
    --sidebar-primary-foreground: 210 40% 98%;
    --sidebar-accent: 220 18% 93%;
    --sidebar-accent-foreground: 222 28% 22%;
    --sidebar-border: 220 14% 88%;
    --sidebar-ring: 217 52% 38%;
  }

  .dark {
    --background: 222 24% 12%;
    --foreground: 210 36% 96%;

    --card: 222 22% 16%;
    --card-foreground: 210 36% 96%;

    --popover: 222 24% 12%;
    --popover-foreground: 210 36% 96%;

    --primary: 213 62% 58%;
    --primary-foreground: 222 28% 12%;

    --secondary: 217 18% 22%;
    --secondary-foreground: 210 36% 96%;

    --muted: 220 16% 20%;
    --muted-foreground: 220 12% 64%;

    --accent: 168 40% 44%;
    --accent-foreground: 210 36% 98%;

    --destructive: 0 63% 48%;
    --destructive-foreground: 210 36% 98%;

    --border: 217 16% 24%;
    --input: 217 16% 24%;
    --ring: 213 62% 58%;

    /* Dark mode tag colors */
    --tag-financing: 215 42% 42%;
    --tag-lifestyle: 162 32% 40%;
    --tag-community: 32 34% 42%;
    --tag-wellness: 278 28% 46%;
    --tag-travel: 198 42% 44%;
    --tag-creativity: 328 32% 46%;
    --tag-growth: 48 38% 44%;

    /* Dark mode polish tokens */
    --cream: 222 18% 22%;
    --cream-foreground: 210 36% 96%;
    --surface-elevated: 222 22% 18%;
    --shadow-soft: 222 28% 6%;

    /* Sidebar tokens */
    --sidebar-background: 222 22% 14%;
    --sidebar-foreground: 210 36% 96%;
    --sidebar-primary: 213 62% 58%;
    --sidebar-primary-foreground: 222 28% 12%;
    --sidebar-accent: 217 18% 20%;
    --sidebar-accent-foreground: 210 36% 96%;
    --sidebar-border: 217 16% 24%;
    --sidebar-ring: 213 62% 58%;
  }
}

@layer base {
  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground font-sans antialiased;
  }

  html {
    scroll-behavior: smooth;
  }

  h1, h2, h3, h4, h5, h6 {
    @apply font-serif tracking-tight;
  }
}

@layer utilities {
  .card-hover {
    @apply transition-all duration-500 hover:scale-[1.02];
    box-shadow: 0 4px 20px -4px hsl(var(--shadow-soft) / 0.1);
  }

  .card-hover:hover {
    box-shadow: 0 20px 40px -10px hsl(var(--shadow-soft) / 0.15);
  }

  .pill-nav {
    @apply rounded-full bg-[hsl(var(--surface-elevated))] backdrop-blur-lg border border-border/50;
  }

  .floating-button {
    @apply w-12 h-12 rounded-full bg-[hsl(var(--cream)/0.9)] backdrop-blur-sm flex items-center justify-center text-[hsl(var(--cream-foreground))] hover:bg-[hsl(var(--cream))] hover:scale-110 transition-all duration-300;
    box-shadow: 0 4px 12px -2px hsl(var(--shadow-soft) / 0.15);
  }

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

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

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

  @keyframes scaleIn {
    from {
      opacity: 0;
      transform: scale(0.95);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  .animate-fade-in {
    animation: fadeIn 0.5s ease-out;
  }

  .animate-slide-up {
    animation: slideUp 0.6s ease-out;
  }

  .animate-slide-down {
    animation: slideDown 0.6s ease-out;
  }

  .animate-scale-in {
    animation: scaleIn 0.5s ease-out;
  }

  /* Stagger animations */
  .stagger-1 {
    animation-delay: 0.1s;
    opacity: 0;
    animation-fill-mode: forwards;
  }

  .stagger-2 {
    animation-delay: 0.2s;
    opacity: 0;
    animation-fill-mode: forwards;
  }

  .stagger-3 {
    animation-delay: 0.3s;
    opacity: 0;
    animation-fill-mode: forwards;
  }

  .stagger-4 {
    animation-delay: 0.4s;
    opacity: 0;
    animation-fill-mode: forwards;
  }

  .stagger-5 {
    animation-delay: 0.5s;
    opacity: 0;
    animation-fill-mode: forwards;
  }

  .stagger-6 {
    animation-delay: 0.6s;
    opacity: 0;
    animation-fill-mode: forwards;
  }

  .tag-financing {
    @apply bg-[hsl(var(--tag-financing))] text-primary;
  }

  .tag-lifestyle {
    @apply bg-[hsl(var(--tag-lifestyle))] text-primary;
  }

  .tag-community {
    @apply bg-[hsl(var(--tag-community))] text-primary;
  }

  .tag-wellness {
    @apply bg-[hsl(var(--tag-wellness))] text-primary;
  }

  .tag-travel {
    @apply bg-[hsl(var(--tag-travel))] text-primary;
  }

  .tag-creativity {
    @apply bg-[hsl(var(--tag-creativity))] text-primary;
  }

  .tag-growth {
    @apply bg-[hsl(var(--tag-growth))] text-primary;
  }
}
