/* eCards Components
   - Classes prefixed with .ec-*
   - Uses tokens from tokens.css
*/

.ec-btn {
  --ec-btn-bg: transparent;
  --ec-btn-fg: var(--ec-color-brand-900);
  --ec-btn-border: transparent;
  --ec-btn-focus: var(--ec-color-focus-ring);

  align-items: center;
  appearance: none;
  background: var(--ec-btn-bg);
  border: 2px solid var(--ec-btn-border);
  border-radius: var(--ec-radius-pill);
  color: var(--ec-btn-fg);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--ec-font-family-sans);
  font-size: var(--ec-font-size-18);
  font-weight: var(--ec-font-weight-medium);
  justify-content: center;
  line-height: 1;
  min-height: 48px;
  padding: var(--ec-space-15) var(--ec-space-24);
  position: relative;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease,
    transform 80ms ease;
  user-select: none;
  white-space: nowrap;
}

.ec-btn:active {
  transform: translateY(1px);
}

.ec-btn:focus {
  outline: none;
}

.ec-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--ec-btn-focus);
}

.ec-btn[disabled],
.ec-btn:disabled {
  cursor: not-allowed;
  opacity: 1;
  transform: none;
}

/* Primary (from Figma: Propiedad 1=dark-blue-bg) */
.ec-btn--primary {
  --ec-btn-bg: var(--ec-color-brand-900);
  --ec-btn-fg: var(--ec-color-white);
  --ec-btn-border: var(--ec-color-brand-900);
}

/* Hover (from Figma: dark-blue-bg-hover shows border navy + text navy) */
.ec-btn--primary:hover:not(:disabled) {
  background: var(--ec-color-white);
  border-color: var(--ec-color-brand-900);
  color: var(--ec-color-brand-900);
}

/* Focus (from Figma: dark-blue-bg-focus border #0df) */
.ec-btn--primary:focus-visible {
  box-shadow: 0 0 0 2px var(--ec-color-focus-ring);
}

/* Disabled (from Figma: dark-blue-bg-disabled bg Gris claro, text Blanco) */
.ec-btn--primary:disabled {
  background: var(--ec-color-gray-200);
  border-color: var(--ec-color-gray-200);
  color: var(--ec-color-white);
}

/* Secondary (from Figma: Propiedad 1=white-bg) */
.ec-btn--secondary {
  --ec-btn-bg: var(--ec-color-white);
  --ec-btn-fg: var(--ec-color-brand-900);
  --ec-btn-border: var(--ec-color-white);
}

/* Hover (adaptado: fondo azul + texto blanco) */
.ec-btn--secondary:hover:not(:disabled) {
  background: var(--ec-color-brand-900);
  border-color: var(--ec-color-brand-900);
  color: var(--ec-color-white);
}

/* Focus (from Figma: white-bg-focus border #0df) */
.ec-btn--secondary:focus-visible {
  box-shadow: 0 0 0 2px var(--ec-color-focus-ring);
}

/* Disabled (from Figma: white-bg-disabled bg Gris claro + text Gris medio) */
.ec-btn--secondary:disabled {
  background: var(--ec-color-gray-200);
  border-color: var(--ec-color-gray-200);
  color: var(--ec-color-gray-300);
}

/* Ghost (not explicitly in Figma; provided as optional utility) */
.ec-btn--ghost {
  --ec-btn-bg: transparent;
  --ec-btn-fg: var(--ec-color-brand-900);
  --ec-btn-border: transparent;
}

.ec-btn--ghost:hover:not(:disabled) {
  background: rgba(28, 61, 110, 0.08); /* TODO from Figma: ghost hover color */
}

/* Error state (from Figma: *-error border rojo + text rojo) */
.ec-btn.is-error,
.ec-btn--error {
  background: transparent;
  border-color: var(--ec-color-danger-600);
  color: var(--ec-color-danger-600);
}

/* Loading state (from Figma: dark-blue-bg-loading bg #345991; white-bg-loading text #5e7dab) */
.ec-btn.is-loading,
.ec-btn--loading {
  cursor: progress;
}

.ec-btn--primary.is-loading,
.ec-btn--primary.ec-btn--loading {
  background: var(--ec-color-brand-700);
  border-color: var(--ec-color-brand-700);
  color: var(--ec-color-white);
}

