:root{
  /* ---- Brand core (identity manual) ---- */
  --movu-white:#FFFFFF;
  --movu-carbon:#121212;
  --movu-red:#B11313;      /* brand accent — rojo hondo, rojo puro de valor bajo */
  --movu-gray-light:#A6A6A6;

  /* ---- Leotech institutional (never recolour) ---- */
  --leotech-red:#FF1A1A;
  --leotech-white:#FFFFFF;
  --leotech-gray:#2E2E2E;

  /* ---- Light neutral ramp (canonical canvas) ---- */
  --paper-000:#FFFFFF;
  --paper-050:#FAFBFC;
  --paper-100:#F6F7F9;
  --paper-200:#F2F4F6;
  --paper-300:#E5E7EB;
  --paper-400:#CBD1D8;
  --ink-900:#0F1115;
  --ink-700:#2B2F36;
  --ink-500:#5B6068;
  --ink-400:#8A9099;

  /* ---- Carbon ramp (dark theme surfaces) ---- */
  --carbon-900:#0B0B0B;
  --carbon-800:#121212;
  --carbon-700:#171717;
  --carbon-600:#1C1C1C;
  --carbon-500:#232323;
  --carbon-400:#2E2E2E;
  --carbon-300:#3A3A3A;
  --gray-500:#6E6E6E;
  --gray-400:#8C8C8C;
  --gray-300:#A6A6A6;
  --gray-200:#C9C9C9;
  --gray-100:#E4E4E4;

  /* ---- Deep red accent ramp — brand differentiator. Pure red, same hue family as the Leotech #FF1A1A but far lower in value: the family reads, the brands stay apart. ---- */
  --red-bright:#D93030;    /* hover on fills */
  --red-500:#B11313;       /* base: fills, rules, accent text on white (7.1:1) */
  --red-600:#8C0E0E;       /* press */
  --red-700:#6E0B0B;
  --red-800:#4E0808;
  --red-tint-08:rgba(177,19,19,.08);
  --red-tint-14:rgba(177,19,19,.14);
  --red-line-28:rgba(177,19,19,.28);
  --red-line-50:rgba(177,19,19,.50);

  /* ---- Feedback. The brand now owns pure red, so DANGER moved off red to burnt orange #C2410C —
         an alert must never be confused with a brand fill. Warning deepened to gold #A16207 to
         stay clear of it. The danger button is outlined, never filled. ---- */
  --success-500:#0E9F6E;
  --warning-500:#A16207;
  --danger-500:#C2410C;
  --info-500:#2B2F36;
  --success-tint:rgba(14,159,110,.10);
  --warning-tint:rgba(161,98,7,.10);
  --danger-tint:rgba(194,65,12,.08);

  /* ---- Semantic surfaces (light default) ---- */
  --surface-canvas:var(--paper-000);
  --surface-sunken:var(--paper-100);
  --surface-raised:var(--paper-000);
  --surface-card:var(--paper-000);
  --surface-card-hover:var(--paper-100);
  --surface-inset:var(--paper-200);
  --surface-overlay:rgba(15,17,21,.48);
  --surface-accent:var(--red-tint-08);
  --surface-tooltip:var(--ink-900);
  --header-bg:rgba(255,255,255,.82);

  /* ---- Semantic text ---- */
  --text-primary:var(--ink-900);
  --text-secondary:var(--ink-500);
  --text-muted:var(--ink-400);
  --text-accent:var(--red-500);
  --text-on-accent:var(--movu-white);
  --text-inverse:var(--paper-000);
  --text-tooltip:var(--paper-000);

  /* ---- Semantic lines ---- */
  --border-subtle:var(--paper-300);
  --border-default:var(--paper-300);
  --border-strong:var(--paper-400);
  --border-accent:var(--red-line-50);
  --focus-ring:var(--red-500);

  /* ---- Interactive washes ---- */
  --hover-wash:rgba(15,17,21,.05);
  --press-wash:rgba(15,17,21,.09);

  /* ---- Interactive ---- */
  --action-primary-bg:var(--red-500);
  --action-primary-bg-hover:var(--red-bright);
  --action-primary-bg-active:var(--red-600);
  --action-primary-fg:var(--movu-white);
  --action-secondary-bg:transparent;
  --action-secondary-fg:var(--ink-900);
  --link-color:var(--red-500);
  --link-color-hover:var(--red-600);

  /* ---- Short aliases ---- */
  --bg:var(--surface-canvas);
  --surface:var(--surface-card);
  --ink:var(--text-primary);
  --ink-soft:var(--text-secondary);
  --line:var(--border-subtle);
  --accent:var(--red-500);
}
