@import url('https://fonts.googleapis.com/css2?family=Literata:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Source+Sans+Pro:wght@400;500;600&display=swap');

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

/**
 * Base Theme Definition
 * These variables serve as shared values across all seasonal themes
 */
:root {
  --radius: 0.5rem;
  
  /* Default destructive/error colors that aren't seasonal */
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 0 0% 100%;
  
  /* Content width variables */
  --content-width: min(90%, 1200px);
  --reading-width: min(90%, 700px);
}

/**
 * Spring Theme 🌱
 * Fresh, vibrant green palette inspired by new growth
 */
.spring {
  /* Main colors */
  --background: 120 30% 96%;
  --foreground: 120 15% 15%;
  
  --muted: 120 20% 92%; 
  --muted-foreground: 120 10% 40%;
  
  --popover: 120 30% 96%;
  --popover-foreground: 120 15% 15%;
  
  --card: 120 30% 97%;
  --card-foreground: 120 15% 15%;
  
  --border: 120 30% 85%;
  --input: 120 30% 85%;
  
  --primary: 142 50% 30%;
  --primary-foreground: 120 54% 95%;
  
  --secondary: 120 20% 92%;
  --secondary-foreground: 120 15% 15%;
  
  --accent: 142 76% 45%;
  --accent-foreground: 120 54% 98%;
  
  --ring: 142 50% 30%;
  
  /* Legacy semantic colors for backward compatibility */
  --cream: 120 30% 96%;
  --navy: 142 50% 30%;
  --russet: 22 80% 50%;
  --sage: 142 40% 55%;
  --ink: 120 15% 15%;
  --paper: 120 20% 92%;
}

.spring.dark {
  --background: 143 30% 12%;
  --foreground: 120 15% 90%;
  
  --muted: 143 25% 18%;
  --muted-foreground: 120 10% 70%;
  
  --popover: 143 30% 14%;
  --popover-foreground: 120 15% 90%;
  
  --card: 143 30% 14%;
  --card-foreground: 120 15% 90%;
  
  --border: 143 25% 25%;
  --input: 143 25% 25%;
  
  --primary: 142 75% 45%;
  --primary-foreground: 120 54% 98%;
  
  --secondary: 143 25% 20%;
  --secondary-foreground: 120 15% 90%;
  
  --accent: 142 75% 45%;
  --accent-foreground: 120 54% 98%;
  
  --ring: 142 75% 45%;
  
  /* Legacy semantic colors for backward compatibility */
  --cream: 120 15% 90%;
  --navy: 142 75% 45%;
  --russet: 22 70% 55%;
  --sage: 142 60% 45%;
  --ink: 120 15% 90%;
  --paper: 143 25% 18%;
}

/**
 * Summer Theme ☀️
 * Warm, sunny palette with amber and gold tones
 */
.summer {
  /* Main colors */
  --background: 48 30% 96%;
  --foreground: 30 15% 15%;
  
  --muted: 48 20% 92%;
  --muted-foreground: 30 10% 40%;
  
  --popover: 48 30% 96%;
  --popover-foreground: 30 15% 15%;
  
  --card: 48 30% 97%;
  --card-foreground: 30 15% 15%;
  
  --border: 48 30% 85%;
  --input: 48 30% 85%;
  
  --primary: 36 80% 40%;
  --primary-foreground: 48 54% 98%;
  
  --secondary: 48 20% 92%;
  --secondary-foreground: 30 15% 15%;
  
  --accent: 36 80% 50%;
  --accent-foreground: 48 54% 98%;
  
  --ring: 36 80% 40%;
  
  /* Legacy semantic colors */
  --cream: 48 30% 96%;
  --navy: 36 80% 40%;
  --russet: 16 80% 55%;
  --sage: 54 60% 45%;
  --ink: 30 15% 15%;
  --paper: 48 20% 92%;
}

