/* =====================================================================
   MADRE SELVA · ms-palette.css · v2 · 04/10/2026
   Normalización de la paleta de botones (toda la app). Capa final:
   se carga al final de <body> (postbuild-ops.mjs), después de
   styles-v2.css y de los <style> que la app inyecta en <head>.
   Solo color/borde/sombra/estado de botones. No toca tamaños,
   radios, tipografías, layout, logo, sidebar ni topbar.
   - Primario    = verde selva #0F3D32 · hover #185446 · texto marfil
   - Secundario  = marfil #FFFDF9 · borde champagne · hover dorado
   - Disabled    = crema #F4EFE6 · borde gold-100 · texto faint · opacity 1
   - Destructivo = bordó #4B0E1E (solo .ms-danger)
   - Dorado      = solo foco / borde / acento
   Nunca rosa, nunca bordó con opacidad.
   ===================================================================== */
:root{
  --msp-green:#0F3D32; --msp-green-h:#185446; --msp-green-a:#0B2F27;
  --msp-ivory:#F9F6EF; --msp-surface:#FFFDF9; --msp-text:#1E1A17;
  --msp-champ:rgba(212,176,116,.62); --msp-gold:#D4B074; --msp-gold-600:#A9833F;
  --msp-bordo:#4B0E1E; --msp-bordo-h:#63182C;
  --msp-dis-bg:#F4EFE6; --msp-dis-line:#EFE0C2; --msp-dis-text:#9A9184;
  --msp-halo:0 0 0 3px rgba(212,176,116,.55);
}
html[data-theme="dark"]{
  --msp-surface:#27231F; --msp-text:#ECE5D9;
  --msp-champ:rgba(212,176,116,.45); --msp-gold-600:#E0C38F;
  --msp-dis-bg:#2E2924; --msp-dis-line:#3C3222; --msp-dis-text:#8C8376;
  --msp-halo:0 0 0 3px rgba(212,176,116,.5);
}

