/* =============================================================================
   cuenta.css — área de cuenta del comprador (/cuenta/)
   =============================================================================
   Se carga vía $pageCss SOLO en las páginas de /cuenta/, no en todo el sitio:
   son cinco formularios y una lista, y no tienen por qué pesar en la portada.
   Paleta tomada de css/tickets.css para que el área no se sienta de otro sitio.
   ========================================================================== */

.account-wrap {
  max-width: 40rem;
  margin: 0 auto;
  padding: 3rem 1.25rem 4rem;
}

.account-wrap--wide { max-width: 56rem; }

.account-title {
  font-size: 1.75rem;
  line-height: 1.2;
  margin: 0 0 .5rem;
  color: #383838;
}

.account-lead {
  margin: 0 0 2rem;
  color: #7a6b6b;
  line-height: 1.55;
}

/* ── Avisos ───────────────────────────────────────────────────────────────── */

.account-notice {
  padding: .875rem 1rem;
  margin: 0 0 1.5rem;
  border-left: 3px solid #895961;
  background: #FAF6F4;
  color: #383838;
  line-height: 1.5;
}

.account-notice--error { border-left-color: #B0281E; background: #FDECEA; }
.account-notice--ok    { border-left-color: #2f7d3a; background: #E7F3E8; }

/* ── Formularios ──────────────────────────────────────────────────────────── */

.account-form { margin: 0 0 1.5rem; }

.account-form__field { margin: 0 0 1.25rem; }

.account-form__field label {
  display: block;
  margin: 0 0 .375rem;
  font-size: .8125rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #7a6b6b;
}

.account-form__field input {
  width: 100%;
  box-sizing: border-box;
  padding: .75rem .875rem;
  border: 1px solid #E1B6AD;
  border-radius: 2px;
  background: #fff;
  font: inherit;
  color: #383838;
}

.account-form__field input:focus {
  outline: 2px solid #895961;
  outline-offset: 1px;
  border-color: #895961;
}

.account-form__hint {
  display: block;
  margin: .375rem 0 0;
  font-size: .8125rem;
  color: #7a6b6b;
}

.account-form__submit {
  display: inline-block;
  padding: .8125rem 1.75rem;
  border: 0;
  border-radius: 2px;
  background: #895961;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.account-form__submit:hover { background: #C87A6A; }

/* ── Enlaces secundarios bajo el formulario ───────────────────────────────── */

.account-alt {
  margin: 1.5rem 0 0;
  padding: 1.25rem 0 0;
  border-top: 1px solid #E1B6AD;
  font-size: .9375rem;
  line-height: 1.7;
  color: #7a6b6b;
}

.account-alt a { color: #895961; }

/* ── Barra de sesión ──────────────────────────────────────────────────────── */

.account-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.25rem;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 2rem;
  padding: 0 0 1rem;
  border-bottom: 1px solid #E1B6AD;
}

.account-bar__who { color: #7a6b6b; font-size: .9375rem; }

.account-bar__out {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  color: #895961;
  text-decoration: underline;
  cursor: pointer;
}

/* ── Lista de compras ─────────────────────────────────────────────────────── */

.account-order {
  border: 1px solid #E1B6AD;
  padding: 1.25rem 1.375rem;
  margin: 0 0 1rem;
  background: #fff;
}

.account-order__title {
  margin: 0 0 .25rem;
  font-size: 1.125rem;
  color: #383838;
}

.account-order__title a { color: inherit; }

.account-order__when { margin: 0 0 .875rem; color: #7a6b6b; font-size: .9375rem; }

.account-order__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .375rem 1.25rem;
  margin: 0;
  font-size: .9375rem;
  color: #383838;
}

.account-order__meta dt {
  font-size: .75rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #7a6b6b;
}

.account-order__meta dd { margin: 0 0 0 .375rem; }

.account-empty {
  padding: 2rem 0;
  color: #7a6b6b;
  line-height: 1.6;
}

/* ── Boletos con su QR dentro de cada compra ──────────────────────────────── */

.account-order__tickets {
  margin: 1rem 0 0;
  padding: 1rem 0 0;
  border-top: 1px dashed #E1B6AD;
  display: grid;
  gap: 1rem;
}

.account-ticket {
  display: flex;
  align-items: center;
  gap: 1.125rem;
}

/* Tamaño fijo: el SVG del encoder es escalable, y sin una caja definida el QR
   nace enorme o diminuto según el contenido. 132px lee bien desde el celular
   de quien está en la puerta. */
.account-ticket__qr {
  flex: none;
  width: 132px;
  height: 132px;
  background: #fff;
  border: 1px solid #E1B6AD;
  padding: 6px;
  box-sizing: border-box;
}

.account-ticket__qr svg { display: block; width: 100%; height: 100%; }

/* Placeholder de un boleto usado o anulado: se conserva el hueco para que la
   lista no salte, pero sin QR — ese código ya no admite a nadie. */
.account-ticket__qr--off {
  background: repeating-linear-gradient(45deg, #FAF6F4, #FAF6F4 6px, #fff 6px, #fff 12px);
}

.account-ticket__meta {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  min-width: 0;
}

.account-ticket__n { font-weight: 700; color: #383838; }

.account-ticket__st { font-size: .9375rem; color: #7a6b6b; }
.account-ticket__st--issued     { color: #2f7d3a; }
.account-ticket__st--checked_in { color: #7a6b6b; }
.account-ticket__st--void       { color: #B0281E; }

.account-ticket__open { font-size: .875rem; color: #895961; }

@media (max-width: 30rem) {
  .account-ticket { flex-direction: column; align-items: flex-start; }
}