.summer.dark {
  --background: 36 30% 12%;
  --foreground: 48 15% 90%;
  
  --muted: 36 25% 18%;
  --muted-foreground: 30 10% 70%;
  
  --popover: 36 30% 14%;
  --popover-foreground: 48 15% 90%;
  
  --card: 36 30% 14%;
  --card-foreground: 48 15% 90%;
  
  --border: 36 25% 25%;
  --input: 36 25% 25%;
  
  --primary: 36 70% 55%;
  --primary-foreground: 48 54% 98%;
  
  --secondary: 36 25% 20%;
  --secondary-foreground: 48 15% 90%;
  
  --accent: 36 70% 55%;
  --accent-foreground: 48 54% 98%;
  
  --ring: 36 70% 55%;
  
  /* Legacy semantic colors */
  --cream: 48 15% 90%;
  --navy: 36 70% 55%;
  --russet: 16 70% 60%;
  --sage: 54 50% 50%;
  --ink: 48 15% 90%;
  --paper: 36 25% 18%;
}

/**
 * Autumn Theme 🍂
 * Rich, earthy palette with warm reds and oranges
 */
.autumn {
  /* Main colors */
  --background: 24 30% 96%;
  --foreground: 24 15% 15%;
  
  --muted: 24 20% 92%;
  --muted-foreground: 18 10% 40%;
  
  --popover: 24 30% 96%;
  --popover-foreground: 24 15% 15%;
  
  --card: 24 30% 97%;
  --card-foreground: 24 15% 15%;
  
  --border: 24 30% 85%;
  --input: 24 30% 85%;
  
  --primary: 18 75% 35%;
  --primary-foreground: 24 54% 98%;
  
  --secondary: 24 20% 92%;
  --secondary-foreground: 24 15% 15%;
  
  --accent: 18 75% 45%;
  --accent-foreground: 24 54% 98%;
  
  --ring: 18 75% 35%;
  
  /* Legacy semantic colors */
  --cream: 24 30% 96%;
  --navy: 18 75% 35%;
  --russet: 12 80% 45%;
  --sage: 36 60% 45%;
  --ink: 24 15% 15%;
  --paper: 24 20% 92%;
}

.autumn.dark {
  --background: 18 30% 12%;
  --foreground: 24 15% 90%;
  
  --muted: 18 25% 18%;
  --muted-foreground: 18 10% 70%;
  
  --popover: 18 30% 14%;
  --popover-foreground: 24 15% 90%;
  
  --card: 18 30% 14%;
  --card-foreground: 24 15% 90%;
  
  --border: 18 25% 25%;
  --input: 18 25% 25%;
  
  --primary: 18 65% 50%;
  --primary-foreground: 24 54% 98%;
  
  --secondary: 18 25% 20%;
  --secondary-foreground: 24 15% 90%;
  
  --accent: 18 65% 50%;
  --accent-foreground: 24 54% 98%;
  
  --ring: 18 65% 50%;
  
  /* Legacy semantic colors */
  --cream: 24 15% 90%;
  --navy: 18 65% 50%;
  --russet: 12 70% 50%;
  --sage: 36 50% 50%;
  --ink: 24 15% 90%;
  --paper: 18 25% 18%;
}

/**
 * Winter Theme ❄️
 * Cool, crisp palette with blues and silvers
 */
.winter {
  /* Main colors */
  --background: 210 30% 97%;
  --foreground: 210 15% 15%;
  
  --muted: 210 20% 93%;
  --muted-foreground: 210 10% 40%;
  
  --popover: 210 30% 97%;
  --popover-foreground: 210 15% 15%;
  
  --card: 210 30% 98%;
  --card-foreground: 210 15% 15%;
  
  --border: 210 30% 85%;
  --input: 210 30% 85%;
  
  --primary: 220 70% 35%;
  --primary-foreground: 210 54% 98%;
  
  --secondary: 210 20% 93%;
  --secondary-foreground: 210 15% 15%;
  
  --accent: 220 70% 45%;
  --accent-foreground: 210 54% 98%;
  
  --ring: 220 70% 35%;
  
  /* Legacy semantic colors */
  --cream: 210 30% 97%;
  --navy: 220 70% 35%;
  --russet: 0 60% 50%;
  --sage: 200 60% 45%;
  --ink: 210 15% 15%;
  --paper: 210 20% 93%;
}

