/* ============================================================
   Herramienta 2 — Formateador para WhatsApp
   ============================================================ */

/* ---------- Barra de formato ---------- */
.wa-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--line);
}

.wa-tb {
  min-width: 40px;
  height: 40px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid transparent;
  border-radius: var(--r-sm);
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-size: .9375rem;
  line-height: 1;
  cursor: pointer;
  transition: background .12s ease, transform .08s ease;
}
.wa-tb:hover { background: var(--accent-line); }
.wa-tb:active { transform: scale(.94); }
.wa-tb b { font-weight: 800; }
.wa-tb i { font-style: italic; }
.wa-tb s { text-decoration: line-through; }
.wa-tb .mono { font-family: var(--font-mono); font-weight: 700; font-size: .8125rem; }

.wa-tb__label {
  display: none;
  font-size: .8125rem;
  font-weight: 700;
}
@media (min-width: 720px) {
  .wa-tb__label { display: inline; }
}

.wa-tb__sep {
  width: 1px;
  height: 24px;
  margin: 0 3px;
  background: var(--line-2);
}

/* ---------- Editor + vista previa ---------- */
.wa-layout {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
  padding: 16px;
}

@media (min-width: 900px) {
  .wa-layout {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 20px;
  }
}

.wa-editor { min-height: 190px; }

.wa-editor-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
}

/* ---------- Simulación de chat ---------- */
.wa-preview {
  display: flex;
  flex-direction: column;
  min-height: 0;
  /* Sin esto, un ítem de grid nunca baja de su tamaño de contenido y el
     max-height del chat no llega a aplicarse en algunos navegadores. */
  min-width: 0;
}

.wa-chat {
  flex: 1 1 auto;
  min-height: 210px;
  max-height: 60vh;
  overflow-y: auto;
  padding: 16px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-md);
  background-color: #ece5dd;
  /* La ruta es relativa a este archivo (assets/css/), no al documento:
     así no depende de dónde esté montado el sitio. */
  background-image: url("../../whatsapp/images/whatsapp-back_25.png");
  display: flex;
  flex-direction: column;
  /* La burbuja se apoya abajo con el margin-top:auto de .wa-bubble, NO con
     justify-content:flex-end. Con justify-content, cuando el contenido supera
     la altura del contenedor el desborde se va hacia arriba y el navegador no
     deja llegar ahí: el principio del mensaje queda inaccesible. */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(11, 42, 48, .28) transparent;
}

/* Barra de scroll visible en WebKit (por defecto es casi invisible sobre
   la textura del chat) */
.wa-chat::-webkit-scrollbar {
  width: 10px;
}
.wa-chat::-webkit-scrollbar-track {
  background: transparent;
}
.wa-chat::-webkit-scrollbar-thumb {
  background: rgba(11, 42, 48, .25);
  border: 3px solid transparent;
  background-clip: content-box;
  border-radius: 10px;
}
.wa-chat::-webkit-scrollbar-thumb:hover {
  background: rgba(11, 42, 48, .4);
  background-clip: content-box;
}

.wa-bubble {
  margin-top: auto;   /* se apoya abajo sin romper el scroll */
  margin-left: auto;
  max-width: 94%;
  padding: 9px 12px 20px;
  border-radius: 14px 4px 14px 14px;
  background: #dcf8c6;
  color: #16261c;
  font-size: 15px;
  line-height: 1.45;
  box-shadow: 0 1px 1px rgba(11, 42, 48, .16);
  position: relative;
  overflow-wrap: anywhere;
}
.wa-bubble p { margin: 0 0 4px; }
.wa-bubble p:last-of-type { margin-bottom: 0; }
.wa-bubble ul,
.wa-bubble ol { margin: 5px 0; padding-left: 22px; }
.wa-bubble li { margin: 2px 0; }
.wa-bubble blockquote {
  margin: 6px 0;
  padding: 3px 10px;
  border-left: 4px solid #8fb59a;
  background: rgba(0, 0, 0, .04);
  border-radius: 0 4px 4px 0;
}
.wa-bubble code {
  font-family: var(--font-mono);
  font-size: .9em;
  background: rgba(0, 0, 0, .07);
  padding: 1px 5px;
  border-radius: 4px;
}
.wa-bubble .wa-placeholder { color: #6c8574; font-style: italic; }

.wa-time {
  position: absolute;
  right: 11px;
  bottom: 5px;
  font-size: 10.5px;
  color: #5b8b68;
  letter-spacing: .02em;
}

/* ---------- Acciones ---------- */
.wa-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 0 16px 16px;
}
.wa-actions .btn { flex: 1 1 160px; }
.wa-actions .btn--primary { flex: 1.4 1 200px; }

