/* ============================================================
   VINCIANALYTICS PORTAL — PREMIUM EXTRAS
   Cierre visual: CTA finales, modal, vacío y paginación.
   Este archivo debe cargarse DESPUÉS de report-modal.css y ofertas.css.
   ============================================================ */

.portal-endcard {
  margin-top: 18px;
  padding: 22px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 26px;
  align-items: end;
  border: 1px solid #d7d0c4;
  border-radius: 14px;
  background: rgba(255,255,255,.58);
}

.portal-endcard + .portal-endcard { margin-top: 10px; }

.portal-endcard-cv {
  background: #11110f;
  border-color: #11110f;
  color: #fff;
}

.portal-endcard-eyebrow,
.portal-empty-eyebrow,
.portal-modal-eyebrow {
  margin-bottom: 8px;
  color: var(--va-orange);
  font: 800 .6rem/1 var(--font-body);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.portal-endcard-title {
  margin: 0;
  max-width: 720px;
  font-family: var(--font-display);
  font-size: clamp(1.65rem, 3.2vw, 2.35rem);
  line-height: 1;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.portal-endcard-text {
  margin: 9px 0 0;
  max-width: 660px;
  color: #5e5952;
  font-size: .83rem;
  line-height: 1.6;
}

.portal-endcard-cv .portal-endcard-text { color: rgba(255,255,255,.68); }

.portal-endcard-action {
  min-height: 44px;
  padding: 10px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid #bfb7ab;
  border-radius: 8px;
  color: var(--va-black);
  background: transparent;
  text-decoration: none;
  white-space: nowrap;
  font: 800 .68rem/1 var(--font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.portal-endcard-action:hover {
  background: var(--va-black);
  border-color: var(--va-black);
  color: #fff;
}

.portal-endcard-action-primary {
  border-color: rgba(255,255,255,.4);
  color: #fff;
}

.portal-endcard-action-primary:hover {
  background: #fff;
  border-color: #fff;
  color: #11110f;
}

/* Empty state */
.portal-empty {
  padding: 30px 26px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 24px;
  align-items: center;
  border: 1px solid #d7d0c4;
  border-radius: 14px;
  background: rgba(255,255,255,.58);
}

.portal-empty-index {
  font-family: var(--font-display);
  font-size: 3.6rem;
  line-height: .9;
  color: #d2cbc0;
}

.portal-empty-copy h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.7rem;
  line-height: 1;
  text-transform: uppercase;
}

.portal-empty-copy p {
  margin: 8px 0 0;
  max-width: 600px;
  color: #625d56;
  font-size: .82rem;
  line-height: 1.6;
}

.portal-empty-actions {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.portal-empty-primary,
.portal-empty-secondary {
  min-height: 42px;
  padding: 9px 12px;
  border-radius: 7px;
  font: 800 .65rem/1 var(--font-body);
  letter-spacing: .07em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}

.portal-empty-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--va-black);
  background: var(--va-black);
  color: #fff;
}

.portal-empty-secondary {
  border: 1px solid #cfc7ba;
  background: transparent;
  color: #59544d;
}

/* Pagination */
.portal-pagination {
  margin: 24px 0 4px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
}

.portal-page-numbers {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
}

.portal-pagination .page-btn {
  min-width: 40px;
  min-height: 40px;
  padding: 8px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d1cabe;
  border-radius: 8px;
  background: rgba(255,255,255,.55);
  color: #504b45;
  box-shadow: none;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 750;
  text-decoration: none;
}

.portal-pagination .page-btn:hover:not(.disabled):not(.active) {
  transform: none;
  box-shadow: none;
  border-color: #9e978c;
  background: rgba(255,255,255,.88);
}

.portal-pagination .page-btn.active {
  background: var(--va-black);
  color: #fff;
  border-color: var(--va-black);
  box-shadow: none;
}

.portal-page-nav { gap: 7px; }
.pagination-ellipsis { color: #aaa299; padding: 0 2px; }

/* Report modal.
   Specificidad alta para imponerse sobre report-modal.css cargado antes. */
#reportModal.portal-report-overlay {
  padding: 16px;
  background: rgba(5,5,5,.62);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

#reportModal .portal-report-modal {
  width: min(100%, 470px);
  padding: 24px;
  border: 1px solid #d7d0c4;
  border-radius: 16px;
  background: #fffdfa;
  box-shadow: 0 24px 80px rgba(0,0,0,.18);
}

#reportModal .portal-report-modal h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 2rem;
  line-height: 1;
  letter-spacing: .025em;
  text-transform: uppercase;
}

#reportModal .portal-modal-intro {
  margin: 9px 0 18px;
  max-width: 390px;
  color: #625d56;
  font-size: .82rem;
  line-height: 1.55;
}

#reportModal .portal-report-options {
  display: grid;
  gap: 7px;
}

#reportModal .portal-report-options .motivo-btn {
  width: 100%;
  min-height: 46px;
  padding: 11px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  border: 1px solid #ddd6ca;
  border-radius: 8px;
  background: rgba(255,255,255,.56);
  color: #272522;
  text-align: left;
  font-family: var(--font-body);
  font-size: .8rem;
  font-weight: 650;
  cursor: pointer;
}

#reportModal .portal-report-options .motivo-btn:hover {
  border-color: var(--va-black);
  background: #fff;
}

#reportModal .portal-modal-cancel {
  width: 100%;
  min-height: 44px;
  margin-top: 12px;
  border: 0;
  border-top: 1px solid #e2dcd2;
  background: transparent;
  color: #777169;
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .08em;
  cursor: pointer;
}

#reportModal .portal-report-success {
  padding: 18px 4px 8px;
  text-align: left;
}

#reportModal .portal-report-success p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.8rem;
  text-transform: uppercase;
}

/* Keyboard */
.portal-endcard-action:focus-visible,
.portal-empty-primary:focus-visible,
.portal-empty-secondary:focus-visible,
.portal-pagination .page-btn:focus-visible,
#reportModal button:focus-visible {
  outline: 3px solid rgba(255,59,0,.3);
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .portal-endcard {
    grid-template-columns: 1fr;
    gap: 17px;
    padding: 18px 16px;
  }

  .portal-endcard-title { font-size: 1.7rem; }
  .portal-endcard-text { font-size: .8rem; }

  .portal-endcard-action {
    width: 100%;
    min-height: 46px;
  }

  .portal-empty {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 20px 17px;
  }

  .portal-empty-index { font-size: 2.8rem; }
  .portal-empty-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .portal-empty-primary,
  .portal-empty-secondary { min-height: 44px; }

  .portal-pagination {
    grid-template-columns: 44px minmax(0,1fr) 44px;
    gap: 7px;
  }

  .portal-pagination .page-btn {
    min-width: 40px;
    min-height: 44px;
    padding: 7px;
  }

  .portal-page-long { display: none; }

  #reportModal .portal-report-modal {
    padding: 20px 16px 16px;
    border-radius: 14px;
  }

  #reportModal .portal-report-modal h3 { font-size: 1.75rem; }

  #reportModal .portal-report-options .motivo-btn {
    min-height: 48px;
    font-size: .82rem;
  }
}

@media (max-width: 390px) {
  .portal-empty-actions { grid-template-columns: 1fr; }
  .portal-page-numbers { gap: 3px; }
  .portal-pagination .portal-page-number { min-width: 34px; }
}
