/**
 * Tema global Botino — light pastel frío (azul/verde).
 *
 * CSS custom properties heredan a través del shadow DOM, así que cualquier
 * componente puede usar `var(--bg)` sin re-declarar nada.
 */

/* ────────────────────────────────────────────────────────────
 * Tipografía: Inter + JetBrains Mono (variable, self-hosted)
 * ──────────────────────────────────────────────────────────── */
@font-face {
  font-family: "Inter";
  src: url("/styles/fonts/Inter-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/styles/fonts/JetBrainsMono-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* ────────────────────────────────────────────────────────────
 * Tokens de diseño
 * ──────────────────────────────────────────────────────────── */
:root {
  /* Surfaces */
  --bg:           #f7fafc;   /* casi blanco con tinte azul muy sutil */
  --panel:        #ffffff;   /* tarjetas / paneles principales */
  --panel-2:      #f1f5f9;   /* slate-100 */
  --panel-3:      #e2e8f0;   /* slate-200 */

  /* Borders */
  --border:       #e2e8f0;   /* slate-200 */
  --border-hi:    #cbd5e1;   /* slate-300 */
  --border-active:#0ea5e9;   /* sky-500 */

  /* Text */
  --text:         #0f172a;   /* slate-900 */
  --text-dim:     #475569;   /* slate-600 */
  --text-muted:   #64748b;   /* slate-500 */
  --text-on-acc:  #ffffff;
  --muted:        var(--text-muted);

  /* Accents — azul/verde fríos como protagonistas */
  --accent:       #0ea5e9;   /* sky-500 */
  --accent-hover: #0284c7;   /* sky-600 */
  --accent-soft:  #e0f2fe;   /* sky-100 */
  --ok:           #10b981;   /* emerald-500 */
  --ok-soft:      #d1fae5;   /* emerald-100 */
  --warn:         #f59e0b;   /* amber-500 */
  --warn-soft:    #fef3c7;
  --err:          #ef4444;   /* red-500 */
  --err-soft:     #fee2e2;

  /* Bubbles — light pastel */
  --user-bubble:  #d1fae5;   /* emerald-100 (cliente) */
  --user-border:  #6ee7b7;   /* emerald-300 */
  --user-text:    #064e3b;   /* emerald-900 */
  --user-name:    #047857;   /* emerald-700 */
  --user-meta:    #059669;   /* emerald-600 */

  --bot-bubble:   #dbeafe;   /* blue-100 (bot) */
  --bot-border:   #93c5fd;   /* blue-300 */
  --bot-text:     #1e3a8a;   /* blue-900 */
  --bot-name:     #1d4ed8;   /* blue-700 */
  --bot-meta:     #2563eb;   /* blue-600 */

  --err-bubble:   #fee2e2;
  --err-border:   #fca5a5;
  --err-text:     #7f1d1d;
  --err-name:     #b91c1c;
  --err-meta:     #dc2626;

  /* Charts — paleta pastel coordinada (~400 saturación) */
  --chart-blue:   #38bdf8;   /* sky-400 */
  --chart-green:  #34d399;   /* emerald-400 */
  --chart-purple: #a78bfa;   /* violet-400 */
  --chart-orange: #fb923c;   /* orange-400 */
  --chart-pink:   #f472b6;   /* pink-400 */
  --chart-gray:   #94a3b8;   /* slate-400 */
  --chart-blue-soft:  rgba(56, 189, 248, 0.20);
  --chart-green-soft: rgba(52, 211, 153, 0.20);

  /* Spacing scale */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;

  /* Radii */
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 12px;
  --r-xl: 16px;

  /* Shadows */
  --shadow-sm:     0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-md:     0 4px 12px rgba(15, 23, 42, 0.06);
  --shadow-lg:     0 12px 28px rgba(15, 23, 42, 0.10);
  --shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.04);

  /* Type scale */
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "Fira Mono", monospace;
  --fs-xs:   11px;
  --fs-sm:   12px;
  --fs-base: 14px;
  --fs-md:   15px;
  --fs-lg:   18px;
  --fs-xl:   24px;
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;
  --lh-base:  1.5;
  --lh-tight: 1.3;

  /* Focus ring (accesibilidad) */
  --focus-ring: 0 0 0 3px var(--accent-soft);
}

/* ────────────────────────────────────────────────────────────
 * Reset / defaults
 * ──────────────────────────────────────────────────────────── */
html, body {
  background: var(--bg);
  color: var(--text);
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* { box-sizing: border-box; }

/* Scrollbars finos / pastel */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--border-hi) transparent;
}
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-thumb { background: var(--border-hi); border-radius: 4px; }
*::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
*::-webkit-scrollbar-track { background: transparent; }

/* Selection con tinte pastel */
::selection { background: var(--accent-soft); color: var(--text); }
