/* v0.78 — Pulido admin/público: modales editoriales, navegación compacta, perfiles activos y tablas interactivas. */

/* Navegación pública: Inicio | Tu ciudad | Tenencias | Directorio | Eventos | Más */
.primary-nav .nav-more {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.primary-nav .nav-more summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  padding: .64rem .86rem;
  border-radius: 10px;
  color: #fff;
  font-weight: 800;
  font-size: .9rem;
}
.primary-nav .nav-more summary::-webkit-details-marker { display: none; }
.primary-nav .nav-more summary::after { content: "⌄"; font-size: .75rem; opacity: .8; }
.primary-nav .nav-more summary.is-active,
.primary-nav .nav-more[open] summary,
.primary-nav .nav-more summary:hover { background: rgba(255,255,255,.12); }
.nav-more-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + .5rem);
  right: 0;
  min-width: 210px;
  display: grid;
  gap: .25rem;
  padding: .55rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  background: rgba(15,27,67,.98);
  box-shadow: 0 20px 45px rgba(0,0,0,.28);
}
.nav-more-menu a { display: block; padding: .72rem .85rem !important; border-radius: 12px; }
.nav-more-menu a:hover,
.nav-more-menu a.is-active { background: rgba(255,255,255,.12); }

/* Hero CTA: más aire entre copy y botón. */
.page-hero-showcase .hero-actions {
  margin-top: 1.35rem;
}

/* Modales públicas: encabezado estable + cards editoriales en tercias. */
.list-modal {
  align-items: center;
  justify-items: center;
}
.list-modal-card {
  display: flex;
  flex-direction: column;
  overflow: hidden !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.32);
  background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
}
.list-modal-card > .eyebrow,
.list-modal-card > h2 {
  flex: 0 0 auto;
  padding-inline: 1.25rem;
}
.list-modal-card > .eyebrow {
  margin: 1.2rem 0 0;
}
.list-modal-card > h2 {
  margin: .25rem 3.2rem .6rem 0;
  color: var(--navy-deep);
}
.list-modal-close {
  z-index: 3;
  top: 1rem;
  right: 1rem;
}
.modal-card-grid {
  margin-top: 0 !important;
  padding: 1rem 1.25rem 1.25rem;
  overflow: auto;
  max-height: calc(86vh - 118px);
}
@media (min-width: 900px) {
  .modal-card-grid.event-grid,
  .modal-card-grid.profiles-grid,
  .modal-card-grid.public-card-grid-4 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
.list-modal .event-card,
.list-modal .profile-card {
  min-height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 16px 34px rgba(34,47,79,.08);
}
.list-modal .event-card img,
.list-modal .profile-card img {
  aspect-ratio: 16 / 10;
  height: auto !important;
  min-height: 170px;
  object-fit: cover;
}
.list-modal .event-card h3,
.list-modal .profile-card h3 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Admin: cards de heroes parejas. */
.page-heroes-grid,
.admin-hero-grid,
.hero-card-grid {
  align-items: stretch;
}
.admin-hero-card,
.page-hero-admin-card,
.hero-admin-card,
.page-heroes-grid .content-card,
.admin-hero-grid .content-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.admin-hero-card img,
.page-hero-admin-card img,
.hero-admin-card img,
.page-heroes-grid img,
.admin-hero-grid img {
  width: 100%;
  aspect-ratio: 16 / 7;
  height: auto !important;
  object-fit: cover;
  border-radius: 16px;
}
.admin-hero-card h3,
.page-hero-admin-card h3,
.hero-admin-card h3,
.page-heroes-grid h3,
.admin-hero-grid h3 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.25em;
}
.admin-hero-card p,
.page-hero-admin-card p,
.hero-admin-card p,
.page-heroes-grid p,
.admin-hero-grid p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.admin-hero-card .button,
.page-hero-admin-card .button,
.hero-admin-card .button,
.page-heroes-grid .button,
.admin-hero-grid .button {
  margin-top: auto;
}

/* Guía de imágenes: separar matriz de tarjetas inferiores. */
.page-image-guide .admin-panel + .guide-steps,
.image-guide-steps,
.guide-steps {
  margin-top: 1.6rem !important;
}
.page-image-guide .admin-panel {
  margin-bottom: 1.45rem;
}

/* Admin eventos: consola con búsqueda/filtros. */
.admin-events-console {
  display: grid;
  gap: .85rem;
}
.admin-table-toolbar {
  display: grid;
  gap: .75rem;
  padding: .9rem;
  border: 1px solid #e1e7f2;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff 0%, #f8f6ff 100%);
}
.admin-table-toolbar label {
  margin: 0;
}
.admin-table-toolbar input,
.admin-table-toolbar select {
  min-height: 42px;
}
.admin-table-summary {
  color: var(--muted);
  font-size: .86rem;
  font-weight: 750;
}
@media (min-width: 980px) {
  .admin-events-toolbar {
    grid-template-columns: minmax(280px, 1fr) 180px 130px 180px;
    align-items: end;
  }
}

/* Selector admin de participantes: miniaturas y textos estables. */
.participant-card-grid {
  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)) !important;
  align-items: stretch;
}
.participant-select-card {
  grid-template-columns: 24px 78px minmax(0, 1fr) 28px !important;
  min-height: 122px !important;
  align-items: center !important;
}
.participant-select-card img,
.participant-thumb-fallback {
  width: 78px !important;
  height: 78px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 18px !important;
  object-fit: cover !important;
}
.participant-copy strong { min-height: 2.1em; }
.participant-copy small,
.participant-copy em {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 760px) {
  .primary-nav .nav-more { display: block; }
  .nav-more-menu { position: static; margin-top: .35rem; box-shadow: none; }
  .modal-card-grid { max-height: calc(86vh - 130px); }
}
