/* ==========================================================================
   Agro Escala — Design Tokens
   Fuente de verdad: design-system/MASTER.md
   No hardcodear colores ni tamaños en otros archivos CSS: siempre estas
   variables, para mantener consistencia y poder cambiar la marca en un lugar.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap');

:root {
  /* ---- Color: base ----
     El blanco es el color principal del sistema. */
  --color-bg: #ffffff;

  /* ---- Color: marca ----
     ⚠ --color-brand (#84CC11) tiene 1.98:1 de contraste sobre blanco.
     Es color de RELLENO, nunca de texto. Para texto verde usar
     --color-brand-text. Ver design-system/MASTER.md §1. */
  --color-brand: #84CC11;
  --color-brand-hover: #76b80f;
  --color-brand-text: #4d7c0f;   /* 4.99:1 ✓ AA */
  --color-brand-deep: #3f6212;   /* 7.08:1 ✓ AAA */
  --color-ink: #1f2a14;          /* 15.00:1 ✓ AAA */

  /* ---- Color: superficie ---- */
  --color-surface-alt: #f8fcec;
  --color-border: #e4e9db;

  /* ---- Color: texto ---- */
  --text-body-color: #191919;
  --text-muted: #666666;

  /* ---- Color: estado ---- */
  --color-success: #15803d;
  --color-error: #dc2626;
  --color-warning: #b45309;

  /* ---- Tipografía ---- */
  --font-display: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Roboto', 'Helvetica Neue', Arial, sans-serif;

  --text-h1: 1.625rem;
  --text-h2: 1.375rem;
  --text-h3: 1.125rem;
  --text-body-size: 1rem;
  --text-small: 0.875rem;
  --text-label: 0.9375rem;

  --line-height-heading: 1.25;
  --line-height-body: 1.6;

  /* ---- Espaciado ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;

  /* ---- Radios ---- */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-full: 999px;

  /* ---- Sombras ---- */
  --shadow-sm: 0 1px 2px rgba(31, 42, 20, 0.06);
  --shadow-md: 0 4px 12px rgba(31, 42, 20, 0.10);
  --shadow-lg: 0 12px 32px rgba(31, 42, 20, 0.14);

  /* ---- Layout ---- */
  --container-max: 1180px;
  --form-max: 720px;

  /* ---- Z-index ---- */
  --z-sticky: 50;
  --z-dropdown: 60;
  --z-backdrop: 90;
  --z-modal: 100;

  /* ---- Transiciones ---- */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
}

@media (min-width: 1024px) {
  :root {
    --text-h1: 2.25rem;
    --text-h2: 1.75rem;
    --text-h3: 1.25rem;
    --text-body-size: 1.0625rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
  }
}
