/* Rediseño «Invernadero» del Supervisor (00-GUIA-UI.md D11, 01-NAVEGACION.md §4.5). Solo layout;
   los controles toman el tema de components.css. El menú lateral comparte .cnsf-menu-panel con el Admin. */

/* Shell: en teléfono, columna con barra inferior; desde 1024 px, menú lateral fijo. */
.cnsf-app-shell--supervisor .cnsf-menu-panel { display: none; }
.cnsf-tema-invernadero.cnsf-app-shell--supervisor .cnsf-contenido--supervisor { max-width: none; padding: 20px 16px 96px; }

@media (min-width: 1024px) {
  .cnsf-app-shell--supervisor { flex-direction: row; }
  .cnsf-app-shell--supervisor .cnsf-menu-panel { display: flex; }
  .cnsf-app-shell--supervisor .cnsf-barra-inferior { display: none; }
  .cnsf-tema-invernadero.cnsf-app-shell--supervisor .cnsf-contenido--supervisor { padding: 32px 40px; min-width: 0; }
}

/* Menú lateral: texto, globo ámbar y acceso a Mi perfil. */
.cnsf-menu-panel__texto { flex: 1; }
.cnsf-menu-panel__contador { min-width: 22px; height: 20px; border-radius: 999px; background: var(--cnsf-gold); color: var(--cnsf-forest); font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; box-sizing: border-box; }
.cnsf-menu-panel__perfil { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, .72); flex-shrink: 0; }
.cnsf-menu-panel__perfil:hover, .cnsf-menu-panel__perfil.active { background: rgba(255, 255, 255, .12); color: #fff; }

/* Barra inferior con íconos y globo rojo (teléfono). */
.cnsf-barra-inferior--iconos { height: 72px; padding: 8px 6px 10px; box-sizing: border-box; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top-color: var(--borde-suave); z-index: 10; }
.cnsf-barra-inferior--iconos a { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: var(--texto-secundario); }
.cnsf-barra-inferior--iconos a.active { color: var(--cnsf-green-dark); }
.cnsf-barra-inferior__contador { position: absolute; top: 0; left: calc(50% + 4px); min-width: 18px; height: 18px; border-radius: 999px; background: var(--cnsf-red); color: #fff; font-size: 10px; font-weight: 800; display: flex; align-items: center; justify-content: center; padding: 0 5px; box-sizing: border-box; }

/* Renglones y tarjetas de las listas del Supervisor con el tema. */
.cnsf-tema-invernadero .cnsf-fila-lista { border-color: var(--borde-suave); border-radius: 14px; }
.cnsf-tema-invernadero a.cnsf-fila-lista:hover { border-color: var(--cnsf-green); }
.cnsf-tema-invernadero .cnsf-fila-lista--activa { border-color: var(--cnsf-green); box-shadow: 0 0 0 3px rgba(42, 122, 59, .12); }

/* Mostrar solo en teléfono o solo en escritorio (mismo corte de 1024 px que el menú). */
@media (max-width: 1023px) { .cnsf-solo-escritorio { display: none !important; } }
@media (min-width: 1024px) { .cnsf-solo-telefono { display: none !important; } }

/* Encabezado de página del Supervisor: acciones a la derecha, envuelven en pantallas angostas. */
.cnsf-app-shell--supervisor .cnsf-encabezado { margin-bottom: 18px; flex-wrap: wrap; gap: 12px; }
.cnsf-app-shell--supervisor .cnsf-encabezado__acciones { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

/* ---- Inicio (Torre de control) ---- */
.cnsf-tema-invernadero .cnsf-torre__estados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 16px; }
.cnsf-tema-invernadero .cnsf-torre__estado { background: var(--surface); color: var(--texto-fuerte); border: 1px solid var(--borde-suave); border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; text-decoration: none; }
.cnsf-tema-invernadero .cnsf-torre__estado:hover { border-color: var(--cnsf-green); }
.cnsf-tema-invernadero .cnsf-torre__estado-texto { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--texto-etiqueta); }
.cnsf-torre__punto { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.cnsf-torre__estado--en-visita .cnsf-torre__punto { background: var(--cnsf-gold); }
.cnsf-torre__estado--disponible .cnsf-torre__punto { background: var(--cnsf-green); }
.cnsf-torre__estado--fuera-de-ruta .cnsf-torre__punto { background: var(--cnsf-red); }
.cnsf-torre__estado--sin-iniciar .cnsf-torre__punto { background: var(--text-faint); }
.cnsf-tema-invernadero .cnsf-torre__estado-numero { font-size: 28px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.cnsf-torre__estado-detalle { display: none; font-size: 12.5px; color: var(--texto-secundario); }
.cnsf-torre__revisar { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--cnsf-green); color: #fff; border-radius: 14px; padding: 14px 16px; margin-bottom: 16px; text-decoration: none; font-size: 20px; }
.cnsf-torre__revisar > span:first-child { display: flex; flex-direction: column; gap: 2px; }
.cnsf-torre__revisar strong { font-size: 15px; }
.cnsf-torre__revisar small { font-size: 12px; color: rgba(255, 255, 255, .78); }
.cnsf-torre__rejilla { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.cnsf-torre__lateral { display: flex; flex-direction: column; gap: 16px; }
.cnsf-torre__tarjeta-encabezado { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.cnsf-torre__tarjeta-encabezado .cnsf-subtitulo { margin: 0; }
.cnsf-torre__tarjeta-encabezado a { font-size: 13px; font-weight: 600; color: var(--cnsf-green-dark); }
.cnsf-torre__actividad { padding-bottom: 6px; min-width: 0; overflow-wrap: anywhere; }
.cnsf-torre__renglon { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--surface-soft-alt); color: var(--texto-fuerte); text-decoration: none; font-size: 14px; }
.cnsf-torre__renglon:last-child { border-bottom: none; }
.cnsf-torre__renglon-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cnsf-torre__hora { width: 44px; text-align: right; font-size: 12.5px; color: var(--texto-secundario); font-variant-numeric: tabular-nums; }
.cnsf-torre__hoy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cnsf-torre__dato { background: var(--fondo-calido); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.cnsf-tema-invernadero .cnsf-torre__osa-valor, .cnsf-tema-invernadero .cnsf-torre__cifra { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; }
.cnsf-tema-invernadero .cnsf-torre__osa-valor { color: var(--cnsf-green-dark); }
.cnsf-tema-invernadero .cnsf-torre__alertas { display: block; background: var(--surface); border: 1px solid var(--borde-suave); margin: 0; }
.cnsf-torre__alerta { display: flex; align-items: center; gap: 12px; padding: 10px 12px; margin-top: 8px; border-radius: 12px; background: var(--fondo-calido); border: 1px solid var(--surface-soft-alt); color: var(--texto-fuerte); text-decoration: none; font-size: 14px; }
.cnsf-torre__alerta:hover { border-color: var(--cnsf-green); }
.cnsf-torre__vacio { padding: 8px 0; }

/* Teléfono: la portada de Inicio es una banda verde bosque con saludo y campana (prototipo InicioMovil). */
@media (max-width: 1023px) {
  .cnsf-torre__portada { background: var(--cnsf-forest); color: #fff; margin: -20px -16px 16px; padding: 22px 20px 20px; }
  .cnsf-torre__portada .cnsf-encabezado { margin: 0; flex-wrap: nowrap; align-items: flex-start; }
  .cnsf-tema-invernadero .cnsf-torre__portada .cnsf-encabezado__titulo { color: #fff; font-size: 24px; }
  .cnsf-tema-invernadero .cnsf-torre__portada .cnsf-encabezado__seccion { color: rgba(255, 255, 255, .65); }
  .cnsf-torre__portada .cnsf-campana { color: #fff; width: 44px; height: 44px; align-items: center; justify-content: center; }
}

@media (min-width: 1024px) {
  .cnsf-tema-invernadero .cnsf-torre__estados { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
  .cnsf-tema-invernadero .cnsf-torre__estado { padding: 18px; }
  .cnsf-tema-invernadero .cnsf-torre__estado-numero { font-size: 34px; }
  .cnsf-torre__estado-detalle { display: block; }
  .cnsf-torre__rejilla { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 20px; align-items: start; }
}

/* ---- Revisar ---- */
.cnsf-revisar__promotor { display: inline-flex; align-items: center; gap: 12px; }
.cnsf-revisar__numero { color: var(--texto-etiqueta); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cnsf-revisar__accion { text-align: right; }
.cnsf-app-shell--supervisor .cnsf-pestanas { margin-bottom: 16px; }

/* ---- Equipo: filtros; lista y mapa (a la vez en escritorio, §4.4) ---- */
.cnsf-equipo__filtros { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
@media (max-width: 1023px) {
  .cnsf-equipo__vista:not(.cnsf-equipo__vista--mapa) .cnsf-equipo__mapa { display: none; }
  .cnsf-equipo__vista--mapa .cnsf-equipo__lista { display: none; }
}
.cnsf-equipo__lienzo { position: relative; }
.cnsf-mapa__leyenda-nota { margin-left: auto; font-size: 11.5px; color: var(--texto-secundario); }
.cnsf-tema-invernadero .cnsf-mapa { border-color: var(--borde-suave); }
.cnsf-tema-invernadero .cnsf-mapa__tarjeta { display: flex; align-items: center; gap: 14px; margin-top: 12px; }
.cnsf-mapa__tarjeta-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }

@media (min-width: 1024px) {
  .cnsf-equipo__filtros { flex-direction: row; align-items: center; gap: 12px; }
  .cnsf-equipo__filtros > .cnsf-input { max-width: 320px; }
  .cnsf-equipo__vista, .cnsf-equipo__vista--mapa { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 20px; align-items: start; }
  .cnsf-equipo__vista .cnsf-equipo__lista, .cnsf-equipo__vista .cnsf-equipo__mapa { display: block; }
  .cnsf-equipo__lista { max-height: calc(100vh - 220px); overflow-y: auto; padding-right: 4px; }
  .cnsf-equipo__mapa { background: var(--surface); border: 1px solid var(--borde-suave); border-radius: 16px; padding: 12px 16px 16px; }
  .cnsf-equipo__mapa .cnsf-mapa { height: calc(100vh - 300px); min-height: 420px; }
  .cnsf-tema-invernadero .cnsf-mapa__tarjeta { position: absolute; left: 16px; right: 16px; bottom: 16px; margin: 0; z-index: 500; box-shadow: 0 4px 16px rgba(22, 51, 31, .12); }
}

/* ---- Alertas: ícono por severidad ---- */
.cnsf-alerta-fila { display: flex; gap: 12px; align-items: flex-start; }
.cnsf-alerta-fila__icono { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cnsf-alerta-fila__cuerpo { flex: 1; min-width: 0; }
.cnsf-alerta-fila .cnsf-botones-fila { margin-top: 10px; }
.cnsf-alerta-fila .cnsf-botones-fila .cnsf-boton { height: 36px; padding: 0 12px; font-size: 13px; }
@media (min-width: 1024px) {
  .cnsf-tema-invernadero .cnsf-alertas { grid-template-columns: minmax(360px, 460px) minmax(0, 1fr); gap: 20px; }
  .cnsf-tema-invernadero .cnsf-alertas__detalle > .cnsf-texto-muted { background: var(--surface); border: 1px dashed var(--borde-suave); border-radius: 16px; padding: 22px; margin: 0; }
}

/* ---- Detalle de visita: acciones arriba; fotos y checklist a la izquierda, datos y anaquel a la derecha ---- */
.cnsf-visita__estado { display: flex; align-items: center; gap: 8px; margin-top: 4px; flex-wrap: wrap; }
.cnsf-visita__acciones { margin-bottom: 16px; display: flex; flex-direction: column; gap: 12px; }
.cnsf-visita__acciones:empty { display: none; }
.cnsf-visita__rejilla { display: grid; grid-template-columns: 1fr; gap: 16px; }
.cnsf-visita__rejilla > .cnsf-tarjeta { margin: 0; }
@media (min-width: 1024px) {
  .cnsf-visita__rejilla { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); grid-template-areas: "fotos datos" "checklist anaquel"; gap: 20px; align-items: start; }
  .cnsf-visita__fotos { grid-area: fotos; }
  .cnsf-visita__datos { grid-area: datos; }
  .cnsf-visita__checklist { grid-area: checklist; }
  .cnsf-visita__anaquel { grid-area: anaquel; }
}

/* ---- Detalle de promotor ---- */
.cnsf-promotor__perfil { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 16px; }
.cnsf-promotor__datos { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 6px; }
.cnsf-promotor__nombre { margin: 0; font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.cnsf-promotor__estado { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cnsf-promotor__perfil .cnsf-equipo__contacto { margin: 0; }
.cnsf-promotor__rejilla { display: grid; grid-template-columns: 1fr; gap: 16px; }
.cnsf-promotor__rejilla > .cnsf-tarjeta { margin: 0; }
.cnsf-promotor__renglon { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-top: 8px; border: 1px solid var(--surface-soft-alt); border-radius: 12px; color: var(--texto-fuerte); text-decoration: none; }
.cnsf-promotor__renglon .cnsf-fila-lista__titulo { flex: 1; min-width: 0; }
.cnsf-promotor__numero { width: 28px; height: 28px; border-radius: 8px; background: var(--surface-soft-alt); font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cnsf-promotor__historial { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--surface-soft-alt); color: var(--texto-fuerte); text-decoration: none; }
.cnsf-promotor__historial:last-child { border-bottom: none; }
.cnsf-promotor__historial > span:first-child { display: flex; flex-direction: column; gap: 2px; }
@media (min-width: 1024px) {
  .cnsf-promotor__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
}

/* ---- Rutas y Asignar PDV ---- */
.cnsf-tema-invernadero .cnsf-rutas__fecha { margin: 0; }
.cnsf-rutas__fecha label { font-size: 12.5px; font-weight: 600; color: var(--texto-etiqueta); }
.cnsf-rutas__lista { background: var(--surface); border: 1px solid var(--borde-suave); border-radius: 16px; overflow: hidden; }
.cnsf-rutas__lista .cnsf-fila-lista { border: none; border-bottom: 1px solid var(--surface-soft-alt); border-radius: 0; margin: 0; padding: 16px 20px; }
.cnsf-rutas__lista .cnsf-fila-lista:last-child { border-bottom: none; }
.cnsf-asignar { max-width: 900px; display: flex; flex-direction: column; gap: 10px; }
.cnsf-asignar .cnsf-subtitulo, .cnsf-asignar h2 { margin: 12px 0 4px; }
.cnsf-asignar__confirmar { align-self: flex-start; margin-top: 8px; }

/* ---- Mi perfil (Más) ---- */
.cnsf-perfil { max-width: 820px; display: flex; flex-direction: column; gap: 16px; }
.cnsf-perfil > .cnsf-tarjeta { margin: 0; }
.cnsf-perfil__datos { display: flex; align-items: center; gap: 18px; }
.cnsf-tema-invernadero .cnsf-perfil__avatar { background: var(--cnsf-green); color: #fff; }
.cnsf-perfil__textos { display: flex; flex-direction: column; gap: 4px; }
.cnsf-perfil__textos strong { font-size: 20px; font-weight: 800; }
.cnsf-perfil .cnsf-perfil__enlaces { padding: 0; overflow: hidden; }
.cnsf-perfil__enlace { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--surface-soft-alt); color: var(--texto-fuerte); text-decoration: none; }
.cnsf-perfil__enlace:last-child { border-bottom: none; }
.cnsf-perfil__enlace > span:first-child { display: flex; flex-direction: column; gap: 2px; }
.cnsf-perfil__enlace:hover { background: var(--fondo-calido); }

/* Enlaces de texto dentro del contenido (volver, ver todas) con el verde del tema. */
.cnsf-app-shell--supervisor .cnsf-alertas__volver { color: var(--cnsf-green-dark); text-decoration: none; font-size: 13px; }
.cnsf-volver { display: inline-block; margin-bottom: 8px; font-size: 13px; font-weight: 600; color: var(--cnsf-green-dark); text-decoration: none; }
.cnsf-volver:hover { text-decoration: underline; }
.cnsf-limite-de-errores { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; max-width: 640px; }

/* ==========================================================================
   Panel en teléfono (plan de tableros §9). Reglas del Supervisor y comunes a ambos roles.
   ========================================================================== */

/* Barra inferior: los cinco destinos ocupan todo el alto, así que cada uno mide ≥ 44 px. */
.cnsf-barra-inferior--iconos { align-items: stretch; padding: 4px 6px 6px; }
.cnsf-barra-inferior--iconos a { text-decoration: none; }

/* Inicio: leyendas cortas de las tarjetas de estado y accesos directos. */
.cnsf-torre__estado-corto { display: none; font-size: 12px; color: var(--texto-secundario); }
.cnsf-torre__atajos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 0 16px; }
.cnsf-torre__atajo { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 76px; box-sizing: border-box; padding: 10px 6px; text-align: center; background: var(--surface); border: 1px solid var(--borde-suave); border-radius: 14px; color: var(--texto-fuerte); text-decoration: none; font-size: 12.5px; font-weight: 600; }
.cnsf-torre__atajo svg { color: var(--cnsf-green-dark); }
.cnsf-torre__atajo:hover { border-color: var(--cnsf-green); }
@media (max-width: 1023px) { .cnsf-torre__estado-corto { display: block; } }

/* Revisar y todas las pestañas: se desplazan de lado en lugar de salirse de la pantalla. */
@media (max-width: 1023px) {
  .cnsf-app-shell .cnsf-pestanas { display: flex; max-width: 100%; box-sizing: border-box; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .cnsf-app-shell .cnsf-pestanas::-webkit-scrollbar { display: none; }
  .cnsf-app-shell .cnsf-pestanas__boton { flex: 0 0 auto; white-space: nowrap; }
  .cnsf-app-shell .cnsf-filtro-chips { max-width: 100%; }
}

/* Rutas y PDVs: «Mostrar más» y la lista en teléfono. */
.cnsf-rutas__mas { display: flex; justify-content: center; margin-top: 12px; }
@media (max-width: 1023px) {
  .cnsf-rutas__fecha { margin-bottom: 0; }
  .cnsf-rutas__lista .cnsf-fila-lista { padding: 14px 16px; }
  .cnsf-ruta-fila { flex-wrap: wrap; }
  .cnsf-ruta-fila__cuerpo { flex: 1 1 200px; }
}

/* Asignar / Reasignar: el botón de confirmar queda fijo abajo y pasa a dos líneas si el nombre es largo. */
@media (max-width: 1023px) {
  .cnsf-asignar { padding-bottom: 88px; }
  .cnsf-asignar__confirmar { position: fixed; left: 16px; right: 16px; bottom: 84px; z-index: 11; width: auto; align-self: auto; margin: 0; height: auto; min-height: 48px; padding-top: 8px; padding-bottom: 8px; white-space: normal; text-align: center; line-height: 1.25; box-shadow: 0 6px 18px rgba(22, 51, 31, .25); }
}

/* Detalle de visita: barra de acciones FIJA abajo (sobre la barra inferior) con Aprobar, Rechazar y demás
   según el estado, más «Ficha PDF». En computadora la barra sigue arriba, como antes. */
.cnsf-visita__barra { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 1023px) {
  .cnsf-visita { display: flex; flex-direction: column; gap: 16px; padding-bottom: 88px; }
  .cnsf-visita__acciones { display: contents; }
  .cnsf-visita__rejilla { order: 1; }
  .cnsf-visita__motivo { order: 2; margin: 0; }
  .cnsf-visita__barra { position: fixed; left: 0; right: 0; bottom: 72px; z-index: 11; box-sizing: border-box; background: var(--surface); border-top: 1px solid var(--borde-suave); box-shadow: 0 -4px 14px rgba(22, 51, 31, .08); padding: 10px 16px; margin: 0; flex-wrap: nowrap; }
  .cnsf-visita__barra .cnsf-boton { flex: 1 1 0; min-width: 0; height: auto; min-height: 44px; padding-left: 8px; padding-right: 8px; white-space: normal; line-height: 1.2; text-align: center; }
  .cnsf-visita__rejilla { grid-template-columns: minmax(0, 1fr); }
  .cnsf-visita__rejilla > * { min-width: 0; }
  .cnsf-fotos-cuadricula { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cnsf-visita__anaquel .cnsf-tabla-contenedor { margin-top: 10px; }
}

/* Equipo: el mapa se adapta al giro del teléfono; altura según la pantalla. */
@media (max-width: 1023px) {
  .cnsf-mapa { height: min(420px, 56vh); min-height: 260px; }
}

/* Botones y campos táctiles de al menos 44 px en teléfono (ambos roles). */
@media (max-width: 1023px) {
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-boton:not(.cnsf-boton--texto),
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-tabla__acciones .cnsf-boton,
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-alerta-fila .cnsf-botones-fila .cnsf-boton,
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-checklist__icono { height: 44px; min-height: 44px; }
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-visita__barra .cnsf-boton { height: auto; }
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-asignar__confirmar { height: auto; min-height: 48px; }
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-boton--texto { min-height: 44px; display: inline-flex; align-items: center; }
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-input:not(.cnsf-textarea) { height: 44px; min-height: 44px; }
  .cnsf-app-shell.cnsf-tema-invernadero .cnsf-checklist__icono { width: 44px; }
  .cnsf-app-shell .cnsf-pestanas__boton { min-height: 44px; }
  .cnsf-app-shell .cnsf-filtro-chips__chip { min-height: 44px; display: inline-flex; align-items: center; }
  .cnsf-app-shell .cnsf-casilla { min-height: 44px; align-items: center; }
  .cnsf-hoja__cerrar { min-width: 44px; min-height: 44px; }
  .cnsf-subir-archivo { max-width: 100%; }
}

/* Anaquel del Detalle de visita en teléfono: lista de renglones en lugar de tabla. */
.cnsf-anaquel-lista { margin-top: 10px; }
.cnsf-anaquel-lista__renglon { padding: 10px 0; border-bottom: 1px solid var(--surface-soft-alt); }
.cnsf-anaquel-lista__renglon:last-child { border-bottom: none; }
.cnsf-anaquel-lista__renglon p { margin: 4px 0 0; }
