/* ==========================================================================
   css/whatsapp.css — dueño B (módulo B: chat de WhatsApp dentro del iPhone)
   Todo bajo `.wa` (#pantalla). Aspecto de WhatsApp iOS 2025–2026 según
   docs/referencias/README.md (hex medidos sobre capturas reales).
   Clases: .wa-row .in .out .ultimo .bubble .meta .tick .tick-read, cola
   abajo con clip-path, .qr-btns .qr-btn (+ .qr-ico), .tpl-*, .carousel .card,
   .doc-* .audio-* .loc-* .contact-* .sticker-*, .wa-sistema, .sheet*.
   Keyframes con prefijo wam-.
   ========================================================================== */

/* ---------- 1. Tokens — modo claro ---------- */
.wa {
  --wa-bg-chat: #f4f1ec;             /* wall [medido] */
  --wa-doodle: #e8e0d4;              /* trazo tostado cálido [medido] */
  --wa-bubble-in: #ffffff;
  --wa-bubble-out: #d9fdd3;
  --wa-text: #000000;
  --wa-text-meta: #7f7f7f;           /* hora / footer en entrante [medido] */
  --wa-meta-out: #6b7d68;            /* hora en saliente, gris verdoso [medido] */
  --wa-link: #027eb5;
  --wa-tick-read: #027bfc;           /* ✓✓ leído, azul iOS [medido] */
  --wa-action: #408559;              /* texto/icono de botones [medido] */
  --wa-btn-sep: rgba(0, 0, 0, .2);   /* separador de botones (≈ #cccccc) */
  --wa-chrome: #f4f3f2;              /* header + barra del composer [medido] */
  --wa-chrome-text: #000000;
  --wa-header-icon: #8e8e93;
  --wa-compose-bar: #f4f3f2;
  --wa-compose-field: #ffffff;
  --wa-compose-border: #d1d1d6;
  --wa-separator: rgba(0, 0, 0, .08);
  --wa-accent: #1daa61;              /* verde de marca (escribiendo…, enviar) */
  --wa-panel: #f6f5f4;               /* panel interno de documento [medido] */
  --wa-aviso: #ffefd1;               /* aviso de cifrado [medido] */
  --wa-aviso-text: #1f1f1f;
  --wa-fecha: rgba(255, 255, 255, .92);
  --wa-sheet: #ffffff;
  --wa-sheet-sub: #757778;
  --wa-sheet-sep: #c6c6c8;
  --wa-sheet-close: #eeeeef;
  --wa-sheet-x: #838388;
  --wa-velo: rgba(0, 0, 0, .26);
  --wa-sistema-text: #54595c;

  /* posición la fija .pantalla (A: absolute inset 0); B aísla el
     apilamiento para el doodle en z-index:-1 y ancla .sheet */
  isolation: isolate;
  overflow: hidden;
  background: var(--wa-bg-chat);
  color: var(--wa-text);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro",
               "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -.2px;             /* tracking de SF Pro a 17 pt */
}

/* ---------- 2. Tokens — modo oscuro (iOS: negro neutro) ---------- */
.wa.oscuro {
  --wa-bg-chat: #0a0a0a;
  --wa-doodle: #1f2121;
  --wa-bubble-in: #232626;           /* [medido] */
  --wa-bubble-out: #004f35;          /* [medido] */
  --wa-text: #ffffff;
  --wa-text-meta: #8d9494;
  --wa-meta-out: #8fb3a3;
  --wa-link: #4fb6ec;
  --wa-tick-read: #29abff;           /* [medido en App Store] */
  --wa-action: #21c063;
  --wa-btn-sep: rgba(255, 255, 255, .12);
  --wa-chrome: #121313;
  --wa-chrome-text: #ffffff;
  --wa-header-icon: #ffffff;
  --wa-compose-bar: #232626;         /* barra [medido]; el header sí es #121313 */
  --wa-compose-field: #393c3c;       /* [medido] */
  --wa-compose-border: transparent;
  --wa-separator: rgba(255, 255, 255, .10);
  --wa-panel: #1b1d1d;
  --wa-aviso: #2a2a26;
  --wa-aviso-text: #e9e4d4;
  --wa-fecha: #232626;
  --wa-sheet: #1c1c1e;
  --wa-sheet-sub: #8d8d93;
  --wa-sheet-sep: #38383a;
  --wa-sheet-close: #2c2c2e;
  --wa-sheet-x: #a0a0a5;
  --wa-velo: rgba(0, 0, 0, .5);
  --wa-sistema-text: #b8bcbc;
}

