/*
 * Piezas propias del panel. Lo compartido con el sitio está en mediclad.css,
 * que este archivo da por cargado.
 */

/* ============================================================== navegación */

.nav {
  display: flex; gap: var(--e1);
  padding: 0 var(--e5);
  background: var(--pg);
  border-bottom: 1px solid var(--ln);
  overflow-x: auto;
  position: sticky; top: 61px; z-index: 30;
  scrollbar-width: none;
}
.nav::-webkit-scrollbar { display: none; }

.nav button {
  min-height: 48px;
  padding: 0 var(--e4);
  background: none; border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--m2);
  font-size: 16px; letter-spacing: 0.05em;
  white-space: nowrap;
  transition: color var(--paso), border-color var(--paso);
}
.nav button:hover { color: var(--tx); filter: none; }
.nav button[aria-current="page"] { color: var(--teal2); border-bottom-color: var(--teal); }

/* ============================================================== cabecera */

.encabezado { margin-bottom: var(--e5); }
.encabezado .fila { flex-wrap: wrap; }

/* Cupos del plan. Una barra por dimensión: se lee de un vistazo cuánto queda
   sin tener que restar dos números. */
.medidor { min-width: 150px; }
.medidor .canal {
  height: 6px; border-radius: 3px;
  background: var(--ln); overflow: hidden; margin-top: 6px;
}
.medidor .lleno { height: 100%; background: var(--teal); border-radius: 3px; }
.medidor .lleno.tope { background: var(--warn); }

/* ================================================================= listas */

.persona {
  display: flex; align-items: center; gap: var(--e3);
  padding: var(--e4);
  background: var(--sf);
  border: 1px solid var(--ln);
  border-radius: var(--r);
  transition: border-color var(--paso), background var(--paso);
}
.persona.pulsable:hover { border-color: var(--teal); background: var(--sf2); }
.persona .centro { flex: 1; min-width: 0; }
.persona .nombre {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 21px; font-weight: 600; line-height: 1.15;
  /* Un nombre largo se corta, no rompe la fila. */
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.persona .bajo { font-size: 14px; color: var(--m2); margin-top: 2px; }

/* Quién más ve a esta persona, en pequeño bajo su nombre. Es la respuesta a
   la pregunta que nadie podía hacerse desde la aplicación. */
.miradas { display: flex; gap: 4px; margin-top: 8px; flex-wrap: wrap; }
.mirada {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 2px 8px;
  background: var(--ink); border: 1px solid var(--ln);
  border-radius: 999px;
  font-size: 12px; color: var(--m2);
  white-space: nowrap;
}
.mirada i { font-size: 10px; color: var(--m3); }
.mirada.medico i { color: var(--teal); }

.vacio {
  padding: var(--e6) var(--e4);
  text-align: center;
  border: 1px dashed var(--ln2);
  border-radius: var(--r);
  color: var(--m2);
}
.vacio i { font-size: 28px; color: var(--m3); display: block; margin-bottom: var(--e3); }

/* ============================================================== historial */

.hito {
  display: flex; gap: var(--e3);
  padding: var(--e3) 0;
  border-bottom: 1px solid var(--ln);
}
.hito:last-child { border-bottom: 0; }
.hito .marca-h {
  flex: 0 0 auto; width: 32px; height: 32px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--ink); border: 1px solid var(--ln);
  font-size: 13px; color: var(--m2);
}
.hito.ok .marca-h    { border-color: var(--ok);   color: var(--ok); }
.hito.aviso .marca-h { border-color: var(--warn); color: var(--warn); }
.hito .cuando { font-size: 13px; color: var(--m3); white-space: nowrap; }

/* ================================================================= signos */

.latido {
  width: 9px; height: 9px; border-radius: 2px;
  display: inline-block; background: var(--teal);
  animation: pulsar 2s infinite;
}
.latido.muerto { background: var(--crit); animation: none; }
@keyframes pulsar { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) { .latido { animation: none; } }

svg.serie { width: 100%; height: 72px; display: block; margin-top: var(--e2); }

/* El mapa se arma con imágenes de teselas: nada de scripts de terceros en una
   página que enseña la ubicación de una persona. */
.mapa {
  position: relative;
  width: 100%; height: 280px;
  border-radius: var(--r-s);
  border: 1px solid var(--ln);
  background: var(--ink);
  overflow: hidden;
}
.mapa .aguja {
  position: absolute; left: 50%; top: 50%;
  width: 16px; height: 16px; margin: -8px 0 0 -8px;
  border-radius: 50%;
  background: var(--crit);
  border: 2px solid #fff;
  box-shadow: 0 0 0 6px rgba(255, 106, 92, 0.25);
}

/* ============================================================== ventana */

.velo {
  position: fixed; inset: 0; z-index: 60;
  display: grid; place-items: center;
  padding: var(--e4);
  background: rgba(3, 12, 21, 0.72);
  backdrop-filter: blur(3px);
}
.ventana {
  width: 100%; max-width: 520px;
  max-height: 88vh; overflow-y: auto;
  padding: var(--e5);
  background: var(--sf);
  border: 1px solid var(--ln2);
  border-radius: var(--r-l);
  box-shadow: var(--sombra);
}

@media (max-width: 700px) {
  .nav { padding: 0 var(--e3); top: 57px; }
  .ventana { padding: var(--e4); }
}
