:root {
  /* === TOKENS OFICIALES PORTAL AYUNTAMIENTO DE MÉRIDA (2024-2027) === */
  --cr-1n: #002c72;
  --cr-2n: #74ba47;
  --cr-2n-dark: #983852;
  --cr-3n: #f5e9ec;
  --cr-4n: #e3adb7;
  --cr-5n: #f1f1f5;
  --cr-6n: #f4f9f0;
  --cr-6n-dark: #74ba47;
  --cr-7n: #b6b9c7;
  --cr-8n: #f0f1f4;
  --cr-9n: #afafb2;
  --cr-10n: #1c256a;
  --cr-11n: #404045;
  --cr-12n: #fcecf0;
  --cr-13n: var(--cr-2n);
  --cr-14n: var(--cr-1n);

  /* Colores secundarios institucionales Mérida */
  --cr-15n: #6bac42;
  --cr-15n-dark: #2e4a1e;
  --cr-16n: #c75a6f;
  --cr-17n: #f44c7f;
  --cr-18n: #fff5f4;
  --cr-18n-dark: #fe897e;
  --cr-19n: #006aff;
  --cr-20n: #b7ed3b;
  --cr-21n: #fe6f61;

  --dfl-blue: #1c256a;
  --dfl-blue-dark: #203879;
  --dfl-blue-mid: #264089;
  --dfl-cyan: var(--cr-15n);
  --dfl-pink: #eb008b;
  --dfl-yellow: #faaf40;
  --dfl-black: #000000;
  --dfl-white: #ffffff;
  --dfl-blue-gray: #b0bec5;
  --dfl-gray: #737780;
  --dfl-gray-dark: #3d3f50;
  --dfl-white-2: #e5e5e5;
  --dfl-cyan-2: #2391de;

  --cr-1: #d43987;
  --cr-2: #754f9a;
  --cr-3: #4690c5;
  --cr-4: #3d579f;
  --cr-5: #f6fbff;
  --cr-6: #253f87;
  --cr-7: rgba(139, 178, 54, 0.09);
  --cr-8: #fef6d9;
  --cr-9: var(--cr-19n);
  --cr-9-light: #04abe2;
  --cr-10: #3c4858;
  --cr-11: #a2a7b3;
  --cr-12: #04abe2;
  --cr-13: #feeef6;
  --cr-14: #e6ebff;
  --cr-15: #c81f71;
  --cr-16: #1d3066;
  --cr-17: #f2f4f8;
  --cr-18: #747c93;
  --cr-19: #ebf6ff;
  --cr-20: #edc9d0;
  --cr-21: #e3f1da;
  --cr-22: #ffc422;
  --cr-23: #ffb400;

  /* Slider Mérida tokens */
  --slider-color-1: #c9e4b7;
  --slider-color-2: var(--cr-2n);
  --slider-color-3: var(--cr-11n);

  /* Semáforo y alertas de Protección Civil / Pivote Kanan IA */
  --act-aviso-bg: #009ddb;
  --act-aviso-fg: #dcf3fc;
  --act-prevencion-bg: #36af3d;
  --act-prevencion-fg: #dbfddd;
  --act-preparacion-bg: #ffca12;
  --act-preparacion-fg: #654f05;
  --act-alarma-bg: #ff7917;
  --act-alarma-fg: #fceadc;
  --act-afectacion-bg: #dd0b1b;
  --act-afectacion-fg: #ffffff;

  /* Tokens editoriales del PDF Kanan IA (ODS 16) */
  --kanan-teal: #0d5c57;
  --kanan-teal-dark: #08423e;
  --kanan-teal-soft: #eef6f4;
  --kanan-amber: #e5a918;
  --kanan-amber-soft: #fdf6e4;
  --kanan-danger-soft: #f9ecec;
  --kanan-danger-border: #b83b3b;
  --kanan-row-alt: #f7f9f8;
  --kanan-row-border: #e2e8e6;

  /* Tokens semánticos Claude Design-System */
  --paper: var(--cr-5n);
  --surface: var(--dfl-white);
  --surface-soft: var(--cr-6n);
  --surface-hover: var(--cr-21);
  --ink: var(--cr-1n);
  --ink-body: var(--cr-11n);
  --ink-muted: var(--dfl-gray);
  --accent: var(--cr-2n);
  --accent-secondary: var(--cr-15n);
  --accent-urgent: var(--cr-17n);
  --border: var(--cr-7n);
  --border-subtle: var(--cr-17);

  /* Sombras y superposiciones */
  --shadow-card: 0 2px 10px rgba(0, 44, 114, 0.07);
  --shadow-hover: 0 4px 16px rgba(28, 37, 106, 0.24);
  --shadow-btn-slider: 0 14px 8px -12px rgba(153, 153, 153, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(153, 153, 153, 0.2);
  --shadow-float: 0 3px 10px rgba(0, 0, 0, 0.45);
  --modal-backdrop: rgba(0, 44, 114, 0.72);
  --nav-hover-glass: rgba(255, 255, 255, 0.14);
  --float-special-bg: #8467d1;

  /* Tipografía y escala fluida */
  --font-sans: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-condensed: "Barlow", sans-serif;
  /* Barlow para lectura y cifras; Montserrat para títulos y controles */
  --font-body: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-scale: 1.06;
  --measure: 72ch;
  --focus-ring: 0 0 0 3px var(--dfl-white), 0 0 0 6px var(--cr-1n);

  /* Radios y espaciados */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --radius-pill: 30px;
}

/* Modo Accesibilidad Adulto Mayor (Letra Grande A+ y Alto Contraste) */
html.a11y-large-text {
  --font-scale: 1.18;
  font-size: 18.5px;
}

html.a11y-xlarge-text {
  --font-scale: 1.32;
  font-size: 20.5px;
}

html.a11y-high-contrast {
  --cr-1n: #001845;
  --cr-11n: #111115;
  --cr-5n: #ffffff;
  --cr-6n: #e9f5e1;
  --cr-7n: #002c72;
}

html.a11y-underline-links a {
  text-decoration: underline !important;
}
