/*
 * tokens.css — Sistema de diseño: variables CSS globales.
 * Todos los colores, tipografía, espaciados y sombras se definen aquí.
 * Los componentes en base.css solo usan var(--...), nunca valores en bruto.
 *
 * El atributo [data-theme="dark"] en <html> activa la paleta oscura
 * sobreescribiendo las mismas variables.
 */

/* ─── Fuentes ──────────────────────────────────────────────────────────────── */
@font-face {
  font-family: 'Inter';
  src: url('/fonts/inter-latin-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/fonts/inter-latin-500-normal.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/fonts/inter-latin-600-normal.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ─── Modo claro (por defecto) ─────────────────────────────────────────────── */
:root {
  /* Paleta principal */
  --color-bg:               #f5f3f0;
  --color-surface:          #ffffff;
  --color-surface-elevated: #edeae5;
  --color-border:           #ddd9d3;
  --color-border-subtle:    #eae7e2;

  /* Texto */
  --color-text-primary:     #1c1917;
  --color-text-secondary:   #78716c;
  --color-text-muted:       #a8a29e;

  /* Acento: rojo Mordor */
  --color-accent:           #c0392b;
  --color-accent-hover:     #a93226;
  --color-accent-fg:        #ffffff;

  /* Header — siempre oscuro para contraste, independiente del tema */
  --color-header-bg:        #1c1917;
  --color-header-text:      #f5f3f0;
  --color-header-border:    #2d2a27;

  /* Estados */
  --color-success:          #16a34a;
  --color-warning:          #ca8a04;
  --color-error:            #dc2626;
  --color-pending:          #78716c;

  /* Sombras */
  --shadow-xs:  0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-sm:  0 1px 4px rgba(0, 0, 0, 0.08);
  --shadow-md:  0 4px 12px rgba(0, 0, 0, 0.1);
  --shadow-lg:  0 8px 24px rgba(0, 0, 0, 0.12);

  /* Tema "liquid glass" — superficies translúcidas que se aplican encima del
     fondo de la app. Mantenemos la paleta Mordor; lo que cambia es la opacidad
     y el blur de fondo. Las variables se usan en .app-card, .admin-card,
     .header-user, .theme-selector, etc. */
  --glass-bg:           rgba(255, 255, 255, 0.55);
  --glass-bg-elevated:  rgba(255, 255, 255, 0.72);
  --glass-border:       rgba(255, 255, 255, 0.55);
  --glass-highlight:    rgba(255, 255, 255, 0.9);
  --glass-blur:         18px;
  --glass-saturate:     150%;
  --glass-shadow:       0 6px 22px rgba(28, 25, 23, 0.10), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  /* Sombra de "elevación" al pasar el ratón sobre una tarjeta de app. */
  --app-card-hover-shadow: 0 14px 38px rgba(28, 25, 23, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.7);
  /* Tinte del fondo de la página — manchas radiales de color que dan al
     "cristal" algo que refractar; sin esto el efecto liquidglass no se ve. */
  --page-tint-1:        rgba(192, 57, 43, 0.10);
  --page-tint-2:        rgba(230, 126, 34, 0.08);
  --page-tint-3:        rgba(41, 128, 185, 0.06);

  /* Tipografía */
  --font-family:        'Inter', system-ui, -apple-system, sans-serif;
  --font-size-xs:       0.75rem;
  --font-size-sm:       0.875rem;
  --font-size-base:     1rem;
  --font-size-lg:       1.125rem;
  --font-size-xl:       1.25rem;
  --font-size-2xl:      1.5rem;
  --font-size-3xl:      1.875rem;
  --font-size-4xl:      2.25rem;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semi:   600;
  --line-height-tight:  1.25;
  --line-height-normal: 1.5;

  /* Espaciado (escala de 4px) */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;

  /* Bordes redondeados */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;

  /* Transiciones */
  --transition-fast:   120ms ease;
  --transition-normal: 220ms ease;

  /* ─── Escena del portal (fondo inmersivo) ──────────────────────────────────
     Una ÚNICA composición de "puerta estelar" (scenes.css + header.ejs) que se
     recolorea entera con estas variables según el tema. El claro es un amanecer
     luminoso; el oscuro (más abajo) es la MISMA escena de noche cerrada.
     Solo cambian los colores: la geometría y las animaciones son idénticas. */
  --scene-sky-top:      #bcd9ff;   /* cénit del cielo */
  --scene-sky-mid:      #e6f0ff;   /* franja media, más clara */
  --scene-sky-horizon:  #ffe7cd;   /* horizonte cálido (luz baja) */
  --scene-halo:         #fde6b8;   /* halo dorado tras el portal */
  --scene-ray:          #ffffff;   /* god-rays / haces de luz */
  --scene-mist:         #bcd6f7;   /* bruma del horizonte */
  --scene-ring:         #f6b73c;   /* anillo cálido (ámbar) */
  --scene-ring-2:       #8fbcf9;   /* anillo frío (azul) */
  --scene-ring-3:       #cfe2ff;   /* anillo interior tenue */
  --scene-core-in:      #ffffff;   /* corazón del núcleo */
  --scene-core-mid:     #e0edff;   /* medio del núcleo */
  --scene-core-out:     #9cc4fb;   /* borde del núcleo */
  --scene-particle:     #ffffff;   /* estrellas / motas de luz */
  --scene-glow:         rgba(255, 224, 160, 0.65);  /* resplandor (drop-shadow) del núcleo */
}

/* ─── Modo oscuro ─────────────────────────────────────────────────────────────
   Es el MISMO diseño del modo claro, pasado a oscuro: se conserva la estructura,
   el acento rojo Mordor y el efecto "liquid glass" (mismo blur/saturate, que se
   heredan de :root). Solo cambia la paleta a neutros oscuros y limpios —no marrón
   "embarrado"— invirtiendo las relaciones del claro: el fondo es el tono más
   oscuro, las superficies se levantan por encima, y el texto se aclara. Los tintes
   de página se mantienen tan sutiles como en claro (sin exceso de rojo). */
[data-theme="dark"] {
  /* Paleta principal — espejo oscuro del claro (bg más oscuro; surface por
     encima; elevated un paso más; el claro usaba neutros cálidos "piedra"). */
  --color-bg:               #1a1816;
  --color-surface:          #242120;
  --color-surface-elevated: #2e2a28;
  --color-border:           #393431;
  --color-border-subtle:    #2a2725;

  /* Texto — inverso del claro, manteniendo la jerarquía y el contraste. */
  --color-text-primary:     #f5f3f0;
  --color-text-secondary:   #b3aaa2;
  --color-text-muted:       #837b74;

  /* Acento: mismo rojo Mordor del claro, apenas avivado para que respire sobre
     fondo oscuro (no el naranja del dark anterior). */
  --color-accent:           #cf4436;
  --color-accent-hover:     #b8392b;
  --color-accent-fg:        #ffffff;

  /* Header — un punto más oscuro que las superficies para que destaque. */
  --color-header-bg:        #141210;
  --color-header-text:      #f5f3f0;
  --color-header-border:    #2a2725;

  /* Estados — mismas tintas del claro, avivadas lo justo para el fondo oscuro. */
  --color-success:          #22c55e;
  --color-warning:          #eab308;
  --color-error:            #ef4444;
  --color-pending:          #a8a29e;

  /* Sombras — más densas para que las "tarjetas de cristal" tengan profundidad. */
  --shadow-xs:  0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-sm:  0 1px 4px rgba(0, 0, 0, 0.5);
  --shadow-md:  0 4px 12px rgba(0, 0, 0, 0.6);
  --shadow-lg:  0 8px 24px rgba(0, 0, 0, 0.7);

  /* Liquid glass — mismo cristal que el claro pero sobre superficie oscura.
     blur/saturate se heredan de :root (no se redefinen a propósito). */
  --glass-bg:           rgba(38, 35, 32, 0.55);
  --glass-bg-elevated:  rgba(38, 35, 32, 0.72);
  --glass-border:       rgba(255, 255, 255, 0.10);
  --glass-highlight:    rgba(255, 255, 255, 0.16);
  --glass-shadow:       0 6px 22px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  /* Misma elevación al hover, pero con realce tenue (no la línea blanca del claro). */
  --app-card-hover-shadow: 0 14px 38px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.06);

  /* Tintes de página — tan sutiles como en claro (mismas tintas y opacidades),
     para que el cristal refracte algo de color sin teñir de rojo toda la página. */
  --page-tint-1:        rgba(192, 57, 43, 0.10);
  --page-tint-2:        rgba(230, 126, 34, 0.07);
  --page-tint-3:        rgba(41, 128, 185, 0.07);

  /* ─── Escena del portal — MISMA puerta estelar, de noche cerrada ────────────
     Misma composición que el claro; solo se recolorea: cielo nocturno índigo
     casi negro que baja a un resplandor cálido en el horizonte, anillos en
     ámbar/rojo Mordor, núcleo cálido encendido y "estrellas" que son brasas.
     Se reutiliza el acento rojo Mordor para coser la escena con la UI. */
  --scene-sky-top:      #05060d;   /* cénit nocturno, casi negro azulado */
  --scene-sky-mid:      #0b0d1a;   /* franja media */
  --scene-sky-horizon:  #2a160d;   /* horizonte con rescoldo cálido */
  --scene-halo:         #c8651f;   /* halo ámbar profundo tras el portal */
  --scene-ray:          #ffb672;   /* haces de luz cálidos */
  --scene-mist:         #1a1220;   /* bruma baja, violácea apagada */
  --scene-ring:         #f59e0b;   /* anillo ámbar encendido */
  --scene-ring-2:       #cf4436;   /* anillo rojo Mordor (= acento oscuro) */
  --scene-ring-3:       #7a3a16;   /* anillo interior tenue, brasa */
  --scene-core-in:      #ffe6b0;   /* corazón del núcleo, blanco cálido */
  --scene-core-mid:     #f0922a;   /* medio del núcleo, ámbar */
  --scene-core-out:     #e8701a;   /* borde del núcleo, ámbar */
  --scene-particle:     #ffb15a;   /* brasas a la deriva */
  --scene-glow:         rgba(245, 158, 11, 0.55);  /* resplandor cálido del núcleo */
}
