@import "tailwindcss";

@theme {
  --font-sans: var(--font-instrument-sans), ui-sans-serif, system-ui, sans-serif;
  --font-serif: var(--font-playfair), ui-serif, Georgia, serif;

  /* Light palette: mirrors the app's `lightColors` (constants/colors.ts). */
  --color-canvas: #f8fafc;
  --color-surface: #ffffff;
  --color-surface-soft: #f1f5f9;
  --color-primary: #0f766e;
  --color-primary-light: #ccfbf1;
  --color-primary-button: #0f766e;
  --color-foreground: #0f172a;
  --color-muted-foreground: #64748b;
  --color-border-soft: #e2e8f0;
  --color-success: #047857;
  --color-success-light: #d1fae5;
}

@layer base {
  :root {
    color-scheme: light;
    --grid-line: rgba(15, 23, 42, 0.055);
  }

  /*
   * Dark palette: mirrors the app's `darkColors` (constants/colors.ts).
   * `--color-primary` stays the bright accent (text/icons/borders); filled
   * buttons use the muted `--color-primary-button` so white text keeps its
   * contrast, matching the app's primary vs. primaryButton split.
   */
  @media (prefers-color-scheme: dark) {
    :root {
      color-scheme: dark;
      --color-canvas: #0b1220;
      --color-surface: #1e293b;
      --color-surface-soft: #111827;
      --color-primary: #2dd4bf;
      --color-primary-light: #134e4a;
      --color-primary-button: #115e59;
      --color-foreground: #f1f5f9;
      --color-muted-foreground: #94a3b8;
      --color-border-soft: #334155;
      --color-success: #34d399;
      --color-success-light: #064e3b;
      --grid-line: rgba(45, 212, 191, 0.08);
    }
  }

  html {
    scroll-behavior: smooth;
  }

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

.card-hover {
  @apply transition-all duration-200 hover:-translate-y-0.5 hover:shadow-[0_8px_24px_rgba(15,23,42,0.08)];
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

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

.animate-fade-in-up-delay-1 {
  animation: fade-in-up 0.5s ease-out 0.1s both;
}

.animate-fade-in-up-delay-2 {
  animation: fade-in-up 0.5s ease-out 0.2s both;
}

.animate-fade-in-up-delay-3 {
  animation: fade-in-up 0.5s ease-out 0.3s both;
}

/*
 * Branded one-page PDF sheet: a green-to-white gradient washed over a faint
 * teal grid. Only rendered for print (the on-screen page mirrors the homepage).
 */
.print-sheet {
  background:
    linear-gradient(150deg, #ccfbf1 0%, #f0fdfa 30%, #ffffff 64%),
    linear-gradient(rgba(15, 118, 110, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 118, 110, 0.06) 1px, transparent 1px);
  background-size: auto, 22px 22px, 22px 22px;
}

@media print {
  @page {
    margin: 0.25in;
    size: letter;
  }

  html,
  body {
    background: #ffffff !important;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  body {
    color: #0f172a !important;
  }

  .print-hidden {
    display: none !important;
  }

  .print-page {
    max-width: none !important;
    padding: 0 !important;
  }

  .print-page * {
    box-shadow: none !important;
    animation: none !important;
  }

  .print-sheet {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}
