/* =====================================================================
   Tokens de diseño (colores pastel, tipografía, formas). Todo color sale de una variable de acá.
   Para cambiar la marca de un proyecto: tocar --accent* y --font. Modo oscuro: sigue al sistema o se fuerza con data-theme.
   ===================================================================== */
/* Fuente Plus Jakarta Sans (OFL-1.1, subconjunto latino) alojada en /assets/fonts: la CSP no permite fuentes externas. */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plus-jakarta-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plus-jakarta-sans-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plus-jakarta-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/plus-jakarta-sans-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/plus-jakarta-sans-latin-800-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  /* tipografía: pila del sistema (rápida y sin servicios externos). Para una fuente propia, alojarla en /assets/fonts y declarar @font-face acá */
  --font:'Plus Jakarta Sans','Segoe UI',system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif;
  --bg:#FAF7F5; --surface:#FFFFFF; --ink:#2E2A3B; --ink2:#5F5A73; --muted:#8A849C; --line:#EAE4EF; --line2:#DDD5E6;
  --accent:#AB9CE8; --accent-ink:#46319B; --accent-soft:#EEEBFC; --on-accent:#1B1520; --accent-grad:linear-gradient(135deg,#B9ABF0,#F0AFC8);
  /* pares pastel fondo/tinta (usar siempre juntos) */
  --mint-bg:#DDF3E8; --mint:#2C8A63; --pink-bg:#FDEAF1; --pink:#A5456B; --sky-bg:#E4F1FB; --sky:#2F6A99;
  --lemon-bg:#FBF2CF; --lemon:#86690C; --peach-bg:#FDE8D9; --peach:#AE5E2B; --lilac-bg:#EEEBFC; --lilac:#5A4BB8;
  --ok:#2C8A63; --ok-bg:#DDF3E8; --warn:#8A5A0E; --warn-bg:#FFF3DA; --danger:#B4475F; --danger-bg:#FBE3E8; --info:#3A5A86; --info-bg:#EEF4FC;
  --tip-bg:#F7F5FE; --tip-line:#E2DCF6; --toast-bg:#2E2A3B; --toast-ink:#FFFFFF;
  --r:16px; --r-sm:10px; --shadow:0 1px 2px rgba(46,42,59,.04),0 6px 20px rgba(46,42,59,.06); --shadow-lg:0 16px 40px rgba(46,42,59,.14);
  /* escala compacta (tamaños y alturas; los componentes usan estas variables) */
  --fs:14px; --fs-sm:12.5px; --fs-xs:11px; --fs-h1:20px; --fs-h2:15px; --ctl-h:38px; --ctl-h-sm:32px; --r-xs:8px;
  /* superficie secundaria y colores del dominio financiero (opcionales; los proyectos los usan o no) */
  --bg2:light-dark(#F6EEE9,#1D1925);
  --in:light-dark(#2E9E78,#5FC79F); --in-soft:light-dark(#DEF3E9,#193A2E); --in-ink:light-dark(#1E7355,#8FE0BF);
  --out:light-dark(#E0607A,#F18DA3); --out-soft:light-dark(#FCE3E9,#3A1F28); --out-ink:light-dark(#B23F5C,#F6B3C1);
  --tr:light-dark(#6A74D6,#9AA2EC); --tr-soft:light-dark(#E8EAFB,#232647); --tr-ink:light-dark(#4A52B0,#BFC4F5);
  --res:light-dark(#D7A020,#E8C05E); --res-soft:light-dark(#FBF0D2,#352C18); --res-ink:light-dark(#8A6A12,#F0D589);
  --logo-ink:#0B1630; --logo-dot:#5B7CFF;   /* v0.10.3: logo Plurix */
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#15131C; --surface:#201D2B; --ink:#EDEAF5; --ink2:#BDB7CE; --muted:#9A94AE; --line:#312C3F; --line2:#3D374D;
  --accent:#B5A9E5; --accent-ink:#DED8F3; --accent-soft:#2F2A4A; --on-accent:#1B1520; --accent-grad:linear-gradient(135deg,#B5A9E5,#E3A7C2);
  --mint-bg:#1C3A2E; --mint:#72D4A7; --pink-bg:#3A2230; --pink:#F0A3C0; --sky-bg:#1C2C3C; --sky:#9FC2F0;
  --lemon-bg:#37311B; --lemon:#E7CF72; --peach-bg:#3A2A20; --peach:#F0B58A; --lilac-bg:#2F2A4A; --lilac:#C6BDFF;
  --ok:#72D4A7; --ok-bg:#1C3A2E; --warn:#EDBB66; --warn-bg:#3A2F18; --danger:#F18DA3; --danger-bg:#3E1F29; --info:#9FC2F0; --info-bg:#1D2A3A;
  --tip-bg:#262236; --tip-line:#3A3454; --toast-bg:#EDEAF5; --toast-ink:#1B1825;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.28); --shadow-lg:0 16px 40px rgba(0,0,0,.5);
  --logo-ink:#FFFFFF; --logo-dot:#5B7CFF;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#15131C; --surface:#201D2B; --ink:#EDEAF5; --ink2:#BDB7CE; --muted:#9A94AE; --line:#312C3F; --line2:#3D374D;
    --accent:#B5A9E5; --accent-ink:#DED8F3; --accent-soft:#2F2A4A; --on-accent:#1B1520; --accent-grad:linear-gradient(135deg,#B5A9E5,#E3A7C2);
    --mint-bg:#1C3A2E; --mint:#72D4A7; --pink-bg:#3A2230; --pink:#F0A3C0; --sky-bg:#1C2C3C; --sky:#9FC2F0;
    --lemon-bg:#37311B; --lemon:#E7CF72; --peach-bg:#3A2A20; --peach:#F0B58A; --lilac-bg:#2F2A4A; --lilac:#C6BDFF;
    --ok:#72D4A7; --ok-bg:#1C3A2E; --warn:#EDBB66; --warn-bg:#3A2F18; --danger:#F18DA3; --danger-bg:#3E1F29; --info:#9FC2F0; --info-bg:#1D2A3A;
    --tip-bg:#262236; --tip-line:#3A3454; --toast-bg:#EDEAF5; --toast-ink:#1B1825;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.28); --shadow-lg:0 16px 40px rgba(0,0,0,.5);
    --logo-ink:#FFFFFF; --logo-dot:#5B7CFF;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink)}
body{font-family:var(--font);font-size:15px;line-height:1.5;font-variant-ligatures:no-common-ligatures;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}
input,textarea,select{font:inherit;font-size:16px;color:var(--ink)}
a{color:var(--accent-ink)}
svg{display:block;flex:none}
[hidden]{display:none!important}
h1,h2,h3{margin:0;line-height:1.2}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--muted)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- color de la marca (se elige en Configuración; el proyecto lo fija con data-brand en <html>) ----------
   Sin data-brand queda el violeta de la plataforma. Cada color trae su par claro/oscuro, con contraste revisado en tests/unit/marca.test.mjs.
   Se usa light-dark(): sigue al modo claro u oscuro vigente. :is(:root,.sw) = la página o una muestra de color (.sw) en Configuración. */
:is(:root,.sw)[data-brand="violeta"]{--accent:light-dark(#AB9CE8,#B5A9E5);--accent-ink:light-dark(#46319B,#DED8F3);--on-accent:light-dark(#1B1520,#1B1520)}
:is(:root,.sw)[data-brand="coral"]{--accent:light-dark(#F09789,#EDA297);--accent-ink:light-dark(#962D1D,#F5D1CC);--on-accent:light-dark(#1B1520,#1B1520)}
:is(:root,.sw)[data-brand="rosa"]{--accent:light-dark(#ED97BB,#EAA4C1);--accent-ink:light-dark(#932553,#F4D2E0);--on-accent:light-dark(#1B1520,#1B1520)}
:is(:root,.sw)[data-brand="naranja"]{--accent:light-dark(#F6A56F,#F1AC7E);--accent-ink:light-dark(#843E10,#F7D6BF);--on-accent:light-dark(#1B1520,#1B1520)}
:is(:root,.sw)[data-brand="ambar"]{--accent:light-dark(#F8D062,#F3D072);--accent-ink:light-dark(#6B510B,#F7E3AB);--on-accent:light-dark(#1B1520,#1B1520)}
:is(:root,.sw)[data-brand="verde"]{--accent:light-dark(#79CDA3,#87C9A8);--accent-ink:light-dark(#285D42,#BFE3D1);--on-accent:light-dark(#1B1520,#1B1520)}
:is(:root,.sw)[data-brand="turquesa"]{--accent:light-dark(#6CD0CB,#7BCCC8);--accent-ink:light-dark(#255B58,#BEE4E2);--on-accent:light-dark(#1B1520,#1B1520)}
:is(:root,.sw)[data-brand="azul"]{--accent:light-dark(#7DB2E8,#8BB8E4);--accent-ink:light-dark(#225487,#C6DBF1);--on-accent:light-dark(#1B1520,#1B1520)}

:is(:root,.sw)[data-brand]{--accent-soft:light-dark(color-mix(in srgb,var(--accent) 14%,#fff),color-mix(in srgb,var(--accent) 24%,#201D2B));--accent-grad:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#fff))}
