/* WebAuge — consent.css · capa de consentimiento de Analytics GEN01 R2 (§3, §27).
   Consume los tokens de base.css con var(--wa-*). No declara ninguno (E6 · D1).
   Aviso compacto y NO bloqueante (sin velo, sin scroll bloqueado), integrado con la marca; panel de preferencias bajo demanda.
   Los nodos los crea assets/js/analytics-bootstrap.js: sin JavaScript no hay capa ni analítica. */

/* ---- Aviso (primera visita, estado UNSET) ---- */
.wa-consent{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:59;width:min(400px,calc(100vw - 40px));
  background:var(--wa-white);color:var(--wa-ink);border:1px solid var(--wa-border);border-radius:var(--wa-r-card);box-shadow:var(--wa-shadow-lg);
  padding:18px 20px 16px;font-family:'Manrope',sans-serif;animation:wa-consent-in var(--wa-t-overlay) var(--wa-ease) both}
.wa-consent-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px}
.wa-consent-title{display:flex;align-items:center;gap:9px;margin:0;font-size:14.5px;font-weight:800;letter-spacing:0.01em}
.wa-consent-title::before{content:"";width:18px;height:3px;border-radius:2px;background:var(--wa-green);flex-shrink:0}
.wa-consent-text{margin:0 0 14px;font-size:13.5px;line-height:1.55;color:var(--wa-ink-soft);text-wrap:pretty}
.wa-consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wa-consent-actions .btn{height:auto;min-height:42px;padding:8px 12px;font-size:13.5px;line-height:1.25;text-align:center;white-space:normal}
.wa-consent-link{flex-shrink:0;display:inline-block;padding:4px 0;border:none;background:none;font:600 12.5px 'Manrope',sans-serif;color:var(--wa-ink-soft);
  text-decoration:underline;text-underline-offset:3px;white-space:nowrap;cursor:pointer}
.wa-consent-link:hover{color:var(--wa-green-accessible-text)}
@keyframes wa-consent-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ---- Panel de preferencias ---- */
.wa-prefs-veil{position:fixed;inset:0;z-index:90;background:rgba(var(--wa-ink-rgb),0.45);display:flex;align-items:center;justify-content:center;padding:20px;
  animation:wa-prefs-fade var(--wa-t-std) var(--wa-ease) both}
.wa-prefs{width:min(460px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--wa-white);color:var(--wa-ink);border-radius:var(--wa-r-modal);
  box-shadow:var(--wa-shadow-lg);padding:22px 22px 18px;font-family:'Manrope',sans-serif}
.wa-prefs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}
.wa-prefs-head h2{margin:0;font-size:18px;font-weight:800;line-height:1.3}
.wa-prefs-close{flex-shrink:0;width:36px;height:36px;margin:-6px -8px 0 0;border:none;border-radius:50%;background:transparent;color:var(--wa-ink-soft);
  font:400 22px/1 'Manrope',sans-serif;cursor:pointer}
.wa-prefs-close:hover{background:var(--wa-hover-soft);color:var(--wa-ink)}
.wa-prefs-intro{margin:0 0 14px;font-size:13.5px;line-height:1.55;color:var(--wa-neutral)}
.wa-prefs-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--wa-border)}
.wa-prefs-row h3{margin:0 0 3px;font-size:14.5px;font-weight:700}
.wa-prefs-row p{margin:0;font-size:13px;line-height:1.5;color:var(--wa-neutral)}
.wa-prefs-note{margin-top:6px !important;font-size:12.5px !important;color:var(--wa-ink-soft) !important}
.wa-prefs-fixed{flex-shrink:0;padding:4px 10px;border-radius:var(--wa-r-pill);background:var(--wa-green-tint);color:var(--wa-green-accessible-text);font-size:12px;font-weight:700;white-space:nowrap}
.wa-switch{position:relative;flex-shrink:0;width:46px;height:26px;margin-top:2px;border:none;border-radius:var(--wa-r-pill);background:var(--wa-border-strong);cursor:pointer;
  transition:background var(--wa-t-micro) var(--wa-ease)}
.wa-switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--wa-white);box-shadow:var(--wa-shadow-sm);
  transition:transform var(--wa-t-std) var(--wa-ease)}
.wa-switch[aria-checked="true"]{background:var(--wa-green)}
.wa-switch[aria-checked="true"]::after{transform:translateX(20px)}
.wa-switch[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.wa-prefs-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding-top:14px;border-top:1px solid var(--wa-border)}
.wa-prefs-foot a{font-size:12.5px;font-weight:600;color:var(--wa-ink-soft);text-underline-offset:3px}
.wa-prefs-foot .btn{min-width:180px}
@keyframes wa-prefs-fade{from{opacity:0}to{opacity:1}}

/* ---- Confirmación discreta ---- */
.wa-consent-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:91;transform:translate(-50%,0);padding:10px 18px;
  border-radius:var(--wa-r-pill);background:var(--wa-ink);color:var(--wa-white);font:600 13.5px 'Manrope',sans-serif;box-shadow:var(--wa-shadow-md);
  animation:wa-toast-in var(--wa-t-std) var(--wa-ease) both}

/* ---- Convivencia con el botón flotante de WhatsApp (abajo a la izquierda): en móvil el aviso ocupa el ancho y el botón sube ---- */
body.wa-consent-visible .wa-float{transition:bottom var(--wa-t-std) var(--wa-ease)}
@media (max-width:640px){
  /* Móvil: tarjeta compacta (≈ 1/5 del alto) y botones lado a lado; nunca media pantalla. */
  .wa-consent{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;padding:12px 14px;border-radius:14px}
  .wa-consent-head{margin-bottom:4px}
  .wa-consent-title{font-size:13.5px;gap:8px}
  .wa-consent-title::before{width:14px}
  .wa-consent-link{font-size:12px}
  .wa-consent-text{margin-bottom:10px;font-size:12.5px;line-height:1.45}
  .wa-consent-actions .btn{min-height:38px;padding:6px 8px;font-size:12.5px}
  body.wa-consent-visible .wa-float{bottom:calc(var(--wa-consent-offset, 0px) + 24px)}
  .wa-prefs-veil{align-items:flex-end;padding:0}
  .wa-prefs{width:100%;max-height:88vh;border-radius:var(--wa-r-modal) var(--wa-r-modal) 0 0;padding:20px 18px calc(16px + env(safe-area-inset-bottom))}
  .wa-prefs-foot .btn{width:100%}
}
@media (max-width:300px){
  .wa-consent-actions{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
  .wa-consent,.wa-prefs-veil,.wa-consent-toast{animation:none}
  .wa-switch,.wa-switch::after,body.wa-consent-visible .wa-float{transition:none}
}