/* ---------- Primario (todo .btn que no sea secundario ni destructivo) ---------- */
html body .btn:not(.secondary):not(.ms-danger){
  background:var(--msp-green)!important; border-color:var(--msp-green)!important; color:var(--msp-ivory)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 6px 14px -8px rgba(15,61,50,.6)!important;
}
html body .btn:not(.secondary):not(.ms-danger):hover{
  background:var(--msp-green-h)!important; border-color:var(--msp-green-h)!important;
}
html body .btn:not(.secondary):not(.ms-danger):active{
  background:var(--msp-green-a)!important; transform:translateY(1px);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.22)!important;
}
html[data-theme="dark"] body .btn:not(.secondary):not(.ms-danger){ border-color:#2A6352!important; }

/* ---------- Secundario ---------- */
html body .btn.secondary:not(.ms-danger),
html body .ms-main .btn.secondary:not(.ms-danger){
  background:var(--msp-surface)!important; color:var(--msp-text)!important;
  border-color:var(--msp-champ)!important; box-shadow:0 1px 2px rgba(30,22,14,.05)!important;
}
html body .btn.secondary:not(.ms-danger):hover{
  background:var(--msp-surface)!important; color:var(--msp-text)!important; border-color:var(--msp-gold-600)!important;
}
html body .btn.secondary:not(.ms-danger):active{ transform:translateY(1px); box-shadow:inset 0 1px 3px rgba(30,22,14,.14)!important; }

/* ---------- Destructivo (eliminar, revocar, cancelar irreversible) ---------- */
html body .btn.ms-danger{
  background:var(--msp-surface)!important; color:var(--msp-bordo)!important;
  border-color:rgba(75,14,30,.38)!important; box-shadow:0 1px 2px rgba(30,22,14,.05)!important;
}
html body .btn.ms-danger:hover{ background:var(--msp-bordo)!important; border-color:var(--msp-bordo)!important; color:var(--msp-ivory)!important; }
html body .btn.ms-danger:active{ background:#3A0915!important; transform:translateY(1px); }
html[data-theme="dark"] body .btn.ms-danger{ background:var(--msp-bordo)!important; border-color:#6B1426!important; color:var(--msp-ivory)!important; }
html[data-theme="dark"] body .btn.ms-danger:hover{ background:var(--msp-bordo-h)!important; border-color:#7A1830!important; }

/* ---------- Foco (todas las variantes): halo champagne ---------- */
html:root body .btn.btn.btn:focus-visible{ outline:none!important; box-shadow:var(--msp-halo)!important; }

/* ---------- Disabled (gana sobre todo lo anterior, también en hover) ---------- */
/* especificidad 0,5,2+ para ganarle a primario (.btn:not():not() = 0,3,2) y a sus :hover/:active */
html:root body .btn.btn.btn:disabled:not(.is-busy), html:root body .btn.btn.btn:disabled:not(.is-busy):hover, html:root body .btn.btn.btn:disabled:not(.is-busy):active,
html:root body .btn.btn.btn[aria-disabled="true"]:not(.is-busy), html:root body .btn.btn.btn[aria-disabled="true"]:not(.is-busy):hover{
  background:var(--msp-dis-bg)!important; border-color:var(--msp-dis-line)!important; color:var(--msp-dis-text)!important;
  opacity:1!important; box-shadow:none!important; cursor:not-allowed!important; transform:none!important;
}
html:root body .btn.btn.btn:disabled:not(.is-busy) svg, html:root body .btn.btn.btn[aria-disabled="true"]:not(.is-busy) svg{ color:var(--msp-dis-text)!important; }

/* ---------- Busy (spinner) ---------- */
html:root body .btn.btn.is-busy, html:root body .btn.btn.is-busy:hover, html:root body .btn.btn.btn.is-busy:disabled{ color:transparent!important; }
html body .btn.secondary.is-busy::after, html body .btn.ms-danger.is-busy::after{ border-top-color:var(--msp-green)!important; }
html[data-theme="dark"] body .btn.secondary.is-busy::after{ border-top-color:var(--msp-gold)!important; }

/* ---------- Bloqueo de acceso (Mi plan) ---------- */
html body #msAccessLock .msag-cta{ background:var(--msp-green)!important; color:var(--msp-ivory)!important; }
html body #msAccessLock .msag-cta:hover{ background:var(--msp-green-h)!important; }
html body #msAccessLock .msag-cta:focus-visible, html body #msAccessLock .msag-sec:focus-visible{ outline:none; box-shadow:var(--msp-halo); }
html body #msAccessLock .msag-sec{ border-color:var(--msp-champ)!important; }
html body #msAccessLock .msag-sec:hover{ border-color:var(--msp-gold-600)!important; }

/* ---------- Tema oscuro: nada rosado en acciones ---------- */
html[data-theme="dark"] body .ms-assist-foot.selva button{ color:var(--msp-gold-600)!important; }
html[data-theme="dark"] body .link{ color:var(--msp-gold-600); }
/* navegación móvil (barra inferior y hoja "Más"): el activo en oscuro era rosa (--bordo oscuro) */
html[data-theme="dark"] body .bottombar .active, html[data-theme="dark"] body .bottombar .active svg,
html[data-theme="dark"] body .sheet a.active, html[data-theme="dark"] body .sheet a svg{ color:var(--msp-gold-600)!important; }


/* EXCEPCIÓN EDITORIAL · solo pantalla de acceso (referencia negro/dorado).
   Mantener los botones de toda la aplicación en su paleta original. */
html body .login-form .btn.login-go:not(.secondary):not(.ms-danger),
html body .login-form .btn.login-go:not(.secondary):not(.ms-danger):active{
  background:linear-gradient(180deg,#F1D49C 0%,#D0AC71 100%)!important;
  border-color:#D8B77D!important;
  color:#15110C!important;
  box-shadow:0 9px 19px -12px rgba(70,49,20,.52)!important;
}
html body .login-form .btn.login-go:not(.secondary):not(.ms-danger):hover{
  background:linear-gradient(180deg,#F5DCAA 0%,#D8B77D 100%)!important;
  border-color:#C89C59!important;
  color:#15110C!important;
}
html body .login-form .btn.login-go:not(.secondary):not(.ms-danger):disabled,
html body .login-form .btn.login-go:not(.secondary):not(.ms-danger)[aria-disabled="true"]{
  background:#EFE4D3!important; border-color:#DACFBD!important; color:#817467!important;
  box-shadow:none!important;
}
html body .login-form a.link,
html body .login-form a[href*="register"],
html body .login-form a[href*="registro"]{color:#A46C25!important;}
html body .login-form a.link:hover,
html body .login-form a[href*="register"]:hover,
html body .login-form a[href*="registro"]:hover{color:#82501B!important;}
html body .login-form .login-go:focus-visible{outline:3px solid #B18A49!important;outline-offset:3px;}