.ec-btn--secondary.is-loading,
.ec-btn--secondary.ec-btn--loading {
  background: var(--ec-color-white);
  border-color: var(--ec-color-white);
  color: var(--ec-color-brand-400);
}

/* Optional spinner (pure CSS) */
.ec-btn .ec-btn__spinner {
  animation: ec-spin 900ms linear infinite;
  border: 2px solid currentColor;
  border-left-color: transparent;
  border-radius: 999px;
  display: inline-block;
  height: 16px;
  margin-right: var(--ec-space-8);
  width: 16px;
}

@keyframes ec-spin {
  to {
    transform: rotate(360deg);
  }
}

/* =====================================
   Wizard / Stepper
   ===================================== */

.ec-stepper {
  display: flex;
  justify-content: space-evenly;
  align-items: flex-start;
  margin-bottom: var(--ec-space-32);
  list-style: none;
  padding: 0;
  gap: 0;
}

.ec-stepper__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--ec-font-family-sans);
  font-size: var(--ec-font-size-16);
  font-weight: var(--ec-font-weight-medium);
  color: var(--ec-color-gray-300);
  position: relative;
  flex: 0 0 auto;
}

.ec-stepper__item:not(:last-child)::after {
  /*content: "";*/
  position: absolute;
  top: 13px;
  left: calc(50% + 20px);
  width: 350px;
  height: 2px;
  background: var(--ec-color-gray-200);
}

.ec-stepper__item--complete:not(:last-child)::after,
.ec-stepper__item--active:not(:last-child)::after {
  background: var(--ec-color-brand-900);
}

.ec-stepper__dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid var(--ec-color-gray-300);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ec-space-8);
  background: var(--ec-color-white);
  font-size: var(--ec-font-size-16);
  position: relative;
  z-index: 1;
}

.ec-stepper__label {
  white-space: nowrap;
  text-align: center;
}

.ec-stepper__item--active {
  color: var(--ec-color-brand-900);
}

.ec-stepper__item--active .ec-stepper__dot {
  border-color: var(--ec-color-brand-900);
  background: var(--ec-color-brand-900);
  color: var(--ec-color-white);
}

.ec-stepper__item--complete {
  color: var(--ec-color-brand-900);
}

.ec-stepper__item--complete .ec-stepper__dot {
  border-color: var(--ec-color-brand-900);
}

/* Botón outline (blanco, borde azul) para "Paso 2 →" en el diseño */
.ec-btn--outline {
  --ec-btn-bg: var(--ec-color-white);
  --ec-btn-fg: var(--ec-color-brand-900);
  --ec-btn-border: var(--ec-color-brand-900);
}

.ec-btn--outline:hover:not(:disabled) {
  background: rgba(28, 61, 110, 0.06);
  border-color: var(--ec-color-brand-900);
  color: var(--ec-color-brand-900);
}

/* Zona de subida (drag and drop) */
.ec-upload {
  border: 2px solid var(--Azul-marino-corporativo, #1C3D6E);
  border-radius: var(--ec-radius-20);
  padding: var(--ec-space-32);
  text-align: center;
  transition: border-color 160ms ease, background 160ms ease;
}

.ec-upload:hover {
  border-color: var(--ec-color-brand-900);
  background: rgba(210, 224, 229, 0.35);
}

.ec-upload__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto var(--ec-space-12);
  background: url("data:image/svg+xml,%3Csvg xmlns='https://fontawesome.com/icons/arrow-up-from-bracket?f=classic&s=solid' fill='none' viewBox='0 0 24 24' stroke='%231c3d6e' stroke-width='1.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5'/%3E%3C/svg%3E") center/contain no-repeat;
}

.ec-upload__text {
  font-size: var(--ec-font-size-16);
  font-weight: var(--ec-font-weight-medium);
  color: var(--ec-color-brand-900);
  margin: 0 0 var(--ec-space-4);
}

.ec-upload__hint {
  font-size: var(--ec-font-size-16);
  font-weight: var(--ec-font-weight-medium);
  color: var(--ec-color-brand-900);
  margin: 0;
}