/* ---------- 3. Doodle de fondo (máscara SVG embebida, sin red) ---------- */
.wa::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: var(--wa-doodle);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%22300%22%20viewBox%3D%220%200%20300%20300%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cg%20transform%3D%22translate%2818.6%2013.1%29%20scale%280.77%29%20rotate%28-15%2016%2016%29%22%20stroke-width%3D%221.63%22%3E%3Cpath%20d%3D%22M16%203l3.6%208.2%208.9.8-6.8%206%201.9%208.7L16%2022.2l-7.6%204.5%201.9-8.7-6.8-6%208.9-.8Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2878.0%2012.9%29%20scale%280.75%29%20rotate%2823%2016%2016%29%22%20stroke-width%3D%221.66%22%3E%3Cpath%20d%3D%22M3%2015%2029%205l-8%2022-6-8ZM15%2019%2029%205%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28136.0%2014.7%29%20scale%280.80%29%20rotate%2817%2016%2016%29%22%20stroke-width%3D%221.57%22%3E%3Cpath%20d%3D%22M9%2024a6%206%200%200%201%200-12%208%208%200%200%201%2015%201%205.5%205.5%200%200%201%200%2011Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28191.0%2016.9%29%20scale%280.82%29%20rotate%28-16%2016%2016%29%22%20stroke-width%3D%221.53%22%3E%3Cpath%20d%3D%22M6%2020a10%2010%200%200%201%2020%200M6%2020v6h4v-8H6M26%2020v6h-4v-8h4%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28252.1%2017.6%29%20scale%280.82%29%20rotate%28-1%2016%2016%29%22%20stroke-width%3D%221.52%22%3E%3Cpath%20d%3D%22M10%2025a4%203%200%201%201-.1%200M14%2024V6c4%201%207%203.5%207%207%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2842.9%2084.5%29%20scale%280.67%29%20rotate%2828%2016%2016%29%22%20stroke-width%3D%221.86%22%3E%3Cpath%20d%3D%22M16%2029S5.5%2018.8%205.5%2011.8a10.5%2010.5%200%200%201%2021%200C26.5%2018.8%2016%2029%2016%2029ZM16%208.6a3.4%203.4%200%201%201%200%206.8%203.4%203.4%200%200%201%200-6.8%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28108.7%2085.0%29%20scale%280.66%29%20rotate%28-19%2016%2016%29%22%20stroke-width%3D%221.90%22%3E%3Cpath%20d%3D%22M16%203a8%209%200%200%201%200%2018%208%209%200%200%201%200-18M16%2021l-2%203h4ZM16%2024c1%203-1%204%200%206%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28168.8%2080.1%29%20scale%280.75%29%20rotate%28-13%2016%2016%29%22%20stroke-width%3D%221.68%22%3E%3Cpath%20d%3D%22M10%206h12v4a6%206%200%200%201-12%200ZM16%2016v8M11%2027h10%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28236.1%2078.6%29%20scale%280.67%29%20rotate%28-16%2016%2016%29%22%20stroke-width%3D%221.86%22%3E%3Cpath%20d%3D%22M16%2012.8a3.2%203.2%200%201%201%200%206.4%203.2%203.2%200%200%201%200-6.4M16%203.8a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2M16%2019a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2M7%2010a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2M25%2010a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28285.1%2073.3%29%20scale%280.78%29%20rotate%2816%2016%2016%29%22%20stroke-width%3D%221.59%22%3E%3Cpath%20d%3D%22M16%204a12%2012%200%201%201%200%2024%2012%2012%200%200%201%200-24M16%209v7l5%203%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28-14.9%2073.3%29%20scale%280.78%29%20rotate%2816%2016%2016%29%22%20stroke-width%3D%221.59%22%3E%3Cpath%20d%3D%22M16%204a12%2012%200%201%201%200%2024%2012%2012%200%200%201%200-24M16%209v7l5%203%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2816.3%20133.3%29%20scale%280.73%29%20rotate%2826%2016%2016%29%22%20stroke-width%3D%221.72%22%3E%3Cpath%20d%3D%22M3%208h26v17H3ZM3%208l13%2010%2013-10%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2884.3%20138.6%29%20scale%280.69%29%20rotate%28-16%2016%2016%29%22%20stroke-width%3D%221.81%22%3E%3Cpath%20d%3D%22M5%2013h18v7a9%209%200%200%201-18%200ZM23%2015h3a4.5%204.5%200%200%201%200%209h-3M11%209c2-2-2-4%200-6M18%209c2-2-2-4%200-6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28135.8%20140.3%29%20scale%280.80%29%20rotate%289%2016%2016%29%22%20stroke-width%3D%221.56%22%3E%3Cpath%20d%3D%22M16%2010.5a5.5%205.5%200%201%201%200%2011%205.5%205.5%200%200%201%200-11M16%203v4M16%2025v4M3%2016h4M25%2016h4M6.8%206.8l2.8%202.8M22.4%2022.4l2.8%202.8M25.2%206.8l-2.8%202.8M9.6%2022.4l-2.8%202.8%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28195.6%20138.8%29%20scale%280.66%29%20rotate%28-25%2016%2016%29%22%20stroke-width%3D%221.89%22%3E%3Cpath%20d%3D%22M5%2013h22v5H5ZM7%2018h18v10H7ZM16%2013v15M16%2013c-2-6-9-6-7-1M16%2013c2-6%209-6%207-1%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28258.6%20142.0%29%20scale%280.63%29%20rotate%289%2016%2016%29%22%20stroke-width%3D%221.97%22%3E%3Cpath%20d%3D%22M3%2016a13%2013%200%200%201%2026%200ZM16%2016v11a3%203%200%200%201-6%200%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2843.0%20194.8%29%20scale%280.91%29%20rotate%280%2016%2016%29%22%20stroke-width%3D%221.38%22%3E%3Cpath%20d%3D%22M16%2016a2%202%200%200%201%202%202%204%204%200%200%201-4%204%206%206%200%200%201-6-6%208%208%200%200%201%208-8%2010%2010%200%200%201%2010%2010%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28112.7%20197.4%29%20scale%280.75%29%20rotate%28-4%2016%2016%29%22%20stroke-width%3D%221.66%22%3E%3Cpath%20d%3D%22M4%2011h5l2-3h10l2%203h5v14H4ZM16%2013a5%205%200%201%201%200%2010%205%205%200%200%201%200-10%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28165.1%20201.7%29%20scale%280.70%29%20rotate%28-22%2016%2016%29%22%20stroke-width%3D%221.79%22%3E%3Cpath%20d%3D%22M18%203%207%2018h8l-2%2011%2012-16h-8Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28232.5%20203.1%29%20scale%280.70%29%20rotate%2828%2016%2016%29%22%20stroke-width%3D%221.78%22%3E%3Cpath%20d%3D%22M16%2027C5%2018%203%2010.5%208.6%206.8c3.8-2.5%207.4.6%207.4%203.8%200-3.2%203.6-6.3%207.4-3.8C29%2010.5%2027%2018%2016%2027Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28290.7%20198.6%29%20scale%280.90%29%20rotate%288%2016%2016%29%22%20stroke-width%3D%221.39%22%3E%3Cpath%20d%3D%22M4%2028C4%2012%2016%204%2028%204c0%2016-12%2024-24%2024ZM7%2025c5-7%2011-13%2018-18%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28-9.3%20198.6%29%20scale%280.90%29%20rotate%288%2016%2016%29%22%20stroke-width%3D%221.39%22%3E%3Cpath%20d%3D%22M4%2028C4%2012%2016%204%2028%204c0%2016-12%2024-24%2024ZM7%2025c5-7%2011-13%2018-18%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2810.8%20255.3%29%20scale%280.79%29%20rotate%28-9%2016%2016%29%22%20stroke-width%3D%221.59%22%3E%3Cpath%20d%3D%22M16%204a8%208%200%200%201%208%208v7l3%204H5l3-4v-7a8%208%200%200%201%208-8ZM13%2027h6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2877.6%20261.3%29%20scale%280.68%29%20rotate%2814%2016%2016%29%22%20stroke-width%3D%221.83%22%3E%3Cpath%20d%3D%22M4%2026%2016%204l12%2022ZM11%2019h1M17%2015h1M15%2021h1%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28145.2%20252.9%29%20scale%280.70%29%20rotate%28-8%2016%2016%29%22%20stroke-width%3D%221.79%22%3E%3Cpath%20d%3D%22M5%207h22a4%204%200%200%201%204%204v7a4%204%200%200%201-4%204H15l-7%206v-6H5a4%204%200%200%201-4-4v-7a4%204%200%200%201%204-4Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28196.4%20252.3%29%20scale%280.80%29%20rotate%2829%2016%2016%29%22%20stroke-width%3D%221.57%22%3E%3Cpath%20d%3D%22M16%205a11%2011%200%201%201%200%2022%2011%2011%200%200%201%200-22M11.5%2019c2%203%207%203%209%200M12%2012.6v1.2M20%2012.6v1.2%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28263.1%20258.9%29%20scale%280.76%29%20rotate%28-2%2016%2016%29%22%20stroke-width%3D%221.65%22%3E%3Cpath%20d%3D%22M22%204a11%2011%200%201%200%206%2016A9%209%200%200%201%2022%204Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%22300%22%20viewBox%3D%220%200%20300%20300%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cg%20transform%3D%22translate%2818.6%2013.1%29%20scale%280.77%29%20rotate%28-15%2016%2016%29%22%20stroke-width%3D%221.63%22%3E%3Cpath%20d%3D%22M16%203l3.6%208.2%208.9.8-6.8%206%201.9%208.7L16%2022.2l-7.6%204.5%201.9-8.7-6.8-6%208.9-.8Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2878.0%2012.9%29%20scale%280.75%29%20rotate%2823%2016%2016%29%22%20stroke-width%3D%221.66%22%3E%3Cpath%20d%3D%22M3%2015%2029%205l-8%2022-6-8ZM15%2019%2029%205%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28136.0%2014.7%29%20scale%280.80%29%20rotate%2817%2016%2016%29%22%20stroke-width%3D%221.57%22%3E%3Cpath%20d%3D%22M9%2024a6%206%200%200%201%200-12%208%208%200%200%201%2015%201%205.5%205.5%200%200%201%200%2011Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28191.0%2016.9%29%20scale%280.82%29%20rotate%28-16%2016%2016%29%22%20stroke-width%3D%221.53%22%3E%3Cpath%20d%3D%22M6%2020a10%2010%200%200%201%2020%200M6%2020v6h4v-8H6M26%2020v6h-4v-8h4%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28252.1%2017.6%29%20scale%280.82%29%20rotate%28-1%2016%2016%29%22%20stroke-width%3D%221.52%22%3E%3Cpath%20d%3D%22M10%2025a4%203%200%201%201-.1%200M14%2024V6c4%201%207%203.5%207%207%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2842.9%2084.5%29%20scale%280.67%29%20rotate%2828%2016%2016%29%22%20stroke-width%3D%221.86%22%3E%3Cpath%20d%3D%22M16%2029S5.5%2018.8%205.5%2011.8a10.5%2010.5%200%200%201%2021%200C26.5%2018.8%2016%2029%2016%2029ZM16%208.6a3.4%203.4%200%201%201%200%206.8%203.4%203.4%200%200%201%200-6.8%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28108.7%2085.0%29%20scale%280.66%29%20rotate%28-19%2016%2016%29%22%20stroke-width%3D%221.90%22%3E%3Cpath%20d%3D%22M16%203a8%209%200%200%201%200%2018%208%209%200%200%201%200-18M16%2021l-2%203h4ZM16%2024c1%203-1%204%200%206%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28168.8%2080.1%29%20scale%280.75%29%20rotate%28-13%2016%2016%29%22%20stroke-width%3D%221.68%22%3E%3Cpath%20d%3D%22M10%206h12v4a6%206%200%200%201-12%200ZM16%2016v8M11%2027h10%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28236.1%2078.6%29%20scale%280.67%29%20rotate%28-16%2016%2016%29%22%20stroke-width%3D%221.86%22%3E%3Cpath%20d%3D%22M16%2012.8a3.2%203.2%200%201%201%200%206.4%203.2%203.2%200%200%201%200-6.4M16%203.8a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2M16%2019a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2M7%2010a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2M25%2010a4.6%204.6%200%201%201%200%209.2%204.6%204.6%200%200%201%200-9.2%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28285.1%2073.3%29%20scale%280.78%29%20rotate%2816%2016%2016%29%22%20stroke-width%3D%221.59%22%3E%3Cpath%20d%3D%22M16%204a12%2012%200%201%201%200%2024%2012%2012%200%200%201%200-24M16%209v7l5%203%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28-14.9%2073.3%29%20scale%280.78%29%20rotate%2816%2016%2016%29%22%20stroke-width%3D%221.59%22%3E%3Cpath%20d%3D%22M16%204a12%2012%200%201%201%200%2024%2012%2012%200%200%201%200-24M16%209v7l5%203%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2816.3%20133.3%29%20scale%280.73%29%20rotate%2826%2016%2016%29%22%20stroke-width%3D%221.72%22%3E%3Cpath%20d%3D%22M3%208h26v17H3ZM3%208l13%2010%2013-10%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2884.3%20138.6%29%20scale%280.69%29%20rotate%28-16%2016%2016%29%22%20stroke-width%3D%221.81%22%3E%3Cpath%20d%3D%22M5%2013h18v7a9%209%200%200%201-18%200ZM23%2015h3a4.5%204.5%200%200%201%200%209h-3M11%209c2-2-2-4%200-6M18%209c2-2-2-4%200-6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28135.8%20140.3%29%20scale%280.80%29%20rotate%289%2016%2016%29%22%20stroke-width%3D%221.56%22%3E%3Cpath%20d%3D%22M16%2010.5a5.5%205.5%200%201%201%200%2011%205.5%205.5%200%200%201%200-11M16%203v4M16%2025v4M3%2016h4M25%2016h4M6.8%206.8l2.8%202.8M22.4%2022.4l2.8%202.8M25.2%206.8l-2.8%202.8M9.6%2022.4l-2.8%202.8%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28195.6%20138.8%29%20scale%280.66%29%20rotate%28-25%2016%2016%29%22%20stroke-width%3D%221.89%22%3E%3Cpath%20d%3D%22M5%2013h22v5H5ZM7%2018h18v10H7ZM16%2013v15M16%2013c-2-6-9-6-7-1M16%2013c2-6%209-6%207-1%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28258.6%20142.0%29%20scale%280.63%29%20rotate%289%2016%2016%29%22%20stroke-width%3D%221.97%22%3E%3Cpath%20d%3D%22M3%2016a13%2013%200%200%201%2026%200ZM16%2016v11a3%203%200%200%201-6%200%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2843.0%20194.8%29%20scale%280.91%29%20rotate%280%2016%2016%29%22%20stroke-width%3D%221.38%22%3E%3Cpath%20d%3D%22M16%2016a2%202%200%200%201%202%202%204%204%200%200%201-4%204%206%206%200%200%201-6-6%208%208%200%200%201%208-8%2010%2010%200%200%201%2010%2010%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28112.7%20197.4%29%20scale%280.75%29%20rotate%28-4%2016%2016%29%22%20stroke-width%3D%221.66%22%3E%3Cpath%20d%3D%22M4%2011h5l2-3h10l2%203h5v14H4ZM16%2013a5%205%200%201%201%200%2010%205%205%200%200%201%200-10%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28165.1%20201.7%29%20scale%280.70%29%20rotate%28-22%2016%2016%29%22%20stroke-width%3D%221.79%22%3E%3Cpath%20d%3D%22M18%203%207%2018h8l-2%2011%2012-16h-8Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28232.5%20203.1%29%20scale%280.70%29%20rotate%2828%2016%2016%29%22%20stroke-width%3D%221.78%22%3E%3Cpath%20d%3D%22M16%2027C5%2018%203%2010.5%208.6%206.8c3.8-2.5%207.4.6%207.4%203.8%200-3.2%203.6-6.3%207.4-3.8C29%2010.5%2027%2018%2016%2027Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28290.7%20198.6%29%20scale%280.90%29%20rotate%288%2016%2016%29%22%20stroke-width%3D%221.39%22%3E%3Cpath%20d%3D%22M4%2028C4%2012%2016%204%2028%204c0%2016-12%2024-24%2024ZM7%2025c5-7%2011-13%2018-18%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28-9.3%20198.6%29%20scale%280.90%29%20rotate%288%2016%2016%29%22%20stroke-width%3D%221.39%22%3E%3Cpath%20d%3D%22M4%2028C4%2012%2016%204%2028%204c0%2016-12%2024-24%2024ZM7%2025c5-7%2011-13%2018-18%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2810.8%20255.3%29%20scale%280.79%29%20rotate%28-9%2016%2016%29%22%20stroke-width%3D%221.59%22%3E%3Cpath%20d%3D%22M16%204a8%208%200%200%201%208%208v7l3%204H5l3-4v-7a8%208%200%200%201%208-8ZM13%2027h6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2877.6%20261.3%29%20scale%280.68%29%20rotate%2814%2016%2016%29%22%20stroke-width%3D%221.83%22%3E%3Cpath%20d%3D%22M4%2026%2016%204l12%2022ZM11%2019h1M17%2015h1M15%2021h1%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28145.2%20252.9%29%20scale%280.70%29%20rotate%28-8%2016%2016%29%22%20stroke-width%3D%221.79%22%3E%3Cpath%20d%3D%22M5%207h22a4%204%200%200%201%204%204v7a4%204%200%200%201-4%204H15l-7%206v-6H5a4%204%200%200%201-4-4v-7a4%204%200%200%201%204-4Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28196.4%20252.3%29%20scale%280.80%29%20rotate%2829%2016%2016%29%22%20stroke-width%3D%221.57%22%3E%3Cpath%20d%3D%22M16%205a11%2011%200%201%201%200%2022%2011%2011%200%200%201%200-22M11.5%2019c2%203%207%203%209%200M12%2012.6v1.2M20%2012.6v1.2%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28263.1%20258.9%29%20scale%280.76%29%20rotate%28-2%2016%2016%29%22%20stroke-width%3D%221.65%22%3E%3Cpath%20d%3D%22M22%204a11%2011%200%201%200%206%2016A9%209%200%200%201%2022%204Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  -webkit-mask-size: 300px 300px;
  mask-size: 300px 300px;
  -webkit-mask-repeat: repeat;
  mask-repeat: repeat;
}

