/* ================================================================
   VITP SHELL — Cascarón de "página" con estilo Vitrina
   Se usa para Gráficos / Notas / Registro y Seguimiento cuando se
   abren desde el catálogo público, en vez del shell viejo
   (#main-container con #top-bar + #tab-bar).
 
   Incluir DESPUÉS de vitrina.css.
   ================================================================ */
 
/* ── Re-mapeo de las variables de Utilidades a la paleta Vitrina ──
   Todo lo que dentro de .vitp-page use var(--color-*) (Registro,
   Notas parcialmente, .form-section, .btn-sm, tablas, inputs, etc.)
   se repinta automáticamente sin tocar esos archivos. ── */
.vitp-page {
  --color-bg-deep:      var(--vb);
  --color-bg-card:      var(--vs);
  --color-bg-input:     var(--vs2);
  --color-border:       var(--vbor2);
  --color-border-card:  var(--vbor);
  --color-accent:       var(--va);
  --color-accent-dark:  #6a1b9a;
  --color-text:         var(--vtx2);
  --color-text-dim:     var(--vtx3);
  --color-text-bright:  var(--vtx);
  --color-verde:        var(--vgrn);
  --color-rojo:         var(--vred);
  --color-amarillo:     #ffd54f;
 
  position: fixed;
  top: 62px;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 250; /* NO subir esto por encima del navbar (260): probamos
                   265 para que el sidebar se asome sobre el navbar, pero
                   como .vit-nav crea su propio contexto de apilamiento,
                   cualquier z-index mayor acá tapa TODO lo que el navbar
                   abre hacia abajo (dropdown de usuario, carrito, etc.),
                   sin importar el z-index que tengan esos dropdowns.
                   En Gráficos/Registro el sidebar ya no intenta asomarse
                   sobre el navbar (ver graficos.css/core.css): arranca
                   normal, debajo — por eso acá no hace falta pelear con
                   el navbar. */
  display: flex;
  flex-direction: column;
  background: var(--vb);
  color: var(--vtx);
  font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;
}
 
.vitp-body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
}
 
/* ── Barra de filtros reutilizable, estilo vit-sort-bar ── */
.vitp-filtros-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  background: var(--vs);
  border: 1px solid var(--vbor);
  border-radius: var(--rl);
  margin: 14px 24px 0;
  flex-shrink: 0;
  flex-wrap: wrap;
}
 
.vitp-filtros-bar select,
.vitp-filtros-bar input[type="date"],
.vitp-filtros-bar input[type="text"] {
  background: var(--vs2);
  border: 1px solid var(--vbor);
  color: var(--vtx2);
  border-radius: var(--r);
  padding: 6px 10px;
  font-size: 13px;
  height: 34px;
  outline: none;
  transition: border-color 0.2s var(--ease-apple), box-shadow 0.2s var(--ease-apple);
}
.vitp-filtros-bar select:focus,
.vitp-filtros-bar input:focus { border-color: var(--vbor2); box-shadow: var(--shadow-focus-soft); }
 
.vitp-btn {
  height: 34px;
  padding: 0 14px;
  border-radius: var(--r);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid var(--vbor2);
  background: var(--vag2);
  color: var(--va);
  transition: all 0.2s var(--ease-apple);
  white-space: nowrap;
}
.vitp-btn:hover { background: rgba(206,147,216,0.32); border-color: var(--va); box-shadow: 0 4px 14px rgba(206,147,216,0.2); }
.vitp-btn.vitp-btn-ghost { background: transparent; border: 1px solid var(--vbor); color: var(--vtx3); }
.vitp-btn.vitp-btn-ghost:hover { border-color: var(--vred); color: var(--vred); }
 
@media (max-width: 700px) {
  .vitp-filtros-bar { margin: 10px 12px 0; }
}
 
/* ── Tarjeta de cita (Agenda): antes era 100% inline sin ninguna
   transición ni animación de entrada ── */
.agenda-cita-card {
  transition: border-color 0.2s var(--ease-apple), transform 0.15s var(--ease-apple), box-shadow 0.2s var(--ease-apple);
  animation: surgir 0.3s var(--ease-apple) both;
  animation-delay: min(calc(var(--i, 0) * 30ms), 300ms);
}
.agenda-cita-card:hover {
  border-color: var(--vbor2);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
 
@media (max-width: 700px) {
  #agl-lista > div {
    flex-direction: column;
    align-items: flex-start !important;
  }
}