@media (max-width: 767.98px) {
  .ec-stepper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-wrap: wrap;
    row-gap: var(--ec-space-16);
    justify-content: center;
  }

  .ec-stepper__item:not(:last-child)::after {
    display: none;
  }
}

.flatpickr-calendar {
  font-family: var(--ec-font-family-sans);
  border-radius: 10px;
  box-shadow: 0 8px 32px rgba(28, 61, 110, 0.18);
  border: 1.5px solid var(--ec-color-brand-200);
  overflow: hidden;
}
.flatpickr-months {
  background: var(--ec-color-brand-900);
  border-radius: 0;
  padding: 6px 0;
}
.flatpickr-current-month{
  padding: 2.5px 0 0 0 !important;
}
.flatpickr-month,
.flatpickr-current-month,
.flatpickr-monthDropdown-months,
.flatpickr-current-month .numInputWrapper input {
  color: #fff !important;
  fill: #fff !important;
  background: transparent;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
  font-weight: var(--ec-font-weight-semibold);
}
.flatpickr-current-month .numInputWrapper:hover,
.flatpickr-monthDropdown-months:hover {
  background: rgba(255,255,255,0.12);
  border-radius: 4px;
}
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{
  color: #1c3d6e !important;
  fill: #1c3d6e !important;
}
.flatpickr-monthDropdown-months option {
  background-color: var(--ec-color-brand-900);
  color: #fff;
}
.flatpickr-monthDropdown-months option:hover,
.flatpickr-monthDropdown-months option:checked {
  background-color: var(--ec-color-brand-700);
  color: #fff;
}
.flatpickr-prev-month svg,
.flatpickr-next-month svg {
  fill: #fff;
}
.flatpickr-prev-month:hover svg,
.flatpickr-next-month:hover svg {
  fill: var(--ec-color-brand-200);
}
.flatpickr-weekdays {
  background: var(--ec-color-brand-900);
  padding-bottom: 6px;
}
.flatpickr-weekday {
  background: transparent;
  color: var(--ec-color-brand-200);
  font-weight: var(--ec-font-weight-semibold);
  font-size: 12px;
}
.flatpickr-day {
  border-radius: 6px;
  font-size: 14px;
  color: var(--ec-color-brand-900);
  font-weight: var(--ec-font-weight-medium);
}
.flatpickr-day:hover,
.flatpickr-day:focus {
  background: var(--ec-color-brand-200);
  border-color: var(--ec-color-brand-200);
  color: var(--ec-color-brand-900);
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  background: var(--ec-color-brand-900);
  border-color: var(--ec-color-brand-900);
  color: #fff;
  font-weight: var(--ec-font-weight-semibold);
}
.flatpickr-day.today {
  border-color: var(--ec-color-brand-400);
  color: var(--ec-color-brand-700);
  font-weight: var(--ec-font-weight-semibold);
}
.flatpickr-day.today:hover {
  background: var(--ec-color-brand-200);
  border-color: var(--ec-color-brand-400);
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
  color: #b0bec5;
}
/* Time picker */
.flatpickr-time {
  border-top: 1px solid var(--ec-color-brand-200);
}
.flatpickr-time input,
.flatpickr-time .flatpickr-am-pm {
  font-family: var(--ec-font-family-sans);
  font-size: 14px;
  color: var(--ec-color-brand-900);
  font-weight: var(--ec-font-weight-semibold);
}
.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus {
  background: var(--ec-color-brand-200);
  border-radius: 4px;
}
.flatpickr-time .numInputWrapper span.arrowUp:after {
  border-bottom-color: var(--ec-color-brand-900);
}
.flatpickr-time .numInputWrapper span.arrowDown:after {
  border-top-color: var(--ec-color-brand-900);
}
/* Input con icono de calendario */
.ec-crear-paso3-fecha-wrap {
  position: relative;
}
.ec-crear-paso3-fecha-wrap .ec-input {
  padding-right: 2.4rem;
  cursor: pointer;
}
/* ── Acceso eCard ──────────────────────────────────────────────────────── */
.ec-acceso-section {
  min-height: calc(100vh - 80px);
  display: flex;
  align-items: center;
  padding: 3rem 0;
}