.wa [hidden] { display: none !important; }

/* Reset de <button> dentro del chat (botones de flujo accesibles) */
.wa button.qr-btn,
.wa button.sheet-cerrar,
.wa button.contact-accion {
  font: inherit;
  letter-spacing: inherit;
  border: 0;
  background: none;
  -webkit-appearance: none;
  appearance: none;
}
/* Las filas de la hoja conservan su separador (lista-hoja-inferior.png) */
.wa button.sheet-fila {
  font: inherit;
  letter-spacing: inherit;
  border: 0;
  border-bottom: .5px solid var(--wa-sheet-sep);
  background: none;
  -webkit-appearance: none;
  appearance: none;
}

/* ---------- 4. Header del chat (iOS: chevron negro, avatar 36, iconos de línea) ---------- */
.wa #chat-header {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 4px 16px 6px 8px;
  background: var(--wa-chrome);
  color: var(--wa-chrome-text);
  border-bottom: .5px solid var(--wa-separator);
  transition: background-color .2s ease, color .2s ease;
}
.wa .wa-back { width: 22px; flex: none; display: flex; color: var(--wa-chrome-text); padding-left: 4px; }
.wa .wa-avatar,
.wa #chat-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
  background: var(--wa-separator);
}
.wa #chat-avatar { position: relative; z-index: 1; }
.wa .wa-header-tit { flex: 1; min-width: 0; }
.wa .header-title {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
  display: flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
  overflow: hidden;
}
.wa #chat-nombre { overflow: hidden; text-overflow: ellipsis; }
.wa .header-sub {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0;
  color: var(--wa-text-meta);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wa .header-sub.wa-sub-verde { color: var(--wa-accent); }
.wa .wa-verificado { display: inline-flex; flex: none; }
.wa .wa-hicon { flex: none; display: flex; color: var(--wa-header-icon); }
.wa .wa-hicon + .wa-hicon { margin-left: 20px; }

/* ---------- 5. Cuerpo del chat y filas ---------- */
.wa #chat-cuerpo {
  margin: 0;
  padding: 8px 0 10px;
  list-style: none;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: none;
}
.wa #chat-cuerpo::-webkit-scrollbar { display: none; }

