.pantalla-login {
  min-height: calc(100vh - 60px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pantalla-login.oculto { display: none; }

.tarjeta-login {
  background: white;
  border-radius: var(--radio);
  padding: 32px;
  width: 340px;
  max-width: 90vw;
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.tarjeta-login h2 { margin: 0; }
.texto-suave { color: var(--texto-suave); font-size: 14px; margin: 0; }
.tarjeta-login label {
  font-size: 13px;
  color: var(--texto-suave);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tarjeta-login input {
  padding: 9px 10px;
  border: 1px solid var(--gris-borde);
  border-radius: 8px;
  font-size: 14px;
}

.panel-admin.oculto { display: none; }
.panel-admin {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px 20px;
}

.tabs-admin {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--gris-borde);
  margin-bottom: 20px;
}
.tab-admin {
  background: none;
  border: none;
  padding: 12px 18px;
  cursor: pointer;
  font-size: 14px;
  color: var(--texto-suave);
  border-bottom: 2px solid transparent;
}
.tab-admin.activo {
  color: var(--verde-oscuro);
  border-bottom-color: var(--verde);
  font-weight: 600;
}
.tab-admin.oculto { display: none; }

.campo-imagen-producto {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: -6px;
}
.preview-imagen-producto {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border: 1px solid var(--gris-borde);
  border-radius: 8px;
  background: white;
}
.preview-imagen-producto.oculto { display: none; }
.btn-subir-imagen { margin-bottom: 0; cursor: pointer; }

.seccion-admin.oculto { display: none; }

.barra-seccion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.barra-seccion h2 { margin: 0; }
.barra-seccion .btn-primario { width: auto; padding: 10px 16px; }

.tabla-admin {
  width: 100%;
  border-collapse: collapse;
  background: white;
  border-radius: var(--radio);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.tabla-admin th, .tabla-admin td {
  text-align: left;
  padding: 10px 14px;
  border-bottom: 1px solid var(--gris-borde);
  font-size: 14px;
}
.tabla-admin th {
  background: var(--gris-bg);
  color: var(--texto-suave);
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
}
.tabla-admin tr:last-child td { border-bottom: none; }

.acciones-tabla { display: flex; gap: 8px; }
.acciones-tabla button {
  border: none;
  background: none;
  cursor: pointer;
  font-size: 13px;
  padding: 4px 8px;
  border-radius: 6px;
}
.accion-editar { color: var(--azul); }
.accion-editar:hover { background: #e8f0fe; }
.accion-eliminar { color: #d33; }
.accion-eliminar:hover { background: #fdecea; }

.select-estado {
  padding: 6px 8px;
  border-radius: 6px;
  border: 1px solid var(--gris-borde);
  font-size: 13px;
}

.pill-receta {
  background: #fef3cd; color: #7a5b00;
  font-size: 11px; padding: 2px 8px; border-radius: 999px;
}
.pill-sin-existencia { color: #d33; font-weight: 600; }

.pill-activo { color: var(--verde-oscuro); font-weight: 600; }
.pill-inactivo { color: var(--texto-suave); }

/* Interruptor Manual/Automático (pestaña Clientes -> mensajes) */
.celda-mensajes { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.interruptor-mensajes {
  position: relative;
  display: inline-block;
  width: 42px;
  height: 22px;
  flex-shrink: 0;
}
.interruptor-mensajes input { opacity: 0; width: 0; height: 0; }
.interruptor-mensajes .slider {
  position: absolute; cursor: pointer; inset: 0;
  background-color: #ccc;
  border-radius: 999px;
  transition: background-color .15s ease;
}
.interruptor-mensajes .slider::before {
  content: "";
  position: absolute;
  height: 16px; width: 16px;
  left: 3px; bottom: 3px;
  background-color: white;
  border-radius: 50%;
  transition: transform .15s ease;
}
.interruptor-mensajes input:checked + .slider { background-color: var(--verde, #2e7d32); }
.interruptor-mensajes input:checked + .slider::before { transform: translateX(20px); }
.fila-interruptor-mensajes { display: flex; align-items: center; gap: 8px; }
.etiqueta-modo-mensajes { font-size: 12px; color: var(--texto-suave); }
.detalle-recordatorio { font-size: 11px; color: var(--texto-suave); }
.link-configurar-recordatorio {
  background: none; border: none; padding: 0;
  color: var(--azul); font-size: 11px; text-decoration: underline; cursor: pointer;
}

.filtro-fechas-reportes {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 20px;
}
.filtro-fechas-reportes label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: var(--texto-suave);
}
.filtro-fechas-reportes input {
  padding: 8px 10px;
  border: 1px solid var(--gris-borde);
  border-radius: 8px;
}

.tarjetas-resumen {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}
.tarjeta-resumen {
  background: white;
  border-radius: var(--radio);
  padding: 14px 16px;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.tarjeta-resumen .etiqueta { font-size: 12px; color: var(--texto-suave); text-transform: uppercase; }
.tarjeta-resumen .valor { font-size: 22px; font-weight: 700; margin-top: 4px; }

.seccion-admin h3 { margin: 24px 0 10px; font-size: 15px; }

.form-configuracion-envio {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex-wrap: wrap;
  background: white;
  padding: 16px;
  border-radius: var(--radio);
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.form-configuracion-envio label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: var(--texto-suave);
}
.form-configuracion-envio input {
  padding: 9px 10px;
  border: 1px solid var(--gris-borde);
  border-radius: 8px;
}
.form-configuracion-envio .btn-primario { width: auto; padding: 10px 18px; }

.select-rol {
  padding: 6px 8px;
  border-radius: 6px;
  border: 1px solid var(--gris-borde);
  font-size: 13px;
}

/* ---------- Chat de soporte (admin) ---------- */
.panel-chat-admin {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 16px;
  background: white;
  border-radius: var(--radio);
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
  overflow: hidden;
  height: 520px;
}
.lista-conversaciones {
  border-right: 1px solid var(--gris-borde);
  overflow-y: auto;
}
.conversacion-item {
  padding: 12px 14px;
  border-bottom: 1px solid var(--gris-borde);
  cursor: pointer;
}
.conversacion-item:hover { background: var(--gris-bg); }
.conversacion-item.activa { background: #e8f0fe; }
.conversacion-item .nombre-conv {
  font-weight: 600;
  font-size: 13px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
}
.conversacion-item .ultimo-mensaje {
  font-size: 12px;
  color: var(--texto-suave);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 2px;
}
.badge-no-leidos {
  background: #d33;
  color: white;
  border-radius: 999px;
  font-size: 11px;
  padding: 1px 7px;
  flex-shrink: 0;
}
.hilo-conversacion {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.hilo-chat-admin {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hilo-conversacion .fila-chat.oculto { display: none; }

/* ===================== Publicidad (banners) ===================== */
#campo-categoria-banner.oculto { display: none; }

/* ===================== Clientes: buscador ===================== */
.input-busqueda-admin {
  width: 100%;
  max-width: 360px;
  padding: 9px 12px;
  margin: 10px 0 14px;
  border: 1px solid var(--gris-borde);
  border-radius: var(--radio);
  font-size: 14px;
  font-family: inherit;
}
.input-busqueda-admin:focus {
  outline: none;
  border-color: var(--azul);
  box-shadow: 0 0 0 3px rgba(95,187,242,.2);
}