.ec-acceso-card {
  border-radius: 16px;
  box-shadow: 0 4px 32px rgba(26, 58, 108, 0.10);
  border: 1px solid var(--ec-color-brand-100, #e8f0fb);
  background: #fff;
}

.ec-acceso-card .ec-card__body {
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.ec-acceso-icon {
  margin-bottom: 1.25rem;
}

.ec-acceso-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ec-color-brand-900, #1a3a6c);
  margin-bottom: 0.5rem;
  font-family: var(--ec-font-family-sans, sans-serif);
}

.ec-acceso-subtitle {
  font-size: 0.95rem;
  color: #5a6a85;
  margin-bottom: 1.75rem;
  max-width: 340px;
}

.ec-acceso-alert {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  background: #fff5f5;
  border: 1px solid #fca5a5;
  color: #b91c1c;
  border-radius: 8px;
  padding: 0.65rem 0.9rem;
  font-size: 0.875rem;
  margin-bottom: 1.25rem;
  text-align: left;
  width: 100%;
}

.ec-acceso-form {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  text-align: left;
}

.ec-acceso-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ec-acceso-input {
  width: 100%;
}

.ec-acceso-input--error {
  border-color: #ef4444 !important;
}

.ec-acceso-hint {
  font-size: 0.8rem;
  color: #8a96a8;
  margin: 0;
}

.ec-acceso-btn {
  width: 100%;
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}

.ec-acceso-footer-note {
  text-align: center;
  font-size: 0.85rem;
  color: #8a96a8;
  margin-top: 1.25rem;
}

.ec-acceso-footer-note a {
  color: var(--ec-color-brand-700, #2d5fb3);
  text-decoration: none;
}

.ec-acceso-footer-note a:hover {
  text-decoration: underline;
}

/* ── Fin Acceso eCard ───────────────────────────────────────────────────── */

/* ── Per-page stepper ───────────────────────────────────────────────────── */
.ec-mis-ecards__per-page {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.ec-mis-ecards__per-page-label {
  font-size: 0.82rem;
  color: #8a96a8;
  margin-right: 0.25rem;
}

.ec-mis-ecards__per-page-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 6px;
  color: var(--ec-color-brand-700, #2d5fb3);
  text-decoration: none;
  border: 1px solid var(--ec-color-brand-200, #b8cef5);
  background: #fff;
  transition: background .15s, border-color .15s, color .15s;
}

.ec-mis-ecards__per-page-step:hover {
  background: var(--ec-color-brand-50, #f0f4fc);
  border-color: var(--ec-color-brand-400, #6fa0e8);
}

.ec-mis-ecards__per-page-step--disabled {
  color: #c5cdd9;
  border-color: #e9ecef;
  pointer-events: none;
  cursor: default;
}

.ec-mis-ecards__per-page-value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4rem;
  height: 1.9rem;
  padding: 0 0.4rem;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ec-color-brand-800, #1a3a6c);
  background: var(--ec-color-brand-50, #f0f4fc);
  border: 1px solid var(--ec-color-brand-200, #b8cef5);
  user-select: none;
}

/* ── Paginación ─────────────────────────────────────────────────────────── */
.ec-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e9ecef;
}

.ec-pagination__info {
  font-size: 0.82rem;
  color: #8a96a8;
}

.ec-pagination__list {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ec-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.1rem;
  height: 2.1rem;
  padding: 0 0.5rem;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ec-color-brand-700, #2d5fb3);
  text-decoration: none;
  border: 1px solid transparent;
  transition: background .15s, border-color .15s;
}

.ec-pagination__btn:hover {
  background: var(--ec-color-brand-50, #f0f4fc);
  border-color: var(--ec-color-brand-200, #b8cef5);
}

.ec-pagination__btn--active {
  background: var(--ec-color-brand-600, #4a7fd4);
  color: #fff;
  border-color: var(--ec-color-brand-600, #4a7fd4);
  pointer-events: none;
}

.ec-pagination__btn--disabled {
  color: #c5cdd9;
  pointer-events: none;
  cursor: default;
}

.ec-pagination__ellipsis {
  font-size: 0.875rem;
  color: #8a96a8;
  padding: 0 0.25rem;
  user-select: none;
}

.ec-crear-paso3-fecha-wrap::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%231c3d6e' stroke-width='1.5'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center/contain no-repeat;
}