/*
 * m3-ext-polyfill.css
 *
 * PARCHE TEMPORAL. No es parte del sistema final.
 *
 * Diagnóstico:
 *   - m3-ext.css actual solo materializa color (palette + roles derivados).
 *     No materializa typeface, dimension absoluta, dimension relativa, ni
 *     ningún otro token ext.
 *   - m3-core.css referencia palette SIN guion (primary40, neutral-variant30...)
 *     pero m3-ext.css define palette CON guion (primary-40, neutral-variant-30).
 *     Resultado: los overrides de tema (dark/light/contrast) en core no
 *     resuelven, todo el typescale queda sin font-family, todo el spacing
 *     queda en 0, todo el shape queda en 0, etc.
 *
 * Solución real (no en este archivo):
 *   Regenerar m3-ext.css desde tokens/* unificando convención de naming
 *   (recomiendo "con guion": primary-40, alineado con el formato de los JSON
 *   y con la convención de Design Tokens Community Group).
 *   Si se hace eso, hay que actualizar m3-core.css para usar también con-guion.
 *
 * Mientras tanto este polyfill:
 *   1) Materializa typeface, weights, dimension absoluta y relativa.
 *   2) Aliasa palette sin-guion → palette con-guion (que sí existe).
 *
 * Orden de carga: ext → polyfill → core.
 */

:root {
  /* ===== TYPEFACE ===== */
  --md-ext-typeface-brand:          'Roboto', system-ui, sans-serif;
  --md-ext-typeface-plain:          'Roboto', system-ui, sans-serif;
  --md-ext-typeface-weight-regular: 400;
  --md-ext-typeface-weight-medium:  500;
  --md-ext-typeface-weight-bold:    700;

  /* ===== DIMENSION absoluta ===== */
  --md-ext-dimension-0:    0px;
  --md-ext-dimension-1:    1px;
  --md-ext-dimension-2:    2px;
  --md-ext-dimension-3:    3px;
  --md-ext-dimension-4:    4px;
  --md-ext-dimension-6:    6px;
  --md-ext-dimension-8:    8px;
  --md-ext-dimension-10:  10px;
  --md-ext-dimension-12:  12px;
  --md-ext-dimension-14:  14px;
  --md-ext-dimension-16:  16px;
  --md-ext-dimension-18:  18px;
  --md-ext-dimension-20:  20px;
  --md-ext-dimension-22:  22px;
  --md-ext-dimension-24:  24px;
  --md-ext-dimension-26:  26px;
  --md-ext-dimension-28:  28px;
  --md-ext-dimension-30:  30px;
  --md-ext-dimension-32:  32px;
  --md-ext-dimension-36:  36px;
  --md-ext-dimension-40:  40px;
  --md-ext-dimension-44:  44px;
  --md-ext-dimension-48:  48px;
  --md-ext-dimension-56:  56px;
  --md-ext-dimension-64:  64px;
  --md-ext-dimension-72:  72px;
  --md-ext-dimension-80:  80px;
  --md-ext-dimension-96:  96px;
  --md-ext-dimension-9999: 9999px;

  /* ===== DIMENSION relativa (rem) =====
     La convención del JSON: -relative-{px}-{rem-con-guion-bajo}
     Ej: 16px = 1rem  → --md-ext-dimension-relative-16-1
         24px = 1.5rem → --md-ext-dimension-relative-24-1_5
  */
  --md-ext-dimension-relative-0-0:      0;
  --md-ext-dimension-relative-4-0_25:   0.25rem;
  --md-ext-dimension-relative-8-0_5:    0.5rem;
  --md-ext-dimension-relative-12-0_75:  0.75rem;
  --md-ext-dimension-relative-16-1:     1rem;
  --md-ext-dimension-relative-20-1_25:  1.25rem;
  --md-ext-dimension-relative-24-1_5:   1.5rem;
  --md-ext-dimension-relative-28-1_75:  1.75rem;
  --md-ext-dimension-relative-32-2:     2rem;
  --md-ext-dimension-relative-40-2_5:   2.5rem;
  --md-ext-dimension-relative-48-3:     3rem;
  --md-ext-dimension-relative-56-3_5:   3.5rem;
  --md-ext-dimension-relative-64-4:     4rem;
  --md-ext-dimension-relative-72-4_5:   4.5rem;
  --md-ext-dimension-relative-80-5:     5rem;
  --md-ext-dimension-relative-96-6:     6rem;
}

