/* estilo.css — la ropa de la interfaz (hito 6.0, D-35).
 *
 * Sin frameworks. Tres ideas nada más:
 *  1. Variables CSS arriba para que los colores vivan en UN sitio.
 *  2. prefers-color-scheme: la interfaz sale clara u oscura según el sistema.
 *  3. Rejilla de página: cabecera fija, charla que crece, pie fijo.
 */

:root {
  --fondo: #f4f5f8;
  --tarjeta: #ffffff;
  --tinta: #1c1e26;
  --tinta-suave: #6b7080;
  --acento: #7c5cff;          /* morado masita */
  --acento-tinta: #ffffff;
  --burbuja-usuario: #7c5cff;
  --burbuja-motor: #ffffff;
  --borde: #e3e5ec;
  --rojo: #e5484d;
  --verde: #30a46c;
}

@media (prefers-color-scheme: dark) {
  :root {
    --fondo: #12141c;
    --tarjeta: #1a1d27;
    --tinta: #e8eaf2;
    --tinta-suave: #8b90a0;
    --burbuja-motor: #1f2330;
    --borde: #2a2e3d;
  }
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body { height: 100%; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: var(--fondo);
  color: var(--tinta);
  display: flex;
  flex-direction: column;
}

/* ---------- cabecera ---------- */

header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px;
  background: var(--tarjeta);
  border-bottom: 1px solid var(--borde);
}

.marca { display: flex; align-items: center; gap: 10px; }
.marca h1 { font-size: 1rem; }
.marca p { font-size: 0.78rem; color: var(--tinta-suave); }

/* El punto de estado. Cambia de clase desde app.js. */
.estado {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--tinta-suave);
  flex-shrink: 0;
}
.estado.vivo { background: var(--verde); }
.estado.caido { background: var(--rojo); }

/* ---------- la charla ---------- */

main {
  flex: 1;
  overflow-y: auto;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  scroll-behavior: smooth;
}

.bienvenida {
  margin: auto;
  max-width: 480px;
  text-align: center;
  color: var(--tinta-suave);
  display: flex; flex-direction: column; gap: 10px;
}
.bienvenida h2 { color: var(--tinta); }
.bienvenida .aviso { font-size: 0.82rem; }

/* Cada mensaje es una burbuja. La del usuario a la derecha con el color de
 * acento; la del motor a la izquierda, sobre tarjeta. */
.mensaje {
  max-width: min(75ch, 88%);
  padding: 10px 14px;
  border-radius: 14px;
  line-height: 1.5;
  white-space: pre-wrap;      /* respeta saltos de línea del texto */
  overflow-wrap: break-word;
}
.mensaje.usuario {
  align-self: flex-end;
  background: var(--burbuja-usuario);
  color: var(--acento-tinta);
  border-bottom-right-radius: 4px;
}
.mensaje.motor {
  align-self: flex-start;
  background: var(--burbuja-motor);
  border: 1px solid var(--borde);
  border-bottom-left-radius: 4px;
}

/* El cursor parpadeante mientras el motor escribe. */
.mensaje.escribiendo::after {
  content: "▌";
  animation: parpadeo 1s steps(1) infinite;
  color: var(--acento);
}
@keyframes parpadeo { 50% { opacity: 0; } }

.mensaje.error {
  align-self: center;
  background: none;
  border: 1px dashed var(--rojo);
  color: var(--rojo);
  font-size: 0.85rem;
}

/* ---------- el pie con la caja de escribir ---------- */

footer {
  padding: 10px 18px 8px;
  background: var(--tarjeta);
  border-top: 1px solid var(--borde);
}

form {
  display: flex;
  gap: 8px;
  align-items: flex-end;
  max-width: 820px;
  margin: 0 auto;
}

textarea {
  flex: 1;
  resize: none;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--fondo);
  color: var(--tinta);
  font: inherit;
  padding: 10px 14px;
  max-height: 8em;            /* crece hasta aquí y luego hace scroll */
  outline: none;
}
textarea:focus { border-color: var(--acento); }

button {
  border: none;
  border-radius: 12px;
  background: var(--acento);
  color: var(--acento-tinta);
  font-size: 1.1rem;
  width: 44px; height: 44px;
  cursor: pointer;
  flex-shrink: 0;
}
button:disabled { opacity: 0.45; cursor: default; }

.pie {
  text-align: center;
  font-size: 0.72rem;
  color: var(--tinta-suave);
  margin-top: 6px;
}