@media (min-width: 900px) {
  .wa-actions { padding: 0 20px 20px; }
}

/* ---------- Emojis ---------- */
.wa-emoji-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.wa-emoji-tab {
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--ink-2);
  font-size: .8125rem;
  font-weight: 700;
  cursor: pointer;
}
.wa-emoji-tab[aria-selected="true"] {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.wa-emoji-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(42px, 1fr));
  gap: 4px;
}
.wa-emoji-grid button {
  height: 44px;
  border: none;
  border-radius: var(--r-xs);
  background: none;
  font-size: 23px;
  cursor: pointer;
}
.wa-emoji-grid button:hover { background: var(--accent-soft); }

/* ---------- Plantillas ---------- */
.wa-tpl-cats {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--line);
  scrollbar-width: thin;
}
.wa-tpl-cat {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--ink-2);
  font-size: .8125rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.wa-tpl-cat[aria-selected="true"] {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.wa-tpl {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 13px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface-2);
}
.wa-tpl__icon { font-size: 22px; line-height: 1.2; flex: 0 0 auto; }
.wa-tpl__text { flex: 1 1 auto; min-width: 0; }
.wa-tpl__title { margin: 0; font-size: .9375rem; font-weight: 800; color: var(--brand-900); }
.wa-tpl__desc { margin: 2px 0 9px; font-size: .8125rem; color: var(--ink-3); }
.wa-tpl__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.wa-tpl__btns .btn { min-height: 36px; padding: 0 14px; font-size: .8125rem; flex: 0 0 auto; }

/* ---------- Ayuda ---------- */
.wa-help dl { margin: 0; }
.wa-help dt {
  margin: 14px 0 6px;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-3);
}
.wa-help dt:first-child { margin-top: 0; }
.wa-help dd { margin: 0; }
.wa-help ul { margin: 0; padding: 0; list-style: none; }
.wa-help li {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 5px 0;
  font-size: .875rem;
  color: var(--ink-2);
  border-bottom: 1px solid var(--line);
}
.wa-help li:last-child { border-bottom: none; }

.wa-help kbd,
.wa-help code {
  flex: 0 0 auto;
  font-family: var(--font-mono);
  font-size: .8125rem;
  padding: 2px 7px;
  border-radius: 6px;
  background: var(--accent-soft);
  color: var(--accent-strong);
  border: 1px solid var(--accent-line);
}
.wa-help kbd { border-bottom-width: 2px; }

/* ============================================================
   Modo aplicación instalada
   Sin scroll, sin contenido SEO, sin anuncios: pantalla completa
   para escribir. En el navegador la misma página es una página
   normal, indexable y con contenido.
   ============================================================ */
@media (display-mode: standalone) {
  body[data-tool="whatsapp"] .app-only-hide,
  body[data-tool="whatsapp"] .adslot,
  body[data-tool="whatsapp"] .prose,
  body[data-tool="whatsapp"] .faq,
  body[data-tool="whatsapp"] .related,
  body[data-tool="whatsapp"] .site-footer,
  body[data-tool="whatsapp"] .toolhead { display: none; }

  /* La barra flotante sigue fija abajo: hay que descontarla del alto útil
     para que no tape los botones de Copiar y Enviar. */
  body[data-tool="whatsapp"] main {
    height: calc(100dvh - var(--header-h) - var(--nav-h) - env(safe-area-inset-bottom) - 16px);
  }

  body[data-tool="whatsapp"] .shell {
    height: 100%;
    padding: 0;
    display: flex;
    flex-direction: column;
  }

  body[data-tool="whatsapp"] .card {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }

  body[data-tool="whatsapp"] .wa-layout {
    flex: 1 1 auto;
    min-height: 0;
  }

  /* En una columna, la vista previa se queda con el alto sobrante y hace
     scroll adentro, en vez de estirar la página. minmax(0,1fr) es lo que
     permite que la fila se encoja por debajo de su contenido. */
  @media (max-width: 899px) {
    body[data-tool="whatsapp"] .wa-layout {
      grid-template-rows: auto minmax(0, 1fr);
    }
  }

  body[data-tool="whatsapp"] .wa-preview { min-height: 0; }
  body[data-tool="whatsapp"] .wa-chat { max-height: none; }

  body[data-tool="whatsapp"] .wa-actions {
    padding-bottom: calc(16px + env(safe-area-inset-bottom));
  }

  /* En escritorio la navegación vive en el encabezado: no hay que descontarla */
  @media (min-width: 860px) {
    body[data-tool="whatsapp"] main { height: calc(100dvh - var(--header-h)); }
  }
}