.wa .wa-row { display: flex; padding: 0 16px; margin-top: 2px; }
.wa .wa-row.grupo { margin-top: 8px; }          /* cambia de emisor */
.wa .wa-row.out { justify-content: flex-end; }

/* Columna para mensajes compuestos (carrusel: burbuja + tarjetas) */
.wa .wa-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}
.wa .out .wa-stack { align-items: flex-end; }
.wa .wa-stack-full { width: 100%; }
.wa .wa-stack > .bubble { max-width: 78%; }

/* ---------- 6. Burbuja: radio 18 y cola ABAJO solo en la última del grupo ---------- */
.wa .bubble {
  position: relative;
  z-index: 0;                         /* contexto: la cola queda bajo el contenido */
  max-width: 78%;
  padding: 7px 12px 6px;             /* 7 arriba / 6 abajo [medido, README §2.2] */
  border-radius: 18px;
  background: var(--wa-bubble-in);
  font-size: 17px;
  line-height: 22px;
  overflow-wrap: break-word;
  word-break: break-word;
  transition: background-color .2s ease, color .2s ease;
}
.wa .out .bubble { background: var(--wa-bubble-out); }

.wa .ultimo > .bubble::before,
.wa .ultimo > .wa-stack > .bubble.con-cola::before {
  content: "";
  position: absolute;
  bottom: 0;
  z-index: -1;
  width: 14px;
  height: 17px;
  background: inherit;
}
.wa .in.ultimo > .bubble::before,
.wa .in.ultimo > .wa-stack > .bubble.con-cola::before {
  left: -6px;
  clip-path: path("M14 0 V17 H0 C6 16 11 12 14 0 Z");
}
.wa .out.ultimo > .bubble::before,
.wa .out.ultimo > .wa-stack > .bubble.con-cola::before {
  right: -6px;
  clip-path: path("M0 0 V17 H14 C8 16 3 12 0 0 Z");
}

