/* Tokens semánticos de Kalend Aurora v3.2 (SPEC 005 · D-AE).
   Fuente canónica: docs/DESIGN.md.
   Aislamiento regulatorio: los 5 PDFs WeasyPrint usan static/css/impresos.css. */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../vendor/fonts/inter-latin-var.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("../vendor/fonts/outfit-latin-var.woff2") format("woff2");
}

:root {
  /* ── Lienzo y superficies luminosas (Design Lock v3.2) ─────────────────── */
  --ka-shell: #F8FBFF;
  --ka-canvas-bg:
    radial-gradient(78% 36% at 52% 100%, rgba(103, 232, 249, 0.34) 0%, rgba(186, 230, 253, 0.14) 50%, rgba(255, 255, 255, 0) 82%),
    radial-gradient(54% 40% at 96% 8%, rgba(243, 232, 255, 0.42) 0%, rgba(255, 255, 255, 0) 72%),
    #F8FBFF;
  --ka-card: rgba(255, 255, 255, 0.96);
  --ka-card-solid: #FFFFFF;
  --ka-card-border: rgba(255, 255, 255, 0.98);
  --ka-surface-subtle: #F1F5F9;
  --ka-surface-sunken: #F3F8FD;

  /* Bordes suaves (estrictamente prohibidos bordes wireframe oscuros) */
  --ka-soft-border: #E2E8F0;
  --ka-row-border: #F1F5F9;
  --ka-ice-border: #BAE6FD;
  --ka-error-border: #F472B6;
  --ka-focus-ring: #38BDF8;
  --ka-focus-halo: rgba(56, 189, 248, 0.22);

  /* Tinta y jerarquía de lectura diurna */
  --ka-ink: #0F172A;
  --ka-ink-body: #334155;
  --ka-ink-soft: #64748B;
  --ka-ink-subtle: #7C8CA5;

  /* Gradientes vibrantes Aurora v3.2 + scrim de nitidez para texto blanco */
  --ka-grad-aurora: linear-gradient(135deg, #22D3EE 0%, #6366F1 52%, #EC4899 100%);
  --ka-grad-rail: linear-gradient(135deg, #38BDF8 0%, #7C5CFF 52%, #EC4899 100%);
  --ka-grad-boveda:
    radial-gradient(88% 88% at 96% 8%, rgba(34, 211, 238, 0.94) 0%, rgba(34, 211, 238, 0) 56%),
    radial-gradient(85% 92% at 92% 96%, rgba(236, 72, 153, 0.88) 0%, rgba(236, 72, 153, 0) 62%),
    linear-gradient(132deg, #0284C7 0%, #6366F1 52%, #A855F7 100%);
  --ka-white-scrim: 0 1px 6px rgba(23, 30, 74, 0.22), 0 1px 2px rgba(23, 30, 74, 0.16);

  /* Sombras difusas cristalinas */
  --ka-shadow-card:
    0 14px 36px rgba(96, 125, 175, 0.08),
    0 2px 6px rgba(96, 125, 175, 0.03);
  --ka-shadow-card-sm:
    0 6px 18px rgba(96, 125, 175, 0.06),
    0 1px 4px rgba(96, 125, 175, 0.03);
  --ka-shadow-aurora: 0 10px 24px rgba(99, 102, 241, 0.26);
  --ka-shadow-rail: 0 10px 22px rgba(124, 92, 255, 0.26);
  --ka-shadow-boveda:
    0 18px 36px rgba(99, 102, 241, 0.24),
    inset 0 1px 1px rgba(255, 255, 255, 0.48);
  --ka-shadow-modal:
    0 24px 60px rgba(15, 23, 42, 0.18),
    0 4px 14px rgba(15, 23, 42, 0.06);

  /* Insignias pastel limpias sin borde */
  --ka-pastel-cyan-bg: #E0F2FE;
  --ka-pastel-cyan-fg: #0369A1;
  --ka-pastel-indigo-bg: #EEF2FF;
  --ka-pastel-indigo-fg: #4338CA;
  --ka-pastel-violet-bg: #F3E8FF;
  --ka-pastel-violet-fg: #6D28D9;
  --ka-pastel-rose-bg: #FCE7F3;
  --ka-pastel-rose-fg: #BE185D;
  --ka-pastel-slate-bg: #F1F5F9;
  --ka-pastel-slate-fg: #475569;
  --ka-pastel-amber-bg: #FEF3C7;
  --ka-pastel-amber-fg: #B45309;

  /* ── Puente de compatibilidad hacia --k-* ─────────────────────────────── */
  --k-surface-base: var(--ka-shell);
  --k-surface: var(--ka-card);
  --k-surface-alt: var(--ka-surface-subtle);
  --k-surface-subtle: var(--ka-surface-subtle);
  --k-surface-sunken: var(--ka-surface-sunken);

  --k-ink: var(--ka-ink);
  --k-ink-2: var(--ka-ink-body);
  --k-ink-muted: var(--ka-ink-soft);

  --k-rule: var(--ka-soft-border);
  --k-rule-soft: var(--ka-row-border);
  --k-rule-strong: #E2EDF8;
  --k-border-field: var(--ka-soft-border);

  --k-brand: #0284C7;
  --k-brand-hover: #4F46E5;
  --k-brand-wash: #F0F9FF;

  --k-pagada: var(--ka-pastel-cyan-fg);
  --k-pagada-wash: var(--ka-pastel-cyan-bg);
  --k-parcial: var(--ka-pastel-violet-fg);
  --k-parcial-wash: var(--ka-pastel-violet-bg);
  --k-vencida: var(--ka-pastel-rose-fg);
  --k-vencida-wash: var(--ka-pastel-rose-bg);
  --k-neutro-wash: var(--ka-pastel-slate-bg);

  /* ── Tipografía dual ───────────────────────────────────────────────────── */
  --ka-font-display: "Outfit", "Inter", system-ui, -apple-system, sans-serif;
  --ka-font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --k-font-display: var(--ka-font-display);
  --k-fuente: var(--ka-font-sans);
  --k-font: var(--ka-font-sans);
  --k-mono: var(--ka-font-sans);

  --k-txt-micro: 0.6875rem;   /* 11px */
  --k-txt-xs: 0.75rem;        /* 12px */
  --k-txt-sm: 0.8125rem;      /* 13px */
  --k-txt-base: 0.875rem;     /* 14px */
  --k-txt-md: 1rem;           /* 16px */
  --k-txt-lg: 1.1875rem;      /* 19px */
  --k-txt-xl: 1.625rem;       /* 26px */
  --k-txt-cifra: 1.75rem;     /* 28px */
  --k-txt-cifra-lg: 2.125rem; /* 34px */

  --k-peso-normal: 400;
  --k-peso-medio: 500;
  --k-peso-fuerte: 600;
  --k-peso-audaz: 700;

  --k-interlinea: 1.5;
  --k-interlinea-densa: 1.2;
  --k-tracking-versal: 0.06em;

  /* ── Espaciado y forma ─────────────────────────────────────────────────── */
  --k-e1: 0.25rem;
  --k-e2: 0.5rem;
  --k-e3: 0.75rem;
  --k-e4: 1rem;
  --k-e6: 1.5rem;
  --k-e8: 2rem;
  --k-e12: 3rem;
  --k-e16: 4rem;

  --k-fila-alto: 2.625rem;
  --k-control-alto: 2.5rem;
  --k-toque-min: 2.75rem;

  --k-radio-tarjeta: 24px;
  --k-radio-subtarjeta: 16px;
  --k-radio-control: 13px;
  --k-radio-pildora: 999px;
  --k-radio-marca: 999px;

  --k-sombra-flotante: var(--ka-shadow-modal);
  --k-velo: rgba(15, 23, 42, 0.28);

  --k-dur-rapida: 140ms;
  --k-dur-normal: 200ms;
  --k-salida: cubic-bezier(0.16, 1, 0.3, 1);

  --k-z-sticky: 10;
  --k-z-barra: 20;
  --k-z-flotante: 40;
  --k-z-modal: 100;

  --k-ico-trazo: 1.75;
  --k-ico-sm: 0.875rem;
  --k-ico-base: 1rem;
  --k-ico-lg: 1.375rem;
}

@media (max-width: 1279.98px) {
  :root {
    --k-fila-alto: var(--k-toque-min);
    --k-control-alto: var(--k-toque-min);
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --k-dur-rapida: 0ms;
    --k-dur-normal: 0ms;
  }
}