/* ===== ALIAS PALETTE: sin-guion → con-guion =====
   Necesarios porque m3-core.css escribe `var(--md-ext-palette-primary40)`
   pero m3-ext.css define `--md-ext-palette-primary-40` (con guion). */
:root {
  /* primary */
  --md-ext-palette-primary0:   var(--md-ext-palette-primary-0);
  --md-ext-palette-primary1:   var(--md-ext-palette-primary-1);
  --md-ext-palette-primary2:   var(--md-ext-palette-primary-2);
  --md-ext-palette-primary4:   var(--md-ext-palette-primary-5);
  --md-ext-palette-primary5:   var(--md-ext-palette-primary-5);
  --md-ext-palette-primary6:   var(--md-ext-palette-primary-7);
  --md-ext-palette-primary7:   var(--md-ext-palette-primary-7);
  --md-ext-palette-primary10:  var(--md-ext-palette-primary-10);
  --md-ext-palette-primary12:  var(--md-ext-palette-primary-15);
  --md-ext-palette-primary15:  var(--md-ext-palette-primary-15);
  --md-ext-palette-primary17:  var(--md-ext-palette-primary-15);
  --md-ext-palette-primary20:  var(--md-ext-palette-primary-20);
  --md-ext-palette-primary22:  var(--md-ext-palette-primary-25);
  --md-ext-palette-primary24:  var(--md-ext-palette-primary-25);
  --md-ext-palette-primary25:  var(--md-ext-palette-primary-25);
  --md-ext-palette-primary30:  var(--md-ext-palette-primary-30);
  --md-ext-palette-primary35:  var(--md-ext-palette-primary-35);
  --md-ext-palette-primary40:  var(--md-ext-palette-primary-40);
  --md-ext-palette-primary50:  var(--md-ext-palette-primary-50);
  --md-ext-palette-primary60:  var(--md-ext-palette-primary-60);
  --md-ext-palette-primary70:  var(--md-ext-palette-primary-70);
  --md-ext-palette-primary80:  var(--md-ext-palette-primary-80);
  --md-ext-palette-primary85:  var(--md-ext-palette-primary-85);
  --md-ext-palette-primary87:  var(--md-ext-palette-primary-85);
  --md-ext-palette-primary90:  var(--md-ext-palette-primary-90);
  --md-ext-palette-primary92:  var(--md-ext-palette-primary-93);
  --md-ext-palette-primary94:  var(--md-ext-palette-primary-95);
  --md-ext-palette-primary95:  var(--md-ext-palette-primary-95);
  --md-ext-palette-primary96:  var(--md-ext-palette-primary-97);
  --md-ext-palette-primary98:  var(--md-ext-palette-primary-98);
  --md-ext-palette-primary100: var(--md-ext-palette-primary-100);

  /* secondary */
  --md-ext-palette-secondary0:   var(--md-ext-palette-secondary-0);
  --md-ext-palette-secondary10:  var(--md-ext-palette-secondary-10);
  --md-ext-palette-secondary20:  var(--md-ext-palette-secondary-20);
  --md-ext-palette-secondary30:  var(--md-ext-palette-secondary-30);
  --md-ext-palette-secondary40:  var(--md-ext-palette-secondary-40);
  --md-ext-palette-secondary60:  var(--md-ext-palette-secondary-60);
  --md-ext-palette-secondary80:  var(--md-ext-palette-secondary-80);
  --md-ext-palette-secondary90:  var(--md-ext-palette-secondary-90);
  --md-ext-palette-secondary95:  var(--md-ext-palette-secondary-95);
  --md-ext-palette-secondary100: var(--md-ext-palette-secondary-100);

  /* tertiary */
  --md-ext-palette-tertiary0:   var(--md-ext-palette-tertiary-0);
  --md-ext-palette-tertiary10:  var(--md-ext-palette-tertiary-10);
  --md-ext-palette-tertiary20:  var(--md-ext-palette-tertiary-20);
  --md-ext-palette-tertiary30:  var(--md-ext-palette-tertiary-30);
  --md-ext-palette-tertiary40:  var(--md-ext-palette-tertiary-40);
  --md-ext-palette-tertiary60:  var(--md-ext-palette-tertiary-60);
  --md-ext-palette-tertiary80:  var(--md-ext-palette-tertiary-80);
  --md-ext-palette-tertiary90:  var(--md-ext-palette-tertiary-90);
  --md-ext-palette-tertiary95:  var(--md-ext-palette-tertiary-95);
  --md-ext-palette-tertiary100: var(--md-ext-palette-tertiary-100);

  /* neutral (m3-core usa: 4, 6, 10, 12, 17, 20, 22, 24, 87, 90, 92, 94, 95, 96, 98, 100) */
  --md-ext-palette-neutral0:   var(--md-ext-palette-neutral-0);
  --md-ext-palette-neutral4:   var(--md-ext-palette-neutral-5);
  --md-ext-palette-neutral6:   var(--md-ext-palette-neutral-7);
  --md-ext-palette-neutral10:  var(--md-ext-palette-neutral-10);
  --md-ext-palette-neutral12:  var(--md-ext-palette-neutral-10);
  --md-ext-palette-neutral17:  var(--md-ext-palette-neutral-15);
  --md-ext-palette-neutral20:  var(--md-ext-palette-neutral-20);
  --md-ext-palette-neutral22:  var(--md-ext-palette-neutral-20);
  --md-ext-palette-neutral24:  var(--md-ext-palette-neutral-25);
  --md-ext-palette-neutral25:  var(--md-ext-palette-neutral-25);
  --md-ext-palette-neutral30:  var(--md-ext-palette-neutral-30);
  --md-ext-palette-neutral87:  var(--md-ext-palette-neutral-85);
  --md-ext-palette-neutral90:  var(--md-ext-palette-neutral-90);
  --md-ext-palette-neutral92:  var(--md-ext-palette-neutral-93);
  --md-ext-palette-neutral94:  var(--md-ext-palette-neutral-95);
  --md-ext-palette-neutral95:  var(--md-ext-palette-neutral-95);
  --md-ext-palette-neutral96:  var(--md-ext-palette-neutral-97);
  --md-ext-palette-neutral98:  var(--md-ext-palette-neutral-98);
  --md-ext-palette-neutral100: var(--md-ext-palette-neutral-100);

  /* neutral-variant */
  --md-ext-palette-neutral-variant0:   var(--md-ext-palette-neutral-variant-0);
  --md-ext-palette-neutral-variant20:  var(--md-ext-palette-neutral-variant-20);
  --md-ext-palette-neutral-variant30:  var(--md-ext-palette-neutral-variant-30);
  --md-ext-palette-neutral-variant50:  var(--md-ext-palette-neutral-variant-50);
  --md-ext-palette-neutral-variant60:  var(--md-ext-palette-neutral-variant-60);
  --md-ext-palette-neutral-variant80:  var(--md-ext-palette-neutral-variant-80);
  --md-ext-palette-neutral-variant90:  var(--md-ext-palette-neutral-variant-90);
  --md-ext-palette-neutral-variant95:  var(--md-ext-palette-neutral-variant-95);

  /* error */
  --md-ext-palette-error0:   var(--md-ext-palette-error-0);
  --md-ext-palette-error10:  var(--md-ext-palette-error-10);
  --md-ext-palette-error20:  var(--md-ext-palette-error-20);
  --md-ext-palette-error30:  var(--md-ext-palette-error-30);
  --md-ext-palette-error40:  var(--md-ext-palette-error-40);
  --md-ext-palette-error80:  var(--md-ext-palette-error-80);
  --md-ext-palette-error90:  var(--md-ext-palette-error-90);
  --md-ext-palette-error95:  var(--md-ext-palette-error-95);
  --md-ext-palette-error100: var(--md-ext-palette-error-100);
}
