/* ============================================================
   TEMA DE INSTANCIA - miguelmp
   ============================================================
   GENERADO por tools/New-ClientTheme.ps1 el 2026-09-13 desde
   clients/miguelmp/brand.json. No editar a mano: el siguiente
   New-ClientTheme.ps1 -Force lo sobrescribe. Cambia el
   manifiesto y vuelve a generar.

   Este es el UNICO fichero que cambia entre clientes:
   custom.css y los 17 HTML son identicos en todas las
   instalaciones. Se carga DESPUES de tailwind.css (para pisar
   los tokens que @theme hornea en :root) y ANTES de custom.css,
   que solo los consume.

   Contrato: 43 tokens (41 obligatorios + 2 opcionales de trama).
   Definido en clients/_tokens.json.

   Identidad miguelmp recuperada de C:/ClaudeProject/FacturacionGotric/brand y design_handoff_landing_miguelmp. Paleta estrictamente acromatica, sin gradientes ni sombras: negro #111111, blanco y grises de interfaz. Space Grotesk para titulares e interfaz; IBM Plex Mono para etiquetas, metadatos y referencias tecnicas.
   ============================================================ */

/* Fuentes propias servidas desde la instancia (el VPS no sale a internet). */
@font-face {
  font-family: "Space Grotesk";
  src: url("/assets/fonts/miguelmp/SpaceGrotesk-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Space Grotesk";
  src: url("/assets/fonts/miguelmp/SpaceGrotesk-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/assets/fonts/miguelmp/IBMPlexMono-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/assets/fonts/miguelmp/IBMPlexMono-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ----------------------------------------------------------------
     Paleta de marca
     La identidad del cliente. Es lo primero que cambia en un alta.
  ---------------------------------------------------------------- */
  --color-primary: #111111;
  --color-primary-soft: #3A3A3A;
  --color-primary-deep: #000000;
  --color-secondary: #FFFFFF;
  --color-secondary-warm: #F5F5F5;
  --color-accent-red: #111111;
  --color-accent-red-deep: #000000;
  --color-accent-gold: #6E6E6E;
  --color-accent-gold-text: #3A3A3A;
  --color-accent-red-on-surface: #111111;
  --on-accent-gold: #FFFFFF;
  --color-laurel: #3A3A3A;
  --color-ink: #111111;
  --color-rule: rgb(17 17 17 / 14%);
  --color-rule-strong: rgb(17 17 17 / 28%);

  /* ----------------------------------------------------------------
     Tipografia
     El VPS NO tiene salida a internet: familias de sistema, o el .woff2 adjunto en clients/<slug>/fonts/ y declarado en 'fuentes' del manifiesto.
  ---------------------------------------------------------------- */
  --font-serif: Space Grotesk, system-ui, sans-serif;
  --font-sans: Space Grotesk, system-ui, sans-serif;
  --font-mono: IBM Plex Mono, ui-monospace, monospace;

  /* ----------------------------------------------------------------
     Componentes RGB
     Los mismos colores en componentes sueltos, para poder aplicarles cualquier opacidad sin repetir el valor. Formato 'R G B' (sin comas, sintaxis moderna). Deben coincidir con su color hermano: si no, el sitio pinta dos colores casi iguales y nadie sabe por que.
  ---------------------------------------------------------------- */
  --gold-rgb: 110 110 110;
  --red-rgb: 17 17 17;
  --ink-rgb: 17 17 17;
  --secondary-rgb: 255 255 255;
  --on-surface-muted-rgb: 154 154 154;
  --laurel-rgb: 58 58 58;

  /* ----------------------------------------------------------------
     Escala de superficies y colores sobre ellas
     Aqui esta la diferencia real entre un sitio oscuro y uno claro. Un cliente de fondo claro reescribe este bloque entero y no toca nada mas de estructura.
  ---------------------------------------------------------------- */
  --surface-deep: #111111;
  --surface-topbar: #111111;
  --surface-base: #FFFFFF;
  --surface-raised: #FAFAFA;
  --surface-soft: #F5F5F5;
  --on-surface: #111111;
  --on-surface-muted: #9A9A9A;
  --on-surface-bright: #111111;
  --on-surface-dim: #6E6E6E;

  /* ----------------------------------------------------------------
     Trama y vinneta
     El acabado del sitio. La trama de hilo blanco sobre negro SOLO funciona en superficie oscura: un cliente de fondo claro pone 'none' en tela y vineta. Debe ser un valor CSS (gradientes o data: URI), nunca una imagen remota — el VPS no la puede descargar.
  ---------------------------------------------------------------- */
  --tela: none;
  --vineta: none;

  /* ----------------------------------------------------------------
     Color semantico
     Estados, no identidad. Normalmente NO se tocan en un alta: un cliente puede tener el rojo que quiera, pero 'guardado con exito' sigue siendo verde. Estan en el contrato porque antes eran ambers de Tailwind y verdes sueltos sin token.
  ---------------------------------------------------------------- */
  --color-success: #287A4B;
  --color-success-text: #1F613B;
  --color-success-soft: #4F9F6E;
  --success-rgb: 79 159 110;
  --color-warning: #8A5200;
  --color-warning-strong: #6B3F00;
}
