/* ============================================================
   PlanSí Core · entrenador.css — piloto entrenador (app-entrenador.js): tarjeta «Plan de tu entrenador»
   en Hoy y Rutinas, y «Panel del entrenador» en Perfil. Usa los tokens de programa.css (--pg-*).
   Móvil primero (390 px), objetivos táctiles de 44 px y foco visible.
   ============================================================ */

.ent-sec:empty { display: none; }
.ent-sec { margin: 16px 0 8px; }
.ent-card { border-color: var(--pg-acento); border-width: 2px; }
.ent-sub { font: 600 1rem var(--pg-serif); color: var(--pg-texto); margin: 4px 0; }
.ent-nota { font-size: .9rem; color: var(--pg-texto-2); margin: 4px 0 8px; }
.ent-aviso { font-size: .82rem; color: var(--pg-texto-2); background: var(--pg-crema-2); border-radius: 12px; padding: 10px 12px; margin: 14px 0 0; }
.ent-error { color: #9b1c1c; background: #fdecec; border-radius: 12px; padding: 10px 12px; }
.ent-chip { display: inline-block; font: 600 .74rem var(--pg-sans); color: var(--pg-acento); background: var(--pg-rosa); border-radius: 999px; padding: 3px 10px; vertical-align: middle; }

.ent-ses { border-top: 1px solid var(--pg-linea-suave); padding: 14px 0 6px; }
.ent-ses__cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.ent-ses__t { font: 600 1.05rem var(--pg-serif); color: var(--pg-texto); margin: 0; }
.ent-ses__t--comidas { margin-top: 16px; }
.ent-ejs, .ent-comidas, .ent-clis { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 10px; }
.ent-ej { display: flex; align-items: center; gap: 12px; }
.ent-ej__img { width: 64px; height: 64px; flex: none; border-radius: 12px; object-fit: cover; background: var(--pg-crema-2); }
.ent-ej__img--vacia { display: inline-flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.ent-ej__txt { flex: 1; min-width: 0; }
.ent-ej__n { font-weight: 600; color: var(--pg-texto); margin: 0; }
.ent-ej__d, .ent-ej__nota { font-size: .86rem; margin: 2px 0 0; }
.ent-ej__ver { flex: none; }
.ent-hecha { font-weight: 600; color: var(--pg-acento); }
.ent-comida { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ent-comida__t { flex: 1 1 60%; color: var(--pg-texto); }
.ent-foto { margin-top: 12px; }
.ent-foto summary, .ent-inv__s { cursor: pointer; font-weight: 600; color: var(--pg-acento); min-height: 44px; display: flex; align-items: center; }

.ent-panel .pg-h2 { margin: 4px 0 8px; }
.ent-cli__cab { display: flex; align-items: center; gap: 12px; }
.ent-cli__foto { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; }
.ent-cli__foto--ini { display: inline-flex; align-items: center; justify-content: center; background: var(--pg-rosa); color: var(--pg-acento); font: 700 1.2rem var(--pg-serif); }
.ent-cli__n { font: 600 1.05rem var(--pg-serif); color: var(--pg-texto); margin: 0; }
.ent-stats { margin: 10px 0 6px; }
.ent-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

.ent-form { display: grid; gap: 12px; margin-top: 10px; }
.ent-campo { display: grid; gap: 4px; font-size: .88rem; font-weight: 600; color: var(--pg-texto); }
.ent-campo input, .ent-campo select, .ent-campo textarea {
  width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid var(--pg-linea); border-radius: 10px;
  background: var(--pg-blanco); color: var(--pg-texto); font: 400 1rem var(--pg-sans);
}
.ent-campo textarea { min-height: 64px; resize: vertical; }
.ent-campo input:focus-visible, .ent-campo select:focus-visible, .ent-campo textarea:focus-visible { outline: 3px solid var(--pg-acento); outline-offset: 1px; }
.ent-rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ent-fila { border: 1px solid var(--pg-linea-suave); border-radius: 12px; padding: 10px; margin: 8px 0 0; display: grid; gap: 8px; min-width: 0; }
.ent-fila legend { font: 600 .82rem var(--pg-sans); color: var(--pg-acento); padding: 0 4px; }
.ent-ses--ed { padding-top: 12px; }
.ent-ed__cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ent-ed__cab .pg-h3 { margin: 0; }
@media (min-width: 720px) { .ent-rejilla { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Perfil del entrenador, asistente y borradores (piloto v2) */
.ent-con-mic { display: flex; gap: 8px; align-items: flex-start; }
.ent-con-mic textarea { flex: 1; min-width: 0; }
.ent-mic { --asis-oscuro: var(--pg-acento); width: 44px; min-height: 44px; border-color: var(--pg-acento); color: var(--pg-acento); }
.ent-mic[hidden] { display: none; }
.ent-cuenta { font-size: .76rem; font-weight: 400; color: var(--pg-texto-2); justify-self: end; }
.ent-asis { border-color: var(--pg-acento); }
.ent-asis__res { margin-top: 10px; background: var(--pg-crema-2); border-radius: 12px; padding: 8px 12px; }
.ent-chip--borr { color: #7a4a00; background: #fff1d6; }
.ent-borr { margin-top: 10px; }
.ent-fila--prop { border-color: #e9c27a; background: #fffaf0; }
.ent-aviso--borr { background: #fff1d6; color: #5c3a00; }
.ent-quien { display: flex; align-items: center; gap: 12px; margin: 8px 0; }
.ent-quien__txt { min-width: 0; }
.ent-ej__exp { color: var(--pg-texto); }
.ent-perfil, .ent-asis { margin-top: 12px; }

/* Piloto v3: firma, acceso con fechas, expediente, técnica y notas de voz */
.ent-doc { max-height: 280px; overflow-y: auto; border: 1px solid var(--pg-linea); border-radius: 12px; padding: 10px 12px; background: var(--pg-blanco); font-size: .9rem; line-height: 1.45; }
.ent-doc p { margin: 0 0 8px; }
.ent-doc__t { font-weight: 700; }
.ent-doc:focus-visible { outline: 3px solid var(--pg-acento); outline-offset: 2px; }
.ent-hash code { font-size: .78rem; word-break: break-all; }
.ent-lienzo { width: 100%; max-width: 420px; height: auto; aspect-ratio: 10 / 3; border: 1px dashed var(--pg-linea); border-radius: 12px; background: var(--pg-blanco); touch-action: none; }
.ent-check { display: flex; align-items: flex-start; gap: 10px; font-size: .92rem; color: var(--pg-texto); min-height: 44px; }
.ent-check input { width: 22px; height: 22px; flex: none; margin-top: 2px; accent-color: var(--pg-acento); }
.ent-contador { font: 600 .88rem var(--pg-sans); color: var(--pg-texto); background: var(--pg-crema-2); border-radius: 10px; padding: 6px 10px; margin: 8px 0; }
.ent-contador--fin { background: #fff1d6; color: #5c3a00; }
.ent-aviso--fin { background: #fff1d6; color: #5c3a00; margin: 8px 0 12px; }
.ent-lista { margin: 6px 0; padding-left: 18px; display: grid; gap: 6px; font-size: .9rem; color: var(--pg-texto); }
.ent-btn-quitar { color: #9b1c1c; border-color: #e5b4b4; }
.ent-exp__sec { border-top: 1px solid var(--pg-linea-suave); padding: 12px 0 4px; }
.ent-file { position: relative; cursor: pointer; }
.ent-file:focus-within { outline: 3px solid var(--pg-acento); outline-offset: 2px; }
.ent-media { display: block; width: 100%; max-width: 360px; max-height: 360px; object-fit: contain; border-radius: 12px; background: #111; margin: 6px 0; }
.ent-arch { padding: 10px 12px; }
.ent-arch audio, .ent-form audio { width: 100%; max-width: 360px; }
.ent-tec { margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: var(--pg-crema-2); }
.ent-tec__t { font: 600 .84rem var(--pg-sans); color: var(--pg-acento); margin: 0 0 4px; }
.ent-trans { font-size: .9rem; color: var(--pg-texto); background: var(--pg-crema-2); border-radius: 10px; padding: 8px 10px; margin: 6px 0; white-space: pre-wrap; }
.ent-rec { display: flex; align-items: center; gap: 8px; font-size: 1rem; color: #9b1c1c; background: #fdecec; border-radius: 12px; padding: 10px 12px; margin: 8px 0; }
.ent-rec__punto { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: #d11a1a; flex: none; }
.ent-rec--on .ent-rec__punto { animation: ent-latido 1s ease-in-out infinite; }
@keyframes ent-latido { 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .ent-rec--on .ent-rec__punto { animation: none; } }
.ent-ej { flex-wrap: wrap; }
.ent-tecs { flex: 1 1 100%; display: grid; gap: 8px; }
