/* Shared visual contract. Semantic hues retain their meaning in every theme. */
:root {
  --palette-violet:#673de6; --palette-ocean:#1859bb; --palette-forest:#147458; --palette-ember:#b44324;
  --palette-coral:#b33c53; --palette-amber:#89600a; --palette-mono:#36393d; --palette-midnight:#c0adff;
  --palette-itau:#ff6200; --palette-banco-chile:#295eff;
  --on-brand:#ffffff; --page-focus:var(--focus); --success:#176447; --success-soft:#e7f6ee; --warning:#815000; --warning-soft:#fff4dc;
  --error:#aa263e; --error-soft:#ffedf0; --info:#2456a1; --info-soft:#ecf3ff;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px; --space-8:64px;
  --radius-sm:8px; --radius-md:16px; --radius-lg:24px; --shadow:0 8px 32px #21163808;
  --font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --text-xs:.75rem; --text-sm:.875rem; --text-md:1rem; --text-lg:1.25rem; --text-xl:1.75rem;
  --text-display:clamp(2.25rem,4.5vw,3.5rem); --duration:160ms;
  --green:var(--brand); --light:var(--canvas); --warm:var(--surface); --purple:var(--brand-soft);
}
:root, :root[data-palette=violet], .preset[data-palette-button=violet] {
  --on-brand:#ffffff;
  --brand:#673de6;
  --brand-hover:#5025c5;
  --brand-soft:#efe9ff;
  --brand-ink:#442593;
  --hero-start:#19102f;
  --hero-end:#5531b9;
  --ink:#211638;
  --muted:#635a74;
  --surface:#ffffff;
  --canvas:#f7f5fb;
  --line:#e1dce9;
  --control-line:#82798e;
  --focus:#673de6;
  color-scheme:light;
}
:root[data-palette=ocean], .preset[data-palette-button=ocean] {
  --on-brand:#ffffff;
  --brand:#1859bb;
  --brand-hover:#12468f;
  --brand-soft:#e3edff;
  --brand-ink:#174686;
  --hero-start:#0e203e;
  --hero-end:#1752a5;
  --ink:#172b49;
  --muted:#516581;
  --surface:#fafdff;
  --canvas:#eef5ff;
  --line:#cfdeee;
  --control-line:#74859e;
  --focus:#1859bb;
  color-scheme:light;
}
/* Public-site references: itau.cl/personas and bancochile.cl (2026-10-02 UTC).
   Exact accent hues; supporting surfaces and hover shades suit this interface. */
:root[data-palette=itau], .preset[data-palette-button=itau] {
  --on-brand:#000066;
  --brand:#ff6200;
  --brand-hover:#e95a00;
  --brand-soft:#ffeadc;
  --brand-ink:#000066;
  --hero-start:#000044;
  --hero-end:#000066;
  --ink:#252220;
  --muted:#675d57;
  --surface:#ffffff;
  --canvas:#fff7f0;
  --line:#ead9ce;
  --control-line:#967968;
  --focus:#000066;
  color-scheme:light;
}
:root[data-palette=banco-chile], .preset[data-palette-button=banco-chile] {
  --on-brand:#ffffff;
  --brand:#295eff;
  --brand-hover:#194bdc;
  --brand-soft:#e9efff;
  --brand-ink:#002884;
  --hero-start:#002884;
  --hero-end:#001b4c;
  --ink:#2a333d;
  --muted:#536173;
  --surface:#ffffff;
  --canvas:#f0f2f5;
  --line:#ccd6e8;
  --control-line:#7a899f;
  --focus:#002884;
  color-scheme:light;
}
:root[data-palette=forest], .preset[data-palette-button=forest] {
  --on-brand:#ffffff;
  --brand:#147458;
  --brand-hover:#0c5c44;
  --brand-soft:#deeee4;
  --brand-ink:#145c45;
  --hero-start:#112d27;
  --hero-end:#14634d;
  --ink:#17382d;
  --muted:#526b60;
  --surface:#fcfff9;
  --canvas:#eef5ef;
  --line:#ccded2;
  --control-line:#708779;
  --focus:#147458;
  color-scheme:light;
}
:root[data-palette=ember], .preset[data-palette-button=ember] {
  --on-brand:#ffffff;
  --brand:#b44324;
  --brand-hover:#94351b;
  --brand-soft:#ffe4d4;
  --brand-ink:#8b341f;
  --hero-start:#331d25;
  --hero-end:#85381f;
  --ink:#3d241a;
  --muted:#795d4b;
  --surface:#fffaf5;
  --canvas:#fff2e8;
  --line:#e8d2c3;
  --control-line:#9e7d66;
  --focus:#b44324;
  color-scheme:light;
}
:root[data-palette=coral], .preset[data-palette-button=coral] {
  --on-brand:#ffffff;
  --brand:#b33c53;
  --brand-hover:#92283f;
  --brand-soft:#fbe0e6;
  --brand-ink:#873147;
  --hero-start:#371d2d;
  --hero-end:#8f2f4f;
  --ink:#412632;
  --muted:#7b5363;
  --surface:#fffbfb;
  --canvas:#fff1f3;
  --line:#ebd1da;
  --control-line:#a27887;
  --focus:#b33c53;
  color-scheme:light;
}
:root[data-palette=amber], .preset[data-palette-button=amber] {
  --on-brand:#ffffff;
  --brand:#89600a;
  --brand-hover:#6c4902;
  --brand-soft:#faefc9;
  --brand-ink:#705009;
  --hero-start:#2c2415;
  --hero-end:#705009;
  --ink:#3b301d;
  --muted:#766546;
  --surface:#fffdf6;
  --canvas:#fff8e8;
  --line:#e9dbbb;
  --control-line:#94805b;
  --focus:#89600a;
  color-scheme:light;
}
:root[data-palette=mono], .preset[data-palette-button=mono] {
  --on-brand:#ffffff;
  --brand:#36393d;
  --brand-hover:#202326;
  --brand-soft:#e8eaec;
  --brand-ink:#34383c;
  --hero-start:#141516;
  --hero-end:#44484f;
  --ink:#202124;
  --muted:#5e6266;
  --surface:#ffffff;
  --canvas:#f0f1f2;
  --line:#d4d7da;
  --control-line:#7b8085;
  --focus:#36393d;
  color-scheme:light;
}
:root[data-palette=midnight], .preset[data-palette-button=midnight] {
  --brand:#c0adff;
  --brand-hover:#d7caff;
  --brand-soft:#39304e;
  --brand-ink:#e1d4ff;
  --hero-start:#151224;
  --hero-end:#3c2b69;
  --ink:#f2f0fb;
  --muted:#bdb8ce;
  --surface:#222231;
  --canvas:#14141d;
  --line:#464356;
  --control-line:#858093;
  --focus:#e0ccff;
  color-scheme:dark;
  --on-brand:#211637; --shadow:0 8px 32px #00000024;
  --success:#a0e3b7; --success-soft:#163126; --warning:#f6cf85; --warning-soft:#342c1b;
  --error:#ffb1bf; --error-soft:#3b202a; --info:#aecdff; --info-soft:#1c2c43;
}