/* Texto del mensaje + formato WhatsApp */
.wa .wa-texto { white-space: pre-wrap; display: block; }
.wa .wa-link { color: var(--wa-link); text-decoration: none; }
.wa .wa-texto code,
.wa .tpl-body code,
.wa .wa-caption code,
.wa .card-body code {
  font-family: "SF Mono", ui-monospace, Menlo, Consolas, "Courier New", monospace;
  font-size: .88em;
  letter-spacing: 0;
  background: rgba(0, 0, 0, .06);
  border-radius: 4px;
  padding: 1px 3px;
  white-space: pre-wrap;
}
.wa.oscuro .wa-texto code,
.wa.oscuro .tpl-body code,
.wa.oscuro .wa-caption code,
.wa.oscuro .card-body code { background: rgba(255, 255, 255, .10); }

/* ---------- 7. Hora + ticks ---------- */
.wa .meta {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  justify-content: flex-end;
  float: right;
  margin: 8px 0 -4px 10px;
  color: var(--wa-text-meta);
  font-size: 12px;
  line-height: 14px;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  user-select: none;
  position: relative;
}
.wa .out .meta { color: var(--wa-meta-out); }
.wa .meta .tick { display: block; flex: none; }
.wa .meta .tick-read { color: var(--wa-tick-read); }