.winter.dark {
  --background: 220 30% 12%;
  --foreground: 210 15% 90%;
  
  --muted: 220 25% 18%;
  --muted-foreground: 210 10% 70%;
  
  --popover: 220 30% 14%;
  --popover-foreground: 210 15% 90%;
  
  --card: 220 30% 14%;
  --card-foreground: 210 15% 90%;
  
  --border: 220 25% 25%;
  --input: 220 25% 25%;
  
  --primary: 220 60% 55%;
  --primary-foreground: 210 54% 98%;
  
  --secondary: 220 25% 20%;
  --secondary-foreground: 210 15% 90%;
  
  --accent: 220 60% 55%;
  --accent-foreground: 210 54% 98%;
  
  --ring: 220 60% 55%;
  
  /* Legacy semantic colors */
  --cream: 210 15% 90%;
  --navy: 220 60% 55%;
  --russet: 0 55% 55%;
  --sage: 200 45% 50%;
  --ink: 210 15% 90%;
  --paper: 220 25% 18%;
}

/* Content width variables */
:root {
  --content-width: min(90%, 1200px);
  --reading-width: min(90%, 700px);
}

@layer base {
  * {
    @apply border-border;
  }
  
  html {
    scroll-behavior: smooth;
    @apply spring; /* Default to spring theme */
  }
  
  body {
    @apply bg-background text-foreground font-serif antialiased;
  }
  
  h1, h2, h3, h4, h5, h6 {
    @apply font-serif text-primary dark:text-primary-foreground;
  }
  
  p {
    @apply text-foreground dark:text-foreground/90;
  }
  
  /* Line numbers for reading view */
  .line-number {
    @apply inline-block min-w-8 mr-2 text-right text-muted-foreground/70 dark:text-muted-foreground/60 select-none;
  }
  
  /* Text lines in reading view */
  .text-line {
    @apply flex py-1 rounded;
  }
  
  .text-line:hover {
    @apply bg-primary/5 dark:bg-primary-foreground/5;
  }
  
  /* Custom scrollbar */
  ::-webkit-scrollbar {
    @apply w-2 h-2;
  }
  
  ::-webkit-scrollbar-track {
    @apply bg-muted/50 dark:bg-muted/50;
  }
  
  ::-webkit-scrollbar-thumb {
    @apply bg-accent/80 rounded-full;
  }
  
  .dark ::-webkit-scrollbar-thumb {
    @apply bg-accent/70;
  }
  
  /* Font size utilities for reading view */
  .text-size-sm {
    font-size: 16px;
    line-height: 1.7;
  }
  
  .text-size-md {
    font-size: 18px;
    line-height: 1.8;
  }
  
  .text-size-lg {
    font-size: 20px;
    line-height: 1.9;
  }
  
  .text-size-xl {
    font-size: 22px;
    line-height: 2;
  }
  
  /* Progress bar animation */
  .progress-indicator {
    transition: width 0.3s ease;
  }
  
  /* Zen mode */
  .zen-mode .navigation-header,
  .zen-mode .site-footer,
  .zen-mode .context-sidebar,
  .zen-mode .progress-bar {
    @apply hidden;
  }
  
  .zen-mode .reading-container {
    @apply mx-auto p-8 max-w-full;
  }
  
  /* Animation for UI feedback */
  .btn-feedback {
    @apply transition-transform;
  }
  
  .btn-feedback:active {
    @apply scale-95;
  }
}
