/* ==========================================================================
   hm-tokens.css — Hour Manager design tokens
   Copia SELF-CONTAINED de cx-tokens.css@0399cf9 (familia visual contracta,
   02-DESIGN §7 D-5 "familia, no clon"): capa 1 con valores IDÉNTICOS al
   portfolio (--color-* / tipografía / radius / focus). Cero dependencia
   runtime de assets de contracta.
   Delta hm vs cx:
   - SIN puente --bs-* (hm no usa Bootstrap).
   - Capa semántica propia (D-5 capa 2): estados de tarea hm (--status-
     pendiente/en-curso/hecha, --status-archivado) + par tope-día 8h
     (--hm-cap-ok/advertencia/bloqueado, R7).
   Hex values ONLY here.
   ========================================================================== */

/* -- Light (default) ------------------------------------------------------ */
:root {
  /* Primary palette (idéntica al portfolio / contracta) */
  --color-primary: #10B981;
  --color-primary-dark: #059669;
  --color-primary-darker: #047857;
  --color-primary-light: #D1FAE5;
  --color-primary-surface: #064E3B;
  --color-primary-text: #065F46;

  /* Neutrals (idénticos) */
  --color-heading: #1D2939;
  --color-body: #6B7280;
  --color-muted: #9CA3AF;
  --color-bg: #FFFFFF;
  --color-bg-alt: #F9FAFB;
  --color-border: #E5E7EB;

  /* Utility */
  --color-tag-bg: #F3F4F6;

  /* Acciones accesibles: botón primario usa darker (#047857 ≥4.5:1 con blanco) */
  --color-action-bg: var(--color-primary-darker);
  --color-action-hover: #065F46;
  --color-action-active: #04634A;

  /* Danger */
  --color-danger: #B91C1C;
  --color-danger-bg: #FEE2E2;

  /* Typography */
  --font-family: 'Poppins', sans-serif;
  --font-family-data: 'Space Grotesk', 'Poppins', sans-serif; /* datos: fechas, horas, totales */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-size-xs: 0.75rem;    /* 12px */
  --font-size-sm: 0.8125rem;  /* 13px */
  --font-size-base: 1rem;     /* 16px */
  --font-size-lg: 1.125rem;   /* 18px */
  --font-size-xl: 1.375rem;   /* 22px */
  --font-size-2xl: 1.5rem;    /* 24px */
  --line-height-tight: 1.1;
  --line-height-snug: 1.2;
  --line-height-normal: 1.65;
  --line-height-relaxed: 1.7;
  --letter-spacing-eyebrow: 0.1em;

  /* Radius */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-pill: 999px;

  /* Shadows (solo superficies elevadas) */
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);

  /* Transitions */
  --transition-fast: 150ms ease;
  --transition-base: 300ms ease;

  /* Focus */
  --focus-ring: 3px solid #5FD3B8;
  --focus-offset: 2px;

  /* ── Capa semántica hm (D-5 capa 2) — pares bg-subtle / text-emphasis,
     todos ≥ 4.5:1. Estados de tarea + archivado + tope-día 8h (R7). ── */
  --status-pendiente-bg: #FEF3C7;   --status-pendiente-text: #92400E;
  --status-en-curso-bg: #DBEAFE;    --status-en-curso-text: #1E40AF;
  --status-hecha-bg: #D1FAE5;       --status-hecha-text: #065F46;
  --status-archivado-bg: #F3F4F6;   --status-archivado-text: #6B7280;

  --hm-cap-ok-bg: #D1FAE5;          --hm-cap-ok-text: #065F46;
  --hm-cap-advertencia-bg: #FEF3C7; --hm-cap-advertencia-text: #92400E;
  --hm-cap-bloqueado-bg: #FEE2E2;   --hm-cap-bloqueado-text: #991B1B;

  /* ── Capa 2 dashboard v2 (M1b-v2 · RF-11..RF-23): badge Mx pill · nav
     activo + pill rol · sombra KPI cards. (REV v2.1: tokens gradiente del
     hero ELIMINADOS — owner quitó ilustración, ver spec M1 § Hero). ── */
  --hm-badge-bg: #F1F5F9;
  --hm-badge-text: #64748B;
  --hm-nav-active-bg: #ECFDF5;
  --shadow-card: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

/* -- Dark ------------------------------------------------------------------ */
:root[data-bs-theme="dark"] {
  --color-bg: #0F172A;
  --color-bg-alt: #1E293B;
  --color-heading: #F1F5F9;
  --color-body: #CBD5E1;
  --color-muted: #94A3B8;
  --color-border: #334155;
  --color-tag-bg: #1E293B;
  --color-primary-light: #064E3B;
  --color-primary-text: #6EE7B7;
  /* --color-primary stays CONSTANT #10B981 in both modes */

  --color-action-bg: #059669;   /* sobre dark 5.2:1 con blanco texto — AA */
  --color-action-hover: #10B981;
  --color-action-active: #047857;
  --color-danger: #FCA5A5;
  --color-danger-bg: #450A0A;

  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.3);

  /* Capa semántica hm — dark (todos ≥ 4.5:1 sobre dark) */
  --status-pendiente-bg: #451A03;   --status-pendiente-text: #FCD34D;
  --status-en-curso-bg: #172554;    --status-en-curso-text: #93C5FD;
  --status-hecha-bg: #064E3B;       --status-hecha-text: #6EE7B7;
  --status-archivado-bg: #1E293B;   --status-archivado-text: #94A3B8;

  --hm-cap-ok-bg: #064E3B;          --hm-cap-ok-text: #6EE7B7;
  --hm-cap-advertencia-bg: #451A03; --hm-cap-advertencia-text: #FCD34D;
  --hm-cap-bloqueado-bg: #450A0A;   --hm-cap-bloqueado-text: #FCA5A5;

  /* Capa 2 dashboard v2 — dark (RF-22: 100% tokens, cero excepciones) */
  --hm-badge-bg: #1E293B;
  --hm-badge-text: #94A3B8;
  --hm-nav-active-bg: #064E3B;
  --shadow-card: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
}