/* ---------- 8. Media inset (imagen / vídeo) ---------- */
.wa .bubble.wa-bubble-media { width: min(290px, 78%); padding: 4px; }
.wa .wa-media {
  display: block;
  width: 100%;
  max-height: 360px;
  object-fit: cover;
  border-radius: 13px;
  background: var(--wa-separator);
}
.wa .wa-media-wrap { position: relative; }
.wa .wa-gradiente {
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: 4px;
  height: 36px;
  border-radius: 0 0 13px 13px;
  background: linear-gradient(transparent, rgba(0, 0, 0, .28));
  pointer-events: none;
}
.wa .meta-en-media,
.wa .out .meta-en-media {
  position: absolute;
  right: 12px;
  bottom: 10px;
  float: none;
  margin: 0;
  color: #fff;
  text-shadow: 0 0 3px rgba(0, 0, 0, .45);
  z-index: 2;
}
.wa .meta-en-media .tick:not(.tick-read) { color: #fff; }
.wa .wa-caption { display: block; padding: 5px 8px 3px; white-space: pre-wrap; }

.wa .wa-play-badge {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(230, 230, 230, .8);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3b3b3b;
  pointer-events: none;
  z-index: 2;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.wa .wa-play-badge svg { margin-left: 3px; }
.wa .wa-play-badge.wa-play-sm { width: 40px; height: 40px; }
.wa .wa-video-dur {
  position: absolute;
  left: 10px;
  bottom: 8px;
  display: flex;
  align-items: center;
  gap: 4px;
  color: #fff;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 3px rgba(0, 0, 0, .5);
  pointer-events: none;
  z-index: 2;
}
.wa .wa-video-dur svg { filter: drop-shadow(0 0 2px rgba(0, 0, 0, .45)); }

/* ---------- 9. Audio / nota de voz ---------- */
.wa .bubble.wa-audio { width: min(282px, 78%); padding: 8px 10px 6px 8px; }
.wa .audio-line { display: flex; align-items: center; gap: 6px; }
.wa .audio-play {
  flex: none;
  width: 28px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6b6b6b;
}
.wa.oscuro .audio-play { color: #c9cccc; }
.wa .audio-centro { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding-top: 10px; }
.wa .audio-pista { position: relative; display: flex; align-items: center; height: 20px; overflow: hidden; }
.wa .audio-punto {
  position: absolute;
  left: 0;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border-radius: 50%;
  background: #25a35a;
  z-index: 1;
}
.wa .audio-wave { flex: none; margin-left: 4px; color: #b3b3b3; }
.wa.oscuro .audio-wave { color: #6f7575; }
.wa .audio-bajo { display: flex; align-items: center; justify-content: space-between; }
.wa .audio-dur { font-size: 13px; line-height: 16px; letter-spacing: 0; color: var(--wa-text-meta); font-variant-numeric: tabular-nums; }
.wa .out .audio-dur { color: var(--wa-meta-out); }
.wa .audio-bajo .meta { float: none; margin: 0; }
.wa .audio-avatar { position: relative; flex: none; width: 44px; height: 44px; margin-left: 4px; }
.wa .audio-avatar img { display: block; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.wa .audio-mic {
  position: absolute;
  left: -6px;
  bottom: -3px;
  display: flex;
  color: #25a35a;
}
.wa .audio-musica {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #f29a38;
  color: #fff;
}

/* ---------- 10. Documento: panel gris interno ---------- */
.wa .bubble.wa-doc { width: min(290px, 78%); padding: 4px 4px 6px; }
.wa .doc-panel {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--wa-panel);
}
.wa .out .doc-panel { background: rgba(0, 0, 0, .05); }
.wa.oscuro .out .doc-panel { background: rgba(0, 0, 0, .22); }
.wa .doc-icono { flex: none; display: flex; }
.wa .doc-datos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.wa .doc-nombre {
  font-size: 17px;
  line-height: 21px;
  color: var(--wa-text);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
.wa .doc-sub { font-size: 15px; line-height: 19px; color: var(--wa-text-meta); letter-spacing: 0; }
.wa .out .doc-sub { color: var(--wa-meta-out); }
.wa .doc-descarga {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid #4caf6a;
  color: #4caf6a;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wa .wa-doc .wa-caption { padding: 6px 8px 0; }
.wa .wa-doc > .wa-pie { padding: 4px 8px 0; }

/* ---------- 11. Sticker (sin burbuja; hora en pastilla) ---------- */
.wa .sticker-box { position: relative; width: 168px; padding: 2px 0 22px; }
.wa .sticker-img { display: block; width: 100%; border-radius: 12px; }
.wa .sticker-hora {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 2px 7px;
  border-radius: 9px;
  background: rgba(0, 0, 0, .35);
  color: #fff;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.wa .sticker-hora .tick:not(.tick-read) { color: #fff; }
.wa .sticker-hora .meta { float: none; margin: 0; color: #fff; }

/* ---------- 12. Ubicación ---------- */
.wa .bubble.wa-loc { width: min(290px, 78%); padding: 4px 4px 0; }
.wa .loc-mapa {
  display: block;
  width: 100%;
  height: 155px;
  object-fit: cover;
  border-radius: 13px;
}
.wa .loc-datos { display: block; padding: 6px 8px 7px; }
.wa .loc-nombre { font-size: 17px; font-weight: 400; line-height: 22px; }
.wa .loc-dir { font-size: 15px; line-height: 20px; color: var(--wa-text-meta); text-decoration: underline; text-underline-offset: 2px; }
.wa .out .loc-dir { color: var(--wa-meta-out); }
.wa .loc-datos .wa-pie { margin-top: 0; }
.wa .wa-loc > .wa-gradiente { bottom: 0; }

/* ---------- 13. Contacto ---------- */
.wa .bubble.wa-contact { width: min(290px, 78%); padding: 10px 12px 0; }
.wa .contact-cab { display: flex; align-items: center; gap: 10px; }
.wa .contact-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex: none;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  background: linear-gradient(#a9adb5, #8a8e96);
  color: #fff;
}
.wa .contact-nombre {
  flex: 1;
  min-width: 0;
  font-size: 17px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wa .contact-chev { flex: none; display: flex; color: #b0b0b5; }
.wa .wa-contact > .wa-pie { margin: 0 0 6px; }
.wa .contact-acciones {
  display: flex;
  margin: 0 -12px;
  border-top: .5px solid var(--wa-btn-sep);
}
.wa .contact-accion {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 6px;
  color: var(--wa-action);
  font-size: 17px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}
.wa .contact-accion + .contact-accion { border-left: .5px solid var(--wa-btn-sep); }

/* ---------- 14. Burbuja de plantilla / interactivos (template, buttons, list, cta_url) ---------- */
.wa .bubble.tpl { width: min(290px, 78%); padding: 0; }
.wa .tpl-media-wrap { position: relative; margin: 4px 4px 0; }
.wa .tpl-media {
  display: block;
  width: calc(100% - 8px);
  margin: 4px 4px 0;
  aspect-ratio: 1.91 / 1;
  object-fit: cover;
  border-radius: 13px;
  background: var(--wa-separator);
}
.wa .tpl-media-wrap .tpl-media { width: 100%; margin: 0; }
.wa .tpl-header-txt { padding: 7px 12px 0; font-size: 17px; line-height: 22px; font-weight: 600; }
.wa .tpl-header-doc { margin: 4px 4px 0; }
.wa .tpl-body { padding: 6px 12px 0; font-size: 17px; line-height: 22px; white-space: pre-wrap; }
.wa .tpl-header-txt + .tpl-body { padding-top: 4px; }
.wa .template-footer {
  display: block;
  margin-top: 4px;
  font-size: 15px;
  line-height: 20px;
  letter-spacing: 0;
  color: var(--wa-text-meta);
  white-space: pre-wrap;
}
.wa .out .template-footer { color: var(--wa-meta-out); }

/* Pie común: footer gris + hora/ticks (la hora se alinea con la última línea) */
.wa .wa-pie {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 10px;
}
.wa .wa-pie .template-footer { margin-right: auto; min-width: 0; }
.wa .wa-pie .meta { float: none; margin: 0 0 2px; flex: none; }
.wa .tpl > .wa-pie { padding: 0 12px 7px; margin-top: 2px; }

/* ---------- 15. Botones dentro de la burbuja (quick reply, url, llamada, lista) ---------- */
.wa .qr-btns {
  display: flex;
  flex-direction: column;
  width: 100%;
  border-top: .5px solid var(--wa-btn-sep);
}
.wa .qr-btn {
  width: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
  text-align: center;
  font-size: 17px;
  line-height: 22px;
  color: var(--wa-action);
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.wa .qr-btn + .qr-btn { border-top: .5px solid var(--wa-btn-sep); }
.wa .qr-btn:last-child { border-radius: 0 0 18px 18px; }
.wa .qr-btn:active { background: rgba(0, 0, 0, .05); }
.wa.oscuro .qr-btn:active { background: rgba(255, 255, 255, .06); }
.wa .qr-btn .qr-ico { flex: none; display: flex; }
.wa .qr-btn .btn-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wa .qr-btn-inactiva { cursor: default; opacity: .55; }

/* ---------- 16. Carrusel: tarjetas ~287 pt, hueco 4, se desbordan a la derecha ---------- */
.wa .carousel {
  display: flex;
  gap: 4px;
  width: calc(100% + 16px);
  margin-right: -16px;
  padding: 0 16px 2px 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 0;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}
.wa .out .carousel { margin-right: 0; margin-left: -16px; padding: 0 0 2px 16px; }
.wa .carousel::-webkit-scrollbar { display: none; }
.wa .card {
  flex: 0 0 min(287px, 80%);
  scroll-snap-align: start;
  border-radius: 18px;
  padding: 4px 0 0;
  background: var(--wa-bubble-in);
  display: flex;
  flex-direction: column;
  transition: background-color .2s ease, color .2s ease;
}
.wa .card-media {
  display: block;
  width: calc(100% - 8px);
  margin: 0 4px;
  aspect-ratio: 1.7 / 1;
  object-fit: cover;
  border-radius: 12px;
  background: var(--wa-separator);
}
.wa .card-body { padding: 8px 12px; font-size: 17px; line-height: 22px; white-space: pre-wrap; }
.wa .card .qr-btns { margin-top: auto; }

/* ---------- 17. Mensajes de sistema: fecha "Hoy" y aviso de cifrado ---------- */
.wa .wa-sistema { display: flex; justify-content: center; padding: 0 16px; margin: 4px 0 8px; }
.wa .wa-fecha {
  padding: 4px 10px;
  border-radius: 8px;
  background: var(--wa-fecha);
  box-shadow: 0 .5px .5px rgba(0, 0, 0, .1);
  color: var(--wa-sistema-text);
  font-size: 12px;
  line-height: 16px;
  font-weight: 600;
  letter-spacing: 0;
}
.wa .wa-aviso {
  width: 90%;
  padding: 6px 12px;
  border-radius: 10px;
  background: var(--wa-aviso);
  color: var(--wa-aviso-text);
  font-size: 13px;
  line-height: 17px;
  letter-spacing: 0;
  text-align: center;
}
.wa .wa-aviso svg { display: inline-block; vertical-align: -1px; margin-right: 3px; }
.wa .wa-aviso b { font-weight: 600; }

/* ---------- 18. Indicador "escribiendo…" ---------- */
.wa .wa-bubble-escribiendo {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 13px 14px 12px;
}
.wa .wam-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--wa-text-meta);
  animation: wam-parpadeo 1.15s ease-in-out infinite;
}
.wa .wam-dot:nth-child(2) { animation-delay: .15s; }
.wa .wam-dot:nth-child(3) { animation-delay: .3s; }
.wa #chat-escribiendo { padding-bottom: 6px; }

/* ---------- 19. Hoja inferior iOS (lista y "Todas las opciones") ---------- */
.wa .sheet { position: absolute; inset: 0; z-index: 60; display: flex; align-items: flex-end; }
.wa .sheet-fondo {
  position: absolute;
  inset: 0;
  background: var(--wa-velo);
  animation: wam-fundo .22s ease;
}
.wa .sheet-panel {
  position: relative;
  width: 100%;
  max-height: 80%;
  display: flex;
  flex-direction: column;
  border-radius: 12px 12px 0 0;
  background: var(--wa-sheet);
  color: var(--wa-text);
  padding-bottom: 34px;               /* safe area bajo el home indicator */
  animation: wam-subir .28s cubic-bezier(.2, .8, .3, 1);
}
.wa .sheet-cabecera {
  position: relative;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 56px;
}
.wa .sheet-titulo {
  font-size: 17px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wa button.sheet-cerrar {
  position: absolute;
  right: 16px;
  top: 50%;
  width: 30px;
  height: 30px;
  margin-top: -15px;
  border-radius: 50%;
  background: var(--wa-sheet-close);
  color: var(--wa-sheet-x);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.wa .sheet-opciones { overflow-y: auto; padding: 0 0 4px; margin: 0; list-style: none; scrollbar-width: none; }
.wa .sheet-opciones::-webkit-scrollbar { display: none; }
.wa .sheet-seccion {
  padding: 24px 16px 8px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--wa-sheet-sub);
  border-bottom: .5px solid var(--wa-sheet-sep);
  margin-left: 16px;
  padding-left: 0;
}
.wa .sheet-opciones > .sheet-seccion:first-child { padding-top: 30px; }
.wa .sheet-grupo { margin: 0; }
/* "Todas las opciones": un único separador (con sangría) entre grupos */
.wa .sheet-grupo + .sheet-grupo { margin: 0 0 0 16px; border-top: .5px solid var(--wa-sheet-sep); }
.wa .sheet-grupo + .sheet-grupo > .sheet-fila { margin-left: 0; width: 100%; }
.wa .sheet-fila {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 17px 16px 17px 0;
  margin: 0 0 0 16px;
  width: calc(100% - 16px);
  border-bottom: .5px solid var(--wa-sheet-sep);
  color: var(--wa-text);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.wa .sheet-fila:active { background: rgba(0, 0, 0, .05); }
.wa .sheet-fila.qr-btn-inactiva:active { background: none; }
.wa .sheet-fila-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0; }
.wa .sheet-fila-titulo { font-size: 17px; line-height: 22px; }
.wa .sheet-fila-desc { font-size: 15px; line-height: 18px; letter-spacing: 0; color: var(--wa-sheet-sub); }
.wa .sheet-fila-btn,
.wa button.sheet-fila-btn { color: var(--wa-action); min-height: 48px; padding-top: 12px; padding-bottom: 12px; border-bottom: 0; }
.wa .sheet-fila-btn .sheet-fila-titulo { color: var(--wa-action); }
.wa .sheet-fila .qr-ico { flex: none; display: flex; color: var(--wa-action); }
.wa .sheet-pie {
  flex: none;
  padding: 22px 16px 6px;
  text-align: center;
  font-size: 15px;
  letter-spacing: 0;
  color: var(--wa-sheet-sub);
}
.wa .sheet-vacio { padding: 18px; text-align: center; font-size: 15px; color: var(--wa-sheet-sub); }

/* ---------- 20. Composer iOS: +, píldora con sticker, cámara, micro ---------- */
.wa #composer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 12px 34px 10px;       /* 34 pt de safe area bajo el home indicator */
  background: var(--wa-compose-bar);
  border-top: .5px solid var(--wa-separator);   /* hairline como el del header */
  transition: background-color .2s ease, color .2s ease;
}
.wa #composer .attach,
.wa #composer .cmp-icono {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: none;
  color: var(--wa-chrome-text);
  cursor: default;
}
.wa #composer .field {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 8px 0 14px;
  border-radius: 18px;
  border: .5px solid var(--wa-compose-border);
  background: var(--wa-compose-field);
  color: var(--wa-chrome-text);
}
.wa #composer .field .sticker { flex: none; opacity: 1; color: var(--wa-chrome-text); }
.wa #composer-input {
  flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--wa-text);
  font: inherit;
  font-size: 17px;
  letter-spacing: -.2px;
}
.wa #composer-input::placeholder { color: transparent; }
.wa #composer-enviar {
  flex: none;
  display: none;                      /* solo aparece al escribir */
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--wa-accent);
  color: #fff;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
/* Con texto: aparece enviar y se ocultan cámara y micro (sin JS: :placeholder-shown) */
.wa #composer:has(#composer-input:not(:placeholder-shown)) #composer-enviar { display: flex; }
.wa #composer:has(#composer-input:not(:placeholder-shown)) .cmp-icono { display: none; }

/* ---------- 21. Accesibilidad de foco ---------- */
.wa .qr-btn:focus-visible,
.wa .sheet-fila:focus-visible,
.wa .sheet-cerrar:focus-visible,
.wa #composer-enviar:focus-visible {
  outline: 2px solid var(--wa-tick-read);
  outline-offset: -2px;
}

/* ---------- 22. Keyframes (prefijo wam-) ---------- */
@keyframes wam-parpadeo {
  0%, 60%, 100% { opacity: .3; transform: translateY(0); }
  30%           { opacity: 1;  transform: translateY(-1px); }
}
@keyframes wam-fundo {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes wam-subir {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .wa .wam-dot, .wa .sheet-fondo, .wa .sheet-panel { animation: none; }
}
